操作系统结构_第1页
操作系统结构_第2页
操作系统结构_第3页
操作系统结构_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

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

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

3、时是一个大二进制映像,模块间的联系可通 过函数或过程调用实现,称为单内核(monolithic kernel )。操作系统的一个基本问题就是内核的功能设计。微内核结构是现 代操作系统的特征之一,这种方法把内核和核外服务程序的开发分离,可为特定应用程序或运行环境要求定制服务程序,具有 较好的可伸缩性,简化了实现,提供了灵活性,很适合分布式系统的构造。一般而言,内核必须提供以下 3个方面的功能。(1)中断处理。中断处理是内核中最基本的功能,也是操作系统赖以活动的基础,为了缩短屏蔽中断的时间,增加系统内 的并发性,通常它仅仅进行有限的、简短的处理,其余任务交给在内核之外的特殊用户态进程完成。当中断事

4、件产生时,先由 内核截获并转向中断处理例行程序进行原则处理,它分析中断事件的类型和性质,进行必要的状态修改,然后交给内核之外的 进程去处理。例如,产生外围设备结束中断事件时,内核首先分析是否正常结束,如果是正常结束,那么,就应释放等待该外 围传输的进程;否则启动相应设备管理进程进行出错或异常处理。又如当操作员请求从控制台输入命令时,内核将把这一任务 转交给命令管理进程去处理,以接收和执行命令。(2)短程调度。主要职能是分配处理器。当系统中发生了一个事件之后,可能一个进程要让出处理器,而另一个进程又要 获得处理器。短程调度按照一定的策略管理处理器的转让,以及完成保护和恢复现场的工作。由于它是协调

5、进程竞争处理器资 源的程序,所以它不是进程而是内核中的一个程序。(3)原语管理。原语是内核中实现某一功能的不可中断过程。为了协调进程完成通信、并发执行和共享资源,各种原语是 必不可少的。通信原语为进程相互传递消息,同步原语能协调并发进程之间的种种制约关系。止匕外,还有其他原语,如启动外 围设备工作的启动原语,若启动不成功则请求启动者应等待,显然,这个启动过程应该是完整的,否则在成为等待状态时,可 能外围设备已经空闲。由于设备的操作与硬件密切相关,故通常设备驱动程序等功能都放在内核中完成。内核是操作系统对裸机的首次改造,内核和裸机组成了一台虚拟机,进程就在这台虚拟机上运行,它比裸机的功能更强 大

6、,具有以下特性:(1)虚拟机没有中断,因而,进程的设计者不再需要有硬件中断的概念,用户进程执行中无须处理中断;(2)虚拟机为每个进程提供了一台虚拟处理器,每个进程就好像在各自的私有处理器上顺序地推进,实现了多个进程的并 发执行;(3)虚拟机为进程提供了功能较强的指令系统,即它们能够使用机器非特权指令、系统调用和原语所组成的新的指令系 统。为了保证系统的有效性和灵活性,设计内核应遵循少而精的原则。如果内核功能过强,则一方面在修改系统时可能牵动内 核;另一方面它占用的内存容量和执行时间都会增大,且屏蔽中断的时间过长也会影响系统效率。因而,设计内核时应注意: 中断处理要简单;调度算法要有效;原语应灵

7、活有力、数量适当。这样就可以做到下次修改系统时,尽量少改动内核,执行时 中断屏蔽时间缩短。2 .进程管理程序本身并不能做什么,只有在 CPU执行它的指令时才能有所作为;因此,可以把进程看做是正在运行的程序。但是当我 们进一步研究时,对进程的定义将更为普遍。例如:一个分时用户程序(如编译器)是一个进程,个人用户在PC上运行的字处理程序是一个进程,一个系统任务(如输出到打印机)也是一个进程,并可以提供允许进程创建与其并发执行的子进程的系 统调用。进程需要特定的资源(包括CPU时间、内存、文件和I/O设备)来完成工作。这些资源或者在进程创建时分配给它,或者 在其运行时分配。除了在进程创建时所获得的各

8、种物理资源和逻辑资源以外,各种各样的初始化数据(或输入)也可能一同传 送给进程。例如,考虑一个能够在终端的显示屏上显示一个文件状态的进程。这个进程将获得包含输入的文件名,将执行相应 的指令和系统调用来获取所期望的信息并显示在终端上。着重强调程序本身不是进程;程序是静态实体(passive entity )(好像是存储在磁盘中的文件的内容),而进程是动态实体(active entity ),它用一个程序计数器来指明要执行的下一条指令。进程必须要按顺序执行,CPU执行完进程的一条指令后再执行下一条,直到进程结束。进一步地讲,一次最多执行一条代表该进程的指令。这样,从来就不会出现两个独立运行 的序列

9、。但一个程序在运行时创建多个进程是非常普遍的。进程是并发程序设计的一个工具,并发程序设计支撑了多道程序设计,由于进程能确切、动态地刻画计算机系统内部的并 发性,更好地解决系统资源的共享性,所以,在操作系统的发展史上,进程概念被较早地引入了系统。它在操作系统的理论研 究和设计实现上均发挥了重要作用。采用进程概念使得操作系统结构变得清晰,主要表现如下。(1) 一个进程到另一个进程的控制转移由进程调度机构统一管理,不能杂乱无章,随意进行。(2)进程之间的交互如信号发送、消息传递和同步互斥等活动由通信及同步机制完成,从而使进程无法有意或无意破坏其 他进程的数据。因此,每个进程相对独立,相互隔离,提高了

10、系统的安全性和可靠性。(3)进程结构较好地刻画了系统的并发性,动态地描述出系统的执行过程,因而具有进程结构的操作系统,结构清晰、整 齐划一,可维护性好。3 .主存储器管理主存储器是现代计算机系统运行的核心。主存储器是由字或字节组成的大型队列,每个字或字节都有它自己的地址。主存 储器是CPU和I/O设备共享的大容量快速存储器。中央处理器在取指令周期中从主存储器中读取指令,而且在取数据周期中 从主存储器中读/写数据。通过DMA (动态内存存取),I/O操作也实现了对主存储器的数据读/写。通常主存储器是 CPU唯 一能够直接寻址和访问的大容量存储空间。例如,CPU要处理磁盘中的数据,那么 CPU首先

11、发出I/O调用将这些数据传送到主存储器中。同样,指令必须在存储器中才能够由CPU执行。必须要把程序映射到绝对地址并载入内存中才可以执行。在程序运行时,它通过产生绝对地址来从内存中访问程序指令和 数据。最后,程序结束,释放所占的内存空间,方便下一个程序载入。为了提高CPU利用率和计算机响应速度,必须在内存中保留多个程序。有许多不同的内存管理策略,而且不同算法的效率 取决于具体的环境。为具体的系统选择内存管理策略要考虑许多因素一一尤其是系统的硬件设计。每种算法都需要自己的硬件支持。操作系统要负责下列与内存管理相关的工作:跟踪内存使用情况,明确哪一部分正在使用和为谁所用;在内存空间有效时决定将哪个进

12、程载入内存;根据需要分配和释放内存空间。4 .文件管理文件管理是操作系统中可视性最强的组件之一。计算机能够将数据存储在各种类型的物理介质上。磁带、磁盘和光盘是最 常用的介质。每种介质都有自己的特性和物理结构。每个存储媒体由一个驱动器控制(如磁盘驱动器或磁带驱动器),这种驱 动器也有自己的独有特性。这些特性包括访问速度、容量、数据传输率和存取方式(顺序的或随机的)。为了便于使用计算机系统,操作系统提供了一个计算机系统的整体逻辑层面。操作系统把存储设备的物理属性抽象定义为 一个逻辑存储单元一一文件。文件被映像到物理媒介中,通过存储设备来访问这些文件。文件是由其创建者定义的相关信息的集合。一般的文件

13、表现为程序(源程序和目标代码)和数据。数据文件可能是数字的、字母的或二者混合的。文件可能是形式自由的(如文本文件),也可能有严格定义的格式(如固定字段)。由字、字节、行或 记录组成的文件结构是其创建者定义的。文件概念具有相当广泛的含义。操作系统通过管理大容量存储体 (如由驱动器控制的磁盘和磁带) 实现了文件的抽象概念。另外,为了更简易地使用文件, 通常将他们组织到目录中。最后,如果有多个用户访问文件,可能需要控制谁以什么样的方式访问(例如:读、写、追加)。操作系统要负责下列与文件管理相关的工作:创建和删除文件;创建和删除目录;将文件映像到辅助存储器中;将文件备份到永久(非易失性)存储体中。5

14、. I/O系统管理操作系统的目的之一就是要向用户隐藏具体的硬件特性。例如,在 UNIX中,通过I/O子系统向操作系统隐藏了 I/O设 备的特性。I/O子系统由以下几个方面组成:一个内存管理模块,这包括 Buffering、Caching 和SPOOLing ;一个通用设备驱动程序接口;针对具体硬件设备的驱动程序。6 .辅助存储器管理操作系统的主要目的是执行程序。这些程序在运行时(以及它们要访问的数据)都必须在主存储器中。因为主存储器的容 量太小不能存储所有的程序和数据,而且掉电后会丢失所有的存储信息,所以计算机系统必须要提供辅助存储器作为主存储器 的后备。大多数现代计算机系统使用磁盘作为存储程

15、序和数据的主要联机存储体。大多数程序(包括编译程序、汇编程序、排 列程序、编辑程序和格式化程序)在载入内存之前存储在磁盘上,并且在运行时利用磁盘存储它们所处理的源文件和目标文 件。因此,合理的磁盘管理对一个计算机系统来说是至关重要的。操作系统要负责下列与辅助存储器管理相关的工作:空闲空间管理;空间分配;磁盘调度。因为频繁地使用辅助存储器,所以必须要能够高效运行。而且计算机的整体运行速度取决于磁盘子系统的速度和该子系统 实现算法的效率。7 .网络管理分布式系统是一个处理机的集合,这些处理机既不共享内存和外围设备,也不共享时钟。而是每个处理机拥有自己的本地 内存和时钟,并且这些处理机可以通过各种通

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

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

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

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

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

21、他的(如 I/O设备)可能有更通用的 请求和释放代码。例如,在决定如何最好地使用 CPU的问题上,操作系统的 CPU调度程序要考虑CPU速度、必须要执行的 作业、有效的寄存器数量和其他的一些因素;账户管理:我们希望跟踪记录每个用户使用哪些类型的计算机资源和用了多少。这个记录保持可能用于记账(以便用户付 账)或简单地用于累加使用率统计。对于研究者来说,使用率统计可能是个有效的工具。利用使用率统计,研究者可以重新配 制系统以改善计算服务;保护:存储在多用户计算机系统上的信息的所有者希望能够控制对该信息的使用。当多个不相关的进程并发执行时,一个 进程不应该能够干扰其他进程或操作系统本身。保护包括了监

22、控所有对系统资源的访问。对来自外界的系统安全检测(security )也是非常重要的。这种保护往往通过密码的方式,用户向系统验证口令才能访问资源。它也包括了保护外部I/O设备(包括调制解调器和网络适配器)免于非法的访问企图和记录所有这样的非法闯入。如果一个系统受到保护并且是安全的, 那么就必须要建立预防措施。一般,系统的安全强度与其最薄弱的一个环节密切相关。1.2.2操作系统功能的实现模型操作系统本身是一组程序,像其他程序一样也在处理器上执行,那么,操作系统程序是否组织成进程?它是如何控制和怎 样执行的呢?下面来讨论这个问题。从操作系统的执行方式来看,可以把它分成:非进程内核模型、OS功能(函

23、数)在用户进程内执行白模型和OS功能(函数)作为独立进程执行的模型3种。1. .非进程内核模型许多老式操作系统的实现采用非进程内核模型,即操作系统的功能都不组织成进程来实现,如图1-2所示,该模型包括一个较大的操作系统内核程序,进程的执行在内核之外。当中断发生时,当前运行进程的上下文现场信息将被保存,并把控制 权传递给操作系统内核。操作系统具有自己的内存区和系统堆栈区,用于控制过程调用和返回。它将在核心态执行相应的操 作,并根据中断的类型和具体的情况,或者是恢复被中断进程的现场并让它继续执行,或是转向进程调度指派另一个就绪进程 运行。在这种情况下,进程的概念仅仅是针对用户程序而言的,操作系统代

24、码作为一个独立实体在内核模式下运行。2. OS功能在用户进程内执行的模型小型机和工作站操作系统(如 UNIX等)往往采用OS的所有功能在用户进程内执行的模型,如图 1-3所示,在这种实现 模型中,大部分操作系统功能组织成一组例行程序供用户程序调用,认为操作系统例程与用户进程是上下文相关的,操作系统 的地址空间被包含在用户进程的地址空间中;因而,操作系统例行程序也在用户进程的上下文环境中执行。图1-4给出了 OS的所有功能在用户进程内执行的模型中的进程映像,它既包含进程控制块、用户堆栈、容纳用户程序和数据的地址空间等,还 包括操作系统内核的程序、数据和系统堆栈区。当发生一次中断或系统调用后,处理器状态将被置成内核模式,控制从用户进程手中被剥夺并传递给操作系统例行程序。 此时,发生了模式切换,模

温馨提示

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

评论

0/150

提交评论