操作系统信号量PV操作题若干

2019-07-13 18:28

(一) 图书馆有100个座位,每位进入图书馆的读者要在登记表上登记,退出时要在登记表上注销。要几个程序?有多少个进程?(答:一个程序;为每个读者设一个进程)

(1) 当图书馆中没有座位时,后到的读者在图书馆为等待(阻塞) (2) 当图书馆中没有座位时,后到的读者不等待,立即回家。 设信号量 S=200;MUTEX=1; P(S)

P(MUTEX) 登记

V(MUTEX) 阅读

P(MUTEX) 注销

V(MUTEX) V(S) (2)

设信号量 MUTEX=1; 整型变量 S=200; P(MUTEX) IF(S==0) { V(MUTEX) RETURN }

ELSE{

COUNT=COUNT-1; 登记

V(MUTEX) 阅读

P(MUTEX)

COUNT=COUNT+1; 注销

V(MUTEX) RETURN }

解(1 )

设信号量:S=100; MUTEX=1 P(S)

P(MUTEX) 登记

V(MUTEX) 阅读

P(MUTEX) 注销

V(MUTEX) V(S) 解(2)

设整型变量 COUNT=100; 信号量:MUTEX=1; P(MUTEX); IF (COUNT==0) { V(MUTEX); RETURN; }

COUNT=COUNT-1; 登记

V(MUTEX); 阅读

P(MUTEX);

COUNT=COUNT+1; V(MUTEX); RETURN;

(二) 有一座东西方向的独木桥;用P,V操作实现: (1) 每次只允许一个人过桥;

(2) 当独木桥上有行人时,同方向的行人可以同时过桥,相反方向的人必须等待。 (3) 当独木桥上有自东向西的行人时,同方向的行人可以同时过桥,从西向东的方向,只允许一个人单独过桥。(此问题和读者与写者问题相同,东向西的为读者,西向东的为写者)。 (1)

设信号量S=1 P(S) 过桥 V(S) (2)

设 信号量 S=1 EW=1;(东向西互斥计数量) WE=1;(西向东互斥计数量) 整型变量 CE =0;(东向西桥上人数) CW=0;(西向东桥上人数)

东向西: P(EW) IF(CE==0) { P(S) }

CE++; V(EW) 过桥 P(EW) CD--;

IF(CD==0){ V(S) }

V(EW)

(1)解

设信号量 MUTEX=1 P (MUTEX) 过桥

V (MUTEX) (2)解

设信号量: MUTEX=1 (东西方互斥) MD=1 (东向西使用计数变量互斥) MX=1 (西向东使用计数变量互斥)

设整型变量: CD=0 (东向西的已上桥人数) CX=0 (西向东的已上桥人数)

从东向西: P (MD) IF (CD=0)

{P (MUTEX) } CD=CD+1 V (MD) 过桥 P (MD) CD=CD-1 IF (CD=0)

{V (MUTEX) } V (MD)

从西向东: P (MX) IF (CX=0)

{P (MUTEX) } CX=CX+1 V (MX) 过桥 P (MX) CX=CX-1 IF (CX=0)

{V (MUTEX) } V (MX)

(3) 解:从东向西的,和(2)相同;从西向东的和(1)相同。

(三) 有一个俱乐部,有甲乙两个服务员,当顾客有请求时,甲负责送烟,乙负责送火,无顾客请求时,服务员睡眠。顾客自己不能带烟和火,当顾客要抽烟时,可请求服务员送烟和火,烟和火还未送到时,顾客必须等待。

设置信号量 SY=0;SH=0;DY=0;DH=0;

甲服务员:A; 乙服务员:B; 顾客:S; A: P(DY) 送烟 V(SY) GOTO A B: P(DH) 送火 V(SH) GOTO B S: V(DY) V(DH) P(SY)


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

下一篇:道岔常见病害的整治

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

马上注册会员

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