I/O控制方式
标签: 操作系统
学习人数: 10981

对设备的控制,早期是使用轮询的可编程 I/O 方式,后来发展为使用中断的可编程 I/O 方式。CPU和I/O设备进行通信、传输数据时,由于CPU的速度远远快于I/O设备,因此CPU需要不断地测试I/O设备。这种控制方式又称为轮询或忙等。

I/O控制方式通常有以下4 种:程序直接控制方式、中断控制方式、DMA控制方式和通道控制方式。

 

1.程序直接控制方式

计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中没有釆用中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。

程序直接控制方式的工作过程非常简单,但是其缺点也是显而易见的,由于CPU和I/O设备只能串行工作,导致CPU的利用率相当低。

三种I/O控制方式的流程

 

2.中断驱动方式

中断驱动方式的思想是,当用户进程需要数据时,由CPU向设备控制器发出 启动指令启动外设输入数据。在输入数据的同时,CPU可以做其他工作。当输入完成时,设备控制器向CPU发出一个中断信号,CPU接收到中断信号之后,转去执行设备中断处理程序。

优点:与程序直接控制方式相比,有了中断的硬件支持后,CPU和 I/O设备间可以并行工作了,CPU只需收到中断信号后处理即可,大大提高了 CPU利用率。缺点:由于数据中的每个字在存储器与I/O控制器之间的传输都必须经过CPU,这就导致了中断驱动方式仍然会消耗较多的CPU时间。

 

3. DMA方式(直接内存存取)

在中断驱动方式中,I/O设备与内存之间的数据交换必须要经过CPU中的寄存器,所以速度还是受限,而DMA(直接存储器存取)方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放” CPU。这样既大大减轻了 CPU的负担,也使I/O数据传输速度大大提高。这种方式一般用于块设备的数据传输。

仍然以数据输入为例,当用户进程需要数据时,CPU将准备存放输入数 据的内存起始地址以及要传送的字节数分别送入DMA控制器中的内存地址寄存器和传送字节计数器中,并启动设备开始进行数据输入。在输入数据的同时,CPU可以去做其他事情。

DMA方式的特点是:基本单位是数据块。所传送的数据,是从设备直接送入内存的,或者相反。仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下完成的。

DMA控制方式与中断驱动方式的主要区别是中断驱动方式在每个数据需要传输时中断CPU,而DMA控制方式则是在所要求传送的一批数据全部传送结束时才中断CPU;此外,中断驱动方式数据传送是在中断处理时由CPU控制完成的,而DMA控制方式则是在DMA 控制器的控制下完成的。

DMA控制器的组成

在DMA控制器中设置如下四类寄存器:

优点:DMA控制方式下,设备和CPU可以并行工作,同时设备与内存的数据交换速度加快,并且不需要CPU干预。缺点DMA控制方式仍然存在一定局限性。

 

4. 通道控制方式

I/O通道是指专门负责输入/输出的处理机。I/O通道方式是DMA方式的发展,通道所需要的CPU干预更少,而且可以做到一个通道控制多台设备,从而进一步减轻了 CPU负担。同时,又可以实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。

通道本质上是一个简单的处理器,它独立于CPU,有运算和控制逻辑,有自己的指令系统,也在程序控制下工作,专门负责输入、输出控制,具有执行I/O指令的能力,并通过执行通道I/O程序来控制I/O操作。I/O通道与一般处理机的区别是:通道指令的类型单一,没有自己的内存,通道所执行的通道程序是放在主机的内存中的,也就是说通道与CPU共享内存。

I/O通道与DMA方式的区别是:DMA方式需要CPU来控制传输的数据块大小、传输的内存位置,而通道方式中这些信息是由通道控制的。另外,每个DMA控制器对应一台设备与内存传递数据,而一个通道可以控制多台设备与内存的数据交换。根据信息交换方式的不同,通道可以被分成字节多路通道、数据选择通道和数据多路通道。

优点:通道控制方式解决了 I/O操作的独立性和各部件工作的并行性。通道把中央处理器从烦琐的输入/输出操作中解放出来。缺点:由于需要更多硬件(通道处理器),因此其成本较高。



课后作业


登录后发布评论

暂无评论,来抢沙发