文章

69

粉丝

0

获赞

0

访问

14.1k

头像
2021年(408)计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年12月15日 20:09
阅读数 214


评分及理由

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

学生答案:若不互斥执行,则可能有多个进程同时对S进行访问,则无法实现信号量的互斥功能。
标准答案:因为信号量S是能够被多个进程共享的变量,多个进程都可以通过wait()和signal()对S进行读、写操作。所以,在wait()和signal()操作中对S的访问必须是互斥的。
评分分析:学生答案准确指出了若不互斥,多个进程可能同时访问S,这与标准答案核心思想一致。虽然表述上略有差异(“无法实现信号量的互斥功能”可以更精确地表述为“可能导致信号量状态不一致,从而无法正确实现同步互斥”),但核心逻辑正确。因此,本题得满分2分。

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

学生答案:方法1错误,方法2正确。方法1中while(S <= 0);且一直关中断,导致S值不变,导致死锁现象。
标准答案:方法1是错误的。在wait()中,当S<=0时,关中断后,其他进程无法修改S的值,while语句陷入死循环。方法2是正确的。
评分分析:学生正确判断了方法1错误、方法2正确。对于方法1的错误原因,学生指出“一直关中断,导致S值不变,导致死锁现象”。这里“死锁”的表述不够精确(更准确的描述是“死循环”或“忙等待且无法被打破”),但结合上下文(“S值不变”)可以理解其意指“其他进程无法修改S,导致循环无法退出”,这与标准答案的逻辑一致。因此,本题得满分3分。

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

学生答案:不能。因为开/关中断指令使用了特权指令开/关中断。
标准答案:用户程序不能使用开/关中断指令实现临界区互斥。因为开中断和关中断指令都是特权指令。
评分分析:学生答案与标准答案完全一致,正确指出了不能使用的原因在于开/关中断是特权指令。因此,本题得满分2分。

题目总分:2+3+2=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发