文章
101
粉丝
0
获赞
1
访问
30.5k
Semaphore full=500;//图书馆内人数
Semaphore door=1;//互斥使用门
cobegin
参观者进程i
{
p(full);
p(door);
进门;
v(door);
参观;
p(door);
出门;
v(door);
v(full);
}
coend;
评分及理由
(1)信号量定义得分及理由(满分4分)
得分:3分
理由:学生定义了两个信号量:full=500和door=1。其中door=1用于互斥控制出入口,含义和初值正确(2分)。full=500的含义是"图书馆内人数",但实际应该表示剩余可容纳人数(即空位数量),学生使用了full这个名称但初值设为500,这与标准答案的empty含义相反,但逻辑上可以通过P(full)和V(full)正确控制人数(1分)。扣1分是因为信号量命名不够准确,可能引起理解上的混淆。
(2)互斥操作得分及理由(满分2分)
得分:2分
理由:学生对door信号量的P、V操作完全正确。在进门和出门操作前后都正确使用了P(door)和V(door)来保证出入口的互斥使用,符合题目要求。
(3)同步操作得分及理由(满分1分)
得分:1分
理由:学生对full信号量的P、V操作位置正确。P(full)在进门前确保博物馆未满,V(full)在出门后释放一个位置,虽然信号量命名与标准答案不同,但逻辑功能完全正确。
题目总分:3+2+1=6分
登录后发布评论
暂无评论,来抢沙发