- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统同步互斥习题
1、 设公共汽车上,司机和售票员的活动分别是:
司机的活动:启动车辆;
正常行车;
到站停车;
售票员的活动:
关车门;
售票;
开车门;
在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用P、V操作实现它们的 同步。
参考答案:
设两个信号量S和C,初值为s=o; c=o;
司机:L1:正常行车 售票员:L2:售票
到站停车 P (S)
V (S) 开车门
P(O 关车门
启动开车 V (C)
GO TO LI GO TO L2
2、 桌子上有一个空盘子,允许存放一只水果,爸爸可以向盘中放苹果,妈妈向盘子中放橘子,女 儿专门吃盘子中的苹果,儿子专门吃盘子小的橘子。规定当盘子空的时候一次只能放一只水果,请 用信号量实现他们之间的同步与互斥。
参考答案:
S, SI, S2 : semaphore二 1, 0, 0;
Cobegin:
Process Father:
Begin:
Ll: P(S);
Put Apple;
V(S1);
GO TO LI;
End;
Process Mother:
Begin:
L2: P(S);
Put Orange;
V(S2);
GO TO L2;
End;
Process Son:
Begin:
L3: P(S2);
Get Orange;
V(S);
GO TO L3;
End;
Process Daughter:
Begin:
L4: P(S1); Get Apple; V⑸;
GO TO L4;
End;
CoEnd;
3、写者优先的“读者一一写者”问题:
1) 共享读
2) 互斥写、读写互斥
读者必须等待,唤醒时优先考虑写者)3) 写者优先于读者(一旦有写者,则后续 参考答案:
读者必须等待,唤醒时优先考虑写者)
wmutex:semaphoro=l
S: semaphore二1
S2: semaphor= 1
〃读者与写者之间、写者与写者之间互斥使用共享数据
//当至少有一个写者准备访问共享数据时,它可使后续的读者等待写完成
//阻塞第二个以后的等待读者
readcount, wri tecount: semaphore = 0, 0; //当前读者数量、写者数量
mutexl :semaphore = 1 //多个读者互斥使用 readcount
mutex2 :semaphore = 1 //多个写者互斥使用 writecount
Cobegin:
Reader: begin
Repeat
Wait (S2);
wait (S);
wait(mutexl)
if readcount=0 then wait(wmutex);
readcount++;
signal (mutexl);
signal (S);
sig rial (S2);
reading…
wait(mutexl);
readcount--;
if readcount=0 then signal(wmutex); signal(mutexl);
until false;
begin;
writer: begin
repeat;
wait (mutex2);
if writecount=0 then wai t (S);
writecount++;
signal (mutex2);
wa i t (wmutex);
writing…
signal (wmutex);
wai t (mutex2);
writecount一-;
if writecount=0 then signal (S);
signal (mutex2);
until false;
end;
coend;
4、有一个仓库,可以存放A、B两种产品,但要求:
每次只能存入一种产品(A或B);
八产品数量一B产品数量
B产品数量一A产品数量<2
其中M、N是正整数,使用P、V操作描述产品A与产品B的入库过程。 参考答案:
Mutex, Sa, Sb: Semaphore;
Mutex =1;
Sa二MT;
Sb=N-l;
CoBegin:
Process PA:
Begin
Loop:
P (Sa);
P(Mutex);
产品A入库;
V(Mutex);
V(Sb);
Goto Loop;
End;
Process PB:
Begin
Loop:
P(Sb);
P(Mutex);
产品B入库;
(Mutex);
(Sa);
Goto Loop;
End;
CoEnd;
5、进程Al、A2、……Anl通过m个缓冲区向进程Bl、B2……Bn2不断地发送消息。发送和接收工 作遵循如下规则:
每个发送进程一次发送一个消息,写入一个缓冲区,缓冲区大小等于消息长度;
对每一个消息,Bl, B2,…,Bn都必须接收一次,读入各自的
您可能关注的文档
最近下载
- 第10讲-地球科学概论_生物圈.pptx VIP
- 土方开挖施工方案(筏板、独立基础、条形基础、桩间土).pdf VIP
- 地球科学概论 第10讲 _生物圈——[武汉大学 地球科学概论].pdf VIP
- 通用汽车ECU密码一致性规范CYS9100 - The Per-ECU Password Utility.pdf VIP
- 2024秋《战场侦察监视技术与装备》答案.docx VIP
- 某公司年度经济活动分析报告.ppt VIP
- 明清时期举人名录.pdf VIP
- 苏教版小学科学五年级下册教学设计教案.pdf VIP
- 人教版七年级上册英语第一次月考试题(含答案).docx VIP
- 梅赛德斯-奔驰-R级-产品使用说明书-R350 4MATIC-251165-Rclass.pdf VIP
文档评论(0)