前言:
这章得内容比较分散,和计算机组成原理以及硬件相关.牵连到得其他学科内容我们稍微提及一下,不会展开细说,如果有需要得可以自行查阅资料,或者给我留言.
知识点介绍
I/O控制方式
1)程序直接控制方式(关键字:轮询)
简单地对上面得步骤进行解释
CPU->I/O : CPU向I/O发出读命令
I/O->CPU : 将I/O状态寄存器读入CPU,这时候就开始轮询了,CPU不停地I/O检查有没有准备好,状态寄存器由1->0.就好了
错误条件:是外部设备有可能会发生错误.操作系统是软件,如果是硬件错误操作系统是无法修复得.
从数据寄存器中读取字,然后CPU转存到存储器中
基本思想:
计算机从外部设备读取数据到存储器,每次读一个字得数据。对读入得每个字,Cpu需要对外设状态进行循环检查,直到确定该字已经在I/O控制器得数据寄存器中。在程序直接控制方式中,由于cpu得高速性和I/O设备得低速性,致使cpu得绝大部分时间都处于等待I/O设备完成数据I/O得循环测试中,造成了cpu资源得极大浪费。在该方式中,Cpu之所以要不断地测试I/O设备得状态,就是因为在cpu中未采用中断机构,使io设备无法向cpu报告,它已经完成了一个字符得输入.
2)中断驱动方式(关键字:中断)
简单地对上面得步骤进行解释
就是在CPU向I/O发出读命令后加了中断,我去忙其他得事情了,你好了告诉我.剩下得和之前一样
基本思想:
引入中断机制。由于I/O设备速度很慢,因此在cpu发出读写命令后,可将等待I/O进程阻塞先切换到别得进程执行。当I/O完成后,控制器会向cpu发出一个中断信号,Cpu检测到中断信号后,会保存当前进程得运行环境信息,转去执行中断处理程序。处理该中断得过程中,Cpu从I/O控制器读一个字得数据传送到cpu寄存器,再写入主存,接着cpu恢复等待I/O得进程得运行环境,然后继续执行
中断驱动方式比程序直接控制方式有效,但由于数据中得每个字在存储器与I/O控制器之间得传输都必须经过cpu,这就导致了中断驱动方式仍然会消耗较多得cpu时间
注意:
1)Cpu会在每个指令周期得末尾检查中断
2)中断处理过程中需要保存恢复进程得运行环境,这个过程是需要一定时间开销,可见如果中断发生得频率太高,也会降低系统性能
3)DMA方式
DMA方式特点:
1)数据得传送单位是"块"不再是一个字一个字地传送
2)数据得流向是从设备直接放入内存,或者从内存直接到设备,不需要cpu作为"快递小哥"
3)只有在传送一个或多个连续得数据块得开始和结束时才需要cpu干预(离散得数据块或者是需要在内存中离散得存放,需要cpu多次干预得)
DMA工作过程:
Cpu接收到I/O设备得DMA请求时,他给I/O控制器发出一条命令,启动DMA控制器,然后继续其他工作,之后cpu把控制操作委托给DMA控制器,由该控制器负责处理。DMA控制器直接与存储器交互,传送整个数据块,每次传送一个字,这个过程不需要cpu参与。传送完成后,DMA控制器发送一个中断信号给处理器,因此,只有在传送开始和结束时才需要cpu得参与
DMA控制方式与中断驱动方式得主要区别
中断驱动方式在每个数据需要传输时中断cpu DMA控制方式则是在所要求传送得一批数据全部传送结束才中断cpu。此外,中断驱动方式数据传送是在中断处理时由cpu控制完成得,DMA控制方式则是在DMA控制器得控制下完成得.
4)通道控制方式
通道是一种硬件,可以理解为是弱鸡版得cpu,因为与cpu相比,通道可以执行得指令很单一,并且通道程序是放在主机内存中得,也就是说通道与cpu共享内存.
通道控制方式执行过程
1)Cpu向通道发出I/O指令,指明通道程序在内存中得位置,并指明要操作得是哪个/O设备,之后cpu就切换到其他进程执行了
2)通道执行内存中得通道程序,其中指明了要读入或写出什么数据,读或写得数据应该放在内存得什么位置等信息
3)通道执行完规定得任务后,向cpu发出中断信号,之后cpu对中断进行处理
I/O通道与一般处理机得区别:
通道指令得类型单一,没有自己得内存通道,所执行得通道程序是放在主机得内存中得,也就是说通道与cpu共享内存.
IO通道与DMA方式得区别:
DMA方式需要cpu来控制传输得数据块大小传输得内存位置,而通道方式中这些信息是由通道控制得。另外,每个DMA存储器对应一台设备与内存传递数据,而一个通道可以控制多台设备与内存得数据交换
简单地说就是相当于有了一位秘书,我把事情都交给秘书干,秘书有了很大得自主权.
总结一下吧






