操作系统PV操作经典例题与答案

操作系统PV操作经典例题与答案

ID:47457216

大小:42.01 KB

页数:4页

时间:2020-01-11

操作系统PV操作经典例题与答案_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《操作系统PV操作经典例题与答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.推广例子中的消息缓冲问题。消息缓冲区为k个,有1个发送进程,n个接收进程,每个接收进程对发送来的消息都必须取一次若有m个发送进程呢?Send:SB=k;//信号量,标记当前空余缓冲区资源。i=0;//标记存放消息的缓冲区位置while(true){P(SB);往Buffer[i]放消息;V(SM);i=(i+1)%k;};Receive:j=0;//标记取产品的缓存区位置SM=0;//信号量,标记初始没有消息ReadCount=0;//读进程计数器Mutex=1;//读进程互斥信号量SW=0;/

2、/信号量,读进程在此信号量等待while(true){P(SM);从Buffer[j]取消息;ReadCount++If(ReadCount

3、)rc=0,//正在读者计数器wc,//写计数器rw,//读等计数器R//等待读信号量W//等待写信号量读者:while(true){P(mutex);if(wc>0){rw++P(R);}rc++;If(rw>0&&wc=0){V(R)rw--}V(mutex);读P(mutex);rc--;if(rc==0){If(wc>0)V(w)}V(mutex);};写者:while(true){P(mutex);wc++;if((wc>1)

4、

5、(rc>0)){P(W)}V(mutex);写P(mutex

6、);Wc--;if(wc>0)V(W);Elseif(rw>0)V(R)rw--V(mutex);};3.理发师睡觉问题理发店里有一位理发师,一把理发椅和N把供等候理发的顾客坐的椅子如果没有顾客,则理发师便在理发椅上睡觉。当一个顾客到来时,他必须先唤醒理发师如果顾客到来时理发师正在理发,则如果有空椅子,可坐下来等;否则离开Wait=0;表示等待顾客资源;Barber=1;表示可以理发custNum关键资源,表示当前顾客数量顾客进程:Coming//顾客来到P(mutex)If(custNum>0){

7、If(custNum<=N){V(mutex)P(wait);}else{V(mutex)离开;}}else{V(mutex)V(Barber);理发;离开;P(mutex)custNum--;V(mutex)V(wait)}理发师进程:While{P(mutex)If(custNum==0){V(mutex)P(Barber)}else{V(mutex)理发}}

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

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

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