手机版

第6章习题解答(7)

发布时间:2021-06-10   来源:未知    
字号:

操作系统

进程

R

信号量: S1=0 S2=0 S3=0

进程S 进程T

图6-12 R、S、T之间的相互制约关系

4.假定有3个进程R、W1、W2共享一个缓冲区B,B中每次只能存放一个数。进程R从输入设备读入一个数,把它存放到缓冲区B里。如果存入的是奇数,则由进程W1取出打印;如果存入的是偶数,则由进程W2取出打印。规定进程R只有在缓冲区B为空或内容已经被打印后才能进行存放;进程W1和W2不能从空缓冲区里取数,也不能重复打印。试用信号量及其P、V操作管理这3个进程,让它们能够协调地正确工作。 解:这实际上也是最简单“生产者—消费者”问题的变种:进程R是产生者,进程W1、W2是两个消费者。只是W1只消费奇数,W2只消费偶数。

进程进程W2

进程W1

图6-13所示的是3个进程的工作示意。 图6-13 奇数、偶数问题

分析一下题目,知道3个进程间有如下的制约关系存在:

(1)进程R申请使用缓冲区B,释放缓冲区B的权利是由进程W1或W2掌握的; (2)进程

W1要等待R往缓冲区B里放入奇数后,才能工作(要与R取得同步),然后释放缓冲区;

(3)进程W2要等待R往缓冲区B里放入偶数后,才能工作(要与R取得同步),然后释放缓冲区。

因此,应该设置3个信号量:

S——初值为1,控制缓冲区B的分配; SO——初值为0,控制W1与R取得同步;

SE——初值为0,控制W2与R取得同步。 3个进程的工作流程如图6-14所示。

第6章习题解答(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)