文章

5

粉丝

0

获赞

0

访问

84

头像
2024年计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年9月14日 16:36
阅读数 12

(1)

是,因为B是临界资源,不可同时访问(不可同时写)
(2)

semaphore S = 0 // 表示B是否不为空

P1

C1;

signal(S);
P2
wait (S);

C2;
(3)
semaphore S = 1; //表示B能否被占用
P1
wait(S);

C3;
signal(S);

P2
wait(S);

C3;
signal(S);

 


评分及理由

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

学生回答“是,因为B是临界资源,不可同时访问(不可同时写)”。该回答正确指出了C1操作涉及对共享缓冲区B的写入,需要互斥访问,因此是临界区。理由充分,与标准答案一致。得2分。

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

学生定义了一个信号量S(初值0)表示B是否不为空。P1执行C1后signal(S),P2执行wait(S)后执行C2。该方案缺少对缓冲区B的互斥保护(mutex信号量),因为C1和C2操作本身可能涉及对共享缓冲区的读写,需要互斥访问以防止数据不一致。例如,如果多个进程同时执行C1或C2,可能产生竞态条件。因此,该方案存在逻辑错误,未实现完整的同步和互斥。扣2分(互斥缺失严重错误)。得1分(因为同步部分正确,但互斥部分缺失)。

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

学生定义了一个信号量S(初值1)表示B能否被占用,并使用wait/signal操作包裹C3。该方案正确实现了对C3操作的互斥访问(因为C3修改缓冲区B,需要互斥),且信号量初值合理(初始非空,可直接访问)。与标准答案一致。得3分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发