文章
24
粉丝
50
获赞
1
访问
977

评分及理由
(1)信号量定义得分及理由(满分2分)
得分:2分
理由:学生定义了四个信号量empty、full、mutex、lock,含义和初值都正确。empty=1000表示缓冲区空位数量,full=0表示产品数量,mutex=1用于缓冲区互斥,lock=1用于保证消费者连续取10件的互斥,与标准答案的mutex1作用相同。
(2)生产者进程实现得分及理由(满分2分)
得分:2分
理由:生产者进程实现正确,先P(empty)判断是否有空位,再P(mutex)互斥访问缓冲区,生产产品后V(mutex)释放互斥锁,V(full)增加产品计数,完全符合生产者-消费者模型。
(3)消费者进程实现得分及理由(满分4分)
得分:3分
理由:消费者进程整体思路正确,使用lock信号量保证连续取10件的互斥,循环10次取产品。扣1分是因为在for循环中,P(full)和P(mutex)的顺序有潜在死锁风险,应该先P(full)再P(lock)内层操作,但考虑到学生可能理解正确只是表达不够严谨,且主要逻辑正确,只扣1分。
题目总分:2+2+3=7分
登录后发布评论
暂无评论,来抢沙发