阅览室问题 有一个阅览室共有个座位读者进入时必须先在一张登记表上登记该表为每一个座位列一表目包括座号和读者姓名等读者离开时要消掉登记的信息试问 ()为描述读者的动作应编写几个程序设置几个进程? ()试用PV操作描述各个进程之间的同步互斥关系 问题分析 读者动作有两个一个时填表进入阅览室这时要考虑阅览室里是否有空位一是读者阅读完毕离开阅览室这时的操作要考虑阅览室里是否有读者读者在阅览室读书时由于没有引起资源的变动不算动作变化 算法的信号量有三个seats表示阅览室时否有座位(初值为)readers表示阅览室里的读者数初值为用于互斥的mutex初值为
The PV code Using Pascal
var seatsraadersmutex:semaphore; seats:=; readers:=; mutex:=; cobegin procedure Enter begin while TRUE 返回《操作系统之PV金典》 [] [] |