进程管理-PPT课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《进程管理-PPT课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 管理 PPT 课件
- 资源描述:
-
1、第二章第二章 进程管理进程管理 1 1 进程的基本概念进程的基本概念 2 2 进程控制进程控制 3 3 进程同步进程同步 4 4 经典进程同步问题经典进程同步问题 5 5 管程机制管程机制 6 6 进程通信进程通信 7 7 线程线程 1 进程的基本概念 操作系统的特性之一是并发与共享,即在系统(内存)中同时存在几个相互独立的程序,这些程序在系统中既交叉地运行,又要共享系统中的资源,这就会引起一系列的问题,包括:对资源的竞争、运行程序之间的通信、程序之间的合作与协同等。要解决这些问题,用程序的概念已经不能描述程序在内存中运行的状态,必须引人新的概念进程。前趋图前趋图(Precedence Gra
2、ph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。图中每个结点可用于描述一条语句、一个程序段或进程结点间的有向边则表示在两结点之间存在的偏序或前趋关系“”,=(Pi,Pj)|Pi must complete before Pj may start 如果(Pi,Pj),可写成 PiPj;,称Pi是Pj的直接前趋,而Pj是Pi的直接后继。在前趋图中,没有前趋的结点称为初始结点(Initial Node) ,没有后继的结点称为终止结点(Final Node) 。2.1.1前趋图前趋图(a) 程序的顺序执行(b) 三条语句的顺序执行I
3、1C1P1I2C2P2S1S2S3S1S2S3 每个结点还可具有一个重量(Weight),用于表示该结点所含有的程序量或结点的执行时间。 前趋图前趋图 P1P3P8P9P4P2P5P6P7S1S2S3(a) 具有九个结点的前趋图(b) 具有循环的有向图图2l示出的前趋图,存在下面的前趋关系:P1P2, P1P3,P1P4,P2P5,P3P5,P4P6, P5P7,P6P7或表示为: P = P1, P2, P3, P4, P5, P6, P7= (P1,P2) , (P1, P3), (P1, P4) , (P2, P5) , (P3, P5) ,(P4, P6) , (P5, P7) , (
4、P6, P7) 注意:前趋图中必须不存在循环。2.1.1前趋图前趋图一、概念 一个程序由若干个程序段组成,在各程序段之间,必须按照某种先后次序顺序执行,仅当前一(程序段)执行完后,才能执行后继操作。这种程序执行的方式就称为程序的顺序执行程序的顺序执行。 例如: (a) 程序的顺序执行(b) 三条语句的顺序执行I1C1P1I2C2P2S1S2S32.1.2程序的顺序执行1.顺序性 处理机严格按照程序所规定的顺序执行,即每个操作必须在下一个操作开始之前结束。2.封闭性 程序一旦开始执行,其执行结果不受外界的影响。3.可再现性 程序执行的结果与初始条件有关,而与执行时间无关。二、程序顺序执行的特点例
5、:在系统中有n个作业,每个作业都有三个处理步骤,输入数据、处理、输出,即Ii,Ci,Pi(i=1,2,.,n)。这些作业在系统中执行时是对时间的偏序,有些操作必须在其它操作之前执行,这是有序的,但有些操作是可以同时执行的。例如:I1、C1、P1的执行必须严格按照I1,C1,P1的顺序,而P1与I2,C1与I2,I3与P1是可以同时执行的。图中存在下面的前趋关系:IiCi, IiIi1, CiPi, CiCi1, PiPi1而Ii1和Ci及Pi1是重迭的 ,它们可以并发执行。P1P2P3P4I1I2I3I4C1C2C3C42.1.3程序的并发执行及其特征并发执行时的前趋图 例如:对于具有下列四条
6、语句的程序段:S1: a:=x+2;S2: b:=y+4;S3: c:=a+b;S4: d:=c+8;其前趋图如右图。 其中S1和S2可以并发执行。2.1.3程序的并发执行及其特征程序并发执行程序并发执行 (定义)(定义) 若干个程序段同时在系统中运行,这些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。PQR并发执行区2.1.3程序的并发执行及其特征程序并发执行的描述:程序并发执行的描述: parbegin S1;S2;S3;.;SN parend; Si(i=1,2,3,.,n)表示n个语句(程序段),这
7、n个语句用parbegin和parend括起来表示这n个语句是可以并发执行的。这是Dijkstra提出的。2.1.3程序的并发执行及其特征假设有一个程序由S0Sn+1个语句,其中 S1Sn语句是并发执行的,程序如下: S0; parbegin S1;S2;S3;.;SN parend; Sn+1;2.1.3程序的并发执行及其特征程序并发执行时的特征程序并发执行时的特征1、间断性(执行暂停执行)2、失去了程序的封闭性3、不可再现性(失去封闭性引起)2.1.3程序的并发执行及其特征 例如,有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时,都要做N=N+1操作;程序B每执行一次时, 都要
8、执行Print(N)操作,然后再将N置成“0”。程序A和B以不同的速度运行。 可能出现以下三种情形: (1) N=N+1在Print(N)和N=0之前,此时得到的N值分别为n+1, n+1, 0。 (2) N=N+1在Print(N)和N=0之后,此时得到的N值分别为n, 0, 1。 (3) N=N+1在Print(N)和N=0之间,此时得到的N值分别为n, n+1, 0。 结论:程序在并发执行时, 由于失去了封闭性,其计算结果与并发程序的执行速度有关,使程序执行失去可再现性。 进程的特征与状态进程的特征与状态 在单道程序设计环境下,CPU被一道程序独占,CPU严格按程序的指令顺序来执行,程序
9、具有顺序性、封闭性和可再现性特征。 在多道程序设计的环境下,系统中有多个程序同时运行。此时的程序具有间断性、失去了程序的封闭性、不可再现性等特征。 程序一旦运行起来,它不但与程序本身有关,而且与它运行时所处的运行环境有关,程序的活动不再是静态的、封闭的,而显现出并发性、动态性以及相互制约的关系。所以用程序的概念已经不能描述上述这些特征,于是引入进程进程的概念。 进程的概念来自于麻省理工的MULTICS、IBM的 TSS/360,在IBM的OS/360/370系统中也曾叫过任务(task)。进程的特征进程的特征(1)结构特征:从结构上看,进程实体是由程序段、相关的数据段和进程控制块(PCB,pr
10、ocess control block)三部分组成。(2)动态性:进程的实质是进程实体的一次执行过程,它有着创建、活动、暂停、终止等过程,具有一定的生命期,是动态地产生、变化和消亡的。(3)并发性:多个进程实体同存于内存中,且能在一段时间内同时运行。(4)独立性:进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。(5)异步性:各个并发进程按照各自独立的、不可预知的速度向前推进。2.1.4 进程的特征与状态进程的特征与状态 行为的一个规则叫做程序,程序在处理机上执行时所发生的活动称为进程(Dijkstra)。 进程是这样的计算部分,它是可以和其它计算并行的一个计算。(Donovan
11、) 进程(有时称为任务)是一个程序与其数据一道通过处理机的执行所发生的活动。(Alan.C. Shaw) 进程是执行中的程序。(Ken Thompson and Dennis Ritchie ) 教材上给出的进程的定义: 进程进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。进程的定义1、程序是指令的集合,是静态的概念。 进程是程序在处理机上的一次执行过程,是动态的概念。程序可以作为软件资料长期保存。进程是有生命周期的。2、进程是一个独立的运行单位,能与其它进程并发活动。而程序则不是。3、进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。4、一个程序可以作为
12、多个进程的运行程序,一个进程也可以运行多个程序。进程与程序的区别与联系进程与程序的区别与联系 例子:光盘(CD、VCD) 光盘(程序) 放光盘的活动(进程)进程与程序的区别与联系进程与程序的区别与联系进程在系统中的活动规律是: 执行 暂停 执行(间断性)进程的三种基本状态: 就绪状态 执行状态 阻塞状态(又称等待,睡眠)进程的三种基本状态进程的三种基本状态1. 就绪状态(Ready)若进程已具备了运行条件,只因CPU被别的进程占用而不能被CPU执行,则称此时进程处于就绪状态。一旦把CPU分配给它,该进程就可以运行。从宏观上讲,它是一种逻辑上的可运行状态。系统中处于就绪状态的进程可能有多个,通常
13、将它们按某种策略(优先级)排成一个队列,称为就绪队列。 进程的三种基本状态进程的三种基本状态2. 执行状态(Running)当一个进程已分配到CPU,它的程序正在被CPU执行时进程所处的状态称执行状态,也称为运行状态。对于单CPU系统而言,处于执行状态的进程只可能有一个,多处理机系统中则有多个。进程的三种基本状态进程的三种基本状态3. 阻塞状态(Wait)正在执行的进程因等待某种事件的发生而暂时不能运行便放弃CPU的状态称阻塞状态(等待状态),例如,等待输入/输出、等待进程间的同步/互斥等。一旦引起等待的原因消失,进程便转为就绪状态。以便在适当的时候占用CPU。系统中处于等待状态的进程可能有多
14、个,通常也将它们排成一个队列。有的系统按照进程不同的等待原因,把处于等待状态的进程排成多个队列。进程的三种基本状态进程的三种基本状态1就绪状态执行状态2执行状态阻塞状态3执行状态就绪状态4. 阻塞状态就绪状态时间片完时间片完进程状态的转换:进程的三种基本状态的转换进程的三种基本状态的转换 进程的动态性决定了它不会固定处于某个状态,系统中的进程由于各种不同的原因在以上各个状态之间变化。其状态变化及原因如图所示。 创建(新)状态和终止状态 (1)创建(新)状态:一个进程刚刚建立,但还未将它插入就绪队列时的状态。 (2)终止状态:一个进程已经正常结束或异常结束,OS已将它从就绪队列中移出,但尚未将它
15、撤消时的状态。进程状态的转换1创建(新)状态就绪状态2就绪状态执行状态3执行状态阻塞状态4执行状态就绪状态5执行状态终止状态 6阻塞状态就绪状态 时间片完时间片完进程状态变迁图进程状态变迁图进程的挂起状态进程的挂起状态 使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,我们把这种静止状态称为挂起状态挂起状态(静止状态)。引入挂起状态的原因有:1终端用户的需要终端用户在自己的程序运行期间发现有可疑问题,希望暂时使自己的程序静止下来。2父进程请求 父进程希望挂起自己的子进程,以便考查和修改子进程,或协调子进程的活动。3负荷调节的需要 当实时系统中的负载较重,影响
16、到实时任务的执行,可挂起不重要进程,保证系统正常运行。4操作系统的需要操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记帐。带有挂起状态时的进程状态转换带有挂起状态时的进程状态转换 所谓原语原语就是计算机机器指令的延伸,它是由若干条机器指令构成,并完成一种特定功能的程序段。 原语操作由操作系统内核提供。 为保证原语操作的正确性,还规定原语在执行期间必须一次执行完,中间不允许被中断。也就是说,原语具有原子性,即原语操作中的所有指令(动作)要么全做,要么全不做,不允许被分割。在单CPU系统中,在执行原语的过程中一般要关中断。1活动就绪静止就绪: 当进程处于未被挂起的就绪状态时,称此
17、为活动就绪状态,表示为Readya,此时进程可被调度。当用挂起原语Suspend将该进程挂起后,该进程便转变为静止就绪状态,表示为Readys。处于Readys状态的进程,不再被调度执行。2活动阻塞静止阻塞: 当进程处于未被挂起的阻塞状态时,称为它处于活动阻塞状态,表示为Blockeda。当用Suspend原语将它挂起后,进程便转变为静止阻塞状态,表示为Blockeds。 处于该状态的进程,在其所期待的事件出现后,它将从静止阻塞变为静止就绪。带有挂起状态时的进程状态转换带有挂起状态时的进程状态转换 3静止就绪活动就绪: 处于Readys状态的进程,若用激活原语Active激活后,该进程将转变为
18、 Readya状态。4静止阻塞活动阻塞: 处于Blockcds状态的进程,若用激活原语Active激活后,进程将转变为Blockeda状态。 带有挂起状态时的进程状态转换带有挂起状态时的进程状态转换 具有挂起状态的进程状态图 活动就绪静止就绪执行挂起激活释放挂起活动阻塞静止阻塞挂起激活释放请求I/O带有挂起状态时的进程状态转换带有挂起状态时的进程状态转换 时间片完调度具有创建、终止和挂起状态的进程状态图 活动就绪静止就绪执行挂起激活释放挂起活动阻塞静止阻塞挂起激活释放请求I/O带有挂起状态时的进程状态转换带有挂起状态时的进程状态转换 创建许可许可终止释放时间片完调度在系统中一个进程存在: 进程
19、控制块PCB(Process Control Block)(记录型数据结构) 进程的执行程序(一个可执行文件)进程执行时所需的数据 进程总是位于某个队列(就绪、阻塞某事件队列) 处于某种状态(执行、就绪、阻塞) 占用某些系统资源(内存,打开某些文件、处理机、外设)进程控制块进程控制块PCB中记录了操作系统所需的、用于描述进程的当前情况及控制进程运行所需的全部信息。1.进程标识符用于惟一标识一个进程。内部标识符操作系统为每一个进程赋予一个惟一的数字标识符(进程的序号)外部标识符由创建者提供,由字母、数字组成。为了描述进程的家族关系,还应设置父进程标识及子进程标识。还可设置用户标识。2.处理机状态
20、信息由处理机的各种寄存器(通用寄存器、指令计数器、程序状态字PSW、用户栈指针)中的内容组成。进程控制块中的信息进程控制块中的信息3.进程调度信息包括进程状态、进程优先级、进程调度所需的其它信息(与所采用的进程调度算法有关,如进程已等待CPU的时间总和、进程已执行的时间总和等)、事件(进程由执行状态转变为阻塞状态所等待发生的事件)。4.进程控制信息包括程序和数据的地址(进程的程序和数据所在的内存或外存地址)、进程同步和通信机制、资源清单(除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单)、链接指针等。进程控制块中的信息进程控制块中的信息 进程控制块PCB的作用是使一个多道环境下
21、不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个与其它进程并发执行的进程。 操作系统是根据PCB来对并发执行的进程进行控制和管理的。可以说PCB是进程存在的惟一标志。当进程被创建时,系统要为其建立一个PCB,在进程的整个生命期内系统利用该PCB对其进行控制,进程运行结束后要回收其PCB。(户口) 由于PCB经常被系统访问,故PCB应常驻内存。系统将所有的PCB组织成若干个链表(或队列),存放在操作系统中专门开辟的PCB区内。进程控制块的作用进程控制块的作用进程控制块的组织方式进程控制块的组织方式1)1)线性方式线性方式即将系统中所有的PCB都组织在一张线性表中,将该表的首地址存
22、放在内存的一个专用区域中。该方式实现简单、开销小,但每次查找时都需要扫描整张表,因此适合进程数量不多的系统。PCB1PCB2PCB3PCBn进程控制块的组织方式进程控制块的组织方式2)2)链接方式链接方式 系统把所有进程的PCB按其状态实行分类管理,每一类用一个队列来管理。一般来说,系统中的进程队列可分为三类,即就绪队列、若干个阻塞队列(根据阻塞原因的不同把处于阻塞状态的进程的PCB排成不同的队列)和空白队列 。PCB14PCB2PCB3PCB4PCB5PCB6PCB7PCB8PCB93087901执行指针就绪队列指针阻塞队列指针空闲队列指针进程控制块的组织方式进程控制块的组织方式3)3)索引
23、方式索引方式系统根据所有进程的状态建立几张索引表(就绪索引表、阻塞索引表等),并把各索引表在内存的首地址记录在内存的一些专用单元中。在每个索引表的表目中,记录具有相应状态的某个PCB在PCB区中的地址。执行指针就绪索引表PCB1PCB2PCB3PCB4PCB5PCB6PCB7阻塞索引表就绪表指针阻塞表指针 进程控制用于创建一个新进程,终止一个已完成的进程,或去终止一个因出现某事件而使其无法运行下去的进程,还可负责进程运行中的状态转换。 进程控制一般由操作系统内核来实现。在操作系统内核中,有一组程序专门用于完成对进程的控制。 进程控制包括: 进程创建、 进程终止、 进程阻塞、 进程唤醒、进程挂起
24、、进程激活2.3 进程控制进程控制这些操作都要对应地执行一个特殊的程序段(操作系统核心程序),同时系统也通过系统调用(称为原语,一种特殊的系统调用)给用户提供进程控制的功能。进程图进程图(Process Graph)(Process Graph)是用于描述一个进程的家族关系的有向树。一个进程可以通过创建原语产生一个新进程 在进程Pi创建了进程Pj之后,称Pi是Pj的父进父进程程(Parent Process), Pj 是Pi的子进程子进程(Progeny Process)。用一条由进程Pi指向进程Pj的有向边来描述它们的父子关系。创建父进程的进程称为祖先进程祖先进程。这样便形成了一棵进程树进程
25、树,树的根结点作为进程家族的祖先(Ancestor)。进程树的特点:进程树的特点:资源分配严格,子进程可以继承父进程所拥有的资源;当子进程被撤消时,应将其从父进程那里获得的资源归还给父进程;在撤消父进程时,也必须同时撤消其所有的子进程,便于管理;系统可根据需要赋予进程不同的控制权,并可以把一个任务分解成若干个进程来完成,具有较好的灵活性;树形结构层次清晰,关系明确。 进程的创建进程的创建ABCDIJEKGLMHNF图2-9进程树祖先父进程子进程 引起创建进程的事件引起创建进程的事件 1用户登录 2作业调度 3提供服务 4应用请求由系统内核创建由应用进程自已创建进程的创建进程的创建 创建进程的主
展开阅读全文