问答题
写一个无死锁、无饥饿的哲学家进餐问题的解。 5个哲学家围坐在圆桌边。每人前面有一支筷子。当一个哲学家思考时,他不影响其他同事。一段时间后,他需要用餐了,而且试图拿到最靠近他的两支筷子。当他拿到两支筷子后,就开始用餐。用毕放下筷子,重新开始思考。 死锁:当5个人同时拿自己左边的一支筷子。再要拿右边的筷子时。他们的要求会被无休止的推迟。这就发生了死锁。 饥饿:当5个人同时拿自己左边的一支筷子,看到右边不可用。同时放下自己左边的一支筷子。等一会,又同时拿起右边的筷子。这样不停忙着。但都无法进展。就发生了饥饿。
问答题 有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记的信息,试问: (1)为描述读者的动作,应编写几个程序,设置几个进程? (2)试用PV操作描述读者进程之间的同步关系。
问答题 在一个系统中,若进程之间除了信号量之外不能共享任何变量,进程之间能互相通信吗?
问答题 考虑一个理发店,只有一个理发师,只有N张可供顾客等待理发的椅子,如果没有顾客,则理发师睡觉;如果有一顾客进入理发店发现理发师在睡觉,则把他叫醒,写一程序协调理发师和顾客之间的关系。