操作系统结构_第1页
操作系统结构_第2页
操作系统结构_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.2 操作系统结构设计 操作系统是一种大型、复杂的并发系统,为了研制操作系统,先必须研究它的结构, 力求设计出结构良好的程序。 操作系统的结构设计有两层含义: 一是研究操作系统的整体结构, 由程序的构成成分组成操作系统程序的构造过程和方法;是研究操作系统程序的局部结构,包括数据结构和控制结构。采用不同的构件和构造方法可组成不同结构的操作系统。 本节将在讨论操作系统构件之后, 全面介绍各种操作系统的构造方法。操作系统的组件通常把组成操作系统程序的根本单位称作操作系统的构件。 剖析 现 代操作系统,构成操作系统的根本单位除内核之外, 主要还有进程、 线 程、类程和管程。1内核现代操作系统中 xx

2、 采用了进程的概念, 为了解决系统的并发性、 共享性和随机性, 并使进程能协调地工作, 单靠计算机硬件提供的功 能 是十分不够的。例如,进程调度工作目前就不能用硬件来实现;而 进程 自己调度自己也是困难的。 所以,系统必须有一个软件局部能对 硬件 处理器及有关资源进行首次改造, 以便给进程的执行提供良好运 行环 境,这个局部就是操作系统的内核。由于操作系统设计的目标和环境不同, 内核的大小和功能有很大 差 别。有些设计希望把内核做得尽量小仅具有极少的必需功能, 称为 微 内核 ( microkernel ) ,其他功能都在核外实现,通过微内核提供 的消息 的功能, 虽然其内部也可划分成层次或模

3、块, 但运行时是一个 大二进 制映像, 模块间的联系可通过函数或过程调用实现, 称为单内 核 monolithic kernel 。操作系统的一个根本问题就是内核的功 能设计。 微内核结构是现代操作系统的特征之一, 这种方法把内核和 核外效劳 程序的开发别离, 可为特定应用程序或运行环境要求定制服 务程序, 具有较好的可伸缩性,简化了实现,提供了灵活性,很适合 分布式系统 的构造。传递机制完成其余功能模块间的联系;有些设计那么希望内核具 有较多一般而言,内核必须提供以下 3 个方面的功能。 1 xx 处理。 xx 处理是内核中最根本的功能, 也是操作系统赖 以 活动的根底,为了缩短屏蔽 xx

4、的时间,增加系统内的并发性,通 常它 仅仅进行有限的、 简短的处理, 其余任务交给在内核之外的特殊 用户 态进程完成。 当 xx 事件产生时,先由内核截获并转向 xx 处理例 行程 序进行原那么处理, 它分析 xx 事件的类型和性质, 进行必要的状 态修改, 然后交给内核之外的进程去处理。 例如,产生外围设备结束 xx 事件时, 内核首先分析是否正常结束,如果是正常结束,那么, 就应释放等待该 外围传输的进程; 否那么启动相应设备管理进程进行出 错或异常处理。 又 如当操作员请求从控制台输入命令时, 内核将把这 一任务转交给命令 管理进程去处理,以接收和执行命令。 2短程调度。主要职能是分配处

5、理器。当系统中发生了一个事件之后, 可能一个进程要让出处理器, 而另一个进程又要获得处理 器。 短程调度按照一定的策略管理处理器的转让, 以及完成保护和恢 复现 场的工作。 由于它是协调进程竞争处理器资源的程序, 所以它不 是进程而是内核中的一个程序3原语管理。原语是内核中实现某一功能的不可xx 过程。为 了协调进程完成通信、 并发执行和共享资源, 各种原语是必不可少的。 通 信原语为进程相互传递消息, 同步原语能协调并发进程之间的种种 制 约关系。此外,还有其他原语,如启动外围设备工作的启动原语, 假设启 动不成功那么请求启动者应等待, 显然, 这个启动过程应该是完整 的, 否那么在成为等待

6、状态时,可能外围设备已经空闲。由于设备的操 作与硬 件密切相关,故通常设备驱动程序等功能都放在内核中完成。内核是操作系统对裸机的首次改造, 内核和裸机组成了一台虚拟 机, 进程就在这台虚拟机上运行,它比裸机的功能更强大,具有以下 特性: 1 虚拟机没有 xx ,因而,进程的设计者不再需要有硬件 xx 的 概念,用户进程执行中无须处理 xx; 2虚拟机为每个进程提供了一台虚拟处理器,每个进程就好像在各自的私有处理器上顺序地推进,实现了多个进程的并发执行; 3虚拟机为进程提供了功能较强的指令系统,即它们能够使用机器非特权指令、系统调用和原语所组成的新的指令系统。为了保证系统的有效性和灵活性,设计内

7、核应遵循少而精的原那么。如果内核功能过强,那么一方面在修改系统时可能牵动内核;另一 方面它 占用的内存容量和执行时间都会增大,且屏蔽 xx 的时间过长 也会影响 系统效率。因而,设计内核时应注意: xx 处理要简单;调 度算法要有效;原语应灵活有力、数量适当。这样就可以做到下次修 改 系统时,尽量少改动内核,执行时 xx 屏蔽时间缩短。2进程管理程序本身并不能做什么, 只有在 CPU 执行它的指令时才能有所作 为;因此,可以把进程看做是正在运行的程序。但是当我们进一步研究时,对进程的定义将更为普遍。例如:一个分时用户程序如编译器是一个进程,个人用户在 PC 上运行的字处理程序是一个进程, 一个

8、系 统任务如输出到打印机也是一个进程,并可以提供允许进 程创立与 其并发执行的子进程的系统调用。进程需要特定的资源包括 CPU 时间、内存、文件和 I/O 设备 来 完成工作。 这些资源或者在进程创立时分配给它, 或者在其运行时 分 配。除了在进程创立时所获得的各种物理资源和逻辑资源以外, 各 种 各样的初始化数据或输入也可能一同传送给进程。例如,考虑 一个 能够在终端的显示屏上显示一个文件状态的进程。 这个进程将获 得包 含输入的文件名, 将执行相应的指令和系统调用来获取所期望的 信息 并显示在终端上。着重强调程序本身不是进程; 程序是静态实体 passive entity 好 像是存储在磁

9、盘中的文件的内容 ,而进程是动态实体 active entity , 它用一个程序计数器来指明要执行的下一条指令。进程必 须要按顺序执 行, CPU 执行完进程的一条指令后再执行下一条,直到 进程结束。进 一步地讲,一次最多执行一条代表该进程的指令。 这样, 从来就不会 出现两个独立运行的序列。 但一个程序在运行时创立多个 进程是非常普遍的。进程是并发程序设计的一个工具, 并发程序设计支撑了多道程序 设地解计,由于进程能确切、动态地刻画计算机系统内部的并发性,更好 决系统资源的共享性,所以,在操作系统的开展史上,进程概念 被较早 地引入了系统。 它在操作系统的理论研究和设计实现上均发挥 了重要

10、 作用。 采用进程概念使得操作系统结构变得清晰, 主要表现如 下。 1一个进程到另一个进程的控制转移由进程调度机构统一管理,不能杂乱无章,随意进行。 2进程之间的交互如信号发送、消息传递和同步互斥等活动由通信及同步机制完成, 从而使进程无法有意或无意破坏其他进程的 数 据。因此,每个进程相对独立, 相互隔离, 提高了系统的 xx 和可 靠性。 3进程结构较好地刻画了系统的并发性,动态地描述出系统 的 执行过程,因而具有进程结构的操作系统,结构清晰、整齐划一,可维护性好。3主存储器管理主存储器是现代计算机系统运行的核心。 主存储器是由字或字节 组 成的大型队列, 每个字或字节都有它自己的地址。

11、主存储器是 CPU 和 I/O 设备共享的大容量快速存储器。中央处理器在取指令周期中 从主存储器 中读取指令,而且在取数据周期中从主存储器中读 / 写数 据。通过 DMA 动态内存存取, I/O 操作也实现了对主存储器的数 据读/ 写。通常 主存储器是 CPU 唯一能够直接寻址和访问的大容量存 储空间。例如, CPU 要处理磁盘中的数据,那么 CPU 首先发出 I/O 调 用将这些数据传 送到主存储器中。 同样,指令必须在存储器中才能够 由 CPU 执行。在程序 运必须要把程序映射到绝对地址并载入内存中才可以执行。行时,它通过产生绝对地址来从内存中访问程序指令和数据。 最后, 程 序结束,释放

12、所占的内存空间,方便下一个程序载入。为了提高 CPU 利用率和计算机响应速度, 必须在内存中保存多个 程序。 有许多不同的内存管理策略, 而且不同算法的效率取决于具体 的 环境。为具体的系统选择内存管理策略要考虑许多因素尤其是 系统 的硬件设计。每种算法都需要自己的硬件支持。操作系统要负责以下与内存管理相关的工作: 跟踪内存使用情况, 明确哪一局部正在使用和为谁所用; 在内存空间有效时决定将哪个 进程载入内存; 根据需要分配和释放内存空间。4文件管理文件管理是操作系统中可视性最强的组件之一。 计算机能够将数 据 存储在各种类型的物理介质上。 磁带、磁盘和光盘是最常用的介质。 每 种介质都有自己

13、的特性和物理结构。 每个存储媒体由一个驱动器控 制 如磁盘驱动器或磁带驱动器 ,这种驱动器也有自己的独有特性。 这 些特性包括访问速度、 容量、数据传输率和存取方式 顺序的或随 机的。为了便于使用计算机系统, 操作系统提供了一个计算机系统的整 体 逻辑层面。操作系统把存储设备的物理属性抽象定义为一个逻辑存 储单 元文件。 文件被映像到物理媒介中, 通过存储设备来访问这 些文 件。二者文件是由其创立者定义的相关信息的集合。 一般的文件表现为程 序源程序和目标代码和数据。数据文件可能是数字的、字母的或 混合的。文件可能是形式自由的如文本文件,也可能有严格 定义的 格式如固定字段。由字、字节、行或记

14、录组成的文件结构 是其创立 者定义的。文件概念具有相当广泛的含义。操作系统通过管理大容量存储体如由驱动器控制的磁盘和磁 带 实现了文件的抽象概念。另外,为了更简易地使用文件,通常将 他们组 织到目录中。最后, 如果有多个用户访问文件,可能需要控制 谁以什 么样的方式访问例如:读、写、追加。操作系统要负责以下与文件管理相关的工作:创立和删除文件;创立和删除目录; 将文件映像到辅助存储器中; 将文件备份到永久非易失性存储 体中。5 I/O 系统管理 操作系统的目的之一就是要向用户隐藏具体的硬 件特性。例如, 在 UNIX 中,通过 I/O 子系统向操作系统隐藏了 I/O 设 备的特性。 I/O 子

15、系统由以下几个方面组成:一个内存管理模块,这包括 Buffering 、 Caching 和 SPOOLing ; 一 个通用设备驱动程序接口; 针对具体硬件设备的驱动程序。 6辅助存储器管理 操作系统的主要目的是执行程序。 这些程序在 运行时 以及它们 要访问的数据 都必须在主存储器中。 因为主存 储器的容量太小不能 存储所有的程序和数据, 而且掉电后会丧失所有 的存储信息, 所以计 算机系统必须要提供辅助存储器作为主存储器的 后备。 大多数现代计 算机系统使用磁盘作为存储程序和数据的主要联 机存储体。 大多数程 序包括编译程序、汇编程序、排列程序、编辑 程序和 xx 程序在 载入内存之前存

16、储在磁盘上, 并且在运行时利用 磁盘存储它们所处理 的源文件和目标文件。 因此, 合理的磁盘管理对 一个计算机系统来说 是至关重要的。操作系统要负责以下与辅助存储器管理相关的工作: 空闲空间管理; 空间分配;磁盘调度。因为频繁地使用辅助存储器, 所以必须要能够高效运行。 而且计 算 机的整体运行速度取决于磁盘子系统的速度和该子系统实现算法 的效 率。7 网络管理 分布式系统是一个处理机的集合, 这些处理机既不共 享内存和外 围设备,也不共享时钟。而是每个处理机拥有自己的本 地内存和时钟, 并且这些处理机可以通过各种通信线路 如高速 总线或网络 进行通 信。一个分布式系统中的处理机在规模和功 能

17、上有所不同, 其中可能 包括小型微处理器、工作站、小型机和 大型通用计算机。在分布式系统中,处理机通过通信网络 XX,有多种不同的 方 法可以配置该网络。 这种网络可以完全或局部地连接。 通信网络的 设 计必须要考虑报文路由选择和连接策略,以及争用和平安的问题。分布式系统将物理上相互独立的可能不同种类的系统集合成为 一 个独立相连的系统, 它具有向用户提供访问由系统维护的各种资源 的了数能力。对共享资源的访问加快了计算速度、增强了系统功能、提高据的可用性并加强了可靠性操作系统把网络细节包含在了网络 接口设备驱动程序中,于是将网络访问泛化为一种文件访问的形式。 因此, 分布式系统所使用的协议在很

18、大程度上影响到系统的效率和 xx 。8系统保护如果一个计算机系统有多个用户并允许并行执行多个进程, 那么 必 须要保护各个进程免受其他进程的侵扰。 为此,需要提供一种机制 来 保证只有那些从操作系统获取了适宜权限的进程能够操作文件、 存 储 段、 CPU 和其他资源。例如, 内存寻址硬件确保了一个进程只能在自己的地址空间内执 行, 计时器确保进程最终能够放弃对 CPU 的控制,用户不能够访问设 备控 制存放器;这样,就保护了各种外围设备的完整性。保护是操作系统定义的控制程序, 是进程或用户访问的机制。 这 个 机制必须要提供一种方法来描述要施加的控制, 以及强制执行的方 法。通过检测子系统接口

19、中潜伏的错误,保护能够增强系统的可靠 性。 对接口错误的早期检测常常能够阻止一个子系统故障 xx 到其他 正常的 子系统。 一个未受保护的资源难以防止未授权或不适当的用户 的使用 或误用。一个面向保护的系统提供了一种区分授权的和未 授权的使 用方法。9操作系统效劳操作系统提供了程序运行的环境。 它为程序和程序用户提供了特 定 的效劳。当然, 不同的操作系统提供的具体效劳不同,但是我们能 够 找出其共同局部。 提供的这些操作系统效劳是为了便于程序员设计 程 序。具体如下。程序执行: 系统必须能够将程序载入内存并运行它。 程序必须能 够 正常地或异常地指示错误结束运行。I/O 操作:一个正在运行的

20、程序可能要请求 I/O 操作。这可能 会涉 及文件或 I/O 设备。针对具体的设备,需要特定的功能如倒 卷一个磁 带驱动器或清空一个 CRT 屏幕显示 。出于系统效率和保护 的原因, 用户通常不能够直接控制 I/O 设备。 因此,操作系统必须 要提供一种 I/O 运行机制。文件系统处理:文件系统相当有意思。显然,程序需要能够读写 文 件,也要能够创立和删除文件。通信:在很多情况下,一个进程需要与另外一个进程交换信息。 通 信有两种主要的方式。 第一种方式是在运行在同一台计算机上的进 程 间通信;另外一种方式是运行在由一个计算机网络连接的不同的计 算机 系统上的进程间通信。 可以通过共享存储器或

21、报文传送 这种方 式中, 操作系统在进程之间将信息打包移动 的方式实现进程间的通 信。错误检测: 操作系统需要经常注意可能发生的错误。 错误可能发 生 在 CPU 、内存如存储错误或电源故障、 I/O 设备如磁带奇偶 检 验错误、连结网络失败或打印机缺纸及用户程序如运算溢出、 试图 访问非法存储器地址或过多占用 CPU 时间中。对于每种类型 的错误, 操作系统应该能够采取针对性措施以确保计算的正确性和相 容性。另外,操作系统还存在另外一些功能, 它们不是为了帮助用户工 作,而是为了确保系统本身的高效运行。如:资源分配:当多个用户登录到系统中或同时有多个作业运行时, 必 须要在它们之间分配资源。

22、 操作系统管理许多不同类型的资源。 有 些 资源如 CPU 周期、主存储器和外存储器可能有专用的分配代 码, 而其他的如 I/O 设备可能有更通用的请求和释放代码。例 如,在决 定如何最好地使用 CPU 的问题上,操作系统的 CPU 调度程 序要考虑 CPU 速度、 必须要执行的作业、 有效的存放器数量和其他 的一些因素; 账户管理: 我们希望跟踪记录每个用户使用哪些类型的计算机资 源 和用了多少。这个记录保持可能用于记账以便用户付账或简单 地用 于累加使用率统计。 对于研究者来说, 使用率统计可能是个有效 的工 具。利用使用率统计, 研究者可以重新配制系统以改善计算效劳; 保护: 存储在多用

23、户计算机系统上的信息的所有者希望能够控制 对该信息的 使用。 当多个不相关的进程并发执行时, 一个进程不应该 能够干扰其 他进程或操作系统本身。 保护包括了监控所有对系统资源 的访问。对 来自外界的系统平安检测 security 也是非常重要的。 这种保护往往 通过密码的方式,用户向系统验证口令才能访问资源。 它也包括了保护 外部 I/O 设备包括调制解调器和网络适配器免 于非法的访问企图和 记录所有这样的非法闯入。 如果一个系统受到保 护并且是平安的,那 么就必须要建立预防措施。一般,系统的平安强 度与其最薄弱的一个环 节密切相关。操作系统功能的实现模型 操作系统本身是一组程序, 像其他程序

24、一 样也在处理器上执行, 那么,操作系统程序是否组织成进程?它是如何 控制和怎样执行的 呢?下面来讨论这个问题。 从操作系统的执行方式 来看, 可以把它分 成:非进程内核模型、 OS 功能函数在用户进 程内执行的模型和 OS 功能函数作为独立进程执行的模型 3 种。1 非进程内核模型 许多老式操作系统的实现采用非进程内核模型, 即操作系统的功 能都不组织成进程来实现,如 图 1-2 所示,该模型包括一个较大的 操作系统内核程序,进程的执行在内核之外。当XX发生时,当前运 行进程的上下文现场信息将被保存,并把控制权传递给操作 系统内核。操作系统具有自己的内存区和系统堆栈区,用于控制过程调用和 返

25、回。它将在核心态执行相应的操作,并根据 XX的类型和具体 的情况,或者是恢复被 XX进程的现场并让它继续执行,或是转向进程 调 度指派另一个就绪进程运行。在这种情况下,进程的概念仅仅是针对用户程序而言的,操作系 统代码作为一个独立实体在内核模式下运行。2. OS功能在用户进程内执行的模型小型机和工作站操作系统如UNIX等往往采用 OS的所有功能在用户进程内执行的模型,如图1-3所示,在这种实现模型中,大部分操作系统功能组织成一组例行程序供用户程序调用,认为操作系统例程与用户进程是上下文相关的,操作系统的地址空间被包含在用户进程的地址空间中;因而,操作系统例行程序也在用户进程的上下文环境中执行。图1-4给出了 OS的所有功能在用户进程内执行的模型 中 的进程映像,它既包含进程控制块、用户堆栈、XX用户程序和数 据的地址空间等,还包括操作系统内核的程序、数据和系统堆栈区。当发生一次XX或系统调用后,处理器状态将被置成内核模式,控制从用户进程手中被

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论