-->
当前位置:首页 > 题库 > 正文内容

主观题:h413.用PV操作解决读者-写者问题的正确程序如下:

Luz3年前 (2022-09-25)题库580
用PV操作解决读者-写者问题的正确程序如下:
begin
S, Sr: Semaphore;
rc: integer;
S:=1; Sr:=1; rc:=0;
parbegin
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 thenV(S);
V(Sr);
end ;
PROCESS Writer j ( j = 1, 2 … )
begin
P(S);
Write file;
V(S)
end;
  parend ;
end;
请回答:(1)信号量Sr的作用;(2)程序中什么语句用于读写互斥,写写互斥;(3)若规定仅允许5个进程同时读怎样修改程序?







答案:解:
(1) 信号量Sr的作用的作用是保证读者互斥访问共享变量rc。(2分)
(2) 程序中语句if rc=1 then P(S);用于读写互斥;语句P(S); 用于写写互斥。(2分)
(3) 若规定仅允许5个进程同时读,修改程序如下(加粗部分是新增加的内容):(6分)

begin
S, Sr: Semaphore;
rc: integer;
S:=1; Sr:=1; rc:=0;
**S1 : semaphore := 5;**(2分)
parbegin
PROCESS Reader i ( i = 1, 2…)
        begin
**P(S1);**(2分)
P(Sr) ;
rc:=rc+1;
if rc=1 then P(S);
V(Sr);
read file;
P(Sr);
rc:=rc-1
if rc=0 thenV(S);
V(Sr);
**V(S1);**(2分)
end ;
PROCESS Writer j ( j = 1, 2 … )
begin
P(S);
Write file;
V(S)
end;
  parend ;
end;



发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。