I/O管理概述

I/O设备的基本概念和分类

知识总览

在这里插入图片描述

什么是I/O设备

“I/O”就是“输入/输出”(Input/Output)
I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。
在这里插入图片描述
UNIX系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作。
在这里插入图片描述

I/O设备的分类--按使用特性

在这里插入图片描述

I/O设备的分类--按传输速率

在这里插入图片描述

I/O设备的分类--按信息交换的单位分类

在这里插入图片描述

知识点回顾与重要考点

在这里插入图片描述

I/O控制器

知识总览

在这里插入图片描述

I/O设备的机械部件

I/O设备的机械部件主要用来执行具体I/O操作。
如我们看得见摸得着的鼠标 /键盘的按钮;显示器的LED屏;移动硬盘的磁臂、磁盘盘面。

I/O设备的电子部件通常是一块插入主板扩充槽的印刷电路板。

I/O设备的电子部件(I/O控制器)

CPU无法直接控制I/O设备的机械部件,因此I/O设备还要有一个电子部件作为CPUI/O设备机械部件之间的“中介”,用于实现CPU对设备的控制。
在这里插入图片描述

I/O控制器的组成

I/O控制器由CPU与控制器的接口、I/O逻辑、控制器与设备的接口组成。

CPU与控制器的接口:用于实现CPU与控制器之间的通信。CPU通过控制线发出命令;通过地址线指明要操作的设备;通过数据线来取出(输入)数据,或放入(输出)数据。

I/O逻辑:负责接收和识别CPU的各种命令(如地址译码),并负责对设备发出命令。

控制器与设备的接口:用于实现控制器与设备之间的通信。
在这里插入图片描述
值得注意的小细节:

1.一个I/O控制器可能会对应多个设备;

2.数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O;另一些计算机则采用I/O专用地址,即寄存器独立编址

内存映像I/O vs 寄存器独立编址

在这里插入图片描述

知识点回顾与重要考点

在这里插入图片描述

I/O控制方式

知识总览

在这里插入图片描述
需要注意的问题:
1.完成一次读/写操作的流程;
2.CPU干预的频率;
3.数据传送的单位;
4.数据的流向;
5.主要缺点和主要优点

程序直接控制方式

1.完成一次读/写操作的流程(key word:轮询
在这里插入图片描述
2.CPU干预的频率:
很频繁,I/O操作开始之前、完成之后需要CPU介入,并且在等待I/O完成的过程中CPU需要不断地轮询检查

3.数据传送的单位:
每次读/写一个字

4.数据的流向:
读操作(数据输入):I/O设备-->CPU(指的是CPU的寄存器)-->内存
写操作(数据输出):内存-->CPU-->I/O设备
每个字的读/写都需要CPU的帮助

5.主要缺点和主要优点:
优点:实现简单。在读/写指令之后,加上实现循环检查的一系列指令即可(因此才称为“程序直接控制方试”)。
缺点:CPU和I/O设备只能串行工作,CPU需要一直轮询检查,长期处于“忙等”状态,CPU利用率低。

中断驱动方式

1.完成一次读/写操作的流程(key word:中断)。

2.CPU干预的频率:
每次I/O操作开始之前、完成之后需要CPU介入。
等待I/O完成的过程中CPU可以切换到别的进程执行

3.数据传送的单位:
每次读/写一个字

4.数据的流向:
读操作(数据输入):I/O设备-->CPU(指的是CPU的寄存器)-->内存
写操作(数据输出):内存-->CPU-->I/O设备

5.主要缺点和主要优点:

优点:与“程序直接控制方式”相比,在“中断驱动方式”中,I/O控制器会通过中断信号主动报告I/O已完成,CPU不再需要不停地轮询。CPU和IO设备可并行工作,CPU利用率得到明显提升。

缺点:每个字在I/O设备与内存之间的传输,都需要经过CPU。而频繁的中断处理会消耗较多的CPU时间
在这里插入图片描述
注意:
1.CPU会在每个指令周期的末尾检查中断;
2.中断处理过程中需要保存、恢复进程的运行环境,这个过程是需要一定时间开销的。可见,如果中断发生的频率太高,也会降低系统性能。

DMA方式

与“中断驱动方式”相比,DMA方式(Direct Memory Access,直接存储器存取。主要用于块设备的I/O控制)有这样几个改进:

1.数据的传送单位是“块”。不再是一个字、一个字的传送;

2.数据的流向是从设备直接放入内存,或者从内存直接到设备。不再需要CPU作为“快递小哥”。

3.仅在传送一个或多个数据块的开始和结束时,才需要CPU干预。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主要缺点和主要优点:

优点:数据传输以“块”为单位,CPU介入频率进一步降低。数据的传输不再需要先经过CPU再写入内存,数据传输效率进一步增加。CPU和I/O设备的并行性得到提升。

缺点:CPU每发出一条I/O指令,只能读/写一个或多个连续的数据块。如果要读/写多个离散存储的数据块,或者要将数据分别写到不同的内存区域时,CPU要分别发出I/O指令,进行多次中断处理才能完成。

通道控制方式

通道:一种硬件,可以理解为是“弱鸡版的CPU”。通道可以识别并执行一系列通道指令
在这里插入图片描述
在这里插入图片描述
主要缺点和主要优点
缺点:实现复杂,需要专门的通道硬件支持
优点:CPU、通道、I/O设备可并行工作,资源利用率很高

知识点回顾与重要考点

在这里插入图片描述

I/O软件层次结构

知识总览

在这里插入图片描述

用户层软件

在这里插入图片描述

设备独立性软件

设备独立性软件,又称设备无关性软件。与设备的硬件特性 无关的功能几乎都在这一层实现。

功能
1.向上层提供统一的调用接口(如read/write系统调用)。

2.设备的保护(原理类似于文件保护。设备被看做是一种特殊的文件,不同用户对各个文件的访问权限是不一样的,同理,对设备的访问权限也不一样)。

3.差错处理(设备独立软件需要对一些设备的错误进行处理)。

4.设备的分配与回收

5.数据缓冲区的管理(可以通过缓冲技术屏蔽设备之间数据交换单位大小和传输速度的差异)。

6.建立逻辑设备名到物理设备名的映射关系;根据设备类型选择调用相应的驱动程序。
在这里插入图片描述
在这里插入图片描述
操作系统可以采用两种方式管理逻辑设备表(LUT)
第一种方式,整个系统只设置一张LUT,这意味着所有用户不能使用相同的逻辑设备名,因此这种方式只适用于单用户操作系统。
第二种方式,为每个用户设置一张LUT,各个用户使用的逻辑设备名可以重复,适用于多用户操作系统。系统会在用户登录时为其建立一个用户管理进程,而LUT就存放在用户管理进程的PCB中。

在这里插入图片描述

设备驱动程序

在这里插入图片描述
注:驱动程序一般会以一个独立进程的方式存在。

中断处理程序

当I/O任务完成时,I/O控制器会发送一个中断信号,系统会根据中断信号类型找到相应的中断处理程序并执行。中断处理程序的处理流程如下:
在这里插入图片描述

知识点回顾与重要考点

在这里插入图片描述


Less interests,more interest.