2.3 例题解答

例1 什么情况会导致处理器从用户态向核心态转换?

答:通常存在两类情况导致处理器从用户态向核心态转换:1)程序请求操作系统服务,执行系统调用(系统调用是操作系统提供的若干功能子程序,它们在核心态下执行);2)程序运行时产生中断或异常事件。当系统中产生中断或异常时,处理器将做出响应并交换程序状态字。这两类情况都是通过中断机制导致的。通常认为中断和异常是用户态到核心态转换的主要途径。

例2 试说明访管指令与特权指令的区别。

答:现代计算机系统硬件提供一条访管指令,该指令可以在目态下执行。用户程序通过系统调用请求操作系统服务时,编译程序将其转换成目标程序中的“访管指令”及一些参数。目标程序执行时,CPU执行到访管指令就产生自愿性中断,操作系统即调用相应的系统调用子程序为其服务,并在管态下工作。完成系统调用后,操作系统将CPU状态改变为目态,并返回到用户程序继续执行。访管指令包括操作码和访管参数,后者表示具体的访管要求。

特权指令是指仅供内核程序使用的指令,如修改程序状态字、开关中断、修改地址映射寄存器、启动I/O设备、清空内存、设置时钟、停机等。特权指令只允许操作系统使用,不允许一般用户程序使用。

例3 DMA控制方式与通道控制方式有什么不同?

答:在DMA控制方式中,在DMA控制器的控制下,设备和主存之间可以成批地进行数据交换而不用CPU干预,这样既减轻了CPU的负担,也大大提高了I/O数据传送的速度。通道控制方式与DMA控制方式类似,也是一种以内存为中心,实现设备与内存直接交换数据的控制方式。在通道控制方式中,CPU只需发出启动指令,指出通道相应的操作和I/O设备,该指令就可以启动通道,并使该通道从内存中调出相应的通道程序执行。与DMA控制方式相比,通道控制方式所需的CPU干预更少,并且一个通道可以控制多台设备,从而进一步减轻了CPU的负担。

例4 简述中断装置的作用。

答:中断是计算机系统结构一个重要的组成部分。中断机制中的硬件部分(中断装置)的作用就是,在CPU每执行完一条指令后,判别是否有事件发生,如果没有事件发生,则CPU继续执行;若有事件发生,则中断装置中断原先占用CPU的程序的执行,把被中断程序的断点保存起来,让操作系统的处理服务程序占用CPU对事件进行处理,处理完后,再让被中断的程序继续占用CPU执行下去。所以,中断装置的作用总的来说就是:使操作系统可以控制各个程序的执行,为用户提供各种服务。

例5 什么是陷阱、软中断?试比较陷阱、软中断、外中断之间的异同。

答:陷阱就是内中断,又称异常,是CPU检测到的一个非正常状态,这个状态通常表示出错。如地址非法、除数为零、页面失效等。此外,从目态到管态的切换也是陷阱的例子。

中断分为硬中断和软中断。软中断利用硬中断的概念,采用软件方法对中断机制进行模拟。软中断分为信号中断和软件中断两种机制。软中断实现宏观上的异步执行。

陷阱是CPU和内存内部产生的中断。外中断是外部设备(如I/O设备)发给CPU的信号,是由硬件触发的时间。通常将外中断简称为中断。陷阱是同步的,即每次程序的运行在相同的输入下,都会在相同的点产生相同的陷阱;而外中断是异步的,即程序在每次运行时使用相同的输入,不一定会在相同的点产生中断。陷阱、外中断、软中断都属于干扰CPU正常顺序执行指令的事件。陷阱和外中断都是通过硬件设施来产生中断请求,属于硬中断。

例6 试比较中断机制与信号机制的异同。

答:相同点:两者都是“异步”的,CPU和进程在工作中并不知道何时产生中断或信号。两者在实现上均采用“向量表”,中断机制采用“中断向量表”,根据查找到的中断向量转入中断或异常处理程序;信号机制采用“信号向量表”,通过信号编号找到并转入信号处理程序。两者都具有“屏蔽”功能,中断机制可直接对中断源屏蔽,信号机制通过设置信号字段位屏蔽,使进程对发来的信号不予理睬。

不同点:中断机制通过软、硬件共同实现,而信号机制完全通过软件实现;中断向量表和中断处理程序、信号向量表位于系统空间,但信号处理程序通常由用户程序提供,在用户空间运行。