文章
281
粉丝
40
获赞
2
访问
24.2k
(1)
因为wait()和signal()需要保证原子性,当有多个进程同时访问wait()或者signal()的时候。
会同时根据原有的S值更新S值,造成数据冲突
(2)
方法1错误
wait()方法中关中断后,没有其他进程可以修改S的值,会导致while()循环无法退出
方法2正确
(3)
不能,因为中断指令是特权指令,用户程序不能直接使用特权指令
评分及理由
(1)得分及理由(满分2分)
学生答案正确指出了多个进程同时访问wait()或signal()时会导致数据冲突,并强调了原子性的必要性。这与标准答案中“信号量S是能够被多个进程共享的变量,多个进程都可以通过wait()和signal()对S进行读、写操作,必须互斥”的核心观点一致。答案完整且准确,得2分。
(2)得分及理由(满分3分)
学生正确判断方法1错误,并给出了正确理由(关中断后其他进程无法修改S,导致死循环)。同时正确判断方法2正确(标准答案也认为方法2正确)。理由充分,与标准答案一致。得3分。
(3)得分及理由(满分2分)
学生正确回答“不能”,并给出了关键理由“中断指令是特权指令,用户程序不能直接使用特权指令”,这与标准答案完全一致。得2分。
题目总分:2+3+2=7分
登录后发布评论
暂无评论,来抢沙发