文章
316
粉丝
0
获赞
0
访问
47.6k
 
semaphore mutex=1,full=0,empty=500;
cobegin
参观者进程i:
{
    p(empty);
     p(mutex);
        进门;
v(mutex);
     v(full);
      参观;
  P(mutex);
      出门;
   v(mutex);
p(full);
   v(empty);
}
coend
评分及理由
(1)信号量定义及初值(满分4分)
学生定义了三个信号量:mutex=1(正确,用于出入口互斥),empty=500(正确,表示剩余容量),但额外定义了full=0(冗余,标准答案中不需要)。信号量含义说明缺失(题目要求说明含义,但学生作答未提供文字说明)。扣分:因多余信号量full和未说明含义,扣2分。得分:2分。
(2)对empty的P、V操作(满分1分)
学生使用P(empty)在进门前检查容量(正确),V(empty)在出门后释放容量(正确)。但V(empty)前有P(full)操作,这是多余的,但未影响empty操作本身的正确性。因此不扣分。得分:1分。
(3)对mutex的P、V操作(满分2分)
进门和出门时均正确使用P(mutex)和V(mutex)实现互斥(正确)。但出门后多了一个P(full)操作,这是逻辑错误(full信号量多余且P(full)会错误阻塞进程),但mutex操作本身正确。因此不扣分。得分:2分。
题目总分:2+1+2=5分
登录后发布评论
暂无评论,来抢沙发