用PV操作解决读者写者问题的正确程序如下: begin S,Sr:Semaphore;rc:integer; S:=1;Sr:=1;rc:=0; cobegin process Reader i(i=1,2…) begin P(Sr

admin2012-10-31  22

问题 用PV操作解决读者写者问题的正确程序如下:
  begin S,Sr:Semaphore;rc:integer;
    S:=1;Sr:=1;rc:=0;
  cobegin process Reader i(i=1,2…)
    begin P(Sr);
    rc:=rc+1;
    if rc=1 then P(S);
    V(Sr);
    read file;
    P(Sr);
    rc:=rc-1;
  if rc=0 then V(S);
    V(Sr);
    end;
    process Writerj(j=1,2…)
    begin P(S);
    Write file;
    V(S);
    end;
  coend;
end;
请回答:(1)信号量Sr的作用是什么?
    (2)程序中什么语句用于读写互斥,写写互斥?
    (3)若规定仅允许5个进程同时读怎样修改程序?

选项

答案(1)Sr用于读者计数rc的互斥信号量。 (2)if rc=1 then P(S)中的P(S)用于读写互斥,写者进程中的P(S)用于写写互斥,读写互斥。 (3)程序中增加一个信号量S5,初值为5,P(S5)语句加在读者进程P(Sr)之前,V(S5)语句加在读者进程第2个V(Sr)之后。

解析
转载请注明原文地址:https://kaotiyun.com/show/H0Nx777K
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)