文章

100

粉丝

0

获赞

0

访问

3.8k

头像
2024年(408)计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2026年3月28日 18:18
阅读数 45


评分及理由

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

得分:2分。
理由:学生明确指出C1的执行需要互斥(“P₁与P₂互斥执行C₁”),这与标准答案中“实现C1的代码是临界区”的核心观点一致。尽管表述简略,但准确回答了问题本质。

(2)得分及理由(满分3分)

得分:1分。
理由:学生识别出了P1和P2之间存在同步关系,并定义了一个初值为0的信号量S用于同步,这是正确的。但是,答案存在严重的逻辑错误和缺失:
1. 逻辑错误(扣2分):学生的代码只解决了同步问题(P1先C1,P2后C2),但完全没有解决互斥问题。根据题目要求,对缓冲区B的写入操作C1本身是临界区,需要互斥访问,而学生的代码中P1和P2的C1/C2操作没有使用互斥信号量保护,可能导致多个进程同时访问缓冲区,造成数据不一致。
2. 信号量命名不完整(“Semaphore =0;”),但根据上下文可判断其意图,属于表述瑕疵,不额外扣分。
因此,由于缺少关键的互斥保护机制,扣2分。

(3)得分及理由(满分3分)

得分:3分。
理由:学生定义了初值为1的信号量mutex用于互斥(“Semaphore mutex =1;”)。虽然只给出了信号量定义,没有写出具体的wait/signal操作代码,但题目第(3)问的核心要求是“定义尽可能少的信号量”并“说明所用信号量的作用及初值”。学生正确指出了解决两个进程互斥执行C3操作所需的互斥信号量及其初值,思路与标准答案完全一致。未写出的代码部分可视为省略,不扣分。

题目总分:2+1+3=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发