




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《计算机专业考研操作系统基础课程》
知识点汇总精讲
目录
第一章操作系统概述3
第二章进程管理13
第三章内存管理69
第四章文件管理99
第五章输入输出(I/O)系统127
1
第1页共143页
计算机专业考研操作系统基础课程
主讲老师:白龙飞
课程特点
文科还是工科?
抽象还是具体?
从实际出发,从身边出发
题型特点
选择题10个
1/3概念题1/3计算题1/3综合题
应用题2个
PV操作
存储结构
文件实现
调度一次
L掌握操作系统的基本概念、基本原理和基本功能,理解操作系统的整体运行过程。
2.掌握操作系统进程、内存、文件和I/O管理的策略、算法、机制以及相互关系。
3.能够运用所学的操作系统原理、方法与技术分析问题和解决问题,并能利用C语言
描述相关算法。
参考教材
汤小丹计算机操作系统西电第四版
复习策略
基础看教材
强化刷习题
注重实验和实践
2
第2页共143页
第一章操作系统概述
(-)操作系统的概念、特征、功能和提供的服务
(二)操作系统的发展与分类
(三)操作系统的运行环境
1.内核态与用户态
2.中断、异常
3.系统调用
(四)操作系统体系结构
1.1操作系统的概念、特征、功能和提供的服务
操作系统的目标与应用环境有关。
在查询系统中,希望能提供良好的人一机交互性;
应用于工业控制、武器控制以及多媒体环境下的OS,要求其具有实时性;
对于微机上配置的OS,则更看重的是其使用的方便性
1.1.1操作系统的目标
1)方便性(用户的观点)
提供良好的、一致的用户接口,弥补硬件系统的类型和数量差别,使计算机更容易使
用
2)有效性(系统管理人员的观点)
使CPU、I/O设备和存储空间得到有效利用;管理和分配硬件、软件资源,合理地组
织计算机的工作流程
3)可扩充性
OS应采用层次化结构,以便于增加新的功能层次和模块,并能修改老的功能层次和模
块
4)开放性
遵循标准规范,方便地实现互连,实现应用的可移植性和互操作性
1.1.2操作系统的作用
1.0S作为用户与计算机硬件系统之间的接口
OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。
用户在OS帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序。
3
第3页共143页
2.OS作为计算机系统资源的管理者
硬件和软件资源分为四类:
处理机、存储器、I/O设备和文件(数据和程序)
OS的主要功能是对这类资源进行有效的管理
1)处理机管理是用于分配和控制处理机:
2)存储器管理主要负责内存的分配与回收;
3)I/O设备管理是负责I/O设备的分配(回收)与操纵;
4)文件管理是用于实现对文件的存取、共享和保护。
OS的确是计算机系统资源的管理者。
3.OS实现了对计算机资源的抽象
对于一台完全无软件的计算机系统(即裸机),由于它向用户提供的仅是硬件接口(物
理接口),因此,用户必须对物理接口的实现细节有充分的了解,这使该物理机器难于广
泛使用。
为了方便用户使用I/O设备,人们在裸机上覆盖上一层I/O设备管理软件,由它来实
现对I/O设备操作的细节,并向上将I/O设备抽象为一组数据结构以及一组1/0操作命令,
如read和write命令,这样用户即可利用这些数据结构及操作命令来进行数据输入或
输出,而无需关心1/0是如何具体实现的。
1.1.3操作系统的基本特性
多道批处理系统、分时系统和实时系统这三种基本操作系统都具有各自不同的特征,
批处理系统有着高的资源利用率和系统吞吐量;
分时系统能获得及时响应;
实时系统具有实时特征。
共同具有并发、共享、虚拟和异步四个基本特征。
1并发(Concurrence)
正是系统中的程序能并发执行这一特征,才使得0S能有效地提高系统中的资源利用
率,增加系统的吞吐量。
L并行与并发
并行性和并发性是既相似又有区别的两个概念。
并行性是指两个或多个事件在同一时刻发生。
并发性是指两个或多个事件在同一时间间隔内发生。
2共享(Sharing)
第4页共143页
一般情况下的共享与操作系统环境下的共享其含义并不完全相同。
1.互斥共享方式
系统中的某些资源,如打印机、磁带机等,虽然可以提供给多个进程(线程)使用,
但应规定在一段时间内,只允许一个进程访问该资源。
在系统中应建立一种机制,以保证多个进程对这类资源的互斥访问。
2.同时访问方式
系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。
所谓的“同时”,在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资
源的访问是交替进行的。
典型的可供多个进程“同时”访问的资源是磁盘设备。一些用重入码编写的文件也可
以被“同时”共享,即允许若干个用户同时访问该文件。
3虚拟(Virtual)
1.时分复用技术
(1)虚拟处理机技术。
(2)虚拟设备技术。
2.空分复用技术
(1)虚拟磁盘
(2)虚拟主存
4异步(Asynchronism)
多道程序环境下,系统允许多个进程并发执行。
单处理机环境下,由于系统中只有一台处理机,因而每次只允许一个进程执行,其余
进程只能等待。
当正在执行的进程提出某种资源要求时,如打印请求,而此时打印机正在为其它进程
打印,由于打印机属于临界资源,因此正在执行的进程必须等待,并释放出处理机,直到
打印机空闲,并再次获得处理机时,该进程方能继续执行。
由于资源等因素的限制,使进程的执行通常都不可能“一气呵成”,而是以“停停走
走”的方式运行。
1.1.4操作系统的主要功能
引入OS的主要目的是,为多道程序的运行提供良好的运行环境,以保证多道程序能
有条不紊地、高效地运行,并能最大程度地提高系统中各种资源的利用率,方便用户的使
用。
第5页共143页
传统的os中应具有处理机管理、存储器管理、设备管理和文件管理等基本功能。
为了方便用户使用OS,还需向用户提供方便的用户接口。
处理机管理功能
1.进程控制
2.进程同步
3.进程通信
4.调度
(1)作业调度。
(2)进程调度。
存储器管理功能
1.内存分配
2.内存保护
3.地址映射
4.内存扩充
设备管理功能
设备管理的主要任务如下:
(1)完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定
的I/O操作。
(2)提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。
设备管理应具有缓冲管理、设备分配和设备处理以及虚拟设备等功能。
1,缓冲管理
2.设备分配
3.设备处理
文件管理功能
1.文件存储空间的管理
2.目录管理
3.文件的读/写管理和保护
(1)文件的读/写管理。
(2)文件保护。
操作系统与用户之间的接口
1.用户接口
6
第6页共143页
(1)联机用户接口。
联机用户,命令接口和解释程序
(2)脱机用户接口。
脱机用户,作业控制语言
(3)图形用户接口。
2.程序接口
程序接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服
务的唯一途径。
由一组系统调用组成的,每一个系统调用都是一个能完成特定功能的子程序。每当应
用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用(子程序)。
早期的系统调用都是用汇编语言提供的,只有在用汇编语言书写的程序中才能直接使
用系统调用。
1.2操作系统的发展过程
在20世纪50年代中期,出现了第一个简单的批处理OS;
60年代中期开发出多道程序批处理系统;不久又推出分时系统,与此同时,用于工业
和武器控制的实时OS也相继问世。
20世纪70到90年代,是VLSI和计算机体系结构大发展的年代,导致了微型机、多
处理机和计算机网络的诞生和发展,与此相应地,也相继开发出了微机OS、多处理机OS
和网络OS,并得到极为迅猛的发展。
1.2.1未配置操作系统的计算机系统
1.人工操作方式
早期的操作方式是由程序员将事先已穿孔的纸带(或卡片),装入纸带输入机(或卡
片输入机),再启动它们将纸带(或卡片)上的程序和数据输入计算机,然后启动计算机
运行。
仅当程序运行完毕并取走计算结果后,才允许下一个用户上机。
缺点:
(1)用户独占全机,即一台计算机的全部资源由上机用户所独占。
(2)CPU等待人工操作。当用户进行装带(卡)、卸带(卡)等人工操作时,CPU
及内存等资源是空闲的。
2.脱机输入/输出(Off-LineI/O)方式
第7页共143页
为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,20世纪50年代末出现
了脱机I/O技术。
该技术是事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制
下,把纸带(卡片)上的数据(程序)输入到磁带上。
当CPU需要这些程序和数据时,再从磁带上高速地调入内存。
减少了CPU的空闲时间,提高I/O速度
1.2.2单道批处理系统
1.单道批处理系统(SimpleBatchProcessingSystem)的处理过程
为实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中
配上监督程序(Monitor),在它的控制下,使这批作业能一个接一个地连续处理。
2.单道批处理系统的缺点
缺点:
系统中的资源得不到充分的利用。
因为在内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU便处于等待
状态,必须在其I/O完成后才继续运行。
I/O设备的低速性,更使CPU的利用率显著降低
1.2.3多道批处理系统
1.多道程序设计的基本概念
为了进一步提高资源的利用率和系统吞吐量,在20世纪60年代中期引入了多道程序
设计技术,由此形成了多道批处理系统。
2.多道批处理系统的优缺点
多道批处理系统的优缺点如下:
(1)资源利用率高。引入多道批处理能使多道程序交替运行,以保持CPU处于忙碌
状态;在内存中装入多道程序可提高内存的利用率;此外还可以提高I/O设备的利用率。
(2)系统吞吐量大。
①CPU和其它资源保持“忙碌”状态;
②仅当作业完成时或运行不下去时才进行切换,系统开销小。
(3)平均周转时间长。由于作业要排队依次进行处理,因而作业的周转时间较长,
通常需几个小时,甚至几天。
(4)无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自
己的作业进行交互,修改和调试程序极不方便。
8
第8页共143页
3.多道批处理系统需要解决的问题
多道批处理系统是一种复杂有效的系统,为使系统中的多道程序间能协调地运行,系
统必须解决下述一系列问题:
(1)处理机争用问题。既要能满足各道程序运行的需要,又要能提高处理机的利用
率。
(2)内存分配和保护问题。系统应能为每道程序分配必要的内存空间,使它们“各
得其所”,且不会因某道程序出现异常情况而破坏其它程序。
(3)I/O设备分配问题。系统应采取适当的策略来分配系统中的I/O设备,以达到
既能方便用户对设备的使用,又能提高设备利用率的目的。
(4)文件的组织和管理问题。系统应能有效地组织存放在系统中的大量的程序和数
据,使它们既便于用户使用,又能保证数据的安全性。
(5)作业管理问题。系统中存在着各种作业(应用程序),系统应能对系统中所有
的作业进行合理的组织,以满足这些作业用户的不同要求。
(6)用户与系统的接口问题。为使用户能方便的使用操作系统,OS还应提供用户
与OS之间的接口
1.2.4分时系统(TimeSharingSystem)
1.分时系统的引入
推动分时系统形成和发展的主要动力,是为了满足用户对人一机交互的需求,形成一
种新型OS。
用户的需求具体表现在以下几个方面:
(1)人一机交互。
(2)共享主机。
2.分时系统实现中的关键问题
在多道批处理系统中,用户无法与自己的作业进行交互的主要原因是:
作业都先驻留在外存上,即使以后被调入内存,也要经过较长时间的等待后方能运行,
用户无法与自己的作业进行交互。
1)及时接收多路卡
2)及时处理a作业直接进入内存b轮转运行方式,引入时间片概念,每个作业每次
只能运行一个时间片
3.分时系统的特征
第9页共143页
分时系统与多道批处理系统相比,具有非常明显的不同特性,可以归纳成以下四个方
面:
(1)多路性。
(2)独立性。
(3)及时性。
(4)交互性。
1.2.5实时系统(RealTimeSystem)
1.实时系统的类型
随着计算机应用的普及,实时系统的类型也相应增多,下面列出当前常见的几种:
(1)工业(武器)控制系统。
(2)信息查询系统。
(3)多媒体系统。
(4)嵌入式系统。
2.实时任务的类型
(1)周期性实时任务和非周期性实时任务。
外部设备所发出的激励信号并无明显的周期性,但都必须联系着一个截止时间
(Deadline)。开始截止时间和完成截止时间两部分
(2)硬实时任务和软实时任务。
HRT:系统必须满足任务对截止时间的要求
SRT:若偶尔错过了任务的截止时间,对系统产生的影响也不会太大
1.2.6微机操作系统的发展
1.单用户单任务操作系统
DOS的全称是DiskOperationSystem<>
1973年,技术天才CaryKilldal和两名合作者一起开发出了第一个磁盘操作系统
CP/M,这是70年代末、80年代初最有影响的8位操作系统。
在此基础上,SeattleComputerProducts(SCP)的TimPatterson于1978年开始开发
QDOS,此后又成功研制出16位微型机的实验性操作系统86-DOS。
2.单用户多任务操作系统
单用户多任务操作系统的含义是,只允许一个用户上机,但允许用户把程序分为若干
个任务,使它们并发执行,从而有效地改善了系统的性能。
3.多用户多任务操作系统
10
第10页共143页
多用户多任务操作系统的含义是,允许多个用户通过各自的终端,使用同一台机器,
共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执
行,从而可进一步提高资源利用率和系统吞吐量。
在大、中和小型机中所配置的大多是多用户多任务操作系统,而在32位微机上,也
有不少配置的是多用户多任务操作系统,其中最有代表性的是UNIXOSo
1.3操作系统的运行环境
1.系统态和用户态
核心态(管态、系统态)系统管理程序执行时的状态。具有较高的特权,能执行一切
指令,访问所有的寄存器和存储区用户态(目态)以后程序执行时的状态。具有较低的特
权,只能执行规定指令,访问指定的寄存器和存储区CPU的指令集分为特权指令和非特权
指令两类。
(1)特权指令。
(2)非特权指令。
2、中断、异常
所谓中断(interrupt)是指处理机对系统中或系统外发生的异步事件的响应。异步事
件是指无一定时序关系的随机发生的事件,如外部设备完成了数据传输任务,某一实时控
制设备出现情况等。
异常(有时也称为陷阱trap)是指由系统发起的一次确定的服务过程(有些地方也称
为软中断)。
中断/异常的处理过程
2.系统调用
在OS中提供系统调用的目的,是使应用程序可以通过它间接调用OS中的相关过程,
取得相应的服务。系统调用在本质上是应用程序请求OS内核完成某功能时的一种过程调
用,但它是一种特殊的过程调用,它与一般的过程调用有下述几方面的明显差别:
(1)运行在不同的系统状态。
(2)状态的转换。
(3)返回问题。
(4)嵌套调用。
系统调用是通过中断机制实现的,并且一个操作系统的所有系统调用,都通过同一个
中断入口来实现。如MS-DOS提供了INT21H,应用程序通过该中断获取操作系统的服务。
11
第11页共143页
(a)系统调用与返回(b)程序之间的嵌套调用
系统调用的实现与一般过程调用的实现相比,两者间有很大差异。
对于系统调用,控制是由原来的用户态转换为系统态,这是借助于陷入机制来完成的,
在该机制中包括陷入硬件机构及陷入处理程序两部分。
每一条系统调用都含有若干个参数,在执行系统调用时,如何设置系统调用所需的参
数,即如何将这些参数传递给陷入处理机构和系统内部的子程序(过程),常用的实现方
式有以下几种:
(1)陷入指令自带方式。
(2)直接将参数送入相应的寄存器中。
(3)参数表方式。
1.4操作系统体系结构
早期OS的规模很小,如只有几十KB,完全可以由一个人以手工方式,用几个月的时
间编制出来。此时,编制程序基本上是一种技巧,OS是否是有结构的并不重要,重要的是
程序员的程序设计技巧。
但随着OS规模的愈来愈大,其所具有的代码也愈来愈多,往往需要由数十人或数百
人甚至更多的人参与,分工合作,共同来完成操作系统的设计。这意味着,应采用工程化
的开发方法对大型软件进行开发。由此产生了“软件工程学”。
1.4.1传统操作系统结构
1.无结构操作系统
2.模块化结构0S3.分层式结构OS
1.4.2客户/服务器模式(Client/ServerModel)
1.客户/服务器模式的由来、组成和类型客户/服务器系统主要由三部分组成。
(1)客户机:
(2)服务器:
(3)网络系统:
12
第12页共143页
1.4.3面向对象的程序设计技术简介
1.面向对象技术的基本概念
面向对象技术是20世纪80年代初提出并很快流行起来的。
1.4.4微内核OS结构-现代结构OS
1.微内核操作系统的基本概念
1)足够小的内核
在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本核心功能的小型
内核,
微内核并非是一个完整的OS,而只是将操作系统中最基本的部分放入微内核,通常包
含有:
①与硬件处理紧密相关的部分;
②一些较基本的功能;
③客户和服务器之间的通信。
2)基于客户/服务器模式
3)应用“机制与策略分离”原理
4)采用面向对象技术
小结
基本概念
多道批处理系统甘特图
第二章进程管理
2.1进程与线程
2.1.1进程概念
1、前趋图和程序执行
在早期未配置OS的系统和单道批处理系统中,程序的执行方式是顺序执行,即在内
存中仅装入一道用户程序,由它独占系统中的所有资源,只有在一个用户程序执行完成后,
才允许装入另一个程序并执行。
这种方式浪费资源、系统运行效率低等缺点。
所谓前趋图(PrecedenceGraph),是指一个有向无循环图,可记为DAG(Directed
AcyclicGraph),它用于描述进程之间执行的先后顺序。
13
第13页共143页
图中的每个结点可用来表示一个进程或程序段,乃至一条语句,结点间的有向边则表
示两个结点之间存在的偏序(PartialOrder)或前趋关系(PrecedenceRelation)。
应当注意,前趋图中是不允许有循环的,否则必然会产生不可能实现的前趋关系。
如(b)所示的前趋关系中就存在着循环。它一方面要求在S3开始执行之前,S2必须
完成,另一方面又要求在S2开始执行之前,S3必须完成。显然,这种关系是不可能实现
的。S2fs3,S3fs2
七
(a)具有九个结点的前趋图
2、程序顺序执行
1)程序的顺序执行
一个应用程序由若干个程序段组成,每一个程序段完成特定的功能,它们在执行时,
都需要按照某种先后次序顺序执行,仅当前一程序段执行完后,才运行后一程序段。
在进行计算时,应先运行输入程序,用于输入用户的程序和数据;然后运行计算程序,
对所输入的数据进行计算;最后是运行打印程序,打印计算结果。
用结点(Node)代表各程序段的操作,其中I代表输入操作,C代表计算操作,P为
打印操作,用箭头指示操作的先后次序。
上述的三个程序段间就存在着这样的前趋关系:li-GfP“其执行的顺序可用前趋图
(a)描述。
即使是一个程序段,也可能存在着执行顺序问题,下面示出了一个包含了三条语句的
程序段:
Si:a=x+y;
S2:b=a-5;
S3:c=b+l;
(a)程序的顺序执行(b)三条语句的顺序执行
2).程序顺序执行时的特征
14
第14页共143页
①顺序性:指处理机严格地按照程序所规定的顺序执行,即每一操作必须在下一个操
作开始之前结束;
②封闭性:指程序在封闭的环境下运行,即程序运行时独占全机资源,资源的状态(除
初始状态外)只有本程序才能改变它,程序一旦开始执行,其执行结果不受外界因素影响;
③可再现性:指只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它
是从头到尾不停顿地执行,还是“停停走走”地执行,都可获得相同的结果。
程序顺序执行时的这种特性,为程序员检测和校正程序的错误带来了很大的方便。
3程序并发执行
1).程序的并发执行
一个常见的例子来说明程序的顺序执行和并发执行。在图中的输入程序、计算程序和
打印程序三者之间,存在着h-Gf巴这样的前趋关系,
对一个作业的输入、计算和打印三个程序段必须顺序执行。但若是对一批作业进行处
2).程序并发执行时的特征
(1)间断性。''走走停停",一个程序可能走到中途停下来,失去原有的时序关系;
(2)失去封闭性。共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存
储器中的数据可能被另一个程序修改,失去原有的不变特征。
(3)不可再现性。外界环境在程序的两次执行期间发生变化,失去原有的可重复特
征
4进程的描述
1).进程的定义
在多道程序环境下,程序的执行属于并发执行,此时它们将失去其封闭性,并具有问
断性,以及其运行结果不可再现性的特征。
决定了通常的程序是不能参与并发执行的,否则,程序的运行也就失去了意义。
15
第15页共143页
为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了“进
程”的概念。
对于进程的定义,从不同的角度可以有不同的定义,其中较典型的定义有:
(1)进程是程序的一次执行。
(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
(3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源
分配和调度的一个独立单位。
2).进程的特征
进程和程序是两个截然不同的概念,除了进程具有程序所没有的PCB结构外,还具有
下面一些特征:
(1)动态性。
进程具有动态的地址空间(数量和内容),地址空间上包括:
代码(指令执行和CPU状态的改变)
数据(变量的生成和赋值)
系统控制信息(进程控制块的建立和系统收回)
(2)并发性。多个进程实体同存于内存中,且能在一段时间内同时运行;引入进程
实体的目的就是并发执行
(3)独立性。各进程的地址空间相互独立,除非采用进程间通信手段;
(4)异步性。各进程按各自独立的、不可预知的速度向前推进
2.1.2进程的基本状态及转换
1.进程的三种基本状态
由于多个进程在并发执行时共享系统资源,致使它们在运行过程中呈现间断性的运行
规律,所以进程在其生命周期内可能具有多种状态。
每一个进程至少应处于三种基本状态之一:
(1)就绪(Ready)状态。
(2)执行(Running)状态。
(3)阻塞(Block)状态。
2.三种基本状态的转换
进程在运行过程中会经常发生状态的转换。
处于就绪状态的进程,在调度程序为之分配了处理机之后便可执行,相应地,其状态
就由就绪态转变为执行态;
16
第16页共143页
正在执行的进程(当前进程)如果因分配给它的时间片已完而被剥夺处理机暂停执行
时,其状态便由执行转为就绪;
如果因发生某事件,致使当前进程的执行受阻(例如进程访问某临界资源,而该资源
正被其它进程访问时),使之无法继续执行,则该进程状态将由执行转变为阻塞。
3.创建状态和终止状态
1)创建状态
进程是由创建而产生。
创建一个进程是个很复杂的过程,基本步骤:如首先由进程申请一个空白PCB,并向
PCB中填写用于控制和管理进程的信息;然后为该进程分配运行时所必须的资源;把该进
程转入就绪状态并插入就绪队列之中。
如果进程所需的资源尚不能得到满足,比如系统尚无足够的内存使进程无法装入其
中,此时创建工作尚未完成,进程不能被调度运行,于是把此时进程所处的状态称为创建
状态。
2)终止状态
进程的终止也要通过两个步骤:首先,是等待操作系统进行善后处理,最后将其PCB
清零,并将PCB空间返还系统。
当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,
或是被其他有终止权的进程所终结,它将进入终止状态。
进入终止态的进程以后不能再执行,但在操作系统中依然保留一个记录,其中保存状
态码和一些计时统计数据,供其他进程收集。一旦其他进程完成了对其信息的提取之后,
操作系统将删除该进程,即将其PCB清零,并将该空白PCB返还系统。
17
第17页共143页
进程的五种基本状态及转换
1.挂起操作的引入
引入挂起操作的原因,是基于系统和用户的如下需要:
(1)终端用户的需要。
(2)父进程请求。
(3)负荷调节的需要。
(4)操作系统的需要。
2.引入挂起原语操作后三个进程状态的转换
在引入挂起原语Suspend和激活原语Active后,在它们的作用下,进程将可能发生以
下几种状态的转换:
(1)活动就绪一静止就绪。
(2)活动阻塞一静止阻塞。
(3)静止就绪一活动就绪。
(4)静止阻塞一活动阻塞。
3.引入挂起操作后五个进程状态的转换
引进创建和终止状态后,在进程状态转换时,与进程五状态转换相比较,要增加考虑
下面的几种情况:
(1)NULL一仓犍:
(2)创建一活动就绪:
(3)创建一静止就绪:
(4)执行f终止:
18
第18页共143页
具有挂起状态的进程状态图
2.1.4进程组织
1.操作系统中用于管理控制的数据结构
在计算机系统中,对于每个资源和每个进程都设置了一个数据结构,用于表征其实体,
我们称之为资源信息表或进程信息表,
包含了资源或进程的标识、描述、状态等信息以及一批指针。通过这些指针,可以将
同类资源或进程的信息表,或者同一进程所占用的资源信息表分类链接成不同的队列,便
于操作系统进行查找。
2.进程控制块PCB的作用
(1)作为独立运行基本单位的标志。
(2)能实现间断性运行方式。
(3)提供进程管理所需要的信息。
(4)提供进程调度所需要的信息。
(5)实现与其它进程的同步与通信。
3.进程控制块中的信息
在进程控制块中,主要包括四个方面信息。
1)进程标识符
进程标识符用于唯一地标识一个进程。
一个进程通常有两种标识符:
(1)外部标识符。
(2)内部标识符。
2)处理机状态
19
第19页共143页
处理机状态信息也称为处理机的上下文,主要是由处理机的各种寄存器中的内容组成
的。
通用寄存器是用户程序可访问的,暂存信息
指令计数器存放了下一条指令的地址;
程序状态字PSW其中含有状态信息,如条件码、执行方式、中断屏蔽标志等;
用户栈指针存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶
3)进程调度信息
在OS进行调度时,必须了解进程的状态及有关进程调度的信息,这些信息包括:
①进程状态,指明进程的当前状态,它是作为进程调度和对换时的依据;
②进程优先级,是用于描述进程使用处理机的优先级别的一个整数,优先级高的进程
应优先获得处理机;
③进程调度所需的其它信息,它们与所采用的进程调度算法有关,比如,进程已等待
CPU的时间总和、进程已执行的时间总和等;
④事件,是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。
4)进程控制信息
是指用于进程控制所必须的信息,它包括:
①程序和数据的地址,进程实体中的程序和数据的内存或外存地(首)址,以便再调
度到该进程执行时,能从PCB中找到其程序和数据;
②进程同步和通信机制,这是实现进程同步和进程通信时必需的机制,如消息队列指
针、信号量等,它们可能全部或部分地放在PCB中;
③资源清单,在该清单中列出了进程在运行期间所需的全部资源(除CPU以外),另
外还有一张已分配到该进程的资源的清单;
④链接指针,它给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。
4.进程控制块的组织方式
在一个系统中,通常可拥有数十个、数百个乃至数千个PCB。目前常用的组织方式有
三种。
(1)线性方式,即将系统中所有的PCB都组织在一张线性表中,将该表的首址存放
在内存的一个专用区域中。
该方式实现简单、开销小,但每次查找时都需要扫描整张表,因此适合进程数目不多
的系统。
20
第20页共143页
(2)链接方式,即把具有相同状态进程的PCB分别通过PCB中的链接字链接成一
个队列。
形成就绪队列、若干个阻塞队列和空白队列等。
就绪队列而言,往往按进程的优先级将PCB从高到低进行排列,将优先级高的进程
PCB排在队列的前面。
把处于阻塞状态进程的PCB根据其阻塞原因的不同,排成多个阻塞队列,如等待I/O
操作完成的队列和等待分配内存的队列等。
(3)索引方式,即系统根据所有进程状态的不同,建立几张索引表,例如,就绪索
引表、阻塞索引表等,并把各索引表在内存的首地址记录在内存的一些专用单元中。
在每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址。
2.1.3进程控制
进程控制是进程管理中最基本的功能,主要包括创建新进程、终止已完成的进程、将
因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功
能。
如当一个正在执行的进程因等待某事件而暂时不能继续执行时,将其转变为阻塞状
态,而在该进程所期待的事件出现后,又将该进程转换为就绪状态等。
进程控制一般是由OS的内核中的原语来实现的。
原语操作。
原语(Primitive)是由若干条指令组成的,用于完成一定功能的一个过程。它与一般
过程的区别在于:它们是“原子操作(ActionOperation)"«
所谓原子操作,是指一个操作中的所有动作要么全做,要么全不做。换言之,它是一
个不可分割的基本单位,因此,在执行过程中不允许被中断。原子操作在管态下执行,常
驻内存。
进程的创建
1.进程的层次结构
在OS中,允许一个进程创建另一个进程,通常把创建进程的进程称为父进程,而把
被创建的进程称为子进程。
子进程可继续创建更多的孙进程,由此便形成了一个进程的层次结构。
如在UNIX中,进程与其子孙进程共同组成一个进程家族(组)。
2.进程图
为了形象地描述一个进程的家族关系而引入了进程图(ProcessGraph)»
21
第21页共143页
所谓进程图就是用于描述进程间关系的一棵有向树。
为使程序之间能并发运行,应先为它们分别创建进程。导致一个进程去创建另一个进
程的典型事件有四类:
(1)用户登录。
(2)作业调度。
(3)提供服务。
(4)应用请求。
4.进程的创建(CreationofProcess)
在系统中每当出现了创建新进程的请求后,OS便调用进程创建原语Creat按下述步骤
创建一个新进程:
(1)申请空白PCB,为新进程申请获得唯一的数字标识符,并从PCB集合中索取一
个空白PCB。
(2)为新进程分配其运行所需的资源,包括各种物理和逻辑资源,如内存、文件、
I/O设备和CPU时间等。
(3)初始化进程控制块(PCB)»
(4)如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。
进程的终止
1,引起进程终止(TerminationofProcess)的事件
(1)正常结束
(2)异常结束
(3)外界干预
2.进程的终止过程
22
第22页共143页
如果系统中发生了要求终止进程的某事件,OS便调用进程终止原语,按下述过程去终
止指定的进程:
(1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进
程的状态;
(2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,
用于指示该进程被终止后应重新进行调度;
(3)若该进程还有子孙进程,还应将其所有子孙进程也都予以终止,以防它们成为
不可控的进程
(4)将被终止进程所拥有的全部资源或者归还给其父进程,或者归还给系统;
(5)将被终止进程(PCB)从所在队列(或链表)中移出,等待其它程序来搜集信
息。
进程的阻塞与唤醒
1.引起进程阻塞和唤醒的事件
有下述几类事件会引起进程阻塞或被唤醒:
(1)向系统请求共享资源失败。
(2)等待某种操作的完成。
(3)新数据尚未到达。
(4)等待新任务的到达。
2.进程阻塞过程
正在执行的进程,如果发生了上述某事件,进程便通过调用阻塞原语block将自己阻
塞。
阻塞是进程自身的一种主动行为。
进入block过程后,由于该进程还处于执行状态,所以应先立即停止执行,把进程控
制块中的现行状态由“执行”改为阻塞,并将PCB插入阻塞队列。如果系统中设置了因不
同事件而阻塞的多个阻塞队列,应将本进程插入到具有相同事件的阻塞队列。
转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换,亦即,保留
被阻塞进程的处理机状态,按新进程的PCB中的处理机状态设置CPU的环境。
3.进程唤醒过程
当被阻塞进程所期待的事件发生时,比如它所启动的I/O操作已完成,或其所期待的
数据已经到达,则由有关进程(比如提供数据的进程)调用唤醒原语wakeup,将等待该
事件的进程唤醒。
23
第23页共143页
wakeup执行的过程是:首先把被阻塞的进程从等待该事件的阻塞队列中移出,将其
PCB中的现行状态由阻塞改为就绪,然后再将该PCB插入到就绪队列中。
进程的挂起与激活
1.进程的挂起当出现引起进程挂起的事件时,系统将利用挂起原语suspend()将
指定进程或处于阻塞状态的进程挂起
suspend()原语的执行过程
首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于活动
阻塞状态的进程,则将之改为静止阻塞
2.进程的激活过程
当发生激活进程的事件时,系统将利用激活原语active()将指定进程激活
active()原语执行过程
激活原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之
改为活动就绪;若为静止阻塞便将之改为活动阻塞
2.1.5进程通信
进程通信是指进程之间的信息交换。由于进程的互斥与同步,需要在进程间交换一定
的信息,故不少学者将它们也归为进程通信,但只能把它们称为低级进程通信。
以信号量机制为例来说明,它们之所以低级的原因在于:
①效率低,生产者每次只能向缓冲池投放一个产品(消息),消费者每次只能从缓冲
区中取得一个消息;
②通信对用户不透明,OS只为进程之间的通信提供了共享存储器。
1)进程通信的类型
1.共享存储器系统(Shared-MemorySystem)
在共享存储器系统中,相互通信的进程共享某些数据结构或共享存储区,进程之间能
够通过这些空间进行通信。据此,又可把它们分成以下两种类型:
(1)基于共享数据结构的通信方式。
(2)基于共享存储区的通信方式。
2.管道(pipe)通信系统
所谓“管道”,是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共
享文件,又名pipe文件。
向管道(共享文件)提供输入的发送进程(即写进程)以字符流形式将大量的数据送
入管道;而接受管道输出的接收进程(即读进程)则从管道中接收(读)数据。
24
第24页共143页
由于发送进程和接收进程是利用管道进行通信的,故又称为管道通信。
这种方式首创于UNIX系统,由于它能有效地传送大量数据,因而又被引入到许多其
它操作系统中。
为了协调双方的通信,管道机制必须提供以下三方面的协调能力:
①互斥,即当一个进程正在对pipe执行读/写操作时,其它(另一)进程必须等待。
②同步,指当写(输入)进程把一定数量(如4KB)的数据写入pipe,便去睡眠等待,
直到读(输出)进程取走数据后再把它唤醒。当读进程读一空pipe时,也应睡眠等待,直
至写进程将数据写入管道后才将之唤醒。
③确定对方是否存在,只有确定了对方已存在时才能进行通信。
3.消息传递系统(Messagepassingsystem)
在该机制中,进程不必借助任何共享存储区或数据结构,而是以格式化的消息
(message)为单位,将通信的数据封装在消息中,并利用操作系统提供的一组通信命令
(原语),在进程间进行消息传递,完成进程间的数据交换。
基于消息传递系统的通信方式属于高级通信方式,因其实现方式的不同,可进一步分
成两类:
(1)直接通信方式
基于OS的发送原语
(2)间接通信方式
基于共享中间实体
信箱通信
1)信箱的结构
信箱定义为一种数据结构。在逻辑上,可以将其分为两个部分:
(1)信箱头
(2)信箱体
2)信箱的类型
邮箱可由操作系统创建,也可由用户进程创建,创建者是邮箱的拥有者。据此,可把
邮箱分为以下三类:
(1)私用邮箱。
(2)公用邮箱。
(3)共享邮箱。
25
第25页共143页
2.1.6线程(Threads)的概念与多线程模型
1)线程的引入
在OS中引入进程的目的是为了使多个程序能并发执行,以提高资源利用率和系统吞
吐量,
引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并
发性。
1.进程的两个基本属性
首先让我们来回顾进程的两个基本属性:
①进程是一个可拥有资源的独立单位,一个进程要能独立运行,它必须拥有一定的资
源,包括用于存放程序正文、数据的磁盘和内存地址空间,以及它在运行时所需要的I/O
设备、已打开的文件、信号量等;
②进程同时又是一个可独立调度和分派的基本单位,一个进程要能独立运行,它还必
须是一个可独立调度和分派的基本单位。
每个进程在系统中有唯一的PCB,系统可根据其PCB感知进程的存在,也可以根据其
PCB中的信息,对进程进行调度,还可将断点信息保存在其PCB中。反之,再利用进程
PCB中的信息来恢复进程运行的现场。
2.程序并发执行所需付出的时空开销
为使程序能并发执行,系统必须进行以下的一系列操作:
(1)创建进程,系统在创建一个进程时,必须为它分配其所必需的、除处理机以外
的所有资源,如内存空间、I/O设备,以及建立相应的PCB;
(2)撤消进程,系统在撤消进程时,又必须先对其所占有的资源执行回收操作,然
后再撤消PCB;
(3)进程切换,对进程进行上下文切换时,需要保留当前进程的CPU环境,设置新
选中进程的CPU环境,因而须花费不少的处理机时间。
3.线程一一作为调度和分派的基本单位
如何能使多个程序更好地并发执行,同时又尽量减少系统的开销,已成为近年来设计
操作系统时所追求的重要目标。
有不少研究操作系统的学者们想到,要设法将进程的上述两个属性分开,由OS分开
处理,
亦即并不把作为调度和分派的基本单位也同时作为拥有资源的单位,以做到“轻装上
阵”;
26
第26页共143页
2)线程与进程的比较
1.调度的基本单位进程内,切换代价低
在同一进程中,线程的切换不会引起进程的切换,但从一个进程中的线程切换到另一
个进程中的线程时,将会引起进程的切换。
2.并发性
在一个进程中的多个线程之间亦可并发执行,使得操作系统具有更好的并发性
3.拥有资源
线程自己不拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的
资源,即一个进程的代码段、数据段及所拥有的系统资源
线程控制块TCB
4.独立性
相对进程来言,独立性低
5.系统开销
切换代价而言,进程也是远高于线程的。
由于一个进程中的多个线程具有相同的地址空间,在同步和通信的实现方面线程也比
进程容易
6.支持多处理机系统
多线程多处理器
3)线程的状态和线程控制块
1.线程运行的三个状态
与传统的进程一样,在各线程之间也存在着共享资源和相互合作的制约关系,致使线
程在运行时也具有间断性。
线程在运行时具有下述三种基本状态:
(1)执行状态,线程已获得处理机而正在运行;
(2)就绪状态,已具备了各种执行条件,只须再获得CPU便可立即执行;
(3)阻塞状态,在执行中因某事件受阻而处于暂停状态,例如,当一个线程执行从
键盘读入数据的系统调用时,该线程就被阻塞。
2.线程控制块TCB
如同每个进程有一个进程控制块一样,系统也为每个线程配置了一个线程控制块TCB,
将所有用于控制和管理线程的信息记录在线程控制块中。
①线程标识符
27
第27页共143页
②寄存器状态,它包括程序计数器PC和堆栈指针中的内容;堆栈,在堆栈中通常保
存有局部变量和返回地址;
③线程运行状态,用于描述线程正处于何种运行状态;
④优先级,描述线程执行的优先程度;
⑤线程专有存储器,用于保存线程自己的局部变量拷贝;
⑥信号屏蔽,即对某些信号加以屏蔽。
3.多线程OS中的进程属性
通常在多线程OS中的进程都包含了多个线程,并为它们提供资源。
OS支持在一个进程中的多个线程能并发执行,但此时的进程就不再作为一个执行的实
体。
多线程OS中的进程有以下属性:
(1)进程是一个可拥有资源的基本单位。
(2)多个线程可并发执行。
(3)进程己不是可执行的实体。
4)线程的实现方式
线程已在许多系统中实现,但各系统的实现方式并不完全相同。
在有的系统中,特别是一些数据库管理系统,如infomix所实现的是用户级线程;
另一些系统(如Macintosh和OS/2操作系统)所实现的是内核支持线程;
还有一些系统如Solaris操作系统,则同时实现了这两种类型的线程。
1.内核支持线程KST(KernelSupportedThreads)
在OS中的所有进程,无论是系统进程还是用户进程,都是在操作系统内核的支持下
运行的,是与内核紧密相关的。
内核支持线程KST同样也是在内核的支持下运行的,它们的创建、阻塞、撤消和切换
等,也都是在内核空间实现的。
为了对内核线程进行控制和管理,在内核空间也为每一个内核线程设置了一个线程控
制块,内核根据该控制块而感知某线程的存在,并对其加以控制。当前大多数OS都支持
内核支持线程。
这种线程实现方式主要有四个主要优点:
(1)在多处理器系统中,内核能够同时调度同一进程中的多个线程并行执行:
(2)如果进程中的一个线程被阻塞了,内核可以调度该进程中的其它线程占有处理
器运行,也可以运行其它进程中的线程;
28
第28页共143页
(3)内核支持线程具有很小的数据结构和堆栈,线程的切换比较快,切换开销小;
(4)内核本身也可以采用多线程技术,可以提高系统的执行速度和效率。
2.用户级线程ULT(UserLevelThreads)
用户级线程是在用户空间中实现的。
对线程的创建、撤消、同步与通信等功能,都无需内核的支持,即用户级线程是与内
核无关的。
在一个系统中的用户级线程的数目可以达到数百个至数千个。由于这些线程的任务控
制块都是设置在用户空间,而线程所执行的操作也无需内核的帮助,因而内核完全不知道
用户级线程的存在。
使用用户级线程方式有许多优点:
(1)线程切换不需要转换到内核空间。
(2)调度算法可以是进程专用的。
(3)用户级线程的实现与OS平台无关,因为对于线程管理的代码是属于用户程序
的一部分,所有的应用程序都可以对之进行共享。
而用户级线程方式的主要缺点则在于:
(1)系统调用的阻塞问题。在基于进程机制的OS中,大多数系统调用将使进程阻
塞,因此,当线程执行一个系统调用时,不仅该线程被阻塞,而且,进程内的所有线程会
被阻塞。而在内核支持线程方式中,则进程中的其它线程仍然可以运行。
(2)在单纯的用户级线程实现方式中,多线程应用不能利用多处理机进行多重处理
的优点,内核每次分配给一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 主播兼职劳动合同范本
- 农庄分包经营合同范本
- 单位配送食材合同范本
- 勘察钻机租赁合同范例
- 网页设计复习题及答案
- 高压电工(运行)模拟题含答案
- 一年级的数学上册的期末试卷
- led钢结构合同范本
- 《音乐巨人贝多芬》的教学反思
- 《迷彩服》的教案
- 《过零丁洋》公开课件
- 建设“三型三化551”财务体系加快财务转型创建一流财务指导意见
- 从生产工艺角度详解磷酸铁锂
- 全套桥梁施工技术交底记录
- 《教师职业道德》全书word版
- 城市定制型商业医疗保险(惠民保)知识图谱
- GB∕T 3836.31-2021 爆炸性环境 第31部分:由防粉尘点燃外壳“t”保护的设备
- AMDAR资料的分析和应用
- 桥梁缺陷与预防
- 新苏教版小学科学三年级下册全册教案(2022年春修订)
- AQL抽样标准表xls2
评论
0/150
提交评论