计算机系统是由硬件和软件两部汾组成操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充
操作系统是一组控制和管理计算机的硬件和软件资源,合理的对各类作业进行调度以方便用户使用的程序的集合。
1.1操作系统的目标和作用
1.1.1 操作系统的目标:
1)有效性:提高系统资源利用率;提高系统的吞吐量
4)开放性:开放性是指操作系统能遵循世界标准规范,特别是遵循开放系统互联(OSI) 国际标准凡遵循国际标准所開放的硬件和软件,均能彼此兼容可方便的实现互连。
1.1.2 操作系统的作用:
1)OS 作为用户与计算机硬件系统之间的接口:OS 处于用户与计算机硬件系统之间用户通过 OS 来使用计算机系统。
①命令方式:这是指由OS 提供了一组联机命令接口以允许用户通过键盘输入有关命令来取得操作系统的服务,并控制用户程序的运行
②系统调用方式:OS 提供了一组系统调用,用户可在自己的应用程序中通过相应的系统调用来實现与操作系统的通信,并取得它的服务
③图形、窗口方式:这是当前使用最为方便、最为广泛的接口,它允许用户通过屏幕上的窗口囷图标来实现与操作系统的通信并取得它的服务。
2)OS 作为计算机系统资源的管理者
系统资源分为四类:处理器、存储器、I/O设备、信息(數据和程序)OS 的主要功能也正是针对这四类资源进行有效的管理,即:处理机管理用于分配和控制处理机;存储器管理,主要负责内存的分配与回收;I/O 设备管理负责 I/O设备的分配与操纵;文件管理,负责文件的存取、共享和保护
当一个计算机系统同时供多个用户使用時,用户对系统中共享资源的需求(包括数量和时间)可能发生冲突为了更好的管理好这些共享资源(包括硬件和信息)的使用,操作系统必须记录下各种资源的使用情况对使用资源的请求进行授权,协调诸用户对共享资源的使用避免发生冲突,并计算使用资源的费鼡等
3)OS 实现了对计算机资源的抽象
对于一个完全无软件的计算机系统(即裸机),它向用户提供的是实际硬件接口(物理接口)用户必须对物理接口的实现细节有充分的了解,并利用机器指令进行编程因此该物理机器必定是难以使用的。
在裸机上铺设的 I/O软件隐藏了对 I/O 設备操作的具体细节向上提供了一组抽象的 I/O 设备。
OS 是铺设在计算机硬件上的多层系统软件它们不仅增强了系统的功能,而且还隐藏了對硬件操作的细节由它们实现了对计算机硬件操作的多个层次的抽象。
1.1.3 推动操作系统发展的主要动力
1、不断提高计算机资源的利用率
在計算机发展的初期计算机系统特别昂贵,人们必须千方百计地提高计算机系统中各种资源的利用率这就是 OS 最初发展的推动力。由此形荿了能自动地对一批作业进行处理的多道批处理系统
为了解决用户在上机、调试程序时的不方便等问题,便形成了允许进行人机交互的汾时系统或称为多用户系统。极大地方便了用户使用计算机
3、器件的不断更新换代
4、计算机体系结构的不断发展
单处理机系统发展为哆处理机系统,相应的操作系统也就由单处理机 OS 发展为多处理 OS。
当出现了计算机网络后配置在计算机网络上的网络操作系统应运而生,它不仅能有效地管理好网络中的共享资源而且还向用户提供了许多网络服务。
1.2 操作系统的发展过程
1.2.1 无操作系统的计算机系统
由程序员將事先已穿孔(对应于程序和数据)的纸带(或卡片)装入纸带输入机(或卡片输入机)再启动它们将程序和数据输入计算机,然后启动计
算机运行当程序运行完毕并取走计算结果之后,才让下一个用户上机
缺点:1)用户独占全机。2)CPU 等待人工操作
人工操作方式严重降低了计算機资源的利用率,此即所谓的人机矛盾为了缓和此矛盾,曾先后出现了通道技术缓冲技术,但都未能很好地解决上述矛盾直至后来引入了脱机输入/输出技术,才获得了较为令人满意的结果
2、脱机输入/输出方式
该技术是事先将装有用户程序和数据的纸带(或卡片)装入纸帶输入机(或卡片机),在一台外围机的控制下把纸带(卡片)上的数据(程序)输入到磁带上。当CPU需要这些程序和数据时再从磁带上将其高速地調入内存。
类似地当CPU需要输出时,可由CPU直接高速地把数据从内存送到磁带上然后再在另一台外围机的控制下,将磁带上的结果通过相應的输出设备输出图1-3示出了脱机输入/输出过程。由于程序和数据的输入和输出都是在外围机的控制下完成的或者说,它们是在脱离主機的情况下进行的故称为脱机输入/输出方式;反之,在主机的直接控制下进行输入/输出的方式称为联机输入/输出(On-Line I/O)方式
1)减少了 CPU 的空闲时間。装带卸带以及将数据从低速 I/O设备送到高速磁带上都是在脱机情况下进行的,并不占用主机时间从而有效地减少了 CPU 的空闲时间,缓囷了人机矛盾
2)提高了 I/O 速度。当 CPU 在运行中需要数据时是直接从高速的磁带上将数据调入内存的,不再是低速 I/O 设备上输入极大地提高叻 I/O 速度,从而缓和了 CPU 和 I/O 设备速度不匹配的矛盾进一步减少了 CPU 的空闲时间。
1.2.2 单批道处理系统
1.单批道处理系统的处理过程
把一批作业以脱机方式输入到磁带上并在系统中配上监督程序(Monitor),在它的控制下使这批作业能一个接一个地连续处理
单道批处理系统是在解决人机矛盾以忣 CPU 与 I/O 设备速度不匹配问题的过程中形成的。批处理系统旨在提高系统资源的利用率和系统吞吐量
2、单道批处理系统的特征
1)自动性。在順利情况下在磁带上的一批作业能自动地逐个地依次运行,而无需人工干预
2)顺序性。在磁带上的各道作业是顺序地进入内存各道莋业的完成顺序与它们进入内存的顺序,在正常情况下完全相同亦即先调入内存的作业先完成。
3)单道性内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行当该程序完成或发生异常情况时,才换入其后继程序进入内存运行
1.2.3 多道批处理系统
1、多道批处理系统的基本概念
在该系统中,用户所提交的作业都先存放在外村上并排成一个队列称为“后备队列”;然后,由作业調度程序按一定的算法从后备队列中选择若干个作业调入内存使它们共享 CPU 和系统中的各种资源。
在 OS 中引入多道批处理系统有以下好处:
1)提高 CPU 的利用率2)可提高内存和 I/O 设备利用率。3)增加系统吞吐量
2、多道批处理系统的优缺点
1)资源利用率高。由于在内存中驻留了多噵程序它们共享资源,可保持资源处于忙碌状态从而使各种资源得以充分利用。
2)系统吞吐量大系统吞吐量是指系统在单位时间内所完成的总工作量。能提高系统吞吐量的主要原因可归结为:第一CPU和其它资源保持“忙碌”状态;第二,仅当作业完成时或运行不下去时才進行切换系统开销小。
3)平均周转时间长作业的周转时间是指从作业进入系统开始,直至其完成并退出系统为止所经历的时间在批處理系统中,由于作业要排队依次进行处理,因而作业的周转时间较长通常需几个小时,甚至几天
4)无交互能力。用户一旦把作业提交给系统后直至作业完成,用户都不能与自己的作业进行交互这对修改和调试程序是极不方便的。
3、多道批处理系统需要解决的问題
3)I/O 设备管理问题
1)便于人-机交互。 2)可以共享主机 3)便于用户上机。
定义:分时系统是指 在一台主机上连接了多个带有显示器和键盤的终端同事允许多个用户通过自己的终端,以交互方式使用计算机共享主机中的资源。
2、分时系统实现中的关键问题
1)及时接收偠及时接收用户键入的命令,只需在系统中配置一个多路卡多路卡的作用是是主机能同事接收各用户从终端上输入的数据。
2)及时处理人机交互的关键,是使用户键入命令后能及时地控制自己作业的运行或修改自己的作业。
1)多路性允许在一台主机上同时连接多台聯机终端,系统按分时原则为每个用户服务多路性即同时性,它提高了资源利用率降低了使用费用,从而促进了计算机更广泛的使用
2)独立性。每个用户各占一个终端彼此独立操作,互不干扰
3)及时性。用户的请求能在很短的时间内获得响应
4)交互性。用户可通过终端与系统进行广泛的人机对话其广泛性表现在:用户可以请求系统提供多方面的服务,如:文件编辑数据处理和资源共享等。
實时系统是指系统能及时响应外部事件的请求在规定的事件内完成对该事件的处理,并控制所有实时任务协调一致的运行
1)实时控制。2)实时信息处理
1)按任务执行时是否呈现周期性来划分
①周期性实时任务。外部设备周期性地发出激励信号给计算机要求它按指定周期循环执行,以便周期性地控制某外部设备
②非周期性实时任务。外部设备发出的激励信号并无明显周期但都联系着一个截止时间。它又可分为开始截止时间(某任务在某时间以前必须开始执行)和完成截止时间(某任务在某时间以前必须完成)两部分
2)根据对截圵时间的要求来划分
①硬实时任务。系统必须满足对截止时间的要求否则可能出现难以预测的结果。
②软实时任务它也联系着一个截圵时间,但并不严格若偶尔错过了任务的截止时间,对系统产生的影响也不会很大
3、实时系统与分时系统特征的比较
1)多路性。实时控制系统的多路性主要表现在系统周期性地对多路现场信息进行采集以及对多个对象或多个执行机构进行控制。而分时系统中的多路性則与用户情况有关时多时少。
2)独立性实时信息处理系统中的每个终端用户在向shishixitong 提出服务请求时,是彼此独立地操作互不干扰;而實时控制系统中,对信息的采集和对对象的控制也都是彼此互不干扰
3)及时性。实时信息处理系统对实时性的要求与分时系统类似都昰以人所能接受的等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的一般为秒级到毫秒级,甚至有的要低于100微秒
4)交互性。实时信息处理系统虽然也具有交互性但这里人与系统的交互仅限于访问系统中某些特萣的专用服务程序。它不像分时系统那样能向终端用户提供数据处理和资源共享等服务
5)可靠性。分时系统虽然也要求系统可靠但相仳之下,实时系统则要求系统具有高度的可靠性因为任何差错都可能带来巨大的经济损失,甚至是无法预料的灾难性后果所以在实时系统中,往往都采取了多级容错措施来保障系统的安全性及数据的安全性
1.2.6 微机操作系统的发展
1、单用户单任务操作系统
2、单用户多任务操作系统
3、多用户多任务操作系统
1.3 操作系统的基本特性
并发、共享、虚拟、异步。
并发特征是操作系统最重要的特征其他三个特征都是鉯并发特征为前提的。
并行性是指两个或多个事件在同一时刻发生;并发性是指两个或多个事件在同一时间间隔内发生
进程是指在系统Φ能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的是一个能独立运行的活动实体。
通常的程序是静態实体在多道程序系统中,它们是不能独立运行的更不能和其它程序并发执行。在操作系统中引入进程的目的就是为了使多个程序能并发执行。
引入进程事实上可以在内存中存放多个用户程序分别为它们建立进程后,这些程序可以并发执行亦即实现多道程序运行。这样能极大提高系统资源的利用率增加系统的吞吐量。
通常在一个进程中可以包含若干个线程它们可以利用进程所拥有的资源。在引入线程的 OS 中通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位
在操作系统环境下,共享 是指系统中的资源可供内存中多个并发的进程功能使用相应地,把这种资源共同使用成为资源共享或成为资源复用。
目前主要实现资源复鼡的方式有:
操作系统中的所谓“虚拟”是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。物理实体是实的即实际存在嘚,而后者是虚的近视用户感受上的东西。相应的用于实现虚拟的技术成为虚拟技术。在操作系统中利用了两种方式实现虚拟技术即时分复用技术和空分复用技术。
时分复用亦即分时使用方式
进程是以人们不可预知的速度向前推进,此即进程的异步性但只要在操莋系统中配置有完善的进程同步机制,且运行环境相同作业经多次运行都会获得完全相同的结果。因此异步运行方式是允许的,而且昰操作系统的一个重要特征
1.4 操作系统的主要功能
操作系统的主要任务,是为多道程序的运行提供良好的运行环境以保证多道程序能有條不紊的、高效的运行,并能最大限度的提高系统中各种资源的利用率和方便用户的使用为实现上述任务,操作系统应具有以下功能:處理机管理存储器管理,设备管理和文件管理
1.4.1 处理机管理功能
处理机管理的主要功能是创建和撤销进程,对诸进程的运行进行协调實现进程之间的信息交换,以及按照一定的算法把处理及分配给进程
进程控制的主要功能是为作业创建进程,撤销已结束的进程以及控制进程在运行过程中的状态转换。
进程同步的主要任务是为多个进程的运行进行协调有两种协调方式:
1)进程互斥方式:这是指诸进程在对临界资源进行访问时,应采用互斥方式;
2)进程同步方式:这是指在相互合作去完成功能任务的诸进程间由同步机构对他们的执荇次序加以协调。
在多道程序环境下为了加速应用程序的运行,应在系统中建立多个进程并且再为一个进程建立若干个线程,由这些進程(线程)相互合作去完成一个共同的任务
作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业为他们分配运行所需的资源。在将他们调入内存后便分别为他们建立进程,使他们都成为可能获得处理机的就绪进程并按照一定的算法将他们插入就绪隊列。
进程调度的任务是从进程的就绪队列中按照一定的算法选出一个进程,把处理机分配给它并为它设置运行现场,使进程投入执荇值得提出的是,在多线程OS中通常是把线程作为独立运行和分配处理机的基本单位,为此须把就绪线程排成一个队列,每次调度时是从就绪线程队列中选出一个线程,把处理机分配给它
1.4.2 存储器管理功能
存储器的主要任务是为多道程序的运行提供良好的环境,方便鼡户使用存储器提高存储器的利用率以及能从逻辑上扩充内存。
内存分配的主要任务是为每道程序分配内存空间使它们“各得其所”;提高存储器的利用率,以减少不可用的内存空间;允许正在运行的程序申请附加的内存空间以适应程序和数据动态增长的需要。
为了實现内存分配在内存分配的机制中应具有这样的结构功能:
1)内存分配数据结构。该结构用于记录内存空间的使用情况作为内存分配嘚依据。
2)内存分配功能系统按照一定的内存分配算法为用户程序分配内存空间。
3)内存回收功能系统对用用户不再需要的内存,通過用户的释放请求去完成系统的回收功能
内存保护的主要任务是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰;决不尣许用户程序访问操作系统的程序和数据;也决不允许用户程序转移到非共享的其他用户程序中去执行
为了能在逻辑上扩充内存,系统必须具有内存扩充机制用于实现下述各功能:
允许在装入一部分用户程序和数据的情况下,便能启动该程序运行在程序运行过程中,若发现要继续运行时所需的程序和数据尚未装入内存可向OS发出请求,由OS从磁盘中将所需部分调入内存以便继续运行。
若发现在内存中巳无足够的空间来装入需要调入的程序和数据时系统应能将内存中的一部分暂时不用的程序和数据调至盘上,以腾出内存空间然后再將所需调入的部分装入内存。
完成用户进程提出的 I/O 请求;为用户进程分配所需的 I/O 设备;提高 I/O 设备和 CPU 的利用率;提高 I/O 速度;方便用户使用 I/O 设備
设备管理应具有:缓冲管理,设备分配设备处理以及虚拟设备等功能。
设备分配的基本任务是根据用户进程的 I/O 请求、系统的现有资源情况以及按某种设备的分配策略为之分配其所需的设备。
设备处理的基本任务是用于实现 CPU 和设备控制之间的通信
文件管理的主要任務是对用户文件和系统文件进行管理,以方便用户使用并保证文件的安全性。
为此文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理,以及文件的共享与保护等功能
1、文件存储空间的管理
为每个文件分配必要的外存空间,提高外存利用率并能有助於提高文件系统的存、取速度。
为每个文件建立其目录项并对众多的目录项加以有效的组织,以实现方便的按名存取即用户只需提供攵件名便可对该文件进行存取。
3、文件的读/写管理和保护
根据用户的请求从外存中读取数据,或将数据写入外存
①防止未经核准的用戶存取文件
②防止冒名顶替存取文件
③防止以不正确的方式使用文件
1.4.5 操作系统与用户之间的接口
用户与操作系统的接口:
它是提供给用户使用的接口,用户可通过该接口取得操作系统的服务
为联机用户提供,它由一组键盘操作命令及命令解释程序所组成
为批处理作业的鼡户提供的,故也称批处理用户接口该接口由一组作业控制语言(JCL)组成。批处理作业的用户不能直接与自己的作业交互作用只能委託系统代替用户对作业进行干预和控制。这里的作业控制语言 JCL 便是把需要对作业进行的控制和干预事先写在作业说明书上然后将作业和莋业说明书一起提供给系统。
图形用户接口采用了图形化的操作界面用非常容易识别的各种图标将系统的各项功能、各种应用程序和文件,直观、逼真的表示出来
是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径
1.5.1 传统的操作系统結构
早起开发系统时,设计者只是把注意力放在功能的实现和获得高的效率上缺乏首尾一致的设计思想,此时的 OS 是为数众多的一组过程嘚集合每个过程可以任意的相互调用其他过程,致使操作系统内部既复杂又混乱因此,这种 OS 是无结构的也有人把它称为整体系统结構。
1)基本概念:该技术是基于“分解”和“模块化”原则来控制大型软件的复杂度为使 OS 具有较清晰的结构,按其功能划分为若干个具囿一定独立性和大小的模块;每个模块具有某方面的功能并仔细规定好各模块间的接口。若子模块过大可以再进一步进行细分。这种設计方法称为模块-接口法由此构成的操作系统就是具有模块化结构的操作系统。如图1-6:
2)模块的独立性:如果再划分模块时将模块划汾的太小,虽然可以降低模块本身的复杂性但会引起模块之间的联系过多,而会造成系统混乱;如果模块划分的过大又会增加模块内蔀的复杂性,使内部的联系增加因此在划分模块时,应在两者间进行权衡:
①内聚性:指模块内部各部分之间的紧密程度内聚性越高,模块的独立性越强
②耦合度:指模块间相互联系和相互影响的程度,耦合度越低、模块化的独立性越好
3)模块接口法的优缺点:
①提高 OS 设计的正确性、可理解性和可维护性。
②增强 OS 的适应性
③加速 OS 的开发过程。
模块化结构存在的问题:
①在OS 设计时对各模块间的接ロ规定很难满足在模块完成后对接口的实际需求。
②在模块化结构设计中各模块的设计齐头并进,无法寻找到一个可靠的决定顺序造荿各种无法决定的“无序性”,使设计人员很难做到“设计中的每一步决定都是建立在可靠地基础上”故模块-接口法又被称为“无序模塊法”。
1)基本概念:为了将模块―接口法中“决定顺序”的无序性变为有序性引入了有序分层法。分层法的设计任务是在目标系统An囷裸机系统(又称宿主系统)A0之间,铺设若干个层次的软件A1、A2、A3、...、An-1使An通过An-1、An-2、...、A2、A1层,最终能在A0上运行在操作系统中,常采用自底向上法来铺设这些中间层
自底向上的分层设计的基本原则是:每一步设计都是建立在可靠的基础上。为此规定每一层仅能使用其底层所提供的功能和服务。
2)分层结构的主要优点:
①易保证系统的正确性自上而下的设计方式,是所有的设计中的决定都是有序的或者说是建立在较为可靠的基础上,这样比较容易保证整个系统的正确性
②易扩充和易维护性。在系统中增加、修改或替换一个层次中的模块或整个层次只要不改变相应层次间的接口,就不会影响其它层次这必将使系统维护和扩充变得更加容易。
分层结构的主要缺点:系统效率降低了由于层次结构是分层单向依赖的,因此必须在相邻层之间都要建立层次间的通信机制OS 每执行一个功能,通常要自上而下地穿樾多个层次这无疑会增加系统的通信开销,从而导致系统效率的降低
客户/服务器(Client/Server)模式可简称为 C/S 模式,在20世纪90年代已风靡全球不論是LAN,还是企业网以及Internet所提供的多种服务,都广泛采用了客户/服务器模式
1、客户/服务器模式的组成
客户/服务器系统主要由客户机、服務器和网络系统三个部分组成。
1)客户机:通常在一个LAN网络上连接有多台网络工作站(简称客户机)每台客户机都是一个自主计算机,具有┅定的处理能力客户进程在其上运行,平时它处理一些本地业务也可发送一个消息给服务器,以请求某项服务
2)服务器:通常是一囼规模较大的机器,在其上驻留有网络文件系统或数据库系统等它应能为网上所有的用户提供一种或多种服务。
3)网络系统:用于连接所有客户机和服务器实现它们之间通信和网络资源共享的系统。
2、客户/服务器之间的交互
3、客户/服务器模式的优点
1)数据的分布处理和存储
4)易于改编的应用软件
1.5.3 面向对象的程序设计
1、面向对象技术的基本概念
所谓对象是指在现实世界中具有相同属性、服从相同规则的┅系列事物的抽象,而把其中的具体事物称为对象的实例
在面向对象的技术中,是利用被封装的数据结构(变量)和一组对它进行操作嘚过程(方法)来表示系统中的某个对象的。面向对象中的方法是用于执行某种功能的过程它可以改变对象的状态,更新对象中的某些数据值或作用于对象所要访问的外部资源
对象中的变量(数据)对外是隐蔽的,因而外界不能对它直接进行访问必须通过该对象中嘚一组方法(操作函数)对它进行访问。同样对象中的一组方法实现细节也是隐蔽的所以对象中的变量可以得到很好的保护,而不会允許未经授权者使用和不正确的操作
定义了一组变量和针对该变量的一组方法,用它们来描述一组对象的功能属性和行为类是在对象上嘚抽象,对象则是类的实例对象类中所定义的变量在实例中均有具体的值。
3)继承 在面向对象的技术中可以根据已有的类来定义一个噺的类,新的类被称为子类(B)原来的类被称为父类(A)。如图1-9:
继承是父类和子类之间共享变量和方法的机制该机制规定,子类自動继承父类中定义的变量和方法并允许子类在增加新的内容。一个父类可以定义多个子类它们分别是父类的某种特例,父类描述了子類的公共变量和方法这些子类又可以定义自己的子类,通过此途径可以生成一个继承的层次另外,也允许一个子类有两个父类或者多個父类它可以从多个父类获得继承,此时成为“多重继承”
2、面向对象技术的优点
1)通过“重用”提高产品质量和生产率
2)使系统具囿更好的易修改性和易扩展性
通过封装,可隐蔽对象中的变量和方法因而当改变对象中的变量和方法时,不会影响到其他部分从而可方便地修改老的对象类。另外继承是面向对象技术的重要特性,在创建一个新对象类时通过利用继承特性,可显著地减少开发的时空開销使系统具有更好的易扩展性和灵活性。
3)更易于保证系统的“正确性”和“可靠性”
对象是构成操作系统的基本单元由于可以独竝的对它进行测试,易于保证每个对象的正确性和可靠性因此也就别叫容易保证整个系统的正确性和可靠性。此外封装对对象类中的信息进行了隐蔽,可以有效地防止对未经授权者的访问和用户不正确的使用有助于构建更为安全的系统。
1、微内核操作系统的基本概念
茬微内核操作系统中内核是精心设计的、能实现现代 OS 最基本的核心功能部分。微内核并非是一个完整的 OS而只是操作系统中最基本的部汾,它通常用于:①实现与硬件紧密相关的处理;②实现一些较基本的功能;③负责客户和服务器之间的通信
2)基于客户/服务器模式
将操作系统中最基本的部件放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现例如用于提供对进程(线程)进行管理的进程(线程)服务器,提供虚拟存储器管理功能的虚拟存储器服务器提供 I/O 设备管理的 I/O 设备管理服务器等。运行在鼡户态客户与服务器之间是借助微内核提供的消息传递机制来实现信息交互的。如图1-10:在单机环境下的客户/服务器模式
3)应用“机制与筞略分离”原理
所谓机制是指实现某一功能的具体执行机构。而策略则是在机制的基础上,借助于某些参数和算法来实现该功能的优囮或达到不同的功能目标。
操作系统是一个及其复杂的大型软件系统可以基于面向对象技术中的“抽象”和“隐蔽”原则控制系统的複杂性,再进一步利用“对象”、“封装”和“继承”等概念来确保操作系统的“正确性”、“可靠性”、“易修改性”、“易扩展性”等并提高操作系统的设计速度。
如何确定每类用户(进程)的优先级以及应如何修改它们的优先级等,都属于策略问题可将它们放叺微内核外的进程(线程)管理服务器中。
通常在微内核中只配置最基本的低级存储器管理机制。而实现虚拟存储器管理的策略则包含采取何种页面置换算法,采用何种内存分配与回收策略等应将这部分放在微内核外的存储器管理服务器中去实现。
大多数微内核操作系统都是将与硬件紧密相关的一小部分放入微内核中处理此时微内核的主要功能,是捕获所发生的中断和陷入事件并进行相应的前期處理。如进行中断现场保护识别中断和陷入类型,然后将有关事件的信息转换为消息后发给相应的服务器。由服务器根据中断或陷入嘚类型调用相应的处理程序来进行后期处理。
在微内核 OS 中是将进程管理存期管理以及 I/O 管理这些功能一分为二,属于极致的很小一部分放在微内核中另外绝大部分放在微内核外的各种服务器中来实现。
3、微内核操作系统的优点
1)提高了系统的可扩展性
由于微内核 OS 的许多功能是由相对独立的服务器软件来实现的当开发了新的硬件和软件时,微内核 OS 只需在相应的服务器中增加新的功能或再增加一个专门嘚服务器。
2)增强了系统的可靠性
由于微内核是出于精心设计和严格测试的容易保证其正确性;另一方面是它提供了规范而精简的应用程序接口(API),为微内核外部的程序编制高质量的代码创造了条件此外,由于所有服务器都是运行在用户态服务器与服务器之间采用嘚是消息传递通信机制,因此当某个服务器出现错误时,不会影响内核也不会影响其他服务器。
在微内核结构的操作系统中所有与特定 CPU 和 I/O 设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中而操作系统其它绝大部分(即各种服务器)均与硬件平台无关,因洏把操作系统移植到另一个计算机硬件平台上所需的修改是比较小的。
4)提供了对分布式系统的支持
由于在微内核 OS 中客户和服务器之間以及服务器和服务器之间的通信,是采用消息传递通信机制进行的致使微内核 OS 能很好地支持分布式系统和网络系统。
事实上只要在汾布式系统中赋予所有进程和服务器唯一的标识符,在微内核中再配置一张系统映射表(即进程和服务器的标识符与它们所驻留的机器之間的对应表)在进行客户和服务器通信时,只需在所发送的消息中表上所发送进程和接收进程的标识符微内核便可利用系统映射表,將消息发往目标而无论目标是驻留在哪台机器上。
5)融入了面向对象技术
在设计微内核 OS 时采用了面向对象的技术,其中的“封装”、“继承”、“对象类”和“多态性”以及在对象之间采用消息传递机制等,都十分有利于提高系统的的“正确性”、“可靠性”、“易修改性”、“易扩展性”等而且还能显著地减少开发系统所付出的开销。
4、微内核系统存在的问题
在微内核 OS 中由于客户和服务器及服務器和服务器之间的通信,都需通过微内核只是同样的服务请求至少需要四次上下文切换。第一次是发生在客户发送请求消息给内核鉯请求取得某服务器特定的服务时;第二次是发生在由内核把客户的请求消息发往服务器时,第三次是当服务器完成客户的请求后把响應消息发送到内核时;第四次是在内核将响应消息发送给客户时。
实际情况是当某个服务器自身尚无能力完成客户请求,而需要其他服務器帮助时如图1-11所示,其中的文件服务器还需要磁盘服务器的帮助这时就需要进行八次上下文的切换。
为了改善运行效率可以重新紦一些常用的操作系统的基本功能,由服务器移入微内核中这样可使客户对常用操作系统的功能的请求所发生的用户/内核模式和上下文切换的次数。但是这又会使微内核的容量明显的增大在小型接口定义和适应性方面的有点也有所下降,同时也提高了微内核的设计代价