文章
36
粉丝
0
获赞
0
访问
933

评分及理由
(1)信号量定义及初值(满分1分)
学生定义了5个信号量A、B、C、D、E,初值分别为1、1、0、1、0。虽然信号量命名与标准答案不同,但初值设置基本合理:C和E作为同步信号量初值为0符合要求。但A、B、D初值为1实际上将其用作互斥信号量,而题目要求的是同步关系,这里存在逻辑偏差。扣0.5分。
(2)进程划分(满分1分)
学生将操作划分为三个线程T1、T2、T3,其中T1包含A和B操作,T2包含C和D操作,T3包含E操作。这种划分方式与标准答案的五个独立进程不同,但理论上可行。由于题目没有指定必须每个操作一个进程,这种划分不扣分。得1分。
(3)同步逻辑实现(满分5分)
学生实现存在多处逻辑错误:
- T1中连续执行A和B,没有体现C必须等待A和B都完成的要求
- T2中P(C)后立即执行操作C,但C需要等待A和B完成,这里缺少对A、B完成的等待
- T2中P(D)没有意义,因为D没有前置依赖
- 信号量使用混乱,V(C)在多个地方出现,逻辑不清
- 整体没有正确实现"C必须在A和B完成后执行"和"E必须在C和D完成后执行"的同步关系
由于核心同步逻辑实现错误,扣4分。
题目总分:0.5+1+1=2.5分
登录后发布评论
暂无评论,来抢沙发