操作系统--PV操作

操作系统--PV操作

ID:39695085

大小:379.50 KB

页数:14页

时间:2019-07-09

操作系统--PV操作_第1页
操作系统--PV操作_第2页
操作系统--PV操作_第3页
操作系统--PV操作_第4页
操作系统--PV操作_第5页
资源描述:

《操作系统--PV操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、用P.V操作解决下面的同步问题getcopyputfstg要解决的同步问题:Get不能向“满”的S中放;Copy不能从“空”的S中取;不能向“满”的T中放;Put不能从“空”的T中取有3个进程:get,copy和put,它们对4个存储区域f、s、t和g进行操作:其中:f有取之不尽的数据可以get;g有用之不完的空间可以puts和t则只有一个存储空间。3,4,...,m22(1,2…)2,3,4,...,m11(1…)1,2,3,4,...,m(…)(同步)信号量:{实际上也起到互斥作用}S_Empty,T_Empty,{

2、初值为1}S_Full,T_Full;{初值为0}Get进程:BeginRepeatP(S_Empty)T_get_S();V(S_Full);Untilfalse;EndCopy进程:BeginRepeatP(S_Full);P(T_Empty);S_copy_T();V(T_Full);V(S_Empty);Untilfalse;EndPut进程:BeginRepeatP(T_Full);T_put_G();V(T_Empty);Untilfalse;End正常行车到站停车开车售票开车门关车门司机售票员2、重新研究司机和

3、售票员问题,分别写出司机和售票员进程,从而实现该问题的同步司机进程:BeginRepeatP(S_Door);行驶;…停车;V(S_Stop);Untilfalse;End乘务员进程:BeginRepeat关门;V(S_Door);售票;P(S_Stop);开门;Untilfalse;EndVarS_Door,S_Stop:Semaphore:=0,0司机进程:BeginRepeatP(door);行驶;…停车;V(stop);Untilfalse;End乘务员进程:BeginRepeatP(stop);开门;关门;V(do

4、or);售票;Untilfalse;EndVardoor,stop:semaphore:1,03、桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。分析:本题中,爸爸、儿子、女儿共用一个盘子,盘中一次只能放一个水果。当盘子为空时,爸爸可将一个水果放入果盘中。若放入果盘中的是桔子,则允许儿子吃,女儿必须等待;若放入果盘中的是苹果,则允许女儿吃,儿子必须等待。本题实际上是

5、生产者-消费者问题的一种变形:这里,生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品S:表示盘子是否为空,其初值为l;So:表示盘中是否有桔子,其初值为0;Sa:表示盘中是否有苹果,其初值为0。设置三个信号量:S、So、Sa,Daughter进程:while(1){P(Sa);从盘中取出苹果;V(S);吃苹果;}Father进程:while(1){P(S);将水果放入盘中;if(放入的是桔子)V(So);elseV(Sa);}Son进程:while(1){P(So);从盘中取出桔子;V(S);

6、吃桔子;}}分析问题中涉及的进程;分析问题中的同步关系(竞争,合作);(其中,合作关系的解决也是通过转化为对资源的竞争完成的。)参照所竞争的资源设置信号量,并赋予初值;写出各个进程的描述;检查每个进程的描述,看是否会出现死锁现象并改正之。小结:同步问题解法具体的规范格式如下(以苹果桔子题目为例:)intS=1;intSa=0;intSo=0;main(){cobeginfather();/*父亲进程*/son();/*儿子进程*/daughter();/*女儿进程*/coend}解:设置三个信号量S、So、Sa,信号量S表示

7、盘子是否为空,其初值为l;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。同步描述如下:father(){while(1){P(S);将水果放入盘中;if(放入的是桔子)V(So);elseV(Sa);}}son(){while(1){P(So);从盘中取出桔子;V(S);吃桔子;}}daughter(){while(1){P(Sa);从盘中取出苹果;V(S);吃苹果;}}作业:睡眠理发师问题作业:睡眠理发师问题问题描述(经典理发师问题)假设后街有家理发店,店里有一个理发师、一把理发椅和n

8、把等候理发的顾客椅子。 (1).如果没有顾客则理发师便在理发椅上睡觉(看报纸); (2).当有一个顾客到达时,首先查看理发师在干什么,如果在睡觉(看报纸)则告诉理发师理发,然后坐到理发椅上开始理发;如果理发师正在理发,则查看是否有空的椅子可坐,如果有,他就坐下等待,如果没有,则离开; (3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。