访管指令


请输入要查询的词条内容:

访管指令


访管指令


“访管指令”是可以在目态下执行的指令。当源程序中有需要操作系统服务的要求时,编译程序就会在由源程序转换成的目标程序中安排一条“访管指令”并设置一些参数。当目标程序执行时,中央处理器若取到了“访管指令”就产生一个中断事件,中断装置就会把中央处理器转换成管态,并让操作系统处理该中断事件。操作系统分析访管指令中的参数,然后让相应的“系统调用”子程序为用户服务。系统调用功能完成后,操作系统把中央处理器的管态改为目态,并返回到用户程序。

从程序调用的角度来看,用户应用程序中要调用一些子程序。子程序可以分为用户自己编写的子程序和软件提供的子程序,对后者的访问即被称为访问系统程序(访管)指令,又称为陷阱(TRAP)指令。

访管指令并不是特权指令。所谓特权指令,是指用于操作系统或其他系统软件的指令,一般不提供给用户使用。

我们可以进一步问另一个问题:为什么要在程序执行中引入“访管指令”呢?

我们知道,用户程序只能在目态下运行,并且不能使用特权指令。因而就存在这么一个问题:如果用户程序想要启动外设,或者要完成在目态下无法完成的工作,该怎么办?要解决这一问题必须有三个条件:

(1)需要有一条指令,能使处理机从目态进入管态,并向操作系统提交要代为完成的工作;

(2)在管态下由操作系统完成用户程序的请求;

(3)操作系统完成所做工作后能返回到用户程序,即从管态回到原来的目态。

解决这个问题要靠访管指令。访管指令本身不是特权指令,其基本功能是让程序拥有“自愿进管”的手段,从而引起访管中断。

自愿性中断事件(软件中断)是正在运行的程序所期待的事件。这种事件是由于执行了一条访管指令而引起的,它表示正在运行的程序对操作系统有某种需求。一旦机器执行这一中断时,便自愿停止现行程序而转入访管中断处理程序处理。例如,要求操作系统协助启动外围设备工作。

所谓系统调用就是用户在程序中能用访管指令调用的由操作系统提供的子功能集合。其中每一个子功能称为一个系统调用命令。

相关分词: 访管 指令