操作系统进程管理.ppt
《操作系统进程管理.ppt》由会员分享,可在线阅读,更多相关《操作系统进程管理.ppt(111页珍藏版)》请在课桌文档上搜索。
1、1,基础:进程描述及控制策略:进程调度实现:互斥与同步避免:死锁与饥饿解决:几个经典问题关于:进程通信,2,第二章 进程管理,3,本章重点,如何理解进程 进程与程序的区别 进程的同步 如何理解线程,4,2.1进程的基本概念,5,1.程序的顺序执行,仅当前一操作(程序段)执行完后,才能执行后继操作。例如:S1:a=x+y;S2:b=a-5;S3:c=b+1;,三条语句的顺序执行,S,1,S,2,S,3,6,2.程序顺序执行时的特征,顺序性处理机的每一操作必须在上一个操作结束之后开始。(2)封闭性程序一旦开始执行,其执行结果不受外界因素影响。(3)可再现性只要程序执行时的环境和初始条件相同,当程序
2、重复执行时,都将获得相同的结果。,7,3.前趋图,有向无循环图(DAG),用于描述进程之间执行的前后关系,表示方式:(1)p1p2(2)=(p1,p2)|p1 必须在p2开始前完成结点表示:一条语句,一个程序段,一进程。,8,4.程序的并发执行,多个程序的并发执行(可能性分析),在该例中存在下述前趋关系:IiIi+1,CiCi+1,PiPi+1,IiCi,CiPi,9,例:S1:a=x+2 S2:b=y+4 S3:c=a+b S4:d=c+b,10,5.程序并发执行时的特征间断性:共享、合作、制约导致:执行暂停执行失去封闭性:主要由共享资源引起不可再现性:相同环境和初始条件,重复执行结果不同,
3、程序AL1:N:=N+1,程序BL2:PRINT(N)N:=0,设共享变量N初值为5,则会产生3种执行结果:6,6,05,0,15,6,0,11,6.进程的特征,进程的概念进程是进程实体的运行过程,是分配和管理资源的基本单位。举例:炒菜,12,进程的特征1.结构特征2.动态性(进程最基本的特征)“由创建而产生,由调度而执行,由撤销而消亡”3.并发性多个进程同在内存中,且能在一段时间内同时运行。4.独立性独立运行,独立分配资源和独立接受调度。5.异步性进程按各自独立的、不可预知的速度向前推进,13,程序是静态的,进程是动态的;(菜谱、炒菜)进程具有并发特征,而程序没有;进程是系统分配调度的独立单
4、位,能与其他进程并发执行;一个程序对应多个进程,一个进程为多个程序服务。,进程与程序的区别:,14,7.进程的三种基本状态(1)就绪状态 进程已经分配了除处理机以外的所有必要资源,只要再获得处理机就能够执行的状态。这样的进程可能有多个,通常排成一个队列,称就绪队列。(2)执行状态 已经获得CPU,正在运行。在单处理机系统只有一个进程处于执行状态,多处理机系统则有多个处于执行状态。(3)阻塞状态 正在执行的进程由于发生某事件而暂时无法继续执行时,放弃处理机而进入的状态,又称等待状态。引起阻塞的状态:请求I/O,申请缓存。,15,进程的基本状态转换,就绪,阻塞,执行,进程调度,I/O请求,I/O完
5、成,时间片完,16,8.挂起状态(被换出内存的状态)引入原因终端用户请求父进程请求负荷调节需要操作系统需要挂起引起的状态转换,挂起状态,非挂起状态,静止状态,活动状态,17,有挂起状态的进程状态图,执行,活动就绪,静止就绪,静止阻塞,活动阻塞,18,9.进程的创建状态和终止状态,就绪,阻塞,执行,进程调度,I/O请求,I/O完成,时间片完,创建,终止,许可,释放,图:进程的五种基本状态及转换,19,有挂起状态的进程状态图,执行,活动就绪,静止就绪,静止阻塞,活动阻塞,创建,终止,许可,许可,释放,20,10.进程控制块,回顾进程结构Process Control BlockPCB是OS中最重要
6、的记录型结构。OS用PCB对并发进程进行管理和控制。PCB是进程存在的唯一标志。(PCB的作用)PCB常驻内存OS专门开辟PCB区将所有的PCB组织成若干个链表或队列。进程控制块中的信息标识说明信息现场信息管理信息,进程名,进程状态,程序存放位置,数据存放位置,通用寄存器内容,控制寄存器内容,断点地址,进程优先数,队列指针,标识信息,说明信息,现场信息,管理信息,21,PCB的组织方式链接,执行指针,就绪队列指针,阻塞队列指针,空闲队列指针,22,索引,23,2.2进程控制,24,进程管理中最基本功能是进程控制进程控制任务:进程的创建、终止、进程状态的转变等进程控制一般由OS内核实现,25,1
7、.原语(Primitive),由若干条指令组成,用于完成一定功能的一个过程。在管态下执行,常驻内存。在执行过程中不允许被中断,因此是顺序的而不可能是并发的。,26,2.进程图,27,3.进程的创建,引起创建进程的事件(1)用户登录(2)作业调度(3)提供服务(4)应用请求进程的创建步骤:使用原语Create()(1)申请空白PCB;(2)为新进程分配资源;(3)初始化进程控制块;(标识信息、处理机状态、处理机控制信息)(4)将新进程插入就绪队列。,由系统内核创建,由自己创建,28,4.进程的终止,引起进程终止的事件,正常结束,异常结束,外界干预,a.越界错误,b.保护错,c.非法指令,d.特权
8、指令错,e.运行超时,f.等待超时,g.算术运算错,h.I/O故障,a.操作员或OS干预,b.父进程请求,c.父进程终止,29,进程的终止过程:a.从PCB集合中检索出该进程的PCB,从中读出该进程的状态;b.若处于执行状态,终止该进程的执行,并置调度状态为真,重新调度;c.若有子孙进程,将所有子孙进程终止;d.将进程全部资源归还其父进程或系统;f.将其PCB从所在队列(或链表)中移出。,30,5.进程的阻塞与唤醒,引起进程阻塞和唤醒的事件(1)请求系统服务(2)启动某种操作(3)新数据尚未到达(4)无新工作可做进程阻塞过程使用Block原语,是进程自身的一种主动行为,31,进程唤醒过程使用W
9、akeup原语注意:Block和Wakeup是一对作用相反的原语,由其它进程执行,32,6.进程的挂起与激活,进程的挂起过程由进程自己或其父进程调suspend原语完成,将该进程PCB移到内存指定区域。检查被挂起进程的状态,若处于活动就绪状态,将其改为静止就绪;对于活动阻塞状态的进程,将之改为静止阻塞;若被挂起的进程正在执行,则转向调度进程重新调度。进程的激活过程系统执行active原语将指定进程激活。先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,将之改为活动就绪;若为静止阻塞,将之改为活动阻塞。阻塞、唤醒一般由OS实现,而挂起与激活可由用户干预。,33,2.3进程同步,34,进
10、程同步的主要任务:并发进程在执行次序上的协调,以达到有效的资源共享和相互合作,使程序执行有可再现性。,35,1.进程的两种制约关系,间接制约:进程间由于共享某种系统资源,而形成的相互制约。超市的试衣间抢占问题火车的厕所的抢占问题直接制约:进程间由于合作而形成的相互制约。多个合作进程,各自的执行结果互为对方执行的条件,从而限制执行速度。生产者消费者问题,进程A,进程B,进程A,进程B,资源,36,2.进程的两大关系,互斥 是并发执行的多个进程由于竞争同一资源而产生的相互排斥的关系同步 是进程间共同完成一项任务时直接发生相互作用的关系 同步进程间具有合作关系,在执行时间上必须按一定的顺序协调进行,
11、37,3.临界资源(cirtical resource),系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量。如打印机、磁带机、表格(商场试衣间、火车卫生间)。,38,可把一个访问临界资源的循环进程描述如下:repeat entry section critical section;exit section remainder section;until false;,4.临界区(cirtical section),在每个进程中访问临界资源的那段程序。进程必须互斥进入临界区。,检查临界资源是否能访问,将临界区标志设为未访问,39,5.同步机制应遵循的四条准则,空闲
12、让进忙则等待有限等待让权等待当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。,40,6.信号量机制,41,(6.1)信号量,信号量是一种数据结构信号量的值与相应资源的使用情况有关信号量的值仅由P、V操作改变,42,(6.2)整型信号量,整型数 SP操作(wait)原语V操作(signal)原语,Wait(s):while s=0 do no-op s:=s-1;Signal(s):s:=s+1;,注意:wait(s)和signal(s)是原子操作 只要信号量S=0就不断测试,不满足“让权等待”,43,(6.3)记录型信号量,记录型结构,包含两个数据项 type sem
13、aphore=record value:integer;L:list of process;endL:为进程链表,用于链接所有等待该类资源进程。S.value:为资源信号量,其初值:某类资源的数目,44,wait操作:申请一个单位资源procedure wait(S)var S:semaphorebeginS.value:=S.value 1;if S.value 0 then block(S.L)end,45,signal操作:释放一个单位资源procedure signal(S)var S:semaphonebeginS.value:=S.vaule+1if S.value=0 then
14、wakeup(S.L)end,46,强调:(1)S.value=0:表示系统中可用的资源数量(2)S.value0:其绝对值表示已阻塞的进程数量(3)根据信号量使用方式的不同,可分为:互斥信号量:申请或释放资源的使用权,初值为1资源信号量:申请或归还资源,初值为大于等于1的正整数,表示系统中某资源的可用数目。,47,(6.4)AND型信号量,process A:process B:wait(Dmutex);wait(Emutex);wait(Emutex);wait(Dmutex);,若两进程交替执行,则死锁,基本思想:将进程在整个运行中需要的所有资源,一次性全部分配给进程,待进程使用完后一起
15、释放。,48,在wait中加入AND条件,又称AND同步或同时wait操作:SwaitSwait(s1,s2,sn)if s11 and and sn 1 then for i:=1 to n do si:=si-1;endforelse当发现第一个si1就把该进程放入等待队列,并将其程序计数器置于Swait操作的开始位置end if,49,Ssignal(s1,s2,sn)for i:=1 to n do si:=si+1;将所有等待si的进程由等待队列取出放入到就绪队列 endfor,50,(6.5)信号量集,为提高效率而对AND信号的扩充。针对两类问题:一次需N个某类资源,需进行N次wa
16、it(S)操作的情况当资源数量低于某一下限值时,不予以分配的情况,51,信号量集代码描述,Swait(S1,t1,d1,S2,t2,d2,Sn,tn,dn)if S1=t1 and and Sn=tn thenfor i:=1 to n do Si:=Si-di;endforelse 当发现第一个siti就把该进程放入等待队列,并将其程序计数器置于Swait操作的开始位置endifSsignal(S1,d1,S2,d2,,Sn,dn)for i:=1 to n do Si:=Si+di;将所有等待si的进程由等待队列取出放入到就绪队列endfor;,52,三种特例:(1)Swait(S,d,d
17、)允许每次申请d个资源。当资源数少于d时,不予分配。(2)Swait(s,1,1)S1,记录型信号量。S=1时,互斥型信号量。(3)Swait(s,1,0)可控开关,当S1时,允许进入,S0时,不能进入。,53,7.信号量应用之一利用信号量实现进程互斥,var mutex:semaphore:=1beginparbeginprocess1:beginrepeat wait(mutex);critical setion signal(mutex);remainder sectionuntil false;end,54,process2:begin repeat wait(mutex);criti
18、cal setion signal(mutex);remainder sectionuntil false;endparend,55,在实现互斥时应注意:wait(mutex)和signal(mutex)必须成对的出现缺wait(mutex)将会引起系统混乱,不能保证对临界资源的互斥访问缺signal(mutex)将会使该临界资源永久不被释放,56,图212 前趋图举例,8.信号量应用之二利用信号量实现前驱关系,57,Var a,b,c,d,e,f,g:semaphore:=0,0,0,0,0,0,0;Beginparbegin begin S1;signal(a);signal(b);end
19、;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);end;begin wait(c);S4;signal(f);end;begin wait(d);S5;signal(g);end;begin wait(e);wait(f);wait(g);S6;end;parendend,58,管程的提出 采用wait()-signal()同步机制来编写并发程序,对于共享变量及信号量变量的操作将被分散于各个进程中 缺点:易读性差:因为要了解对于一组共享变量及信号量的操作是否正确,则必须通读整个系统或者并发程序。不利于修改
20、和维护:因为程序的局部性很差,所以任一组变量或一段代码的修改都可能影响全局。,9.管程机制,59,管程的定义 一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。管程的组成名称数据结构说明对该数据结构进行操作的一组过程/函数初始化语句,60,局部于管程的数据结构,仅被局部于管程的过程访问。局部于管程的过程,也仅能访问管程内的数据结构。管程(相当于围墙)把共享变量和对它进行操作的若干过程围起来。,61,管程的语法,type monitor_name=MONITOR;define;use;procedure();begin end;function(
21、):值类型;begin end;begin;end,62,2.4 经典进程的同步问题,63,一组生产者进程生产产品给一组消费者进程消费。为使他们并发执行,设一个有n个缓冲区的缓冲池,生产者一次向一个缓冲区中投入消息,消费者从一个缓冲区中取得消息。生产者消费者问题实际上是相互合作进程关系的一种抽象。制约关系:(1)不允许消费者进程到一个空缓冲区中取产品;(2)不允许生产者进程到一个已满且还没被取走的缓冲区中投放产品,1.生产者消费者问题,信号量,64,(1.1)利用记录型信号量来解决,设有n个缓冲区,每个缓冲区存放一个消息,用互斥信号量mutex对缓冲池实现互斥访问;利用资源信号量empty和f
22、ull分别表示缓冲池中空缓冲区及满缓冲区的数量;问题描述:Var mutex:semaphore:=1;empty:semaphore:=n;full:semaphore:=0;buffer:array0,n-1of item;in,out:integer:=0,0;,65,Producer:begin repeat producer an item nextp;wait(empty);wait(mutex);buffer(in):=nextp;in:=(in+1)mod n;signal(mutex);signal(full);until false;end;,Consumer:begin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 进程 管理
链接地址:https://www.desk33.com/p-250635.html