《进程管理》PPT课件.ppt
《《进程管理》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《进程管理》PPT课件.ppt(93页珍藏版)》请在三一办公上搜索。
1、第二章进程管理(2),第二章进程管理(2),2.4 进程同步2.5 管程机制2.6 进程通信,2.4 进程的同步,在多道程序系统中,由于资源共享或进程合作,使进程间形成间接相互制约和直接相互制约关系,这需要用进程互斥与同步机制来协调两种制约关系。进程同步的主要任务是使并发执行的进程间有效的共享资源和相互合作,进程的同步机制信号量及P.V操作(解决进程同步互斥问题),直接作用(相互合作):进程间的相互联系是有意识的安排的,直接作用只发生在相交进程间间接作用(资源共享):进程间要通过某种中介发生联系,是无意识安排的,可发生在相交进程之间,也可发生在无关进程之间,1.进程间的关系,2.进程的同步(直
2、接作用),指系统中多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪状态,由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥。临界资源:系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量,3.进程的互斥(间接作用),4.基本概念,进程互斥:指在多道程序环境下,每次只允许一个进程对临界资源进行访问。进程同步:指多个相关进程在执行次序上的协调。临界资源:一次仅供一个进程使用的
3、资源。在进程中涉及到临界资源的程序段叫临界区多个进程的临界区称为相关临界区,5.使用互斥区的原则,空闲让进:当无进程在互斥区时,任何有权使用互斥区的进程可进入忙则等待:不允许两个以上的进程同时进入互斥区有限等待:任何进入互斥区的要求应在有限的时间内得到满足让权等待:处于等待状态的进程应放弃占用CPU,以使其他进程有机会得到CPU的使用权,使用互斥区的原则:前提:任何进程无权停止其它进程的运行 进程之间相对运行速度无硬性规定进程互斥的解决有两种做法:由竞争各方平等协商引入进程管理者,由管理者来协调竞争各方对互斥资源的使用具体方法:硬件(当一个进程进入临界区,就屏蔽所有中断,但成本高)软件(用编程
4、解决,但常常忙等待),6.进程互斥的软件方法,通过平等协商方式实现进程互斥的最初方法是软件方法 其基本思路是在进入区检查和设置一些标志,如果已有进程在临界区,则在进入区通过循环检查进行等待;在退出区修改标志 其中的主要问题是设置什么标志和如何检查标志软件解法的缺点:1.忙等待 2.实现过于复杂 3.需要高的编程技巧,软件解法(1),free:表示临界区标志 true:有进程在临界区 false:无进程在临界区(初值).while(free);free=false;临界区 free=true;,软件解法(2),turn:true P进入临界区 false Q进入临界区.P:while(not t
5、urn);临界区 turn=false;Q:while(turn);临界区 turn=true;,软件解法(3),pturn,qturn:初值为falseP进入临界区的条件:pturn not qturnQ进入临界区的条件:not pturn qturn P.Q.pturn=true;pturn=true;while(qturn);while(pturn);临界区 临界区 pturn=false;qturn=false;.,硬件解法(1)“测试并设置”指令,boolean TS(boolean*lock)boolean old;old=*lock;*lock=true;,while TS(,硬
6、件解法(2)“交换”指令,void SWAP(int*a,int*b)int temp;temp=*a;*a=*b;*b=temp;,key=true;do SWAP(,硬件解法(3)“开关中断”指令,进入临界区前执行:执行“关中断”指令离开临界区后执行:执行“开中断”指令,7 进程的同步机制信号量及P.V操作(解决进程同步),同步机制:信号量及P、V操作;管程;条件临界域;路径表达式等(用于集中式系统中)会合;通信顺序进程;分布进程;远程过程调用等(适用于分布式系统中),描述能力可以实现效 率 高 使用方便,1)同步机制应满足的基本要求,2)解决互斥的锁机制,实现互斥的一种软件方法是采用锁机
7、制,即提供一对上锁(Lock)和开锁(UnLock)原语,以及一个锁变量W。进程进入临界区前,通过锁变量来判断临界资源是否被占用。,3)信号量机制,信号量机制是一种卓有成效的进程同步工具,被广泛应用于单处理机和多处理机系统,以及计算机网络中。锁机制仅能表示“开”与“关”两种状态;开、关锁原语必须作为原子操作来进行;关锁原语言中反复测试状态,浪费了处理机的时间;锁机制只能解决互斥,不能用于同步。信号量同步机制能完满地解决上述问题。,信号量:semaphore,是一个数据结构定义如下:struc semaphore int value;pointer_PCB queue;信号量说明:semapho
8、re s;,P操作,P(s)s.value=s.value-;if(s.value 0)该进程状态置为等待状态 将该进程的PCB插入相应的等待队列末尾s.queue;,操作,意味着请求分配一个单位资源,V操作,V(s)s.value=s.value+;if(s.value=0)唤醒相应等待队列s.queue中等待的一个进程 改变其状态为就绪态 并将其插入就绪队列,操作,意味着释放一个单位资源,P、V操作为原语操作 原语:是由若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性。即原语的执行必须是连续的,在执行过程中不允许被中断 实现:开关中断,信号量的使用:必须置一次且只能置一次初值
9、 初值不能为负数 只能执行P、V操作,用P、V操作解决进程间互斥问题,互斥例子,三个进程共用两个I/O缓冲区。解:设用信号量S表示共享资源,S初始值为2,同步例子,有A、B两进程,A进程从卡片机读信息入缓冲区,B进程负责加工读进缓冲区的卡片解:设信号量S1:缓冲区中有否可供加工的信息,初始值为0;信号量S2:缓冲区是否为空,初始值为1。,同步例子(续),在输入进程A中,可以把P(S2)调到V(S1)后面,而把信号量S2的初始值设为0。,用P-V操作描述前趋关系的例子,信号量还可以描述程序或语句之间的前趋关系。,用P-V操作描述前趋关系(续),描述如下:Var a,b,c,d,e,f,g:sem
10、aphore:=0,0,0,0,0,0,0;begin parbegin beginS1;V(a);V(b);end;beginP(a);S2;V(c);V(d);end;beginP(b);S3;V(e);end;beginP(c);S4;V(f);end;beginP(d);S5;V(g);end;beginP(e);P(f);P(g);S6;end;parend end,经典的生产者消费者问题,消费者,生产者,经典的生产者消费者问题,同步问题:P进程不能往“满”的缓冲区中放产品,设置信号量为S1 Q进程不能从“空”的缓冲区中取产品,设置信号量S2,S1初值为1,S2初值为0,P:Q:wh
11、ile(true)while(true)生产一个产品;P(s2);P(s1);从缓冲区取产品;送产品到缓冲区;V(s1);V(s2);消费产品;,生产者-消费者问题,生产者消费者(Producer-Consumer)问题是著名的进程同步问题。它描述一组生产者向一组消费者提供消息,它们共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。以下用信号量解决生产者消费者问题。假设缓冲池中有n个缓冲区,每个缓冲区存放一个消息,可利用互斥信号量mutex使诸进程对缓冲池实现互斥访问;利用empty和full计数信号量分别表示空缓冲及满缓冲的数量。又假定这些生产者和消费者互相等效,只要缓冲池未满,
12、生产者可将消息送入缓冲池;只要缓冲池未空,消费者可从缓冲池取走一个消息。,生产者-消费者问题(续),其中,mutex,empty,full的初始值分别为1,n,0;,P操作的顺序可换吗?,P.V操作讨论,1)信号量的物理含义:S0表示有S个资源可用 S=0表示无资源可用 S0则|S|表示S等待队列中的进程个数 P(S):表示申请一个资源 V(S)表示释放一个资源。信号量的初值应该大于等于02)P.V操作必须成对出现,有一个P操作就一定有一个V操作 当为互斥操作时,它们同处于同一进程 当为同步操作时,则不在同一进程中出现 如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至 关重要,一个
13、同步P操作与一个互斥P操作在一起时同步P操作在互斥P操作前 而两个V操作无关紧要,P.V操作的优缺点,P.V操作优点:简单,而且表达能力强(用P.V操作可解决任何同步互斥问题)缺点:“不够安全;P.V操作使用不当会出现死锁;遇到复杂同步互斥问题时实现复杂,8.信号量集AND型信号量集,AND型信号量集是指同时需要多种资源且每种占用一个时的信号量操作 AND型信号量集的基本思想:在一个原语中申请整段代码需要的多个临界资源,要么全部分配给它,要么一个都不分配AND型信号量集P原语为SwaitAND型信号量集V原语为Ssignal,Swait(S1,S2,Sn)/P原语;while(TRUE)if(
14、S1=1,Ssignal(S1,S2,Sn)for(i=1;i=n;+i)+Si;/释放占用的资源;for(在Si.queue中等待的每一个进程P)/检查每种资源的等待队列的所有进程;从等待队列Si.queue中取出进程P;,if(判断进程P是否通过Swait中的测试)/注:与signal不同,这里要进行重新判断;/通过检查(资源够用)时的处理;进程P进入就绪队列;else/未通过检查(资源不够用)时的处理;进程P进入某等待队列;,9.一般“信号量集”,一般信号量集是指同时需要多种资源、每种占用的数目不同、且可分配的资源还存在一个临界值时的信号量处理 一般信号量集的基本思路就是在AND型信号量
15、集的基础上进行扩充,在一次原语操作中完成所有的资源申请。,进程对信号量Si的测试值为ti(表示信号量的判断条件,要求Si=ti;即当资源数量低于ti时,便不予分配)占用值为di(表示资源的申请量,即Si=Si-di)对应的P、V原语格式为:Swait(S1,t1,d1;.;Sn,tn,dn);Ssignal(S1,d1;.;Sn,dn);,一般“信号量集”可以用于各种情况的资源分配和释放,几种特殊情况:,Swait(S,d,d)表示每次申请d个资源,当少于d个时,便不分配Swait(S,1,1)表示互斥信号量Swait(S,1,0)可作为一个可控开关(当S1时,允许多个进程进入临界区;当S=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程管理 进程 管理 PPT 课件
链接地址:https://www.31ppt.com/p-4859972.html