运行在目态下的用户程序怎样才能使用外围设备?
要控制外围设备必须使用有关的I/O指令,但是L/O指令属于特权指令,处于目态下的用户程序是不能直接执行L/O指令的。如果用户程序需要完成I/O操作,可以调用操作系统中“启动I/O”子程序来完成。现代的操作系统都有一条在目态下执行的“访管指令”,用户可以通过在自己的程序中放上一条访管指令并设置一些参数,来调用操作系统的有关系统调用子程序。处理器执行到访管指令的时候就会产生一个中断事件,实现用户程序和系统调用程序之间的转换,系统调用程序按用户设置的参数实现调用功能。如果用户要求使用外围设备,系统调用程序实际完成用户所需要的外围设备的启动和控制。当系统调用结束后,重新返回到用户程序被中断的下一条指令运行。