文章
66
粉丝
0
获赞
0
访问
9.3k
1.因为S的操作并不是原子变化的,不同线程的共享变量间存在读后写/写后写的问题。
2.方法2正确,方法1错误,按照方法1的写法会产生永远在忙等待的情况(在临界区内无限循环,外面给信号量+1的进程进不来)
3. 如果是多处理器,不能,因为处理器之间的cache不一致;
如果是单处理器,得看触发进程调度的中断是否能够被屏蔽,如果可以,就无法进行进程调度,从而能独占的运行完缓冲区,从而实现互斥。
评分及理由
(1)得分及理由(满分2分)
学生回答指出S的操作不是原子操作,存在读后写/写后写问题,这基本正确解释了需要互斥的原因。但未明确提到信号量是共享变量,被多个进程访问,表述不够完整。扣1分。
得分:1分
(2)得分及理由(满分3分)
学生正确判断方法1错误(产生忙等待)和方法2正确,理由基本准确。但未详细说明方法1死循环的具体原因(关中断导致其他进程无法修改S),扣1分。
得分:2分
(3)得分及理由(满分2分)
学生回答部分正确:指出多处理器下不能使用开/关中断(但理由不准确,应是特权指令问题而非cache一致性)。单处理器部分分析错误,开/关中断是特权指令,用户程序无法使用。核心原因未答出,扣2分。
得分:0分
题目总分:1+2+0=3分
登录后发布评论
暂无评论,来抢沙发