《计算机操作系统 第5章教程》由会员分享,可在线阅读,更多相关《计算机操作系统 第5章教程(80页珍藏版)》请在金锄头文库上搜索。
1、第五章 设 备 管 理 第五章 设备管理 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. I/O设备的类型 1) 按传输速率分类 按传输速度的高低,可将I/O设备分为三类。第一类是低速 设备,这是指其传输速率仅为每秒钟几个字节至数百个字节的 一类设备。属于低速设备的典型设备有键盘、 鼠标器、语音的 输入和输出等设备。第二类是中速设备,这是指其传输速率在 每秒钟数千个字节至数万个字节的一类设备。典型的中速设备 有行式打印机、激光打印机等。第三类是
2、高速设备, 这是指其 传输速率在数百千个字节至数十兆字节的一类设备。 典型的高 速设备有磁带机、 磁盘机、 光盘机等。 第五章 设 备 管 理 2) 按信息交换的单位分类 可将I/O设备分成两类。第一类是块设备(Block Device), 这类设备用于存储信息。 由于信息的存取总是以数据块为单 位, 故而得名。 它属于有结构设备。典型的块设备是磁盘 ,每个盘块的大小为512 B4 KB。磁盘设备的基本特征是其 传输速率较高,通常每秒钟为几兆位;另一特征是可寻址, 即对它可随机地读/写任一块;此外,磁盘设备的I/O常采用 DMA方式。 第二类是字符设备(Character Device),用于
3、数据 的输入和输出。 其基本单位是字符, 故称为字符设备。 第五章 设 备 管 理 3) 按设备的共享属性分类 这种分类方式可将I/O设备分为如下三类: (1) 独占设备。 (2) 共享设备。 (3) 虚拟设备。 第五章 设 备 管 理 2. 设备与控制器之间的接口 图 5-1 设备与控制器间的接口 第五章 设 备 管 理 5.1.2 设备控制器 1. 设备控制器的基本功能 1) 接收和识别命令 2) 数据交换 3) 标识和报告设备的状态 4) 地址识别 5) 数据缓冲 6) 差错控制 第五章 设 备 管 理 2. 设备控制器的组成 图 5-2 设备控制器的组成 第五章 设 备 管 理 5.1
4、.3 I/O通道 1. I/O通道(I/O Channel)设备的引入 实际上,I/O通道是一种特殊的处理机。它具有执行I/O 指令的能力,并通过执行通道(I/O)程序来控制I/O操作。但 I/O通道又与一般的处理机不同,主要表现在以下两个方面 : 一是其指令类型单一,这是由于通道硬件比较简单, 其所能执行的命令,主要局限于与I/O操作有关的指令; 再 就是通道没有自己的内存,通道所执行的通道程序是放在主 机的内存中的, 换言之,是通道与CPU共享内存。 第五章 设 备 管 理 2. 通道类型 1) 字节多路通道(Byte Multiplexor Channel) 图 5-3 字节多路通道的工
5、作原理 第五章 设 备 管 理 2) 数组选择通道(Block Selector Channel) 字节多路通道不适于连接高速设备,这推动了按数组方 式进行数据传送的数组选择通道的形成。这种通道虽然可以 连接多台高速设备,但由于它只含有一个分配型子通道,在 一段时间内只能执行一道通道程序, 控制一台设备进行数据 传送, 致使当某台设备占用了该通道后,便一直由它独占, 即使是它无数据传送,通道被闲置, 也不允许其它设备使用 该通道, 直至该设备传送完毕释放该通道。可见,这种通道 的利用率很低。 第五章 设 备 管 理 3) 数组多路通道(Block Multiplexor Channel) 数组
6、选择通道虽有很高的传输速率,但它却每次只允 许一个设备传输数据。数组多路通道是将数组选择通道传 输速率高和字节多路通道能使各子通道(设备)分时并行操作 的优点相结合而形成的一种新通道。它含有多个非分配型 子通道, 因而这种通道既具有很高的数据传输速率,又能 获得令人满意的通道利用率。也正因此,才使该通道能被 广泛地用于连接多台高、中速的外围设备,其数据传送是 按数组方式进行的。 第五章 设 备 管 理 3. “瓶颈”问题 图 5-4 单通路I/O系统 第五章 设 备 管 理 图 5-5 多通路I/O系统 第五章 设 备 管 理 5.1.4 总线系统 图 5-6 总线型I/O系统结构 第五章 设
7、 备 管 理 1. ISA和EISA总线 1) ISA(Industry Standard Architecture)总线 这是为了1984年推出的80286型微机而设计的总线结构。 其总线的带宽为8位,最高传输速率为2 Mb/s。之后不久又推 出了16位的(EISA)总线,其最高传输速率为8 Mb/s,后又升 至16 Mb/s, 能连接12台设备。 2) EISA(Extended ISA)总线 到80年代末期,ISA总线已难于满足带宽和传输速率的要 求, 于是人们又开发出扩展ISA(EISA)总线,其带宽为32位 ,总线的传输速率高达32 Mb/s,同样可以连接12台外部设备 。 第五章
8、设 备 管 理 2. 局部总线(Local Bus) 1) VESA(Video Electronic Standard Association)总线 2) PCI(Peripheral Component Interface)总线 第五章 设 备 管 理 5.2 I/O控制方式 5.2.1 程序I/O方式 在程序I/O方式中,由于CPU的高速性和I/O设备的低速 性, 致使CPU的绝大部分时间都处于等待I/O设备完成数据 I/O的循环测试中, 造成对CPU的极大浪费。在该方式中, CPU之所以要不断地测试I/O设备的状态,就是因为在CPU 中无中断机构, 使I/O设备无法向CPU报告它已完成
9、了一个 字符的输入操作。 第五章 设 备 管 理 图 5-7 程序I/O和中断驱动方式的流程 第五章 设 备 管 理 5.2.2 中断驱动I/O控制方式 在I/O设备输入每个数据的过程中,由于无须CPU干预, 因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才 需CPU花费极短的时间去做些中断处理。可见,这样可使 CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源 利用率及吞吐量。例如,从终端输入一个字符的时间约为100 ms, 而将字符送入终端缓冲区的时间小于 0.1 ms。 若采用程 序I/O方式,CPU约有 99.9 ms的时间处于忙等待中。 采用 中断驱动方式后,CPU
10、可利用这 99.9 ms的时间去做其它事情 ,而仅用 0.1 ms的时间来处理由控制器发来的中断请求。 可 见,中断驱动方式可以成百倍地提高CPU的利用率。 第五章 设 备 管 理 5.2.3 直接存储器访问DMA I/O控制方式 1. DMA(Direct Memory Access)控制方式的引入 该方式的特点是: 数据传输的基本单位是数据块,即在 CPU与I/O设备之间,每次传送至少一个数据块; 所传送的 数据是从设备直接送入内存的,或者相反; 仅在传送一个 或多个数据块的开始和结束时,才需CPU干预,整块数据的传 送是在控制器的控制下完成的。可见,DMA方式较之中断驱 动方式,又是成百
11、倍地减少了CPU对I/O的干预,进一步提高 了CPU与I/O设备的并行操作程度。 第五章 设 备 管 理 2. DMA控制器的组成 图 5-8 DMA控制器的组成 第五章 设 备 管 理 为了实现在主机与控制器之间成块数据的直接交换, 必 须在DMA控制器中设置如下四类寄存器: (1) 命令/状态寄存器CR。用于接收从CPU发来的I/O命令 或有关控制信息, 或设备的状态。 (2) 内存地址寄存器MAR。在输入时,它存放把数据从 设备传送到内存的起始目标地址;在输出时,它存放由内存 到设备的内存源地址。 (3) 数据寄存器DR。用于暂存从设备到内存,或从内存 到设备的数据。 (4) 数据计数器
12、DC。 存放本次CPU要读或写的字(节)数 。 第五章 设 备 管 理 3. DMA工作过程 图 5-9 DMA方式的工作流程 第五章 设 备 管 理 5.2.4 I/O通道控制方式 1. I/O通道控制方式的引入 I/O通道方式是DMA方式的发展,它可进一步减少CPU 的干预,即把对一个数据块的读(或写)为单位的干预,减少 为对一组数据块的读(或写)及有关的控制和管理为单位的干 预。 同时,又可实现CPU、通道和I/O设备三者的并行操作 ,从而更有效地提高整个系统的资源利用率。例如,当CPU 要完成一组相关的读(或写)操作及有关控制时,只需向I/O通 道发送一条I/O指令,以给出其所要执行的
13、通道程序的首址和 要访问的I/O设备,通道接到该指令后,通过执行通道程序便 可完成CPU指定的I/O任务。 第五章 设 备 管 理 2. 通道程序 (1) 操作码。 (2) 内存地址。 (3) 计数。 (4) 通道程序结束位P。 (5) 记录结束标志R。 第五章 设 备 管 理 操作 PR计数内存地址 WRITE 0080813 WRITE001401034 WRITE01605830 WRITE013002000 WRITE002501850 WRITE11250720 第五章 设 备 管 理 5.3 缓 冲 管 理 5.3.1 缓冲的引入 (1) 缓和CPU与I/O设备间速度不匹配的矛盾。
14、 (2) 减少对CPU的中断频率, 放宽对CPU中断响应时间的 限制。 (3) 提高CPU和I/O设备之间的并行性。 第五章 设 备 管 理 图 5-10 利用缓冲寄存器实现缓冲 第五章 设 备 管 理 5.3.2 单缓冲和双缓冲 1. 单缓冲(Single Buffer) 图 5-11 单缓冲工作示意图 第五章 设 备 管 理 2. 双缓冲(Double Buffer) 图 5-12 双缓冲工作示意图 第五章 设 备 管 理 图 5-13 双机通信时缓冲区的设置 第五章 设 备 管 理 5.3.3 循环缓冲 1. 循环缓冲的组成 图 5-14 循环缓冲 第五章 设 备 管 理 2. 循环缓冲
15、区的使用 (1) Getbuf过程。 (2) Releasebuf过程。 第五章 设 备 管 理 3. 进程同步 (1) Nexti指针追赶上Nextg指针。 (2) Nextg指针追赶上Nexti指针。 第五章 设 备 管 理 5.3.4 缓冲池(Buffer Pool) 1. 缓冲池的组成 1. 缓冲池的组成 对于既可用于输入又可用于输出的公用缓冲池, 其中 至少应含有以下三种类型的缓冲区: 空(闲)缓冲区; 装满输入数据的缓冲区; 装满输出数据的缓冲区。 为了 管理上的方便,可将相同类型的缓冲区链成一个队列,于是 可形成以下三个队列: (1)空缓冲队列emq。 (2) 输入队列inq。
16、(3) 输出队列outq。 第五章 设 备 管 理 2. Getbuf过程和Putbuf过程 Procedure Getbuf(type) begin Wait(RS(type); Wait(MS(type); B(number) KG-*3= Takebuf(type); Signal(MS(type); end Procedure Putbuf(type, number) begin Wait(MS(type); Addbuf(type, number); Signal(MS(type); Signal(RS(type); end 第五章 设 备 管 理 3. 缓冲区的工作方式 图 5-15 缓冲区的工作方式 第五章 设 备 管 理 5.4 设 备 分 配 5.4.1 设备分配中的数据结构 1. 设备控制表DCT 图 5-16 设备控制表 第五章 设 备 管 理 2. 控制器控制表、 通道控制表和系统设备表 图 5-17 COCT、 CHCT和SDT表 第