文件名称:
第七章_设备管理.md
所在目录:
专业核心课 / 操作系统 / Notes 笔记
文件大小:
5.80 KB
下载地址:
文本预览:
# 第七章 设备管理
计算机中负责管理I/O的机构称为I/O系统(硬件和软件的组合)
## IO 设备的 I/O 控制方式
- **程序控制 I/O**
在一个设备的操作没有完成时,控制程序一直检测设备的状态,直到该操作完成,才能进行下一个操作。
- **中断驱动 I/O**
I/O 操作由程序发起,在操作完成时,由外设向CPU发出中断,通知该程序,数据的每次读写通过 CPU。
- **优点**:在外设进行数据处理 时,CPU不必等待,可以继 续执行该程序或其他程序。 提高了CPU的利用率。中断技术使得CPU和外设之间的并行工作成为可能。
- **缺点**:**数据仍然需要通过CPU进行传输**,由于CPU每次处理的数据量少,因此这种方式**只适于数据传输率较低的设备**。
- **直接存储访问 I/O**
对I/O设备的控制由DMA控制器完成,在DMA控制器的作用下,设备和主存之间可以成批地进行数据交换,而不用CPU的干涉。
- **优点:** CPU 只需干预 I/O 的开始和结束,适于高速设备
- **通道控制方式 I/O**
可进一步减少CPU的干预,即把对一个数据块的读(写)为单位的干预,减少为对一组数据块的读(写)及有关的控制和管理为单位的干预。 **一个通道控制多台设备**。CPU仅在I/O操作的开始和结束时花费少量时间处理与I/O有关的工作。**实现CPU、通道和I/O设备三者的并行操作**,从而更有效地提高整个系统的资源利用率。
**通道的类型:**
- **字节多路通道**:使用时间片轮转,轮流为各个子通道服务
- **数组选择通道**:高速传输数据,不支持并发
- **数组多路通道**:高速传输,支持并发
**通道的工作原理:**

## IO 设备的分类
- **按数据组织分类**
- **块设备:**指以**数据块为单位**来组织和传送数据信息的设备。它属于**有结构**设备。块设备的基本特征是 **传输速率较高**,通常每秒钟为几兆位;它是**可寻址**的,即可随机地读/写任意一块;磁盘设备的I/O采用DMA方式。
- **字符设备:**指**以单个字符为单位**来传送数据信息的设备。这类设备**一般用于数据的输入和输出**(交互式终端、 打印机)。它属于无结构设备。
- **按数据传输率分类**
低速设备、中速设备、高速设备
- **资源分配角度分类**
- **独占设备:**在一段时间内只允许一个用户(进程)访问的设备。(终端、打印机)
- **共享设备:**在一段时间内允许多个进程同时访问的设备。(磁盘)
- **虚拟设备:**通过虚拟技术将一台独占设备变换为若干台供多个 用户(进程)共享的逻辑设备。(SPOOLing)
## IO 设备管理软件
- **中断处理程序**
解决高速处理设备和低速输入输出设备之间的矛盾,提高系统工作效率。
- **设备驱动程序**
接受来自与设备无关的上层软件的抽象请求;进行与 设备相关的处理。
- **与设备无关的系统软件**
是建立在设备驱动程序之上的,与具体设备无关的I/O功能的集合
- **用户空间的 I/O 软件**
Spooling系统:构成虚拟设备
- 提高了I/O的速度,缓和了CPU与低速I/O设备速度不匹配的矛盾
- 利用高速共享设备,将独占设备改造为共享设备。
- 实现了虚拟设备功能:用户都感到独占了一台设备。

## 缓冲
### 引入缓冲的原因:
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对中断响应时间的限制
- 提高CPU和I/O设备之间的并行性
### 缓冲技术的分类
- 单缓冲、双缓冲、环形缓冲、缓冲池
### UNIX 的缓冲区管理
为方便对缓冲区进行管理,UNIX系统设置了三种队列。
- **自由 buf 队列**
在Unix系统中,一个可被分配作它用的缓冲存储区,其相应的 buf 位于自由buf队列中。 自由buf队列采用 FIFO 管理算法。一个缓存被释放时,其相应的 buf 被送入自由buf队列的队尾;当要求分配一个缓存时,从队首取出一个buf,它所管理的缓存就可被“移作它用”。
- **设备 buf 队列**
每类设备都有一个buf队列。 一个缓存被分配用于读、写某类块设备上的某一字符块时,其相应的buf就进入该类设备的buf队列,**除非被“移作它用”,否则一直保留在该队列中**。
- **NODEV 设备队列**
当系统需要使用缓存,但不与特定的设备字符块相连时,则将分配到的缓存控制块buf送入NODEV设备队列。用于传参以及存放文件系统的资源管理块
**一个可以移作他用的缓存buf,同时处于原设备buf队列中和自由buf队列中。**
1. 缓存buf内容不变,如若还要用,直接从自由buf队列中抽出。避免了重复、费时的I/O操作过程,从而大大提高了系统的效率。
2. 如果要将一个缓存重新分配,只需要将它从自由buf队列和设备 buf队列中同时抽出,送入新的设备buf队列。实现了进程对有限缓存的共享。
**字符设备缓存**
- 自由字符缓存队列:由空闲的字符缓存构成自由队列。
- I/O字符缓存队列:字符设备通过字符缓存进行输入或输出。各个正被使用的字符缓 存按照它们的不同用途形成多个I/O队列,每个队列设置一个控制块

计算机中负责管理I/O的机构称为I/O系统(硬件和软件的组合)
## IO 设备的 I/O 控制方式
- **程序控制 I/O**
在一个设备的操作没有完成时,控制程序一直检测设备的状态,直到该操作完成,才能进行下一个操作。
- **中断驱动 I/O**
I/O 操作由程序发起,在操作完成时,由外设向CPU发出中断,通知该程序,数据的每次读写通过 CPU。
- **优点**:在外设进行数据处理 时,CPU不必等待,可以继 续执行该程序或其他程序。 提高了CPU的利用率。中断技术使得CPU和外设之间的并行工作成为可能。
- **缺点**:**数据仍然需要通过CPU进行传输**,由于CPU每次处理的数据量少,因此这种方式**只适于数据传输率较低的设备**。
- **直接存储访问 I/O**
对I/O设备的控制由DMA控制器完成,在DMA控制器的作用下,设备和主存之间可以成批地进行数据交换,而不用CPU的干涉。
- **优点:** CPU 只需干预 I/O 的开始和结束,适于高速设备
- **通道控制方式 I/O**
可进一步减少CPU的干预,即把对一个数据块的读(写)为单位的干预,减少为对一组数据块的读(写)及有关的控制和管理为单位的干预。 **一个通道控制多台设备**。CPU仅在I/O操作的开始和结束时花费少量时间处理与I/O有关的工作。**实现CPU、通道和I/O设备三者的并行操作**,从而更有效地提高整个系统的资源利用率。
**通道的类型:**
- **字节多路通道**:使用时间片轮转,轮流为各个子通道服务
- **数组选择通道**:高速传输数据,不支持并发
- **数组多路通道**:高速传输,支持并发
**通道的工作原理:**

## IO 设备的分类
- **按数据组织分类**
- **块设备:**指以**数据块为单位**来组织和传送数据信息的设备。它属于**有结构**设备。块设备的基本特征是 **传输速率较高**,通常每秒钟为几兆位;它是**可寻址**的,即可随机地读/写任意一块;磁盘设备的I/O采用DMA方式。
- **字符设备:**指**以单个字符为单位**来传送数据信息的设备。这类设备**一般用于数据的输入和输出**(交互式终端、 打印机)。它属于无结构设备。
- **按数据传输率分类**
低速设备、中速设备、高速设备
- **资源分配角度分类**
- **独占设备:**在一段时间内只允许一个用户(进程)访问的设备。(终端、打印机)
- **共享设备:**在一段时间内允许多个进程同时访问的设备。(磁盘)
- **虚拟设备:**通过虚拟技术将一台独占设备变换为若干台供多个 用户(进程)共享的逻辑设备。(SPOOLing)
## IO 设备管理软件
- **中断处理程序**
解决高速处理设备和低速输入输出设备之间的矛盾,提高系统工作效率。
- **设备驱动程序**
接受来自与设备无关的上层软件的抽象请求;进行与 设备相关的处理。
- **与设备无关的系统软件**
是建立在设备驱动程序之上的,与具体设备无关的I/O功能的集合
- **用户空间的 I/O 软件**
Spooling系统:构成虚拟设备
- 提高了I/O的速度,缓和了CPU与低速I/O设备速度不匹配的矛盾
- 利用高速共享设备,将独占设备改造为共享设备。
- 实现了虚拟设备功能:用户都感到独占了一台设备。

## 缓冲
### 引入缓冲的原因:
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对中断响应时间的限制
- 提高CPU和I/O设备之间的并行性
### 缓冲技术的分类
- 单缓冲、双缓冲、环形缓冲、缓冲池
### UNIX 的缓冲区管理
为方便对缓冲区进行管理,UNIX系统设置了三种队列。
- **自由 buf 队列**
在Unix系统中,一个可被分配作它用的缓冲存储区,其相应的 buf 位于自由buf队列中。 自由buf队列采用 FIFO 管理算法。一个缓存被释放时,其相应的 buf 被送入自由buf队列的队尾;当要求分配一个缓存时,从队首取出一个buf,它所管理的缓存就可被“移作它用”。
- **设备 buf 队列**
每类设备都有一个buf队列。 一个缓存被分配用于读、写某类块设备上的某一字符块时,其相应的buf就进入该类设备的buf队列,**除非被“移作它用”,否则一直保留在该队列中**。
- **NODEV 设备队列**
当系统需要使用缓存,但不与特定的设备字符块相连时,则将分配到的缓存控制块buf送入NODEV设备队列。用于传参以及存放文件系统的资源管理块
**一个可以移作他用的缓存buf,同时处于原设备buf队列中和自由buf队列中。**
1. 缓存buf内容不变,如若还要用,直接从自由buf队列中抽出。避免了重复、费时的I/O操作过程,从而大大提高了系统的效率。
2. 如果要将一个缓存重新分配,只需要将它从自由buf队列和设备 buf队列中同时抽出,送入新的设备buf队列。实现了进程对有限缓存的共享。
**字符设备缓存**
- 自由字符缓存队列:由空闲的字符缓存构成自由队列。
- I/O字符缓存队列:字符设备通过字符缓存进行输入或输出。各个正被使用的字符缓 存按照它们的不同用途形成多个I/O队列,每个队列设置一个控制块

点赞
回复
X