PV操作信号S

2019-08-31 23:13

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)


PV操作信号S.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:项目:龙门刨床工作台调速PLC与变频器控制系统

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: