文章

314

粉丝

1

获赞

107

访问

61.5k

头像
2020年(408)计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年12月8日 21:19
阅读数 75


评分及理由

(1)得分及理由(满分7分)

学生作答存在以下问题:

  1. 逻辑错误:题目要求操作C必须在A和B都完成后执行,但学生的方案中,P2进程(执行B和C)通过P(AC)只等待了A完成,没有等待B完成。实际上,B和A是并发执行的,但C在B执行后没有等待B完成的同步机制(因为B和C在同一个进程内顺序执行,这隐含了B在C之前,但缺少了对A的等待的显式同步)。然而,学生的方案中,P(AC)信号量由A操作后V(AC)置位,P2中P(AC)等待A完成,但C的执行还依赖于B的完成,而B在同一个进程中,所以C确实在B之后执行,但缺少了对A和B都完成的明确同步保证(因为如果A很慢,P2可能阻塞在P(AC),然后执行B和C;但如果A很快,P2可能先执行B,然后阻塞在P(AC)等待A,这可能导致C在A完成前就执行了B,但C必须等待A和B都完成,这里逻辑不严谨)。更严重的是,学生的方案中,P1进程执行A、D、E,P2进程执行B、C,但操作E必须在C和D完成后执行,而学生的P1中,E之前只P(CE)等待C完成,没有等待D完成(因为D在P1中在A之后、P(CE)之前执行,所以D肯定在E之前执行,但缺少显式同步,且如果D执行时间很长,可能影响E的执行顺序,但逻辑上D在E之前执行是满足的)。然而,学生的方案中缺少了D和E之间的同步信号量,标准答案中需要S_DE信号量,这里缺失。
  2. 信号量设置不全:学生只设置了AC和CE两个信号量,缺少了B和C之间的同步信号量(S_BC)以及D和E之间的同步信号量(S_DE),导致同步关系不完整。
  3. 进程划分不合理:学生将操作分配到两个进程中(P1: A、D、E;P2: B、C),但题目没有指定进程划分,标准答案中每个操作一个进程更清晰。学生的划分导致同步关系复杂且容易出错。
  4. 循环结构多余:学生使用了while(1)循环,题目没有要求循环执行,多余但不扣分(根据禁止扣分第5条)。

因此,学生的答案没有正确描述所有同步关系,存在逻辑错误和信号量缺失。根据打分要求,逻辑错误扣分,思路部分正确但不完整。本题满分7分,扣除主要逻辑错误分(缺失B和C、D和E的同步,以及C等待A和B的逻辑不严谨),给2分。

题目总分:2分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发