单选题 下列指令中,必须在内核态下运行的是( )。
A.设置时钟 B.由用户态转向内核态
C.关中断 D.算术运算

【正确答案】 C
【答案解析】[解析] 本题考查有关用户态和内核态的问题。操作系统为了更好地实现共享和保护,通常在运行时设定不同的保护模式,其中用户态和内核态是通常的划分方式。在用户态运行用户代码,在内核态运行系统代码,系统代码的权限比较大,可以访问计算机的全部资源。一般,操作系统会将系统代码以“系统调用”的方式提供给用户使用,且使用时有限制,操作系统内核的关键数据和代码一般是不提供给用户使用的。“系统调用”进入的途径是通过访管指令实现的。本题中,设置时钟和算术运算指令,用户是可以直接使用的,由用户态转向内核态的指令是访管指令,是由用户态转为内核态的唯一途径,也称陷入指令,顾名思义是从用户态陷入到内核态,它发起于用户态,结束于内核态。一般从内核态回到用户态可以则通过修改状态字来实现。关中断必须在操作系统内核中运行,因此是内核指令,必须在内核态运行。