41.若有一个文件F,供多进程读。现把进程分成A、B两组,规定同组的进程可以同时读文件F,但不同组的进程不能同时读文件F。现定义

作者:高老师 浏览 0

41.若有一个文件F,供多进程读。现把进程分成A、B两组,规定同组的进程可以同时读文件F,但不同组的进程不能同时读文件F。现定义两个计数器C1和C2分别记录A组合B租中正在读文件F的进程数。当用PV操作进程管理时设置三个信号量SS2和SAB才能保证正确并发执行,程序结构如下: 要求: (1)说明信号量S1,S2,SAB的作用。 (2)请在并发程序的有编号处填入(注:写在答题卡上)适当的PV操作,以完善该程序。


【正确答案】:(1) 设置三个信号量S1、S2和SAB才能保证正确并发执行。S1用来保证A组进程对C1的互斥访问,S2用来保证B组对C2的互斥访问,SAB用来保证A组进程和B组进程对文件F的互斥访问,它们的初始值均为1;(2) 1 P(SAB) 2 V(S1) 3 P(1) 4 P(SAB) 5 V(S2) 6 P(S2)
【题目解析】:该题是读者写者问题,由于A组进程和B组进程不能同时读文件,故设置了两个互斥型信号量S1、S2,分别用来保证A、B组进程对每组读者个数C1、C2的互斥访问。所有进程都不能同时读写文件,故设置信号量SAB,保证各进程对文件的读写互斥。对C1的访问放在P(S1)、V(S1)之间,对C2的访问放在P(S2)、V(S2)。每组进程只有在第一个读者进来时才需要做P(SAB)操作,最后一个读者走时,做V(SAB)操作。

📱 扫码体验刷题小程序

微信小程序二维码

扫一扫使用我们的微信小程序

热门题目

已复制到剪贴板