有三个进程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)
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)