第 31 题
执行系统调用的过程涉及下列操作,其中由操作系统完成的是()。
I. 保存断点和程序状态字
Ⅱ.保存通用寄存器的内容
Ⅲ.执行系统调用服务程序
IV. 将CPU 模式改为内核态
A. 仅I 、Ⅲ B. 仅Ⅱ、Ⅲ C. 仅Ⅱ、 IV D. 仅Ⅱ、Ⅲ、 IV
[tag_link]
正确答案:B
对四个选项进行逐一分析: Ⅰ. 保存断点和程序状态字 ❌ 参考 中断处理过程 ,保存断点由中断隐指令完成,即由硬件完成。Ⅱ. 保存通用寄存器的内容 ✅ 为了防止系统调用覆盖用户程序中的数据,操作系统在进入系统调用处理程序时会保存用户程序的寄存器内容(这属于上下文切换的一部分)。Ⅲ. 执行系统调用服务程序 ✅ 系统调用就是要求操作系统执行某项服务,服务程序是操作系统的一部分,由操作系统调度执行。Ⅳ. 将 CPU 模式改为内核态 ❌ 这一点不是由操作系统主动完成,而是由硬件自动完成的: 当执行陷阱指令(如 int 0x80 )或发生中断时,CPU 自动将模式从用户态切换为内核态,然后跳转到操作系统提供的中断向量地址。所以,这属于硬件响应的一部分,不是由操作系统“显式”控制的。所以正确答案选择 B。