您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页PV操作信号S

PV操作信号S

来源:尚车旅游网


1.简述信号量S的物理含义。

S>0时,S表示可使用的资源数;或表示可使用资源的进程数;

S=0时,表示无资源可供使用;或表示不允许进程再进入临界区;

S<0时,-S表示等待使用资源的进程个数;或表示等待进入临界区的进程个数;

当S>0时,调用P(S)的进程不会等待;调用V(S)后使可用资源数加1或使可用资源的进程数加1;

当S<0时,调用P(S)的进程必须等待;调用V(S)后将释放一个等待使用资源者或释放一个等待进入临界区者。

2.两个并发进程的程序如下:

begin

N:integer;

N:=1;

cobegin

process A

begin

L1:N:=N+1;

go to L1;

end;

process B

begin

L2:print(N);

N:=0;

go to L2;

end;

coend;

end;

请回答:

(1)指出这两个并发进程的临界区。

(2)指出它们并发执行时可能出现的“与时间有关的错误”。

(3)用PV操作进行管理,写出使它们能正确并发执行的程序。

(1)进程A的临界区为 N:=N+1;(1分)

进程B的临界区为 print(N);

N:=0;(1分)

(2) 进程B执行了print(N)后被中断;(1分)在执行N:=0之前插入了进程A执行N:=N+1,则出现“与时间有关的错误”。(1分)

(3) begin N:=integer; N:=1;

s:=semaphore;s:=1

cobegin

process A

begin

L1:p(s);(1分)

n:=N+1;

V(s);(1分)

go to L1;

end;

process B

begin

L2:p(s); end;

Print(N); coend;

N:=0; end;

V(s);

go to L2

3.用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 thenV(S);

V(Sr);

end ;

PROCESS Writer j (j=1,2…)

begin P(S);

Write file;

V(S)

end;

coend ;

end;

(1)信号量 Sr的作用;(2)程序中什么语句用于读写互斥,写写互斥;(3)若规定仅允许5个进程同时读怎样修改程序?

(1)Sr用于读者计数rc的互斥信号量;(3分)

(2)if rc=1 then P(S)中的P(S)用于读写互斥,写者进程中的P(S)用于写写互斥,读写互斥。(3分)

(3)程序中增加一个信号量S5,初值为5,P(S5)语句加在读者进程P(Sr)之前,V(S5)语句加在读者进程第2个V(Sr)之后。(4分)

3.某招待所有100个床位,住宿者入住要先登记(在登记表上填写姓名和床位号)。离去时要注销登记(在登记表上删去姓名和床位号)。请给出住宿登记及注销过程的算法描述。

答:mutex=1,empty=100;

登记:

P(empty);

P(mutex)

登记

V(mutex)

注销:

P(mutex);

登记表上删去姓名和床位号

V(mutex)

V(empty)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务