问答题

有一南北向的单行车道,在车道A、B两端以外一段距离处有减速标志和自动计数系统,A、B两处设有信号灯,信号灯的管理要求如下:绿灯行,红灯停,A、B两端红绿灯同时变换,一方红变绿时另一方绿变红。绿灯保持到同一方向进入的车辆全部驶入AB段,当AB之间无车辆行驶时,允许到达A端(或B端)的车辆驶入AB段,但只准某一方向的车辆进入;当一方最后一辆车进入AB段后,双向亮红灯让车辆全部通过(假设2min),然后让己在等待的任何一方向的车辆驶入。试用PV操作管理AB路段车辆的行驶。

【参考答案】

本题可参考读者写者问题,相当于两组读者使用一个共享文件的互斥问题。对共享资源AB路段设一个信号量s,对A、B两端的共享计数器ca和cb应设两个信号量sa和sb。所设计的程序段如下: Begin s,sa,ab:semaphore; ca,cb:integer; s:=1; sa:=1; sb:=1; Cobegin Process car-ai; (i=1, 2,…} Begin p(sa); Ca:=ca+1; if ca=1 then p(s); ...

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题