文章
302
粉丝
0
获赞
15
访问
51.4k

评分及理由
(1)信号量定义及初值(满分2分)
得分:1分
理由:学生定义了四个同步信号量A_full、B_full、A_empty、B_empty,初值设置基本正确(A_full=x, B_full=y, A_empty=M-x, B_empty=N-y)。但存在两个问题:①B_empty的初值写成了N-x(应为N-y),这是一个明显的逻辑错误;②缺少互斥信号量的定义。根据评分标准,信号量定义及初值正确才能给分,这里初值有错误且缺少必要信号量,扣1分。
(2)互斥信号量的P、V操作(满分2分)
得分:0分
理由:学生在整个代码中没有定义任何互斥信号量,也没有在访问共享资源(信箱)时使用互斥保护。这是一个严重的逻辑错误,会导致多个进程同时访问同一个信箱时出现数据不一致的问题。根据评分标准,互斥信号量的P、V操作使用正确才能给分,这里完全没有使用,扣2分。
(3)同步信号量的P、V操作(满分5分)
得分:3分
理由:学生在同步信号量的使用上基本思路正确:取邮件前P(Full),取完后V(Empty);放邮件前P(Empty),放完后V(Full)。但是存在两个问题:①P、V操作的位置有误,应该在操作共享资源前后,但学生将V(Empty)放在了取邮件操作之前;②缺少互斥保护的情况下,同步操作的正确性无法保证。考虑到同步逻辑基本正确,但执行顺序有误,扣2分。
题目总分:1+0+3=4分
登录后发布评论
暂无评论,来抢沙发