因操作系统不允许用户直接执行某些“危险性高”的指令,因此用户态运行这些指令的结果会转成操作系统的核心态去运行。这个过程就是访管中断。
中断处理流程的前三个步骤是由硬件直接实现(隐指令)的。
地址映射中需要基地址(或页表)寄存器和地址加法器的支持。
时钟管理中,需要硬件计数器保持时钟的运行。
进程调度由调度算法决定CPU使用权,由操作系统实现,不需要硬件的支持。
计算机通过硬件中断机制完成由用户态到核心态的转换。
B不正确,核心态程序只有在操作系统进入核心态后才可以执行。
D中的中断处理程序一般也在核心态执行,因此无法完成“转换成核心态”这一任务。
若由用户程序将操作系统由用户态转换为核心态,则用户程序中就可使用核心态指令,这就会威胁到计算机的安全,所以C不正确。
计算机通过硬件完成操作系统由用户态到核心态的转换,这是通过中断机制来实现的。发生中断事件时,触发中断,硬件中断机制将计算机状态置为核心态。
“访管”指令仅在用户态下使用,执行“访管”指令将用户态转变为核心态。
广义指令即系统调用命令,它必然工作在核心态,所以答案为C。
广义指令的调用可能发生在用户态,调用广义指令的那条指令不一定是特权指令,但广义指令存在于核心态中,所以执行一定在核心态。
子程序调用只需保存程序断点,即该指令的下一条指令的地址;中断处理不仅要保存断点,还要保存程序状态字寄存器的内容。
中断是指来自CPU执行指令以外事件的发生,如设备发出的I/O结束中断,表示设备输入/输出处理已经完成,希望处理机能够像设备发出下一个输入/输出请求,同时让完成输入/输出后的程序继续运行。
时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。这一类中断通常是与当前程序运行无关的事件,即它们与当前处理机运行的程序无关。
异常也称内中断,指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页及专门的陷入指令等引起的事件。
Ⅰ、内核中时钟变量的值
Ⅱ、当前进程占用CPU的时间
Ⅲ、当前进程在时间片内的剩余执行时间
时钟中断的主要工作是处理和时间有关的信息及决定是否执行调度程序。和时间有关的所有信息包括系统时间、进程的时间片、延时、使用CPU的时间、各种定时器,因此Ⅰ、Ⅱ、Ⅲ均正确
Ⅰ、在执行系统调用服务程序的过程中,CPU处于内核态
Ⅱ、操作系统通过提供系统调用避免用户程序直接访问外设
Ⅲ、不同的操作系统为应用程序提供了统一的系统调用接口
Ⅳ、系统调用是操作系统内核为应用程序提供服务的接口
用户可以在用户态调用操作系统的服务,但执行具体的系统调用服务程序是出于内核态的,Ⅰ正确;
设备管理属于操作系统的职能之一,包括对输入/输出设备的分配、初始化、维护等,用户程序需要通过系统调用使用操作系统的设备管理服务,Ⅱ正确;
操作系统不同,底层逻辑、实现方式均不相同,为应用程序提供的系统调用接口也不同,Ⅲ错误;
系统调用是用户在程序中调用操作系统提供的子功能,Ⅳ正确。
Ⅰ、保存被中断程序的中断点
Ⅱ、提供中断服务
Ⅲ、初始化中断向量表
Ⅳ、保存中断屏蔽字
当CPU检测到中断信号后,由硬件自动保存被中断程序的断点(即程序计数器PC),Ⅰ错误。
硬件找到该中断信号对应的中断向量,中断向量指明中断服务程序入口地址(各中断向量统一存放在中断向量表中,该表由操作系统初始化),Ⅲ正确。
接下来开始执行中断服务程序,保存PSW、保存中断屏蔽字、保存个通用寄存器的值,并提供与中断信号对应的中断服务,中断服务程序属于操作系统内核,Ⅱ和Ⅳ正确。