2.2.3 I/O系统

在一台通用的计算机系统中,外设与主存之间的信息传送通过I/O控制系统完成。各种外设连接在相应的设备控制器上,设备控制器通过通道连接在公共的系统总线上。这种结构允许CPU和各种外设并行工作。

I/O系统是I/O设备及其接口线路、控制部件、通道和管理软件的统称。主存和设备介质之间的数据传送操作称为I/O操作。I/O控制就是通过软、硬件技术对CPU和设备的职能进行合理分工,以平衡系统性能和硬件成本之间的矛盾,有效实现物理I/O操作。

1.I/O控制方式

与硬件配置紧密相关,按照I/O控制器功能的强弱以及与CPU之间联系方式的不同,分为4类,它们之间的差别在于CPU与设备并行工作的方式和程度不同。

(1)程序查询(程序直接控制)方式

由用户程序直接控制CPU或内存与外设之间的信息传送。当用户进程需要数据时,通过CPU测试设备工作状态、发送读写命令、传输数据等。

(2)中断控制方式

在操作完成后(如数据可读或已经写入),由外设向CPU发出中断。数据的每次读、写通过CPU。

(3)直接存储访问方式

在外设与内存之间开辟直接的数据交换通道。利用直接存储访问(Direct Memory Access,DMA)控制器实现内存与外设的成批数据交换,在操作完成时由DMA控制器向CPU发出中断。

(4)通道控制方式

通道又称I/O处理器,具有比DMA更强的I/O处理能力。它能完成主存与外设之间的信息传输,并与CPU进行协作。通道控制器有自己的专用存储器,可以执行由通道指令组成的通道程序(通常由操作系统所构造,在内存中)。

2.I/O保护

CPU按程序规定的顺序执行指令,当执行到一条“启动I/O”指令时,就按指令中的参数启动指定设备并将控制权移交给I/O控制系统。由于外设的启动工作由操作系统统一管理,因此当外设工作结束后,形成一个由操作系统的处理程序处理的“I/O操作结束”事件(I/O中断事件),操作系统分析后就可以知道外设的工作情况。为了保护I/O的完整性,硬件将“启动I/O”等可能影响系统安全的指令定义为特权指令。用户程序只能请求操作系统代为启动I/O。当用户程序请求启动一台外设时,首先核对它是否有权使用这台外设,若无使用权,则操作系统拒绝该请求;若有使用权,则操作系统检查该外设是否正在工作,如果该外设当前空闲,则可启动它,否则等待该外设工作结束后再为用户程序启动。