文章
327
粉丝
40
获赞
2
访问
40.2k
(1) wait和signal都是原子性操作的指令,用于实现互斥访问临界区,如果多进程并发访问下没有对信号量实现互斥执行,同时读写可能会同时持有信号量的同一个值,先后进行修改覆盖读或者写的值,造成脏数据
(2)方法一中的while当信号量S为负值的时候,会一直执行循环体内的S = S-1;导致while无法退出
方法二正确
(3)用户程序不能使用开/关中断实现临界区互斥,因为中断指令是特权指令,用户态下不可以用
评分及理由
(1)得分及理由(满分2分)
学生回答正确,指出了信号量S是共享变量,多进程并发访问时可能造成数据不一致(如脏数据),这体现了对互斥必要性的理解。答案与标准答案一致,得2分。
(2)得分及理由(满分3分)
学生指出方法1错误(但理由不准确:错误原因是while循环在关中断下无法被其他进程修改S,导致死循环,而不是“S为负值时执行S=S-1”),扣1分;方法2正确判断得1分。因此,本部分得2分(满分3分)。
(3)得分及理由(满分2分)
学生回答正确,指出开/关中断是特权指令,用户程序不能使用,与标准答案一致,得2分。
题目总分:2+2+2=6分
登录后发布评论
暂无评论,来抢沙发