文章

131

粉丝

0

获赞

0

访问

6.2k

头像
2022年(408)计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年12月8日 17:23
阅读数 5


评分及理由

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

学生答案存在多处严重逻辑错误:

  1. 线程划分错误:题目明确T1执行A、E、F,T2执行B、C、D。但学生答案中Poster1(应代表T1)包含了执行B(属于T2),Poster2(应代表T2)包含了执行E(属于T1),这完全混淆了线程的任务分配。
  2. 同步逻辑错误:同步操作(wait/signal)的放置位置与操作之间的依赖关系不符。例如,signal(mutex_AC)被放在了A和B都执行完之后,这无法保证C在A完成后执行。wait(mutex_CE)被放在了F之前,但F依赖的是E完成,而非C完成,且E的执行本身也需要等待信号量。
  3. 循环结构错误:题目描述的是两个线程按特定顺序执行一系列操作,但学生答案为每个线程添加了`while(1)`无限循环,这改变了问题的性质,会导致操作被重复执行,不符合题意。
  4. 信号量使用不当:信号量被命名为“mutex”(互斥),但其实际应起到同步(即前驱关系)的作用。虽然名称不影响功能,但结合其错误的wait/signal位置,表明学生对同步关系的理解有偏差。
  5. 关键操作缺失或错位:在Poster2中,执行C之前没有等待A和B完成的信号(wait(mutex_AC)被错误地放在了最后),执行E之前没有等待C完成的信号,执行D的顺序也未受约束。

综上所述,学生的作答未能正确描述T1和T2之间的同步关系,代码逻辑与题目要求严重不符。虽然识别出需要两个信号量(AC和CE),但具体实现完全错误。

根据打分要求,逻辑错误需要扣分。本题满分8分,由于存在根本性的逻辑错误,仅能给予极少的分数以示对“识别出部分信号量”这一行为的认可,但核心同步逻辑完全错误。

得分:1分

题目总分:1分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发