计算机操作系统原理培训及实操第2章.pdf
《计算机操作系统原理培训及实操第2章.pdf》由会员分享,可在线阅读,更多相关《计算机操作系统原理培训及实操第2章.pdf(273页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 处 理 机 管 理第2章 处 理 机 管 理2.1 进程概念进程概念2.2 OS内核及进程控制内核及进程控制2.3 进程通信进程通信2.4 进程调度进程调度2.5 线程线程2.6 死锁死锁2.7 作业管理作业管理2.8 操作系统的接口操作系统的接口第2章 处 理 机 管 理2.1 2.1 进进 程程 概概 念念2.1.1 2.1.1 进程的引入进程的引入 在计算机系统中,为了充分地利用系统资源,CPU与外设必须并行工作。由于多道程序系统的出现,使得系统内部的活动变得复杂起来。例如,一个CPU可以在多道程序中快速切换,每道程序每次仅运行很短的时间,使得多道程序在一个小的时间段内都可以得到
2、运行,给用户一种并行的错觉,称为并发执行。又如,当一道程序利用外设进行输入、输出时,CPU可以为另外一道程序工作,这是CPU与I/O设备的并行操作,也要求CPU在多道程序间快速切换。硬件的并行操作与程序的并发执行都需要CPU在多道程序中快速切换,原有的程序概念无法做到这一点,因此我们引入一个新概念进程。第2章 处 理 机 管 理 1 1前趋图前趋图(ProcedenceProcedence Graph)Graph)前趋图是一个有向无循环图DAG(Directed Acyclic Graph)。在前趋图中,每个结点代表一个事件。在操作系统中,可以将结点看作语句、程序段或进程等。结点间的有向边表示
3、两个结点间的前趋关系,记为“”。若有S1S2,则表示只有当S1完成之后,S2才可以执行,此时,称S1是S2的直接前趋,S2是S1的直接后继。图2-1是一个例图。在图2-1(a)中,S1是没有前趋的结点,称为初始结点,S7是没有后继的结点,称为终止结点。而图2-1(b)是有两个初始结点的前趋图。至于图2-1(c),因为S2与S3形成一个循环,所以它不是前趋图。第2章 处 理 机 管 理图2-1 例图(a)(b)(c)S2S3S4S1S5S6S7S1S2S3S4S1S2S3第2章 处 理 机 管 理 2 2程序的顺序执行程序的顺序执行 1)程序的顺序执行 所谓程序的顺序执行,是指一个程序运行时独占
4、整个系统资源,处理机严格按照程序所规定的顺序进行操作。在一个程序段中,只有前面的一个操作执行完,才能进行后面一个操作。在一个程序段的执行过程中,不能插入其它程序段中的操作。例如,对于下述程序段:S1:READ(X,Y);S2:C=X+Y;S3:PRINT C;第2章 处 理 机 管 理 其中S2必须在X、Y被赋值后才能执行,同样,S3也必须在C被赋值后才能执行。因此,这个程序段的执行顺序如图2-2所示。图2-2 一个程序段中语句的顺序执行S1S2S3第2章 处 理 机 管 理 类似地,在一个系统中,若要执行几个程序段,只有当一个程序段执行完后才能执行另一个程序段中的操作。例如,一个程序段通常由
5、输入(I)、计算(C)、输出(P)等操作组成,两个程序段的顺序执行则如图2-3所示。图2-3 两个程序段的顺序执行I1C1P1I2C2P2第2章 处 理 机 管 理 2)程序顺序执行的特征 顺序性:处理机的操作严格按照程序所规定的操作顺序执行,时间上完全有序,即只有前一个操作执行完以后,才能进行后继操作。封闭性:程序执行时独占系统资源,系统内各种资源的状态(初始状态除外)只能被本程序所改变,因此其执行结果不受外界因素的干扰。结果可再现性:只要程序执行的环境与初始状态不变,当重复执行时,所获得的结果相同,与执行速度无关。第2章 处 理 机 管 理 3 3程序的并发执行程序的并发执行 并行操作是指
6、多个操作在计算机系统的各个硬件部件上同时进行。例如,CPU与CPU的并行操作,CPU与I/O设备的并行操作,这是真正意义上的“同时”操作,称之为并行操作。我们将要介绍的并发执行是指在一个时间段内,多个程序段在计算机系统中“一起”执行。例如,在一个时间段内,一个CPU在为多道程序工作,而在某一个瞬间,一个CPU只能运行一道程序,它只是在多道程序中快速切换,给人以CPU“同时”运行几道程序的感觉。每个程序内部仍是按顺序执行,但是多个程序的执行过程是可以交叉的,这是一种伪并行,称之为并发执行。第2章 处 理 机 管 理 1)并发执行 若干程序段在执行时间上有重叠,即一个程序段的执行过程中插入了其它程
7、序的操作,称为并发执行,如图2-4所示。程序P与程序Q在t2t4之间是并发执行的,程序Q与程序R在t3t5之间是并发执行的,而在t3t4之间,程序P、程序Q与程序R是并发执行的。图2-4 若干程序段的并发执行t1Pt2t3t4Qt5t6RT第2章 处 理 机 管 理 2)程序并发执行的特征 若干个程序段的并发执行,产生了一些与程序顺序执行时不同的特征:顺序性:多个程序段并发执行时,每个程序段中语句的顺序执行仍然保持,但是多个程序段之间不再保持顺序执行的关系。间断性:多个程序段并发执行时,由于共享资源或由于相互合作而形成执行时的相互制约关系,使得每个程序段执行时产生了间断性。例如,在单处理机系统
8、中,多个程序段并发执行,当CPU执行一道程序时,必然导致其它程序暂时不能执行,这将使得程序具有“执行暂停执行”这种间断的活动规律。第2章 处 理 机 管 理 非封闭性:多个程序段并发执行时,每个程序段不再独占系统资源,执行时受外界因素影响。例如,当一个用户的程序段执行中使用某个I/O设备时,其他用户的程序段申请使用该设备,就必须等待。不可再现性:多个程序段并发执行时,产生了非封闭性,不再独占系统资源,此时,即使程序执行的环境与初始状态不变,重复执行时运算速度通常也不可再现,若运算结果与执行速度有关,则可能会被改变。第2章 处 理 机 管 理 例如,两个并发执行的程序段共享一个变量,当两个程序段
9、推进速度发生变化时,可能导致程序中引用共享变量的语句得到不同的结果,即程序运行结果不确定。我们通过下面一个例子来说明这种现象发生的过程。设A与B是两个可以并发执行的程序段,N是共享变量。A:B:N=N+1;PRINT N;N=0;第2章 处 理 机 管 理 因为程序段A与B是并发执行的程序段,每个程序段中的语句是顺序执行的,但是两个程序段的执行过程是可以交叉的。程序段A中的N=N+1语句可能在程序段B的PRINT N语句之前执行,也可能在PRINT N与N=0语句之间执行,还可能在N=0之后执行。不同的执行顺序会呈现不同的结果。例如当N的初始值为5时,会发生如下情况之一:若程序段A中的N=N+
10、1语句在程序段B的PRINT N语句之前执行,则输出为6,N为0;第2章 处 理 机 管 理 若程序段A中的N=N+1语句在程序段B的PRINT N与N=0语句之间执行,则输出为5,N为0;若程序段A中的N=N+1语句在程序段B的N=0之后执行,则输出为5,N为1。这样的结果用户是不能接受的。我们需要的是程序能并发执行,同时还要保证其具有可再现性。第2章 处 理 机 管 理4 4程序并发执行的条件程序并发执行的条件 1)读集 R(Pi)=a1,a2,a3,.,am用以表示程序段Pi执行时需要参考变量的集合,称为读集。其中a1,a2,a3,.,am是需要参考的变量。例如,有语句:S1:c=a+b
11、;则 R c=a+b=a,b S2:x=x-1;则 R x=x-1=x 第2章 处 理 机 管 理 2)写集 W(Pi)=b1,b2,b3,.,bn用以表示程序段Pi执行中要改变的变量的集合,称为写集。其中b1,b2,b3,.,bn是需要改变的变量。例如,有语句:S1:c=a+b;则 w c=a+b=c S2:x=x-1;则 w x=x-1=x 第2章 处 理 机 管 理 3)Bernstein条件 1966年,Bernstein提出了程序可以并发执行的条件,简称Bernstein条件。若两个程序段P1和P2能满足以下条件:R(P1)W(P2)=;R(P2)W(P1)=;W(P1)W(P2)=
12、;则P1和P2可以并发执行,同时保证结果具有可再现性。第2章 处 理 机 管 理 例如,有四条语句:S1:a=x+1;S2:b=y+1;S3:c=a+b;S4:d=c+1;显然,S1与S2可以并发执行,而S1与S3,S2与S3,S3与S4等均不可并发执行,用Bernstein条件可以验证。通过图2-5,也很容易得到验证。第2章 处 理 机 管 理图2-5 具有四条语句的前趋图S1S2S3S4第2章 处 理 机 管 理 5 5进程定义与特征进程定义与特征 1)进程定义 由于计算机众多硬件并行操作及多道程序的并发执行,使得“程序”的概念已经无法刻画程序执行中的活动与变化情况,因此引入了进程的概念。
13、1961年,进程的概念首先由美国麻省理工学院在MULTICS系统中引入,得到人们的普遍重视并广为采用。随后,许多人都对进程下过定义,如:进程是可以并发执行的程序在一个数据集合上的运行过程。第2章 处 理 机 管 理 进程是程序的一次执行过程。进程是可参与并发执行的程序。进程是一个程序及其数据在处理机上执行时所发生的活动。进程是在给定初始状态和内存区域的条件下,可以并发执行的程序的一次执行过程。根据1978年在庐山召开的全国操作系统会议的讨论,认为“进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动”。第2章 处 理 机 管 理 2)进程的特征 进程是与程序完全不同的新概念,它具有以
14、下特征:并发性:在内存中的多个进程能在一段时间内同时运行。并发性使得进程的程序执行过程随时会被中断。多个进程的程序可以并发执行,这是进程最基本的特征之一,而程序是不能并发执行的。第2章 处 理 机 管 理 动态性:进程是程序的一次执行过程,“动态”是进程另一个最基本的特征。当要完成某项任务时为之创建进程,由处理机调度程序来选择要调度的进程并运行该进程的程序,当资源得不到满足时暂停执行,资源能够满足时,继续执行,直至任务完成后撤消该进程。因此,进程由创建到消亡是有一定生命期的,在生命期间进程是一个活动实体。而程序是可以永久存放于某种介质上的有序指令集合,是一个静态实体。第2章 处 理 机 管 理
15、 独立性:进程是一个能够独立运行的基本单位,即只有进程才能被独立调度运行及独立获得资源。在系统中,除了系统提供的服务外,只有进程在活动,而程序是不能作为调度运行和获得资源的基本单位的。异步性:这是指进程以各自独立的、不可预知的速度向前推进。这一特性基于进程的并发性,需要系统采取必要的措施,以保证各个进程的程序之间能协调运行。第2章 处 理 机 管 理 结构特征:进程实体中包含有程序段、数据段,还必须有一个存放进程生命期间管理信息的数据结构进程控制块PCB(Process Control Block)。进程控制块PCB能够保证进程并发执行及在生命期间进程活动的顺利进行。不同的进程是以PCB来区别
16、的,不同的PCB代表不同的进程。第2章 处 理 机 管 理2.1.2 2.1.2 进程的描述进程的描述 1 1进程的组成进程的组成 进程由三部分组成:进程控制块PCB、程序段和数据段,如图2-6所示。一个进程一经被创建,就有如下三部分内容:(1)PCB表:为便于管理,PCB表被放在不同的队列或状态中。新建进程的PCB表被放在就绪队列中,根据进程在活动过程中所处的状态,PCB表可被放在就绪队列或阻塞队列中,也可以处于执行状态中。(2)可执行的程序段:其首地址由PCB表中程序地址信息字段直接或间接指出。(3)可加工的数据段:其首地址由PCB表中数据地址信息字段直接或间接指出。有的进程可以没有数据段
17、。第2章 处 理 机 管 理图2-6 进程的组成PCB程序段数据段第2章 处 理 机 管 理 进程控制块PCB是为描述进程动态变化过程以及对进程进行控制与管理而设的数据结构。进程与PCB表一一对应,操作系统根据PCB表了解进程的存在,它是进程是否存在的惟一标志。PCB表常驻内存,属于系统空间,只有操作系统程序才能够访问,用户程序不得访问。进程的程序段反映了进程的功能,数据段是程序加工的对象,均属于用户空间。运行时可以根据需要全部地或者部分地放在内存中。进程处于非执行状态时,如果内存有剩余空间,它的程序段和数据段放在内存,如果内存无剩余空间,则可以放在外存。进程处于执行状态时,程序段与数据段必须
18、有一部分放在内存,以方便执行。程序段和数据段在内存与外存中的物理地址是由PCB表的地址信息字段指明的。第2章 处 理 机 管 理 2 2PCBPCB结构及其组织形式结构及其组织形式 PCB表记录了描述进程情况及控制进程运行所需要的全部信息,操作系统根据PCB提供的信息实施对进程的控制与管理。在一个系统中,PCB表的个数是有限的。当一个进程被创建时,为其分配一个空闲的PCB表,当进程被撤消时,回收其所占用的PCB表。PCB表被系统访问的频率很高,因此是常驻内存的。操作系统专门开辟一个PCB表区,每个PCB是一片连续的存储单元。根据PCB表所对应的进程的运行状态,所有的PCB表被组成若干个队列,如
19、就绪队列、阻塞队列等,空闲的PCB表组成一个空闲队列,以备创建进程时进行申请使用和撤消进程时进行回收使用。第2章 处 理 机 管 理 1)PCB的结构 PCB是一个线性表结构,通常包括以下内容:进程标识符:分为外部标识符和内部标识符。外部标识符由创建进程者提供,通常由字母、数字等组成,在用户或其它进程访问该进程时使用。内部标识符是一个整数。在操作系统的PCB表区中,有多个PCB表,每个PCB表有一个序号,通常将这个序号做为内部标识符,以方便系统使用。程序地址:进程的程序部分在内存及外存的地址,或描述程序地址信息的段表地址、页表地址、索引表地址等。第2章 处 理 机 管 理 数据地址:进程的数据
20、部分在内存及外存的地址,或描述数据地址信息的段表地址、页表地址、索引表地址等。状态:进程当前所处的状态,即就绪状态、执行状态及阻塞状态,已经被创建的进程的状态必为此三者之一。CPU状态保护区:CPU状态信息主要由通用寄存器、程序计数器PC、程序状态字PSW以及用户栈指针等组成,也称为中断点现场信息。CPU状态保护区用以保护进程被中断而暂停执行时CPU的状态信息,以便进程重新获得CPU时能够重布现场,从上次被中断处继续执行。第2章 处 理 机 管 理 进程优先级:进程优先级是用以描述进程使用处理机的优先级别的整数,是优先级调度算法中调度的依据。通常数值越小,优先级别越高。优先级可以处理成不变的,
21、称为静态优先级,也可以处理成可变的,称为动态优先级。通信信息:进程通信时需要使用的信息,包括标志位、信号或信号量、消息队列信息等。如消息缓冲通信机制中,在进程的PCB表中,需要有消息队列队首指针、消息个数及互斥使用消息队列的信号量等。资源信息:进程对资源的需求及已经分配资源的清单。第2章 处 理 机 管 理 队列指针:除了执行状态的进程外,其余的进程PCB表都处于某一就绪队列或某一阻塞队列中。队列指针用于指向进程所在队列中下一个PCB表的首地址。家族指针:进程在运行过程中可以创建新进程来协同完成同一任务。创建者称为父进程,被创建者称为子进程。父进程PCB表中有指向子进程的PCB表的指针,子进程
22、的PCB表中有指向父进程的PCB表的指针,这就是家族指针,它可以将一个家族的进程联系起来,形成进程家族树。第2章 处 理 机 管 理 2)PCB表的组织形式 在内存的系统空间中设有PCB表区,表区中的PCB表的个数根据系统的大小来设置。为了对进程实施有效的管理,通常将它们用某种方式组织起来,目前常用方式有如下几种:链接方式:用PCB表中的队列指针项将具有相同状态的进程的PCB表链接起来,这样PCB表就形成就绪队列、空闲队列及阻塞队列等。其中,空闲队列是一个,而就绪队列与阻塞队列可以是多个。例如,可以将不同优先级的进程的PCB表排在不同的就绪队列中,也可以将阻塞原因不同的进程的PCB表排在不同的
23、阻塞队列中。系统中的某些固定单元分别指向各队列队首地址及执行状态进程的PCB表的首地址。第2章 处 理 机 管 理 以链接方式组织的PCB表如图2-7所示。其中,处于执行状态的是PCB1,处于就绪状态的是PCB3、PCB4、PCB2,处于阻塞状态的是PCB7、PCB6、PCB5,处于空闲状态的是PCB8、PCB9等。索引方式:根据进程的状态,在内存中建立相应的索引表,系统中的某些固定单元保存各索引表的首地址。各索引表的表目中记录相应状态的PCB表的首地址。以索引方式组织的PCB表如图2-8所示。对于图2-7中PCB的组织情况,可以用图2-9表示。第2章 处 理 机 管 理图2-7 链接方式组织
24、PCB表示意图PCB1PCB2PCB3 4PCB4PCB5PCB6PCB7PCB8PCB92569空闲队列指针阻塞队列指针就绪队列指针执行指针第2章 处 理 机 管 理图2-8 索引方式组织PCB表示意图PCB1PCB2PCB3PCB4PCB5PCB6PCB7342就绪索引表765阻塞索引表执行指针就绪表指针阻塞表指针第2章 处 理 机 管 理图2-9 进程PCB表组织的描述执行就绪阻塞PCB1PCB3PCB4PCB2PCB7PCB6PCB5第2章 处 理 机 管 理 3 3进程的状态及其变迁进程的状态及其变迁 1)进程的基本状态及其变迁 进程有三个基本状态:就绪状态、执行状态与阻塞状态。进程
25、的基本状态及其变迁如图2-10所示。进程在运行过程中必处于这三个基本状态之一。图2-10 进程的基本状态及其变迁图执行被抢占时钟中断就绪阻塞某等待事件完成进程调度某等待事件发生(如I/O请求、P操作等)(如I/O完成、V操作等)第2章 处 理 机 管 理 就绪状态:进程获得必要资源,例如内存等,已经具备了执行条件,只是没有空闲的CPU,处于等待CPU的状态。在系统中,将处于就绪状态的多个进程的PCB表排成一个队列,或按照某种规则排在不同的队列中,这些队列称为就绪队列。执行状态:进程已经获得必要的资源及CPU,它的程序正在执行中,这时进程的状态称为执行状态。在多处理机系统中,可以有多个进程处于执
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 原理 培训 实操第
限制150内