文章
238
粉丝
0
获赞
3
访问
32.7k
评分及理由
(1)信号量定义及初值(满分2分)
学生答案中定义了bowl信号量,初值为min{m, n-1},与标准答案一致,正确限制了同时进餐的哲学家数量以防止死锁。同时定义了chopstick数组信号量,初值均为1,表示每根筷子可用。信号量定义和初值设置正确。得2分。
(2)P、V操作顺序(满分4分)
学生答案中哲学家进程的逻辑为:先申请碗(P(bowl)),再依次申请左、右筷子(P(chopstick[i])、P(chopstick[(i+1)%n])),进餐后按相反顺序释放筷子(V(chopstick[(i+1)%n])、V(chopstick[i])),最后释放碗(V(bowl))。此顺序与标准答案完全一致,能够避免死锁并实现同步互斥。得4分。
(3)整体结构(满分2分)
学生答案使用了cobegin/coend(或CoBegin/CoEnd)表示并发进程的开始和结束,哲学家进程使用循环结构模拟持续思考和就餐,整体结构完整正确。得2分。
题目总分:2+4+2=8分
登录后发布评论
暂无评论,来抢沙发