I/O设备
I/O控制方式
1.程序直接控制方式:CPU发出I/O命令后不断轮询检查IO控制器状态。
2.中断驱动控制方式(中断程序):CPU发出I/O命令后可以去处理别的进程,当本次IO结束后设备控制器会向CPU发送中断信号,让他回来继续处理。
3.DMA方式(直接存储器存取):CPU发出IO命令后处理别的进程,本次IO结束后DMA控制器发出中断信号,数据传输单位是块。
4.通道控制方式(硬件):CPU发送IO命令后处理别的进程,通道会执行通道程序完成IO,完成后通道向CPU发送中断信号,数据传输单位是一组块。
DMA控制方式和中断驱动方式的主要区别:
中断驱动方式在每个数据需要传输时中断cpu,而DMA控制方式则是在所要求传送的一批数据全部传送结束时才中断cpu;
此外,中断驱动方式数据传送是在中断处理时由cpu控制完成的,而DMA控制方式则是在DMA控制器的控制下完成的。
I/O控制方式比较
SPOOLING技术(假脱机技术)
是用软件的方式提高I/O的速度,将独占设备改造成共享设备。
-
输入井和输出井(磁盘):在磁盘上开辟,输入井暂存IO设备输入数据;输出井暂存用户程序的输出数据
-
输入缓冲区和输出缓冲区(内存):为缓和CPU和磁盘之间速度不匹配盾,输入缓冲区暂存有输入设备出入的数据,之后送给输入井; 输出缓冲区暂存输出井送来的数据,之后送给输出设备。
-
输入进程和输出进程
二、IO软件层次
- 用户层软件(库函数)
- 设备独立性软件(系统调用)
- 设备驱动程序
- 中断处理程序
- 硬件
其中属于操作系统的内核部分:设备独立性软件、设备驱动程序、中断处理程序。
I/O请求:用户通过调用用户层软件提供的库函数发出的I/O请求(由上到下)。
I/O应答:I/O任务完成时,I/O控制器会发送一个中断信号(从下往上)依次处理反馈。