目录
一、计算机系统层次结构
1. 微程序设计级
2. 一般机器级
3. 操作系统级
4. 汇编语言级
5. 高级语言级
二、计算机系统组成
1. 运算器
2. 控制器
3. 存储器
4. 输入设备
5. 输出设备
三、操作系统的定义
四、应用程序与操作系统的关系
四、操作系统的基本特征
1. 并发性 (Concurrence)
2. 共享性 (Sharing)
3. 虚拟性(Virtual)
4. 不确定性
五、操作系统的主要功能
1. 处理机管理
2. 存储管理
(1)内存分配
(2) 存储保护
(3)内存扩充
3. 设备管理
(1) 设备独立性
(2) 设备分配
(3) 设备的传输控制
4. 文件管理
5. 用户接口
(1)程序一级的接口
(2)作业一级的接口
一、计算机系统层次结构
计算机系统的层次结构通常由 5 个以上不同的级别组成,每一级都能进行程序设计。
1. 微程序设计级
这是一个实在的硬件级,它 由机器硬件 直接执行微指令。如果 某一个应用程序 直接用微指令来编写,那么可在 这一级上运行该 应用程序。
2. 一般机器级
也称为 机器语言级。这一级 由微程序 解释机器 指令系统,也是 硬件级。
3. 操作系统级
它由操作系统 程序实现。这些 操作系统程序 由机器指令 和 广义指令 组成。广义指令 是操作系统定义 和 解释的 软件指令,所以这一级也称为 混合级。
4. 汇编语言级
它给程序人员提供一种 符号形式语言,以 减少程序编写的复杂性。这一级 由汇编程序 支持和执行。如果应用程序 采用 汇编语言编写,则机器 必须要有这一级的 功能。如果 应用程序不采用汇编语言 编写,则这 一级可以不要。
5. 高级语言级
它是面向用户的,为 方便用户编 写应用程序而设置。这一级 由各种 高级语言编译程序 支持和执行。
二、计算机系统组成
计算机硬件主要由 5 大部件 组成,即 运算器、控制器、存储器、输入设备和输出设备,其中包含 接口 和 其他外部设备。将这些 硬件按照 某一种方式 有机地 连接起来就是 硬件系统。通常将 运算器 和 控制器称为 *处理器 (Central Processing Unit, CPU),CPU 和 存储器一起 称为 主机,而 输入设备和 输出设备均称为 外围设备。
1. 运算器
运算器是 计算机的 数据加工处理部件,它的主要功能是进行算术运算和逻辑运算。
2. 控制器
控制器是 统一指挥 和 控制计算机各部件工作的 *机构,它的主要功能是 按照 人们预先 确定的 操作步骤,控制 整个计算机的 各部件协调地 进行工作。
3. 存储器
存储器是计算机用来 存放程序 和数 据的 部件,具有 “ 记忆 ” 功能。它的基本功能是按照指定的存储位置 “ 读出 ” 或 “ 写入 ” 信息。
存储器分为内存储器(内存)和外存储器(外存)。内存由半导体器件 RAM 和 ROM构成,用来存放 CPU 正在执行的 指令和数据。外存 由磁性材料等 构成,用来存放暂时 不执行的程序和数据,常用的 外存有软盘、硬盘、光盘、U盘和磁带机 等。
具体可看这篇文章: 常用存储器
http://t.csdnimg.cn/bHdZhhttp://t.csdnimg.cn/bHdZh
4. 输入设备
输入设备的任务是 将 人们编制好的 程序 和 原始数据送到 计算机中。其功能就是 将它们转换成 计算机能够 识别的 电信号,并将这些 电信号存 放到计算机的 存储器中。
5. 输出设备
输出设备 的任务是 将计算机的处理结果 进行输出。其功能是将计算机 中用 代码描述 的处理结果转换成 人类认识的符号 进行输出。
三、操作系统的定义
计算机系统 能够按 用户的要求接收和存储信息,经过处理、计算,输出结果信息,整个 工作过程的完成,依赖的是 硬件和软件 两部分。硬件 是指 处理器、存储器、输入 / 输出设备和通信装置等;软件 是指为 完成特定 任务而由 硬件执行的 程序、数据 和 其他 相关文档。
计算机软件按照功能划分,可分为三大类:系统软件、支持软件和应用软件。
系统软件 的功能实现是 直接与硬件发生联系,而与具体 应用领域无关,主要包括 操作系统、设备驱动程序、通信处理程序等。
支持软件 用于 支撑具体应用软件程序的开发和维护,包括软 件编译器、开发环境工具(如JDK、 Visual Studio.NET) 等,有时 支持软件 和 系统软件 之间并没有严格 的界限。
应用软件 则是 针对特定应用领域问题的软件工具程序,包括文字处理程序(如 Word)、医疗行业软件、办公自动信息系统 等。
上图中的每层都具有 一组功能并对外提供相应的接 口,接口对层内 隐蔽实现细节,对层外提供 特定的 应用规范。
操作系统 是计算机 系统的核心 系统软件,能够 有效 地控制 和 管理 计算机系统中的 硬件和软件资源,并 合理组织计算机工作流程,为用户 方便而有效地 使用计算机 提供良好、高效的运行环境。
四、应用程序与操作系统的关系
用户是通过 操作系统 来使用计算机的,操作系统 为用户程序提供了一个 虚拟的机器界面,应用程序运行在 这个界面之上。
从用户的角度,操作系统 通过虚拟 的机器界面给 应用程序提供各种 服务功能,应用程序 在运行过程 中不断 使用操作系统 提供的服务 来完成 自己的任务。当 调用 操作系统的 某项服务功能时,计算机的 控制权 从用户 应用程序将转移 到操作系统,而 操作系统在完成 这些 应提供的功能后,将控制权 再返回给 应用程序。
用户的应用程序 是不能在 操作系统启动 之前执行的。在此之后,每当 启动执行一个应用程序,都相对于 操作系统将控制权 转移给 用户程序,当其 执行完毕再返回给 操作系统。从计算机系统启动 之初,从操作系统的先运行角度看,操作系统 成为了主程序,在计算机 开机期间,都是它在 不断调用用户的 各种程序,循环往复,直到计算机 关闭。
四、操作系统的基本特征
1. 并发性 (Concurrence)
并行性,又称为 共行性,是指能处理 多个同时性 活动的 能力。在 多道程序环境下,并发性是指 宏观上 在一段时间内有 多道程序在同时运行,但 微观 上看(在单处理机系统中),每一时刻 只能执行一道程序,所以 这些程序是 在同一时间间隔内 交替执行。
在 多处理机系统中,并发程序 不仅在 宏观上 是并发的,而且在 微观上 也是 并行运行的。在 分布式系统 中,多台计算机 并存,使程序 的并发特征 得到更充分的 体现。
并行 和 并发是既相似又有区别的 两个概念。并行 是指两个或多个事件在同一时刻发生,而 并发 是指两个或多个事件在同一时间间隔内发生。
2. 共享性 (Sharing)
是指系统中的 软 / 硬件 资源 不再为某个程序 所独占,而是 供多个应用程序 共同使用。操作系统 要在多个并发程序 间通过 调度 来分配处理器 时间,并且保 证对系统 数据共享 的正确性 以及数据的 完整性。
根据 资源的属性 不同,共享 可分为互斥共享和同时共享两种方式。互斥共享 是指系统中的资源虽 能提供给 多个进程使用,但在一段时间 内却 只允许一个进程访问该资源。同时共享 允许在一段时间内,由 多个进程 同时对资源进行访问。当然,“ 同时 ” 仍然是宏观上的,微观上,这些进程可能是 交替 地对该资源进行访问。
3. 虚拟性(Virtual)
是指将一个 物理的 实体映射为 若干个 逻辑实体。物理实体是 客观存在的,逻辑实体 是用户感觉上 存在的,即主观上的一种 想象。
虚拟的例子在 操作系统中 有很多,如在 多道程序系统 中,即使只有一个 处理机,每次只能执 行一道程序,但在采用 多道程序设计技术 后,在一段时间间隔 内,宏观上 看起来有多个程序运行。在用户看来,就好像有 多个处理机在各自运行 自己的程序。即 将一个物理上的 处理机虚拟为 多个逻辑上的处理机,即 多个虚拟处理机。
同样,通过 操作系统的功能也可 把主存扩充 并改造成 速度较慢 但容量 较大的虚拟存储器;把外存储器 改造成按 名存取的 文件系统;把 I/O设备 改造成数量较多,方便使用的 虚拟设备等。
4. 不确定性
(1) 程序执行结果的不确定,程序执行结果的不可再现。
同一程序 对给定的相同初始数据,由 于多道程序的并发执行,各 程序对临界资源没有 互斥使用,可能造成 在相同的环境下 运行多次,多次运行 都可能得到完全 不同的结果。对这种 运行结果的 不确定性操作系统应 提供 相应的机制 加以解决。
(2) 多道程序设计环境下,每道程序在何时执行,各自执行的程序以及每道程序所需的时间是不确定的,也是不可预知的。
这种 不确定性是 允许的,而且也是 应加以保护的。操作系统必须 能处理随时可能 发生的事件,如从 外部设备来的中断,输入 / 输出请求。程序运行 时发生故障的 类型及发 生的时间 等也都是 不可预测的。
五、操作系统的主要功能
操作系统 的主要功能之一是 管理系统的软、硬件资源。这些资源按 其性质来分,可以归纳为四类:处理机、存储器、外部设备和软件资源。这四类资源构成了 系统程序和用户程序 赖以活动的 物质基础。针对这 四类资源,操作系统就有相应的处理机管理、存储管理、设备管理和软件资源管理 这四大管理功能。
除此以外,操作系统还为 用户提供 使用计算机 方便灵活的手段,即提供 一个友好的用户 接口。
1. 处理机管理
计算机系统中最重要的资源是 *处理机,任何计算都必须在 CPU上进行。在 处理机管理中最核心的 问题是 CPU时间的分配,这 涉及分配的 策略和方法。
在单道作业或单用户的情况下,处理机 为一个作业或一个用户 所独占,对处理机 的管理十分简单。但在 多道程序或多用户的情况下,要组织 多个作业同时运行,就要 解决对处理机 分配调度策略、分配实施和 资源回收 等问题,这就是 处理机管理功能。
正是由于操作系统对处理机管理策略的 不同,其提供的作业处理方式也就不同(如 成批处理方式、分时处理方式和实时处理方式),从而呈现 在用户面前,成为具有 不同性质功能的操作系统。
处理机管理的功能:
① 确定进程 调度策略。
② 给出进程 调度算法。
③ 进行处理机的 分派。
2. 存储管理
任何程序的执行都 必须从 主存中获取 数据信息。现代 操作系统 非常重视主存的 存储调度和处理机调度的 结合,在主存分配时, 将程序中当前最需要 的部分 调入主存,这样这 一部分程序马上 可以投入运行。即 只有当程序在 主存时,它才有 可能到处理机上执行,而且仅当它可以到处理机上运行时才把它调入主存,这种 调度 能实现 最大化的 主存使用。
(1)内存分配
如果有多个用户程序在计算机上运行,其程序和数据都 需要占用一定的 存储空间。这些程序和 数据将分别 安置在主存的 什么位置,各占多大区域,这就是 主存分配问题。
现代操作系统为 用户程序呈现的是逻辑地址、程序地址空间(或称虚地址空间)。为此,存储管理部件 应具备 地址重定位 能力,提供 地址映像等结构。
(2) 存储保护
主存中可 同时存放 数道程序,为了防止某道程序 干扰、破坏其他用户程序,存储管理 必须保证每个用户程序只能访问它自己的存储空间,即实现用户程序之间的隔离。
当某用户企图(有意或无意)存取任何 其他范围的信息时,系统能够 捕获,以防止 对其他用户程序的 干扰和破坏,也就是要提供存储保护的手段。存储保护 机构 有界限寄存器、存储键和锁等,由硬件 提供支持,操作 系统实现 判断和处理功能。
(3)内存扩充
每个 应用程序 都有自己的 虚地址空间,它 由用户程序 的所有的 程序地址和 数据地址组成。当 多个用户程序 同时进入 主存投入运行时,现代操作系统 并不是将这些 用户程序的全部代码 和数据 在程序的整个 运行时间内都放在 主存内。而是将这些用户 程序的 全部代码和数据存放在 辅存 中,只将每个用户 程序 虚地址空间中的 一部分调入主存。
操作系统能 自动处理信息在 辅存与主存 之间的 调度,让各用户程序都能 正确地运行。用户的感觉是 系统的主存足够用,自己程序的大小 没有受到 主存容量的限制。这种虚拟 的感觉正是由于 操作系统提供了 虚拟存储技术,实现了 主存空间的扩充。
3. 设备管理
(1) 设备独立性
用户向系统 申请和使用的 设备与实际操作的 设备无关,即在 用户程序中或在资源 申请命令中使用设备的 逻辑名,此即为设备独立性。这一特征 不仅为用户使用设备 提供了方便,而且 也提高了设备的 利用率。
(2) 设备分配
各个用户程序在其运行的 开始、中间或结束时 都可能有输入或输出,因此随时需要 请求使用外部设备。在一般情况下,外部设备的 种类与 台数是有限的(每一类设备的台数往往少于用户的个数),所以,在多对少(多个用户共享少量的设备台数)的情况下,如何分配设备 是十分重要的。设备分配通 常采用 独享分配、共享分配和虚拟分配这三种基本分配技术。
(3) 设备的传输控制
实现物理的输入/输出操作,即组织使用设备的有关信息、启动设备、中断处理、结束处理等。
设备管理还提供 缓冲技术,Spooling 技术以 改造设备特性 和 提高设备的 利用率。
4. 文件管理
软件资源是 各种程序和数据的集合。程序又分为系统程序和用户程序。
系统程序 包括 操作系统的 功能模块、系统库和 实用程序。为了实现 多个用户对 系统程序的有效存取,这些程序必须是 可重入的,这比创建多个资源 副本有着明显的 好处。系统程序 是以文件形式组织、存放、提供给用户使用的。用户程序 也是以文件的形式进行管理的。
文件系统(也就是软件资源管理)要解决的问题是,为用户提供一种简便的、统一的存取和管理信息的方法,并要 解决信息的共享、数据的存取控制和 保密等问题。具体而言,文件系统要实现 用户的信息组织、提供存取方法、实现文件共享和文件安全,还要保证文件完整性,完成磁盘空间分配的任务。
5. 用户接口
一般来说,操作系统提供两种方式的接口来和用户发生关系,为用户服务。
(1)程序一级的接口
即 提供 一组广义指令(或称系统调用、程序请求)供用户程序 和其他 系统程序调用。当这些程序要求进行 数据传输、文件操作或有其他资源要求 时,通过这些 广义指令 向操作系统提出申请,并由操作系统 代为完成。
(2)作业一级的接口
提供 一组控制操作命令(或称作业控制语言,或像UNIX中的 Shell 命令语言)供用户去 组织和控制自己作业的 运行。作业控制方式 可以分为两大类:脱机控制和联机控制。操作系统提供 脱机控制作业语言 和 联机控制作业语言。
后期学习再进行补充。