1、西西 安安 电电 子子 科科 技技 大大 学学 出出 版版 社社http:/高等学校计算机类高等学校计算机类“十二五十二五”规划教材规划教材部级优异教材部级优异教材 计算机操作系统计算机操作系统汤小丹汤小丹 梁红兵梁红兵 哲凤屏哲凤屏 汤子瀛汤子瀛 (第四版第四版)编著编著 第1页目目 录录 第一章第一章 操作系统引论操作系统引论第二章第二章 进程描述与控制进程描述与控制第三章第三章 处理机调度与死锁处理机调度与死锁第四章第四章 存放器管理存放器管理第五章第五章 虚拟存放器虚拟存放器第六章第六章 输入输出系统输入输出系统第七章第七章 文件管理文件管理第八章第八章 磁盘存放器管理磁盘存放器管理第
2、九章第九章 操作系统接口操作系统接口第十章第十章 多处理机操作系统多处理机操作系统第十一章第十一章 多媒体操作系统多媒体操作系统第十二章第十二章 保护和安全保护和安全第2页3 3第一章 操作系统引论第一章第一章 操作系统引论操作系统引论1.1 操作系统目标和作用1.2 操作系统发展过程1.3 操作系统基本特征1.4 操作系统主要功效1.5 OS结构设计习题第3页4 4第一章 操作系统引论1.1 操作系统目标和作用操作系统目标与应用环境相关。比如在查询系统中所用OS,希望能提供良好人机交互性;对于应用于工业控制、武器控制以及多媒体环境下OS,要求其含有实时性;而对于微机上配置OS,则更看重是其使
3、用方便性。第4页5 5第一章 操作系统引论1.1.1 操作系统目标1.方便性2.有效性 3.可扩充性4.开放性第5页6 6第一章 操作系统引论1.1.2 操作系统作用 1.OS作为用户与计算机硬件系统之间接口OS作为用户与计算机硬件系统之间接口含义是:OS处于用户与计算机硬件系统之间,用户经过OS来使用计算机系统。或者说,用户在OS帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己程序。图1-1是OS作为接口示意图。第6页7 7第一章 操作系统引论图1-1 OS作为接口示意图第7页8 8第一章 操作系统引论2.OS作为计算机系统资源管理者在一个计算机系统中,通常都含有各种硬件和软件资源。归纳
4、起来可将这些资源分为四类:处理机、存放器、I/O设备以及文件(数据和程序)。对应地,OS主要功效也正是对这四类资源进行有效管理。处理机管理是用于分配和控制处理机;存放器管理主要负责内存分配与回收;I/O设备管理是负责I/O设备分配(回收)与操纵;文件管理是用于实现对文件存取、共享和保护。可见,OS确实是计算机系统资源管理者。第8页9 9第一章 操作系统引论3.OS实现了对计算机资源抽象对于一台完全无软件计算机系统(即裸机),因为它向用户提供仅是硬件接口(物理接口),所以,用户必须对物理接口实现细节有充分了解,这就致使该物理机器难于广泛使用。为了方便用户使用I/O设备,人们在裸机上覆盖上一层I/
5、O设备管理软件,如图1-2所表示,由它来实现对I/O设备操作细节,并向上将I/O设备抽象为一组数据结构以及一组I/O操作命令,如read和write命令,这么用户即可利用这些数据结构及操作命令来进行数据输入或输出,而无需关心I/O是怎样详细实现。第9页10 10第一章 操作系统引论图1-2 I/O软件隐藏了I/O操作实现细节第10页11 11第一章 操作系统引论1.1.3 推进操作系统发展主要动力 1不停提升计算机资源利用率2.方便用户3.器件不停更新换代4.计算机体系结构不停发展5.不停提出新应用需求第11页12 12第一章 操作系统引论1.2 操作系统发展过程在20世纪50年代中期,出现了
6、第一个简单批处理OS;60年代中期开发出多道程序批处理系统;很快又推出分时系统,与此同时,用于工业和武器控制实时OS也相继问世。20世纪70到90年代,是VLSI和计算机体系结构大发展年代,造成了微型机、多处理机和计算机网络诞生和发展,与此对应地,也相继开发出了微机OS、多处理机OS和网络OS,并得到极为迅猛发展。第12页13 13第一章 操作系统引论1.2.1 未配置操作系统计算机系统 1.人工操作方式早期操作方式是由程序员将事先已穿孔纸带(或卡片),装入纸带输入机(或卡片输入机),再开启它们将纸带(或卡片)上程序和数据输入计算机,然后开启计算机运行。仅当程序运行完成并取走计算结果后,才允许
7、下一个用户上机。这种人工操作方式有以下两方面缺点:(1)用户独占全机,即一台计算机全部资源由上机用户所独占。(2)CPU等候人工操作。当用户进行装带(卡)、卸带(卡)等人工操作时,CPU及内存等资源是空闲。第13页14 14第一章 操作系统引论2.脱机输入/输出(Off-Line I/O)方式为了处理人机矛盾及CPU和I/O设备之间速度不匹配矛盾,20世纪50年代末出现了脱机I/O技术。该技术是事先将装有用户程序和数据纸带装入纸带输入机,在一台外围机控制下,把纸带(卡片)上数据(程序)输入到磁带上。当CPU需要这些程序和数据时,再从磁带上高速地调入内存。第14页15 15第一章 操作系统引论图
8、1-3 脱机I/O示意图第15页16 16第一章 操作系统引论1.2.2 单道批处理系统 1.单道批处理系统(Simple Batch Processing System)处理过程为实现对作业连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它控制下,使这批作业能一个接一个地连续处理。第16页17 17第一章 操作系统引论图1-4 单道批处理系统处理流程第17页18 18第一章 操作系统引论2.单道批处理系统缺点单道批处理系统最主要缺点是,系统中资源得不到充分利用。这是因为在内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU便处于等候状态
9、,必须在其I/O完成后才继续运行。又因I/O设备低速性,更使CPU利用率显著降低。图1-5示出了单道程序运行情况,从图能够看出:在t2t3、t6t7时间间隔内CPU空闲。第18页19 19第一章 操作系统引论图1-5 单道程序运行情况第19页2020第一章 操作系统引论1.2.3 多道批处理系统(Multiprogrammed Batch Processing System)1.多道程序设计基本概念为了深入提升资源利用率和系统吞吐量,在20世纪60年代中期引入了多道程序设计技术,由此形成了多道批处理系统。图1-6示出了四道程序时运行情况。第20页21 21第一章 操作系统引论图1-6 多道程序
10、运行情况第21页2222第一章 操作系统引论2.多道批处理系统优缺点多道批处理系统优缺点以下:(1)资源利用率高。引入多道批处理能使多道程序交替运行,以保持CPU处于忙碌状态;在内存中装入多道程序可提升内存利用率;另外还能够提升I/O设备利用率。(2)系统吞吐量大。能提升系统吞吐量主要原因可归结为:CPU和其它资源保持“忙碌”状态;仅看成业完成时或运行不下去时才进行切换,系统开销小。第22页2323第一章 操作系统引论(3)平均周转时间长。因为作业要排队依次进行处理,因而作业周转时间较长,通常需几个小时,甚至几天。(4)无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己作业
11、进行交互,修改和调试程序极不方便。第23页2424第一章 操作系统引论3.多道批处理系统需要处理问题多道批处理系统是一个十分有效,但又非常复杂系统,为使系统中多道程序间能协调地运行,系统必须处理下述一系列问题:(1)处理机争用问题。既要能满足各道程序运行需要,又要能提升处理机利用率。(2)内存分配和保护问题。系统应能为每道程序分配必要内存空间,使它们“各得其所”,且不会因某道程序出现异常情况而破坏其它程序。(3)I/O设备分配问题。系统应采取适当策略来分配系统中I/O设备,以到达既能方便用户对设备使用,又能提升设备利用率目标。第24页2525第一章 操作系统引论(4)文件组织和管理问题。系统应
12、能有效地组织存放在系统中大量程序和数据,使它们既便于用户使用,又能确保数据安全性。(5)作业管理问题。系统中存在着各种作业(应用程序),系统应能对系统中全部作业进行合理组织,以满足这些作业用户不一样要求。(6)用户与系统接口问题。为使用户能方便使用操作系统,OS还应提供用户与OS之间接口。第25页2626第一章 操作系统引论1.2.4 分时系统(Time Sharing System)1.分时系统引入假如说推进多道批处理系统形成和发展主要动力是提升资源利用率和系统吞吐量,那么,推进分时系统形成和发展主要动力,则是为了满足用户对人机交互需求,由此形成了一个新型OS。用户需求详细表现在以下几个方面
13、:(1)人机交互。(2)共享主机。第26页2727第一章 操作系统引论2.分时系统实现中关键问题在多道批处理系统中,用户无法与自己作业进行交互主要原因是:作业都先驻留在外存上,即使以后被调入内存,也要经过较长时间等候后方能运行,用户无法与自己作业进行交互。1)及时接收2)及时处理第27页2828第一章 操作系统引论3.分时系统特征分时系统与多道批处理系统相比,含有非常显著不一样特征,能够归纳成以下四个方面:(1)多路性。(2)独立性。(3)及时性。(4)交互性。第28页2929第一章 操作系统引论1.2.5 实时系统(Real Time System)1.实时系统类型伴随计算机应用普及,实时系
14、统类型也对应增多,下面列出当前常见几个:(1)工业(武器)控制系统。(2)信息查询系统。(3)多媒体系统。(4)嵌入式系统。第29页3030第一章 操作系统引论2.实时任务类型(1)周期性实时任务和非周期性实时任务。(2)硬实时任务和软实时任务。第30页31 31第一章 操作系统引论3.实时系统与分时系统特征比较(1)多路性。(2)独立性。(3)及时性。(4)交互性。(5)可靠性。第31页3232第一章 操作系统引论1.2.6 微机操作系统发展 1单用户单任务操作系统1)CP/M 2)MS-DOS第32页3333第一章 操作系统引论2.单用户多任务操作系统单用户多任务操作系统含义是,只允许一个
15、用户上机,但允许用户把程序分为若干个任务,使它们并发执行,从而有效地改进了系统性能。第33页3434第一章 操作系统引论3.多用户多任务操作系统多用户多任务操作系统含义是,允许多个用户经过各自终端,使用同一台机器,共享主机系统中各种资源,而每个用户程序又可深入分为几个任务,使它们能并发执行,从而可深入提升资源利用率和系统吞吐量。在大、中和小型机中所配置大多是多用户多任务操作系统,而在32位微机上,也有不少配置是多用户多任务操作系统,其中最有代表性是UNIX OS。第34页3535第一章 操作系统引论1.3 操作系统基本特征 前面所介绍多道批处理系统、分时系统和实时系统这三种基本操作系统都含有各
16、自不一样特征,如批处理系统有着高资源利用率和系统吞吐量;分时系统能取得及时响应;实时系统含有实时特征。除此之外,它们还共同含有并发、共享、虚拟和异步四个基本特征。第35页3636第一章 操作系统引论1.3.1 并发(Concurrence)正是系统中程序能并发执行这一特征,才使得OS能有效地提升系统中资源利用率,增加系统吞吐量。1.并行与并发并行性和并发性是既相同又有区分两个概念。并行性是指两个或多个事件在同一时刻发生。而并发性是指两个或多个事件在同一时间间隔内发生。第36页3737第一章 操作系统引论2.引入进程在一个未引入进程系统中,在属于同一个应用程序计算程序和I/O程序之间只能是次序执
17、行,即只有在计算程序执行告一段落后,才允许I/O程序执行;反之,在程序执行I/O操作时,计算程序也不能执行。但在为计算程序和I/O程序分别建立一个进程(Process)后,这两个进程便可并发执行。若对内存中多个程序都分别建立一个进程,它们就能够并发执行,这么便能极大地提升系统资源利用率,增加系统吞吐量。第37页3838第一章 操作系统引论1.3.2 共享(Sharing)普通情况下共享与操作系统环境下共享其含义并不完全相同。1.互斥共享方式 系统中一些资源,如打印机、磁带机等,即使能够提供给多个进程(线程)使用,但应要求在一段时间内,只允许一个进程访问该资源。为此,在系统中应建立一个机制,以确
18、保多个进程对这类资源互斥访问。第38页3939第一章 操作系统引论2.同时访问方式系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓“同时”,在单处理机环境下是宏观意义上,而在微观上,这些进程对该资源访问是交替进行。经典可供多个进程“同时”访问资源是磁盘设备。一些用重入码编写文件也能够被“同时”共享,即允许若干个用户同时访问该文件。第39页4040第一章 操作系统引论1.3.3 虚拟(Virtual)1.时分复用技术(1)虚拟处理机技术。(2)虚拟设备技术。第40页41 41第一章 操作系统引论2.空分复用技术20世纪初,电信业中就已使用频分复用技术来提升信道利用
19、率。它是指将一个频率范围比较宽信道划分成多个频率范围较窄信道(称为频带),其中任何一个频带都仅供一对用户通话。早期频分复用技术只能将一条物理信道划分为几条到几十条话路,以后又很快发展到成千上万条话路,每条话路供一对用户通话。再以后在计算机中也把空分复用技术用于对存放空间管理,用以提升存放空间利用率。第41页4242第一章 操作系统引论1.3.4 异步(Asynchronism)在多道程序环境下,系统允许多个进程并发执行。在单处理机环境下,因为系统中只有一台处理机,因而每次只允许一个进程执行,其余进程只能等候。当正在执行进程提出某种资源要求时,如打印请求,而此时打印机正在为其它进程打印,因为打印
20、机属于临界资源,所以正在执行进程必须等候,并释放出处理机,直到打印机空闲,并再次取得处理机时,该进程方能继续执行。可见,因为资源等原因限制,使进程执行通常都不可能“一气呵成”,而是以“停停走走”方式运行。第42页4343第一章 操作系统引论1.4 操作系统主要功效引入OS主要目标是,为多道程序运行提供良好运行环境,以确保多道程序能有条不紊地、高效地运行,并能最大程度地提升系统中各种资源利用率,方便用户使用。为此,在传统OS中应含有处理机管理、存放器管理、设备管理和文件管理等基本功效。另外,为了方便用户使用OS,还需向用户提供方便用户接口。第43页4444第一章 操作系统引论1.4.1 处理机管
21、理功效 1.进程控制2.进程同时 3.进程通信4.调度(1)作业调度。(2)进程调度。第44页4545第一章 操作系统引论1.4.2 存放器管理功效 1.内存分配内存分配主要任务是:(1)为每道程序分配内存空间,使它们“各得其所”。(2)提升存放器利用率,尽可能降低不可用内存空间(碎片)。(3)允许正在运行程序申请附加内存空间,以适应程序和数据动态增加需要。第45页4646第一章 操作系统引论OS在实现内存分配时,可采取静态和动态两种方式:(1)静态分配方式。每个作业内存空间是在作业装入时确定,在作业装入后整个运行期间不允许该作业再申请新内存空间,也不允许作业在内存中“移动”。(2)动态分配方
22、式。每个作业所要求基本内存空间即使也是在装入时确定,但允许作业在运行过程中继续申请新附加内存空间,以适应程序和数据动态增加,也允许作业在内存中“移动”。第46页4747第一章 操作系统引论2.内存保护内存保护主要任务是:确保每道用户程序都仅在自己内存空间内运行,彼此互不干扰。绝不允许用户程序访问操作系统程序和数据,也不允许用户程序转移到非共享其它用户程序中去执行。第47页4848第一章 操作系统引论3.地址映射在多道程序环境下,因为每道程序经编译和链接后所形成可装入程序其地址都是从0开始,但不可能将它们从“0”地址(物理)开始装入内存,致使(各程序段)地址空间内逻辑地址与其在内存空间中物理地址
23、并不相一致。为确保程序能正确运行,存放器管理必须提供地址映射功效,即能够将地址空间中逻辑地址转换为内存空间中与之对应物理地址。该功效应在硬件支持下完成。第48页4949第一章 操作系统引论4.内存扩充内存扩充并非是从物理上去扩大内存容量,而是借助于虚拟存放技术,从逻辑上扩充内存容量,使用户所感觉到内存容量比实际内存容量大得多,方便让更多用户程序能并发运行。这么既满足了用户需要,又改进了系统性能。为了能在逻辑上扩充内存,系统必须设置内存扩充机制(包含少许硬件),用于实现下述各功效:(1)请求调入功效。(2)置换功效。第49页5050第一章 操作系统引论1.4.3 设备管理功效 设备管理主要任务以
24、下:(1)完成用户进程提出I/O请求,为用户进程分配所需I/O设备,并完成指定I/O操作。(2)提升CPU和I/O设备利用率,提升I/O速度,方便用户使用I/O设备。为实现上述任务,设备管理应含有缓冲管理、设备分配和设备处理以及虚拟设备等功效。1.缓冲管理2.设备分配3.设备处理第50页51 51第一章 操作系统引论1.4.4 文件管理功效 1.文件存放空间管理2.目录管理3.文件读/写管理和保护(1)文件读/写管理。(2)文件保护。第51页5252第一章 操作系统引论1.4.5操作系统与用户之间接口 1.用户接口(1)联机用户接口。(2)脱机用户接口。(3)图形用户接口。第52页5353第一
25、章 操作系统引论2.程序接口程序接口是为用户程序在执行中访问系统资源而设置,是用户程序取得操作系统服务唯一路径。它是由一组系统调用组成,每一个系统调用都是一个能完成特定功效子程序。每当应用程序要求OS提供某种服务(功效)时,便调用含有对应功效系统调用(子程序)。早期系统调用都是用汇编语言提供,只有在用汇编语言书写程序中才能直接使用系统调用。第53页5454第一章 操作系统引论1.4.6当代操作系统新功效当代操作系统是在传统操作系统基础上发展起来,它除了含有传统操作系统功效外,还增加了面向安全、面向网络和面向多媒体等功效。1.系统安全(1)认证技术。(2)密码技术。(3)访问控制技术。(4)反病
26、毒技术。第54页5555第一章 操作系统引论2.网络功效和服务(1)网络通信。(2)资源管理。(3)应用互操作。第55页5656第一章 操作系统引论3.支持多媒体(1)接纳控制功效。(2)实时调度。(3)多媒体文件存放。第56页5757第一章 操作系统引论1.5 OS结构设计早期OS规模很小,如只有几十KB,完全能够由一个人以手工方式,用几个月时间编制出来。此时,编制程序基本上是一个技巧,OS是否是有结构并不那么主要,主要是程序员程序设计技巧。但伴随OS规模愈来愈大,其所含有代码也愈来愈多,往往需要由数十人或数百人甚至更多人参加,分工合作,共同来完成操作系统设计。这意味着,应采取工程化开发方法
27、对大型软件进行开发。由此产生了“软件工程学”。第57页5858第一章 操作系统引论1.5.1 传统操作系统结构 1.无结构操作系统在早期开发操作系统时,设计者只是把他注意力放在功效实现和取得高效率上,缺乏首尾一致设计思想。此时OS是为数众多一组过程集合,每个过程能够任意地相互调用其它过程,致使操作系统内部既复杂又混乱,所以,这种OS是无结构,也有些人把它称为整体系统结构。第58页5959第一章 操作系统引论2.模块化结构OS1)模块化程序设计技术基本概念模块化程序设计技术是20世纪60年代出现一个结构化程序设计技术。该技术基于“分解”和“模块化”标准来控制大型软件复杂度。为使OS含有较清楚结构
28、,OS不再是由众多过程直接组成,而是按其功效精心地划分为若干个含有一定独立性和大小模块。图1-7示出了由模块、子模块等组成模块化OS结构。第59页6060第一章 操作系统引论图1-7 模块化结构操作系统第60页61 61第一章 操作系统引论2)模块独立性在模块-接口法中,关键问题是模块划分和要求好模块之间接口。假如我们在划分模块时将模块划分得太小,即使能够降低模块本身复杂性,但会引发模块之间联络过多,从而会造成系统比较混乱;假如将模块划分得过大,又会增加模块内部复杂性,使内部联络增加,所以在划分模块时,应在二者间进行权衡。第61页6262第一章 操作系统引论3)模块接口法优缺点利用模块-接口法
29、开发OS,较之无结构OS含有以下显著优点:(1)提升OS设计正确性、可了解性和可维护性。(2)增强OS可适应性。(3)加速OS开发过程。第62页6363第一章 操作系统引论模块化结构设计仍存在下述问题:(1)在OS设计时,对各模块间接口要求极难满足在模块设计完成后对接口实际需求。(2)在OS设计阶段,设计者必须做出一系列决定(决议),每一个决定必须建立在上一个决定基础上,但模块化结构设计中,各模块设计齐头并进,无法寻找一个可靠决定次序,造成各种决定“无序性”,这将使程序人员极难做到“设计中每一步决定”都是建立在可靠基础上,所以模块-接口法又被称为“无序模块法”。第63页6464第一章 操作系统
30、引论3.3.分层式结构分层式结构OSOS1)分层式结构基本概念为了将模块-接口法中“决定次序”无序性变为有序性,引入了有序分层法,分层法设计任务是,在目标系统An和裸机系统(又称宿主系统)A0之间,铺设若干个层次软件A1、A2、A3、An-1,使An经过An-1、An-2、A2、A1层,最终能在A0上运行。在操作系统中,常采取自底向上法来铺设这些中间层。第64页6565第一章 操作系统引论2)分层结构优缺点分层结构主要优点有:(1)易确保系统正确性。(2)易扩充和易维护性。分层结构主要缺点是系统效率降低。因为层次结构是分层单向依赖,必须在每层之间都建立层次间通信机制,OS每执行一个功效,通常要
31、自上而下地穿越多个层次,这无疑会增加系统通信开销,从而造成系统效率降低。第65页6666第一章 操作系统引论1.5.2 客户/服务器模式(Client/Server Model)介绍1.客户/服务器模式由来、组成和类型客户/服务器系统主要由三部分组成。(1)客户机:(2)服务器:(3)网络系统:第66页6767第一章 操作系统引论2.客户/服务器之间交互(1)客户发送请求消息。(2)服务器接收消息。(3)服务器回送消息。(4)客户机接收消息。第67页6868第一章 操作系统引论3.客户/服务器模式优点(1)数据分布处理和存放。(2)便于集中管理。(3)灵活性和可扩充性。(4)易于改编应用软件。
32、第68页6969第一章 操作系统引论1.5.3 面向对象程序设计(Object-Orientated Programming)技术介绍1.面向对象技术基本概念面向对象技术是20世纪80年代初提出并很快流行起来。第69页7070第一章 操作系统引论1)对象在面向对象技术中,是利用被封装数据结构(变量)和一组对它进行操作过程(方法)来表示系统中某个对象,如图1-8所表示。对象中变量(数据)也称为属性,它能够是单个标量或一张表。面向对象中方法是用于执行某种功效过程,它能够改变对象状态,更新对象中一些数据值或作用于对象所要访问外部资源。假如把一个文件作为一个对象(见图1-9),该对象变量便是文件类型、
33、文件大小、文件创建者等。对象中方法包含对文件操作,如创建文件、打开文件、读文件、写文件、关闭文件等。第70页71 71第一章 操作系统引论图1-8一个对象示意图 第71页7272第一章 操作系统引论 图1-9 类和对象关系 第72页7373第一章 操作系统引论2)对象类在实践中,有许多对象可能表示是同一类事物,每个对象含有自己变量集合,而它们所含有方法是相同。假如为每一个相同对象都定义一组变量和方法,显然是低效,由此产生了“对象类”概念,利用“对象类”来定义一组大致相同对象。一个类一样定义了一组变量和针对该变量一组方法,用它们来描述一组对象共同属性和行为。类是在对象上抽象,对象则是类实例。对象
34、类中所定义变量在实例中都有详细值。第73页7474第一章 操作系统引论3)继承在面向对象技术中,能够依据已经有类来定义一个新类,新类被称为子类(B),原来类被称为父类(A),见图1-10所表示。第74页7575第一章 操作系统引论图1-10 类继承关系第75页7676第一章 操作系统引论2.面向对象技术优点在操作系统设计时,将计算机中实体作为对象来处理,可带来以下好处:(1)经过“重用”提升产品质量和生产率。(2)使系统含有更加好易修改性和易扩展性。(3)更易于确保系统“正确性”和“可靠性”。第76页7777第一章 操作系统引论1.5.4微内核OS结构1.微内核操作系统基本概念1)足够小内核在
35、微内核操作系统中,内核是指精心设计、能实现当代OS最基本关键功效小型内核,微内核并非是一个完整OS,而只是将操作系统中最基本部分放入微内核,通常包含有:与硬件处理紧密相关部分;一些较基本功效;客户和服务器之间通信。这些OS最基本部分只是为构建通用OS提供一个主要基础,这么就能够确保把操作系统内核做得很小。第77页7878第一章 操作系统引论2)基于客户/服务器模式因为客户/服务器模式含有非常多优点,故在单机微内核操作系统中几乎无一例外地都采取客户/服务器模式,将操作系统中最基本部分放入内核中,而把操作系统绝大部分功效都放在微内核外面一组服务器(进程)中实现,如用于提供对进程(线程)进行管理进程
36、(线程)服务器、提供虚拟存放器管理功效虚拟存放器服务器、提供I/O设备管理I/O设备管理服务器等,它们都是被作为进程来实现,运行在用户态,客户与服务器之间是借助微内核提供消息传递机制来实现信息交互。图1-11示出了在单机环境下客户/服务器模式。第78页7979第一章 操作系统引论图1-11 在单机环境下客户/服务器模式第79页8080第一章 操作系统引论3)应用“机制与策略分离”原理在现在操作系统结构设计中,经常利用“机制与策略分离”原理来结构OS结构。所谓机制,是指实现某一功效详细执行机构。而策略,则是在机制基础上借助于一些参数和算法来实现该功效优化,或到达不一样功效目标。第80页81 81
37、第一章 操作系统引论4)采取面向对象技术操作系统是一个极其复杂大型软件系统,我们不但能够经过结构设计来分解操作系统复杂度,还能够基于面向对象技术中“抽象”和“隐蔽”标准控制系统复杂性,再深入利用“对象”、“封装”和“继承”等概念来确保操作系统“正确性”、“可靠性”、“易修改性”、“易扩展性”等,并提升操作系统设计速度。正因为面向对象技术能带来如此多好处,故面向对象技术被广泛应用于当代操作系统设计中。第81页8282第一章 操作系统引论2.微内核基本功效微内核应含有哪些功效,或者说哪些功效应放在微内核内,哪些应放在微内核外,当前尚无明确要求。现在普通都采取“机制与策略分离”原理,将机制部分以及与
38、硬件紧密相关部分放入微内核中。由此可知微内核通常含有以下几方面功效:1)进程(线程)管理 2)低级存放器管理3)中止和陷入处理第82页8383第一章 操作系统引论3.微内核操作系统优点因为微内核OS结构是建立在模块化、层次化结构基础上,并采取了客户/服务器模式和面向对象程序设计技术,所以,微内核结构操作系统是集各种技术优点之大成,因而使之含有以下优点:(1)提升了系统可扩展性。(2)增强了系统可靠性。(3)可移植性强。(4)提供了对分布式系统支持。(5)融入了面向对象技术。第83页8484第一章 操作系统引论4.微内核操作系统存在问题应该指出,在微内核操作系统中,因为采取了非常小内核,客户/服
39、务器模式和消息传递机制虽给微内核操作系统带来了许多优点,但由此也使微内核OS存在着潜在缺点,其中最主要是,较之早期操作系统,微内核操作系统运行效率有所降低。实际情况是往往还会引发更多上下文切换。比如,当某个服务器本身尚无能力完成客户请求而需要其它服务器帮助时,如图1-12所表示,其中文件服务器还需要磁盘服务器帮助,这时就需要进行8次上下文切换。第84页8585第一章 操作系统引论图1-12 在传统OS和微内核OS中上下文切换第85页8686第一章 操作系统引论 习 题 1.设计当代OS主要目标是什么?2.OS作用可表现在哪几个方面?3.为何说操作系统实现了对计算机资源抽象?4.试说明推进多道批
40、处理系统形成和发展主要动力是什么。5.何谓脱机I/O和联机I/O?6.试说明推进分时系统形成和发展主要动力是什么。7.实现分时系统关键问题是什么?应怎样处理?第86页8787第一章 操作系统引论8.为何要引入实时操作系统?9.什么是硬实时任务和软实时任务?试举例说明。10.试从交互性、及时性以及可靠性方面将分时系统与实时系统进行比较。11.OS有哪几大特征?其最基本特征是什么?12.在多道程序技术OS环境下资源共享与普通情况下资源共享受何不一样?对独占资源应采取何种共享方式?13.什么是时分复用技术?举例说明它能提升资源利用率根本原因是什么。14.是什么原因使操作系统含有异步性特征?15.处理
41、机管理有哪些主要功效?其主要任务是什么?16.内存管理有哪些主要功效?其主要任务是什么?第87页8888第一章 操作系统引论17.设备管理有哪些主要功效?其主要任务是什么?18.文件管理有哪些主要功效?其主要任务是什么?19.试说明推进传统OS演变为当代OS主要原因是什么?20.什么是微内核OS?21.微内核操作系统含有哪些优点?它为何能有这些优点?22.当代操作系统较之传统操作系统又增加了哪些功效和特征?23.在微内核OS中,为何要采取客户/服务器模式?24.在基于微内核结构OS中,应用了哪些新技术?25.何谓微内核技术?在微内核中通常提供了哪些功效?第88页8989第二章 进程的描述与控制
42、第二章第二章 进程描述与控制进程描述与控制 2.1 前趋图和程序执行2.2 进程描述2.3 进程控制2.4 进程同时2.5 经典进程同时问题2.6 进程通信2.7 线程(Threads)基本概念2.8 线程实现习题第89页9090第二章 进程的描述与控制2.1 前趋图和程序执行在早期未配置OS系统和单道批处理系统中,程序执行方式是次序执行,即在内存中仅装入一道用户程序,由它独占系统中全部资源,只有在一个用户程序执行完成后,才允许装入另一个程序并执行。可见,这种方式浪费资源、系统运行效率低等缺点。第90页91 91第二章 进程的描述与控制2.1.1 前趋图为了能更加好地描述程序次序和并发执行情况
43、,我们先介绍用于描述程序执行先后次序前趋图。所谓前趋图(Precedence Graph),是指一个有向无循环图,可记为DAG(Directed Acyclic Graph),它用于描述进程之间执行先后次序。图中每个结点可用来表示一个进程或程序段,乃至一条语句,结点间有向边则表示两个结点之间存在偏序(Partial Order)或前趋关系(Precedence Relation)。第91页9292第二章 进程的描述与控制进程(或程序)之间前趋关系可用“”来表示,假如进程Pi和Pj存在着前趋关系,可表示为(Pi,Pj),也可写成PiPj,表示在Pj开始执行之前Pi 必须完成。此时称Pi是Pj直接
44、前趋,而称Pj是Pi直接后继。在前趋图中,把没有前趋结点称为初始结点(Initial Node),把没有后继结点称为终止结点(Final Node)。另外,每个结点还含有一个重量(Weight),用于表示该结点所含有程序量或程序执行时间。第92页9393第二章 进程的描述与控制在图2-1(a)所表示前趋图中,存在着以下前趋关系:P1P2,P1P3,P1P4,P2P5,P3P5,P4P6,P4P7,P5P8,P6P8,P7P9,P8P9或表示为:P=P1,P2,P3,P4,P5,P6,P7,P8,P9 =(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6
45、),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9)第93页9494第二章 进程的描述与控制应该注意,前趋图中是不允许有循环,否则必然会产生不可能实现前趋关系。如图2-1(b)所示前趋关系中就存在着循环。它一方面要求在S3开始执行之前,S2必须完成,其次又要求在S2开始执行之前,S3必须完成。显然,这种关系是不可能实现。S2S3,S3S2第94页9595第二章 进程的描述与控制图2-1 前趋图第95页9696第二章 进程的描述与控制2.1.2 程序次序执行1.程序次序执行通常,一个应用程序由若干个程序段组成,每一个程序段完成特定功效,它们在执行时,都需要按照某种先
46、后次序次序执行,仅当前一程序段执行完后,才运行后一程序段。比如,在进行计算时,应先运行输入程序,用于输入用户程序和数据;然后运行计算程序,对所输入数据进行计算;最终才是运行打印程序,打印计算结果。我们用结点(Node)代表各程序段操作(在图2-1中用圆圈表示),其中I代表输入操作,C代表计算操作,P为打印操作,用箭头指示操作先后次序。第96页9797第二章 进程的描述与控制这么,上述三个程序段间就存在着这么前趋关系:IiCiPi,其执行次序可用前趋图2-2(a)描述。即使是一个程序段,也可能存在着执行次序问题,下面示出了一个包含了三条语句程序段:S1:a:=x+y;S2:b:=a-5;S3:c
47、:=b+1;其中,语句S2必须在语句S1后(即a被赋值)才能执行,语句S3也只能在b被赋值后才能执行,所以,三条语句存在着这么前趋关系:S1S2S3,应按前趋图2-2(b)所表示次序执行。第97页9898第二章 进程的描述与控制图2-2程序次序执行前趋图第98页9999第二章 进程的描述与控制2.2.程序次序执行时特征程序次序执行时特征由上所述能够得知,在程序次序执行时,含有这么三个特征:次序性:指处理机严格地按照程序所要求次序执行,即每一操作必须在下一个操作开始之前结束;封闭性:指程序在封闭环境下运行,即程序运行时独占全机资源,资源状态(除初始状态外)只有本程序才能改变它,程序一旦开始执行,
48、其执行结果不受外界原因影响;可再现性:指只要程序执行时环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都可取得相同结果。程序次序执行时这种特征,为程序员检测和校正程序错误带来了很大方便。第99页100100第二章 进程的描述与控制2.1.3程序并发执行1.程序并发执行我们经过一个常见例子来说明程序次序执行和并发执行。在图2-2中输入程序、计算程序和打印程序三者之间,存在着IiCiPi这么前趋关系,以至对一个作业输入、计算和打印三个程序段必须次序执行。但若是对一批作业进行处理时,每道作业输入、计算和打印程序段执行情况如图2-3所表示。第100页1011
49、01第二章 进程的描述与控制图2-3 程序并发执行时前趋图 第101页102102第二章 进程的描述与控制由图2-3能够看出,存在前趋关系IiCi,IiIi+1,CiPi,CiCi+1,PiPi+1,而Ii+1和Ci及Pi-1是重合,即在Pi-1和Ci以及Ii+1之间,不存在前趋关系,能够并发执行。对于含有下述四条语句程序段:S1:a:=x+2S2:b:=y+4S3:c:=a+bS4:d:=c+b可画出图2-4所表示前趋关系。能够看出:S3必须在a和b被赋值后方能执行;S4必须在S3之后执行;但S1和S2则能够并发执行,因为它们彼此互不依赖。第102页103103第二章 进程的描述与控制 图2
50、-4 四条语句前趋关系 第103页104104第二章 进程的描述与控制2.程序并发执行时特征在引入了程序间并发执行功效后,即使提升了系统吞吐量和资源利用率,但因为它们共享系统资源,以及它们为完成同一项任务而相互合作,致使在这些并发执行程序之间必将形成相互制约关系,由此会给程序并发执行带来新特征。(1)间断性。(2)失去封闭性。(3)不可再现性。第104页105105第二章 进程的描述与控制2.2 进程描述2.2.1 进程定义和特征1.进程定义 在多道程序环境下,程序执行属于并发执行,此时它们将失去其封闭性,并含有间断性,以及其运行结果不可再现性特征。由此,决定了通常程序是不能参加并发执行,不然
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100