单选题 在操作系统中,只能在核心态下执行的指令是______。
  • A.读时钟
  • B.寄存器清零
  • C.系统调用
  • D.取数
【正确答案】 C
【答案解析】为了防止操作系统及其关键数据受到用户程序有意或无意的破坏,通常将处理器的执行状态分为核心态与用户态。核心态具有较高的权限,可以执行包含特权指令的一切指令,访问所有的寄存器和存储区。因此,可能产生对系统有影响的指令都必须在核心态下执行。 下面以是否会对系统产生影响为判断依据,对4个选项进行分析。 1)读时钟是一种常见的操作,仅仅读出系统时间,并不会对系统造成不良影响(日常应用软件中显示的时间都是读取系统时钟得到的),故A选项错误。设置系统时钟可能会对系统产生不良影响,如干扰系统中需要计时的功能等,因此虽然读时钟可以在用户态执行,但设置时钟必须在核心态执行,要注意区别。 2)寄存器清零是否会对系统产生影响要看所清零的寄存器是否为系统级,如果仅仅是用户进程的寄存器,清零操作并不会对系统产生影响,因此不能说寄存器清零只能在核心态执行,故B选项错误。 3)系统调用是系统提供给用户程序用来执行内核函数的接口,在执行系统调用时,处理器会由用户态转换到核心态(参见第4题答案),故C选项正确。 4)取数是程序运行中很常见的操作,而且仅仅取数而不改写对于系统来说更加没有不良影响,因此可以在用户态执行,故D选项错误。 有的题目会以特权指令的说法来提问,特权指令就是只能在核心态执行、不允许用户直接使用的指令,如I/O指令、设置中断屏蔽指令、清内存、建存储保护、设置时钟指令。 ★注:有的题目会提到广义指令,在考研范围内广义指令就是指系统调用。