首页 > 试题广场 >

题目来源于王道论坛 某博物馆最多可容纳500

[问答题]
题目来源于王道论坛

某博物馆最多可容纳500人同时参观,有一个出入口,该出入口一次仅允许一个人通过。参观者的活动描述如下:

cobegin

参观者进程i

{

进门;

参观;

出门;

}

coend

请添加必要的信号量和PV(或wait()signal())操作,以实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。


推荐

解答:

出入口一次仅允许一个人通过,设置互斥信号量mutex,初值为1。博物馆最多可同时容纳500个人,故设置信号量empty,初值为500

Semaphore empty=500;             //博物馆可以容纳的最多人数

Semaphore mutex =1;              //用于出入口资源的控制

cobegin

参观者进程i

{

P(empty);

P(mutex);

进门;

V(mutex);

参观;

P(mutex);

出门;

V(mutex);

V(empty);

}

coend

【评分说明】①信号量初值给1分,说明含义给1分,两个信号量的初值和含义共4分。

② 对mutexPV操作正确给2分。

③ 对emptyPV操作正确给1分。

④ 其他答案,参照①~③的标准给分。

发表于 2018-09-11 19:27:28 回复(0)