1.08k likes | 1.22k Views
第五章 设备管理. 5.1 I/O 系统概述 5.2 I/O 控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理 ( 自学 ). 第五章 设备管理. 5.1 I/O 系统 概述. 5.1.1 设备的分类. I/O 设备的类型 1) 按数据传输速率分 低速设备:如键盘、鼠标 中速设备:如打印机 高速设备:如磁盘机、光盘机. 设备的分类. 2 )按信息交换的单位分类 块设备:如磁盘 字符设备:如交互式终端、打印机 3 )按设备的共享属性分类 独占设备 共享设备 虚拟设备.
E N D
第五章 设备管理 5.1 I/O系统概述 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理5.6 磁盘存储器管理(自学)
第五章 设备管理 5.1 I/O系统概述
5.1.1 设备的分类 • I/O设备的类型 • 1) 按数据传输速率分 • 低速设备:如键盘、鼠标 • 中速设备:如打印机 • 高速设备:如磁盘机、光盘机
设备的分类 2)按信息交换的单位分类 • 块设备:如磁盘 • 字符设备:如交互式终端、打印机 3)按设备的共享属性分类 • 独占设备 • 共享设备 • 虚拟设备
I/O设备 数据信号线 至设备控制器 缓冲 转换器 信号 数据 状态信号线 控制逻辑 控制信号线 图5-1 设备与控制器间的接口 2.设备与控制器之间的接口 通常,设备并不是直接与CPU进行通信,而是与设备控制器通信。
设备与控制器之间的接口 1)数据信号线 用于在设备和设备控制器之间传送数据信号 2)控制信号线 传输设备控制器向I/O设备发送的控制信号 3)状态信号线 传输指示设备当前状态的信号
5.1.2 设备控制器 1.设备控制器的基本功能 1)接收和识别CPU命令 控制寄存器:用来存放接收的命令和参数,并对所接收的命令进行译码。 2)数据交换 数据寄存器:实现CPU与控制器之间、控制器与设备之间的数据交换。
设备控制器的基本功能 3)标识和报告设备的状态 状态寄存器:记录下设备的状态供CPU了解。 4)地址识别 地址译码器:识别它所控制的每个设备的地址。
设备控制器的基本功能 5)数据缓冲 缓冲器:暂存I/O设备与CPU交换的数据。 6)差错控制 对由I/O设备传送来的数据进行差错检测。
2.设备控制器的组成 1) 设备控制器与处理机的接口 功能:用于实现CPU与设备控制器之间的通信。 共有三类信号线:数据线、地址线和控制线。
设备控制器的组成 2)设备控制器与设备的接口 在控制器中便有一个或多个设备接口,一个接口连接一台设备。在每个接口中都存在数据、控制和状态三种类型的信号。 3)I/O逻辑 实现对设备的控制。它通过一组控制线与处理机交互。
CPU与控制器接口 控制器与设备接口 数据线 数据 控制器与设备接口1 数据寄存器 状态 控制 控制/状态 寄存器 ... 地址线 数据 控制器与设备接口i 状态 I/O逻辑 控制线 ... 控制 图5-2 设备控制器的组成 设备控制器的组成
5.1.3 I/O通道 • 1. I/O通道设备的引入 • 位置:CPU和设备控制器之间 • 目的:使一些原来由CPU处理的I/O任务转由通道来承担,CPU只需向通道发送一条I/O指令。 • 通道与一般的处理机不同点: • 指令类型单一:主要局限于与I/O操作有关的指令; • 通道没有自己的内存,与CPU共享内存。
设备 A1A2A3…子通道A 控制器A B1B2B3…子通道B 控制器B A1B1C1…A2B2C2… C1C2C3…子通道C 控制器C 控制器D … N1N2N3…子通道N 控制器N 图5-3 字节多路通道的工作原理 2. 通道类型 根据信息交换方式的不同,分为: 1)字节多路通道(Byte Multiplexor Channel)
字节多路通道 数量:几十到数百个非分配型子通道。 工作方式:按字节交叉方式工作,子通道按时间片轮转方式共享主通道。 缺点:只能连接低速设备。
通道类型 2)数组选择通道(Block Selector Channel) 数量:一个分配型子通道。 工作方式:一段时间内允许一个通道程序运行,控制一台设备进行数据传送,直到传送结束。 优点:传输率高。 缺点:每次只允许一个设备传输数据,通道的利用率很低。 3)数组多路通道(Block Multiplexor Channel) 将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。
设备1 控制器1 设备2 通道1 控制器2 设备3 存储器 设备4 控制器3 设备5 通道2 设备6 控制器4 设备7 图5-4 单通路I/O系统 3. “瓶颈”问题 问题描述:通道价格昂贵,数量较少,又使它成了I/O的瓶颈。
I/O设备 通道1 控制器1 I/O设备 存储器 I/O设备 通道2 控制器2 I/O设备 图5-5 多通路I/O系统 “瓶颈”问题 解决方法:增加设备到主机间的通路而不增加通道,就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。
第五章 设备管理 5.2 I/O控制方式
I/O控制的四种技术 • 程序I/O方式 • 中断驱动I/O控制方式 • 直接存储器访问DMA I/O控制方式 • I/O通道控制方式
5.2.1 程序I/O方式 又称为忙一等待方式。通过循环检测busy位判断设备输入是否结束。 缺点:耗费大量时间轮询信息,严重地降低了系统性能。
向I/O控制器发出读命令 I/O CPU 未就绪 读I/O控制器的状态 I/O CPU 检查状态? 出错 就绪 从I/O控制器中读入字 I/O CPU 向存储器中写字 内存 CPU 未完 传送完成? 完成 下条指令 (a)程序I/O方式 程序I/O方式
CPU I/O 向I/O控制器发出读命令 CPU做其它事 中断 读I/O控制器的状态 CPU I/O 检查状态? 出错 就绪 CPU I/O 从I/O控制器中读字 向内存中写字 CPU 内存 未完 传送完成? 完成 下条指令 (b)中断驱动方式 5.2.2 中断驱动I/O控制方式
中断驱动I/O控制方式 优点:CPU与I/O设备并行工作,提高了整个系统的资源利用率及吞吐量。 缺点:以字节为单位进行I/O,中断次数多。
5.2.3直接存储器访问DMA I/O控制方式 1. DMA方式的引入 中断方式以字节为单位进行I/O,中断次数多。对于块设备效率低。 特点: 1)DMA方式基本传送单位是数据块; 2)所传送的数据是从设备直接送入内存或相反; 3)DMA方式则是在DMA控制器的控制下完成的,只在传输开始和结束时经过CPU控制。
CPU 内存 主机—控制器接口 控制器与块设备接口 DR I/O控制逻辑 MAR Count … DC CR 命令 系统总线 DMA控制器 图5-8 DMA控制器的组成 2.DMA控制器的组成 • 三类接口: • 主机与DMA控制器的接口 • DMA控制器与块设备的接口 • I/O控制逻辑
DMA控制器的组成 四类寄存器: (1)命令/状态寄存器CR:用于接收从CPU发来的I/O命令或有关控制信息,或设备的状态。 (2)内存地址寄存器MAR:在输入、输出时,内存的地址。 (3)数据寄存器DR:暂存数据。 (4)数据计数器DC:存放本次CPU要读或写的字(节)数。
设置MAR和DC初值 启动DMA传送命令 挪用存储器周期传送数据字 在继续执行用户程序的同时,准备又一次传送 存储器地址增1 字计数寄存器减1 DC=0 ? 否 是 请求中断 图5-9 DMA方式的工作流程 3.DMA工作过程
直接存储器访问DMA I/O控制方式 缺点:一条I/O指令只能读(或写)一个连续的数据块。当要一次去读多个数据块且将它们分别传送到不同的内存区域,则须由CPU分别发出多条I/O指令及进行多次中断处理,才能完成。
5.2.4 I/O通道控制方式 1.引入(优点) • 把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。 • 实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。
2.通道程序 通道是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的。通道程序是由一系列通道指令(或称为通道命令)所构成的。通道指令中包含下列诸信息: (1)操作码。指令所执行的读、写操作。 (2)内存地址。字符存入或取出的内存首址。 (3)计数。读(或写)数据的字节数。 (4)通道程序结束位P。 (5)记录结束标志R。
第五章 设备管理 5.3 缓冲管理
5.3.1 缓冲的引入 主要原因: 1.在操作系统中采用缓冲是为了实现数据的I/O操作,以缓解CPU与外部设备之间速度不匹配的矛盾,提高资源利用率。 • 缓冲区:有一定容量、暂存信息的存贮装置,在内存中。 • 凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。
9.6Kb/s (a) 1位缓冲 8位缓冲寄存器 9.6Kb/s (b) 送内存 8位缓冲寄存器 9.6Kb/s (c) 送内存 图5-10 利用缓冲寄存器实现缓冲 缓冲的引入 2. 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
缓冲的引入 3. 提高CPU和I/O设备之间的并行性。 例如,在CPU和打印机之间设置了缓冲区之后,可以使二者并行工作,提高系统的吞吐量和设备的利用率。
缓冲区设置 • 硬缓冲: 在设备中设置缓冲区,由硬件实现 • 软缓冲: 在内存中开辟一个空间,用作缓冲区
5.3.2 单缓冲和双缓冲 1.单缓冲 每当用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区,输入过程T和处理过程C可以同时进行。
用户进程 处理(C) (a) 传送(M) 输入(T) 缓冲区 I/O设备 工作区 T2 T3 T1 T4 M2 M1 M3 (b) C1 C2 C3 t 图5-11 单缓冲工作示意图 单缓冲
2.双缓冲 也称为缓冲对换。在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。此时操作系统可以从第一缓冲区中移出数据,并送入用户进程。接着由CPU对数据进行计算。
用户进程(C) 缓冲区1 T (a) I/O设备 工作区 缓冲区2 M T1(缓冲1) T2(缓冲2) T3(缓冲3) T4(缓冲4) M2 M3 M4 M1 (b) C1 C2 C3 C4 图5-12 双缓冲工作示意图 双缓冲
A机 B机 A机 B机 发送缓冲区 接收缓冲区 发送缓冲区 接收缓冲区 缓冲区 缓冲区 (b)双缓冲 (a)单缓冲 图5-13 双机通信时缓冲区的设置 双机通信时缓冲区的设置
双缓冲 优点:当输入与输出或生产者与消费者的速度基本相匹配时,采用双缓冲能获得较好的效果,可使生产者和消费者基本上能并行操作。 缺点:若两者的速度相差甚远,双缓冲的效果则不够理想,不过可以随着缓冲区数量的增加,使情况有所改善。因此,又引入了多缓冲机制。
5.3.3 循环缓冲 • 1.循环缓冲的组成 • (1)多个缓冲区。在循环缓冲中包括多个缓冲区,其每个缓冲区的大小相同。 • 空缓冲区R • 满缓冲区G • 现行工作缓冲区C
循环缓冲 • (2)多个指针。 • Nextg:指示计算进程下一个可用的缓冲区G • Nexti:指示输入进程下次可用的空缓冲区R • Current:指示计算进程正在使用的缓冲区C
Nexti Nexti R R 1 1 G 6 2 R G 6 2 R G 5 3 G G 5 3 C 4 Nextg 4 Current G G Nextg 图5-14 循环缓冲 循环缓冲
2.循环缓冲区的使用 • 计算进程和输入进程可利用下述两个过程来使用循环缓冲区。 • (1)Getbuf过程。 • 申请一个满缓冲区。 • 申请一个空缓冲区。
循环缓冲区的使用 • (2)Releasebuf过程。 • 释放一个满缓冲区。 • 释放一个空缓冲区。
Nexti Nexti R R 1 1 G 6 2 R G 6 2 R G 5 3 G G 5 3 C 4 Nextg 4 Current G G Nextg 图5-14 循环缓冲 3.进程同步 (1) Nexti指针追赶上Nextg指针:系统受计算限制 (2) Nextg指针追赶上Nexti指针:系统受I/O限制
5.3.4 缓冲池 1.缓冲池的组成 1)三种类型的缓冲区: ①空(闲)缓冲区 ②装满输入数据的缓冲区 ③装满输出数据的缓冲区