操作系统IO方式
1.程序查询方式
程序查询方式是一种程序直接控制方式,这是主机与外设间进行信息交换的最简单方式,输入和输出完全是通过CPU执行程序来完成的。一旦某一外设被选中并启动之后,主机将查询这个外设的某些状态位,看其是否准备就绪?若外设未准备就绪,主机将再次查询;若外设已准备就绪,则执行一次I/O操作。 这种方式控制简单,但外设和主机不能同时工作,各外设之间也不能同时工作,系统效率很低,因此,仅适用于外设的数目不多,对I/O处理的实时要求不那么高,CPU的操作任务比较单一,并不很忙的情况。
2.程序中断方式
在主机启动外设后,无须等待查询,而是继续执行原来的程序,外设在做好输入输出准备时,向主机发中断请求,主机接到请求后就暂时中止原来执行的程序,转去执行中断服务程序对外部请求进行处理,在中断处理完毕后返回原来的程序继续执行。显然,程序中断不仅适用于外部设备的输入输出操作,也适用于对外界发生的随机事件的处理。 完成一次程序中断还需要许多辅助操作,主要适用于中、低速外设。
3.直接存储器存取(DMA)方式
DMA方式是在主存和外设之间开辟直接的数据通路,可以进行基本上不需要CPU介入的主存和外设之间的信息传送,这样不仅能保证CPU的高效率,而且能满足高速外设的需要。 DMA方式只能进行简单的数据传送操作,在数据块传送的起始和结束时还需CPU及中断系统进行预处理和后处理
一个设备接口试图通过总线直接向另一个设备发送数据(一般是大批量的数据),它会先向CPU发送DMA请求信号。外设通过DMA的一种专门接口电路――DMA控制器(DMAC),向CPU提出接管总线控制权的总线请求,CPU收到该信号后,在当前的总线周期结束后,会按DMA信号的优先级和提出DMA请求的先后顺序响应DMA信号。CPU对某个设备接口响应DMA请求时,会让出总线控制权。于是在DMA控制器的管理下,外设和存储器直接进行数据交换,而不需CPU干预。数据传送完毕后,设备接口会向CPU发送DMA结束信号,交还总线控制权。
实现DMA传送的基本操作如下:
(1)外设可通过DMA控制器向CPU发出DMA请求:
(2)CPU响应DMA请求,系统转变为DMA工作方式,并把总线控制权交给DMA控制器;
(3)由DMA控制器发送存储器地址,并决定传送数据块的长度;
(4)执行DMA传送;
(5)DMA操作结束,并把总线控制权交还CPU。
4. I/O通道控制方式
I/O通道控制方式是DMA方式的进一步发展,在系统中设有通道控制部件,每个通道挂若干外设,主机在执行I/O操作时,只需启动有关通道,通道将执行通道程序,从而完成I/O操作。 通道是一个具有特殊功能的处理器,它能独立地执行通道程序,产生相应的控制信号,实现对外设的统一管理和外设与主存之间的数据传送。但它不是一个完全独立的处理器。它要在CPU的I/O指令指挥下才能启动、停止或改变工作状态,是从属于CPU的一个专用处理器
一个通道执行输入输出过程全部由通道按照通道程序自行处理,不论交换信息多少,只打扰CPU两次(启动和停止时)。因此,主机、外设和通道可以并行同时工作,而且一个通道可以控制多台不同类型的设备。 目前,小型、微型机大多采用程序查询方式、程序中断方式和DMA方式;大、中型机多采用通道方式。
通道工作过程:
①在用户程序中使用访管指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道。 ②通道执行CPU为它组织的通道程序,完成指定的数据输入输出工作。 ③通道程序结束后向CPU发中断请求。CPU响应这个中断请求后,第二次进入操作系统,调用管理程序对中断请求进行处理。 这样,每完成一次输入输出工作,CPU只需要两次调用管理程序,大大减少了对用户程序的打扰。