文章
986
粉丝
5
获赞
20
访问
254.9k

评分及理由
(1)信号量含义和初值(满分2分)
得分:1分
理由:学生定义了四个信号量,但存在以下问题:
- empty初值应为1000(缓冲区容量),学生设为0,这是错误的
- full初值应为0(初始产品数为0),学生设为100,这是错误的
- mutex1和mutex2的含义描述基本正确
由于两个同步信号量初值错误,扣1分
(2)生产者进程实现(满分1分)
得分:0.5分
理由:生产者进程中:
- 缺少对empty信号量的P操作(检查缓冲区是否有空位)
- mutex1的使用不正确,生产者不应该使用mutex1
- 同步逻辑不完整,扣0.5分
(3)生产者与消费者同步操作(满分2分)
得分:1分
理由:同步逻辑存在严重问题:
- 生产者没有使用empty信号量来同步
- 消费者没有使用empty信号量的V操作来释放空位
- 同步机制不完整,扣1分
(4)消费者进程实现(满分1分)
得分:0.5分
理由:消费者进程中:
- 缺少连续取10件产品的循环结构
- mutex1的使用位置不正确
- 消费者互斥逻辑不完整,扣0.5分
(5)控制消费者连续取产品数量(满分2分)
得分:0分
理由:完全没有实现"一个消费者进程从缓冲区连续取出10件产品后,其他消费者进程才可以取产品"的要求。学生代码中消费者每次只取1件产品,没有连续取10次的机制。
题目总分:1+0.5+1+0.5+0=3分
登录后发布评论
暂无评论,来抢沙发