文章
78
粉丝
0
获赞
0
访问
7.1k

评分及理由
(1)信号量定义得分及理由(满分2分)
得分:1分
理由:学生定义了三个信号量:mutex=1(消费者互斥)、empty=1000(缓冲区空位)、full=0(缓冲区产品数)。缺少生产者互斥访问缓冲区的信号量,且mutex的作用描述不完整(应控制连续取10件的互斥)。但基本信号量初值正确,给1分。
(2)生产者进程实现得分及理由(满分2分)
得分:1分
理由:生产者使用了P(empty)和V(full)实现同步,基本正确。但缺少对缓冲区的互斥访问(没有P/V操作保护临界区),存在竞态条件,扣1分。
(3)消费者进程实现得分及理由(满分4分)
得分:1分
理由:消费者使用了mutex实现连续取10件的互斥,思路正确(给1分)。但存在严重逻辑错误:①P(full)位置错误(应在循环内每次取产品前判断);②V(empty)位置和次数错误(应在每次取出后执行);③条件判断"if ((consume+1)%1000 != produce)"多余且错误;④缺少count递减操作。这些错误导致同步和互斥逻辑完全失效,扣3分。
题目总分:1+1+1=3分
登录后发布评论
暂无评论,来抢沙发