<p>有三个进程A,B,C共享一个文件F。进程A对F只读不写,进程B对F只写不读,进程C对F先读后写。规定多个进程可同时读,但有进程在读时不允许其它进程写,有进程在写时不允许其它进程读或写。当用PV操作管理时,回答下列问题:<br>(1)应怎样定义信号量?写出信号量的作用及其初值。<br>(2)三个进程的程序如下。在方框里填上合适的P操作或V操作,使它们能正确地并发执行。<br><img max-width="300" src="https://file.gaojiufeng.cn/learnAppQuestion/8f/0c/8f0c0c3a332636446947b814f914abd2.jpg" style="width: 100%;height: auto;"></p>

题目类型: 问答题

题目内容

有三个进程A,B,C共享一个文件F。进程A对F只读不写,进程B对F只写不读,进程C对F先读后写。规定多个进程可同时读,但有进程在读时不允许其它进程写,有进程在写时不允许其它进程读或写。当用PV操作管理时,回答下列问题:
(1)应怎样定义信号量?写出信号量的作用及其初值。
(2)三个进程的程序如下。在方框里填上合适的P操作或V操作,使它们能正确地并发执行。

正确答案

(1)根据读写规则应定义三个互斥信号量S1,S2,S3;
S1初值为1,用于进程A,B之间的读写互斥;
S2初值为1,用于进程B,C之间的读写互斥和写写互斥;
S3初值为1,用于进程A,C之间的读写互斥;
(信号量名s1,S2,s3可改用其它合法的名,但定义与使用要一致)
(2)(1)P(S1)
(2)P(S3)
(O)V(S1)
(4)V(S3)
(5)P(S1)
(6)P(S2)
(7)V(S1)
(8)V(S2)
(9)P(S2)
(10)P(S3)
(11)V(S2)
(12)V(S3)

题目纠错