操作系统复习资料全第二章进程管理-经典同步问题.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《操作系统复习资料全第二章进程管理-经典同步问题.ppt》由会员分享,可在线阅读,更多相关《操作系统复习资料全第二章进程管理-经典同步问题.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、复习v为什么需要进程同步?v哪些进程需要同步?v进程同步的两种解决方法v什么是临界资源和临界区?v信号量的物理意义?v信号量有哪些应用?并发进程的同步问题(包括资源共享和进程之并发进程的同步问题(包括资源共享和进程之间的合作),是多道环境下操作系统必须解决间的合作),是多道环境下操作系统必须解决重要问题。否则,将会造成计算错误、资源不重要问题。否则,将会造成计算错误、资源不能共享、系统混乱等严重错误发生。能共享、系统混乱等严重错误发生。本节将研究几个典型的进程同步问题。本节将研究几个典型的进程同步问题。2.4 2.4 经典进程的同步问题经典进程的同步问题 进程同步机制应遵循的准则进程同步机制应
2、遵循的准则(掌握掌握)v空闲让进空闲让进v忙则等待忙则等待v有限等待有限等待v让权等待让权等待几种不同类型的信号量几种不同类型的信号量1 1、整型信号量、整型信号量 (最早期的信号量实现)(最早期的信号量实现)v定义一个整型变量定义一个整型变量S S;v当当S0S0时,表示某类可用资源数目时,表示某类可用资源数目,即表示还有,即表示还有S S个资源空闲个资源空闲可供共享使用;可供共享使用;v当当S S0 0时,其绝对值表示信号量时,其绝对值表示信号量S S所代表资源的阻塞队列中所代表资源的阻塞队列中的进程数的进程数,即系统中因请求该类资源而被阻塞的进程数目。,即系统中因请求该类资源而被阻塞的进
3、程数目。v信号量信号量S S的值除初始化(为资源数目)外,其值只能通过原的值除初始化(为资源数目)外,其值只能通过原语语waitwait和和signalsignal,也称,也称P P、V V操作来改变。操作来改变。整型信号量的整型信号量的P P、V V操作描述操作描述wait和和signal操作原语为:操作原语为:wait(S):while S0 do no-op;S=S-1;signal(S):S=S+1;解释:解释:P P或或waitwait操作:操作:当当S0S0时,说明无资源可用,时,说明无资源可用,一直测试一直测试直到其他进程直到其他进程释放该类资源。释放该类资源。V V或或sign
4、alsignal操作:操作:使用完资源时释放该资源,简单地将资源数目加一即可。使用完资源时释放该资源,简单地将资源数目加一即可。并不需要唤醒等待该资源的进程(并不需要唤醒等待该资源的进程(为什么为什么)。)。2.记录型信号量记录型信号量v整型信号量机制中的整型信号量机制中的wait操作,操作,只要信号量只要信号量S0,就会不断地测试就会不断地测试,系统处于空转状态系统处于空转状态。因此,该机制并因此,该机制并未遵循未遵循“让权等待让权等待”的准则,的准则,而是使而是使进程处于进程处于“忙等忙等”的状态。的状态。v记录型信号量机制,采用记录型信号量机制,采用“让权等待让权等待”策略,策略,必然出
5、现多个进程等待访问同一临界资源的必然出现多个进程等待访问同一临界资源的情况。为此,信号量设置除需要一个用于代情况。为此,信号量设置除需要一个用于代表资源数目的整型变量表资源数目的整型变量value外,还应增加一外,还应增加一个个进程链表进程链表L,用于链接等待资源的进程队列。,用于链接等待资源的进程队列。2.记录型信号量的定义记录型信号量的定义type semaphore=record value:integer;L:list of process;end相应地,相应地,wait(S)操作可描述为:操作可描述为:procedure wait(S)var S:semaphore;begin S.
6、value=S.value-1;if S.value0 then block(S,L)end2.记录型信号量的定义记录型信号量的定义signal(S)操作可描述为操作可描述为procedure signal(S)var S:semaphore;begin S.value=S.value+1;if S.value0 then wakeup(S,L);end3.AND型信号量型信号量v假若并发进程假若并发进程A和和B都要访问两个数据都要访问两个数据D和和E,因共,因共享数据为临界资源。为享数据为临界资源。为D和和E设置用于互斥的信号量设置用于互斥的信号量分别为分别为Dmutex和和Emutex,且
7、,且初始值为初始值为1,则进程,则进程A和和B共享临界数据共享临界数据D和和E必须进行同步操作:必须进行同步操作:process A:process B:wait(Dmutex);wait(Emutex);wait(Emutex);wait(Dmutex);若进程若进程A和和B按下述次序交替执行按下述次序交替执行wait操作:操作:process A:wait(Dmutex);于是于是Dmutex=0process B:wait(Emutex);于是于是Emutex=0process A:wait(Emutex);于是于是Emutex=-1 A阻塞阻塞process B:wait(Dmutex
8、);于是于是Dmutex=-1 B阻塞阻塞 形成死锁!形成死锁!AND同步机制的基本思想是:同步机制的基本思想是:v将进程在整个运行过程中需要的所有资源,将进程在整个运行过程中需要的所有资源,一次性一次性全部分配给进程全部分配给进程,待进程使用完后再一起释放。只,待进程使用完后再一起释放。只要尚有一个资源未能分配给进程,其它所有可能为要尚有一个资源未能分配给进程,其它所有可能为之分配的资源,也不分配给他。之分配的资源,也不分配给他。v为实现这种机制,在为实现这种机制,在wait操作中增加了一个操作中增加了一个“AND”条件,故称为条件,故称为AND同步,或称为同步,或称为同时同时wait操作,
9、即操作,即Swait(Simultaneous wait)定义如下:定义如下:Swait(S1,S2,Sn)if Si1 and and Sn1 then for i=1 to n do Si=Si-1;endfor else place the process in the waiting queue associated with the first Si found with Si1,and set the program count of this process to the beginning of Swait operation endifSsignal(S1,S2,Sn)for
10、 i=1 to n do Si=Si+1;Remove all the process waiting in the queue associated with Si into the ready queue.endfor;4.信号量集(自学)信号量集(自学)v之前的信号量机制在分配资源时之前的信号量机制在分配资源时一次只能分一次只能分配一个单位配一个单位的资源,当进程对某类资源的需的资源,当进程对某类资源的需求量不是求量不是1个,而是个,而是N个时,就需要执行个时,就需要执行N次次P操作,操作,V操作也是一样,效率较低。为此,引操作也是一样,效率较低。为此,引入信号量集。入信号量集。v信号量
11、集定义如下:信号量集定义如下:Swait(S1,t1,d1,Sn,tn,dn)/S为信号量,为信号量,t为下限,为下限,d为需求量为需求量 if Sit1 and and Sntn then for i=1 to n do Si=Si-di;endfor else Place the executing process in the waiting queue of the first Si with Siti and set its program counter to the beginning of the Swait Operation.endifsignal(S1,d1,Sn,dn)
12、for i:=1 to n do Si =Si+di;Remove all the process waiting in the queue associated with Si into the ready queue endfor;信号量集的几种特殊情况:1)Swait(S,d,d):此时在信号量集中只有一个信:此时在信号量集中只有一个信号量号量S,但允许它每次申请,但允许它每次申请d个资源,当现有资源数个资源,当现有资源数少于少于d时,不予分配。时,不予分配。2)Swait(S,1,1):此时的信号量集已蜕化为一般:此时的信号量集已蜕化为一般的记录型信号量的记录型信号量(S1时时)或互斥
13、信号量或互斥信号量(S=1时时)。3)Swait(S,1,0):这是一种很特殊且很有用的):这是一种很特殊且很有用的信号量操作。当信号量操作。当S1时,允许多个进程进入某特定时,允许多个进程进入某特定区;当区;当S变为变为0后,将阻止任何进程进入特定区。换后,将阻止任何进程进入特定区。换言之,它相当于一个言之,它相当于一个可控开关可控开关。2.4.1 2.4.1 生产者生产者消费者问题消费者问题一组生产者生产产品一组生产者生产产品一组消费者取走产品一组消费者取走产品1n3n-12公用缓冲池,共有公用缓冲池,共有n n个缓冲区个缓冲区inoutVar mutex,empty,full:semap
14、hore:=1,n,0;buffer:array0,n-1 of item;in,out:integer:=0,0;/空、满缓冲区队列起始位置空、满缓冲区队列起始位置 begin parbegin proceducer:begin repeat producer an item nextp;/nextp为临时缓冲区为临时缓冲区 buffer(in):=nextp;in:=(in+1)mod n;until false;end consumer:begin repeat wait(full);wait(mutex);nextc:=buffer(out);/临时消费缓冲区临时消费缓冲区 out:=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 复习资料 第二 进程 管理 经典 同步 问题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内