第八章 输入输出系统
文章目录
- 第八章 输入输出系统
- 8.1 I/O系统的性能
- 8.2 I/O系统的可靠性,可用性,可信性
- 8.3 廉价磁盘冗余阵列
- 8.3.1 RAID0
- 8.3.2 RAID1
- 8.3.3 RAID2
- 8.3.4 RAID3
- 8.3.5 RAID4
- 8.3.6 RAID5
- 8.3.7 RAID6
- 8.3.8 RAID10和RAID01
- 8.3.9 RAID的实现和发展
- 8.4 总线
- 8.4.1 总线的设计
- 8.4.2 总线标准和实例
- 8.4.3 与CPU的连接
- 8.5 通道处理机
- 8.5.1 通道的作用和功能
- 8.5.2 通道的工作过程
- 8.5.3 通道种类
- 8.5.4 通道流量分析
链接:
https://pan.baidu.com/s/1WyftXZzso0_ePWaMDDCUPw
提取码:hu2b
8.1 I/O系统的性能
1.输入/输出系统简称I/0系统
它包括:
- I/O设备
- I/O设备与处理机的连接
2.I/0系统是计算机系统中的一个重要组成部分
- 完成计算机与外界的信息交换
- 给计算机提供大容量的外部存储器
3.按照主要完成的工作进行分类:
- 存储I/0系统(本章内容)
- 通信I/O系统
4.人们对I/0系统的作用和性能没有给予足够的重视.
- 人们更多地关注: CPU的性能
许多人甚至认为CPU的速度就是计算机的速度。 - I/O设备通常被称为外围设备。
(外围的就似乎没那么重要了)
5.系统的响应时间(衡量计算机系统的一个更好的指标)
从用户输入命令开始,到得到结果所花费的时间。
由两部分构成: I/0系统的响应时间 CPU的处理时间
6.误区:使用多进程技术可以忽略I/O性能对系统性能的影响
- 多进程技术只能够提高系统吞吐率,并不能够减少系统响应时间。
- 进程切换时可能需要增加l/0操作。
- 可切换的进程数量有限,当I/0处理较慢时,仍然会导致CPU处于空闲状态。
8.2 I/O系统的可靠性,可用性,可信性
1.处理器性能已经很高,人们更加关注系统可靠性。
2.反映外设可靠性能的参数有:
- 可靠性(Reliability)
- 可用性(Availability)
- 可信性(Dependability)
3.系统的可靠性:系统从某个初始参考点开始一直连续提供服务的能力。
- 用平均无故障时间MTTF来衡量。(Mean Time To Failure)
- MTTF的倒数就是系统的失效率。
- 如果系统中每个模块的生存期服从指数分布,则系统整体的失效率是各部件的失效率之和。
4.系统的可用性:系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。
5.系统的可信性:服务的质量。即在多大程度上可以合理地认为服务是可靠的。(不可以度量)
6.提高系统组成部件可靠性的方法
- 有效构建方法(valid construction)
在构建系统的过程中消除故障隐患,这样建立起来的系统就不会出现故障。. - 纠错方法(error correction)
在系统构建中采用容错的方法。这样即使出现故障,也可以通过容错信息保证系统正常工作。
8.3 廉价磁盘冗余阵列
1.磁盘阵列DA(Disk Array) :使用多个磁盘(包括驱动器)的组合来代替一个大容量的磁盘。
- 多个磁盘并行工作。
- 以条带为单位把数据均匀地分布到多个磁盘上。(交叉存放)
- 条带存放可以使多个数据读/写请求并行地被处理,从而提高总的l/0性能。
2.这里并行性有两方面的含义:
- 多个独立的请求可以由多个盘来并行地处理。
减少了I/0请求的排队等待时间 - 如果一个请求访问多个块,就可以由多个盘合作来并行处理。
提高了单个请求的数据传输率
3.问题:阵列中磁盘数量的增加会导致磁盘阵列可靠性
的下降。
如果使用了N个磁盘构成磁盘阵列,那么整个阵列的可靠性将降低为单个磁盘的1/N。
解决方法:在磁盘阵列中设置冗余信息盘
当单个磁盘失效时,丢失的信息可以通过冗余盘中的信息重新构建。
4.廉价磁盘冗余阵列
Redundant Arrays of Inexpensive Disks
- 磁盘冗余阵列
Redundant Arrays of Independent Disks - 简称盘阵列技术。
- 1988年,Patterson教授首先提出。
5.大多数磁盘阵列的组成可以由以下两个特征来区分:
- 数据交叉存放的粒度
(可以是细粒度的,也可以是粗粒度的)
- 细粒度磁盘阵列是在概念上把数据分割成相对较小
的单位交叉存放。
6.在磁盘阵列中设置冗余需要解决以下两个问题:
- 如何计算冗余信息?
- 大多都是采用奇偶校验码;
- 也有采用汉明码〔Hamming code)或Reed-Solomon码的。
- 如何把冗余信息分布到磁盘阵列中的各个盘?
有两种方法:
- 把冗余信息集中存放在少数的几个盘中。
- 把冗余信息均匀地存放到所有的盘中。
(能避免出现热点问题)
8.3.1 RAID0
1.非冗余阵列,无冗余信息。
2.严格地说,它不属于RAID系列。
3.把数据切分成条带,以条带为单位交叉地分布存放到多个磁盘中。
8.3.2 RAID1
8.3.3 RAID2
1.存储器式的磁盘阵列(按汉明纠错码的思路构建)
- 含4个数据盘的RAID2
2.RAID2的特点
- 每个数据盘存放所有数据字的一位 (位交叉存放)
- 各个数据盘上的相应位计算汉明校验码,编码位被存放在多个校验(ECC)磁盘的对应位上。
- 冗余盘是用来存放汉明码的,其个数为log2m级。 m:数据盘的个数(也就是数据字的位数)
- 并未被广泛应用,目前还没有商业化产品。
8.3.4 RAID3
1.位交叉奇偶校验盘阵列
2.RAID3的特点
- 采用奇偶校验
- 写数据时
为每行数据形成奇偶校验位并写入校验盘 - 读出数据时
如果控制器发现某个磁盘出故障,就可以根据故障盘以外的所有其他盘中的正确信息恢复故障盘中的数据。(通过异或运算实现) - 细粒度的磁盘阵列,即采用的条带宽度较小。(可以是1个字节或1位)
- 只需要一个校验盘,校验空间开销比较小。
8.3.5 RAID4
1.块交叉奇偶校验磁盘阵列
2.采用比较大的条带,以块为单位进行交叉存放和计算奇偶校验。
- 实现目标:能同时处理多个小规模访问请求
3.RAID4读写特点
读取操作
- 每次只需访问数据所在的磁盘。
- 仅在该磁盘出现故障时,才会去读校验盘,并进行数据的重建。
写入操作
- 假定:有4个数据盘和一个冗余盘。
- 写数据需要2次磁盘读和2次磁盘写操作。
8.3.6 RAID5
1.块交叉分布奇偶校验磁盘阵列
2.数据以块交叉的方式存于各盘,无专用冗余盘,奇偶校验信息均匀分布在所有磁盘上。
8.3.7 RAID6
1.P+Q双校验磁盘阵列
2.特点
- 校验空间开销是RAID5的两倍
- 容忍两个磁盘出错
8.3.8 RAID10和RAID01
1.RAID10又称为RAID1+0
先进行镜像(RAID1),再进行条带存放(RAIDO )
2.RAIDO1又称为RAIDO+1
先进行条带存放(RAIDO),再进行镜像(RAID1)
8.3.9 RAID的实现和发展
1.实现盘阵列的方式主要有三种:
软件方式:阵列管理软件由主机来实现。
- 优点:成本低
- 缺点:过多地占用主机时间,且带宽指标上不去。
阵列卡方式:把RAID管理软件固化在I/0控制卡上,从而可不占用主机时间,一般用于工作站和PC机。
子系统方式:一种基于通用接口总线的开放式平台,可用于各种主机平台和网络系统。
8.4 总线
8.4.1 总线的设计
1.总线设计存在很多技术难点
一个重要原因:总线上信息传送的速度极大地受限于各种物理因素。
如总线的长度、设备的数目、信号的强度等,这些物理因素限制了总线性能的提高。
另外,我们一方面要求I/0操作响应快,另一方面又要求高吞吐量,这可能造成设计需求上的冲突。
2.设计总线时需要考虑的一些问题
2.分离事务总线
(又称:流水总线、悬挂总线、包交换总线)
- 在有多个主设备时,可以通过打包技术来提高总线带宽。
- 基本思想
- 将总线事务分成请求和应答两部分。
- 在请求和应答之间的空闲时间内,总线可以供其他的I/0使用,这样就不必在整个I/0过程中都独占总线。
- 工作过程的示意图
- 分离事务总线有较高的带宽,但是它的数据传送延迟通常比独占总线方法大。
3.同步总线
- 包含一个供总线上所有设备使用的时钟,并且这些设备是基于该时钟按照一个固定的协议来发送地址和数据的。
- 优点:速度快、成本低。
- 缺点:总线操作都必须以同样的时钟频率进行。
4.异步总线
- 没有统一的参考时钟,每个设备都有各自的定时方法。
- 采用握手协议。
8.4.2 总线标准和实例
1.I/O总线标准:定义如何将设备与计算机进行连接的文档。
2.常见l/O总线的一些典型特征
8.4.3 与CPU的连接
1.I/0总线的物理连接方式有两种选择
- 连接到存储器上
更常见 - 连接到Cache上
2.I/0总线连接到存储器总线上的方式
- 一种典型的组织结构
3.CPU对1/0设备的编址有两种方式
存储器映射I/0(也称为统一编址)
- 将一部分存储器地址空间分配给I/O设备,用load指令和store指令对这些地址进行读写将引起I/O设备的数据传输。
- 将一部分存储空间留出用于设备控制,对这一部分地址空间进行读写就是向设备发出控制命令。
给I/0设备独立编址
- 需要在CPU中设置专用的I/0指令来访问I/0设备。
- CPU需要发出一个标志信号来表示所访问的地址是I/O设备的地址。
8.5 通道处理机
- 通道处理机能够负担外围设备的大部分I/0工作。
- 通道处理机(简称通道):专门负责整个计算机系统的输入/输出工作。通道处理机只能执行有限的一组输入/输出指令。
8.5.1 通道的作用和功能
1.程序控制、中断和DMA方式管理外围设备会引起两个
问题:
- 所有外设的输入/输出工作均由CPU承担,CPU的计算工作经常被打断而去处理输入/输出的事务,不能充分发挥CPU的计算能力。
- 大型计算机系统的外设虽然很多,但同时工作的机会不是很多。
- 解决上述问题的方法:采用通道处理机
3.一个典型的由GPU、通道、设备控制器、外设构成的4层次结构的输入/输出系统。
4.通道的功能
- 接收CPU发来的I/0指令,并根据指令要求选择指定的外设与通道相连接。
- 执行通道程序
从主存中逐条取出通道指令,对通道指令进行译码,并根据需要向被选中的设备控制器发出各种操作命令。
- 给出外设中要进行读/写操作的数据所在的地址
如磁盘存储器的柱面号、磁头号、扇区号等。
- 给出主存缓冲区的首地址
该缓冲区存放从外设输入的数据或者将要输出到外设中去的数据。
- 控制外设气主存缓冲区之间的数据传送的长度
对传送的数据个数进行计数,并判断数据传送是否结束。
- 指定传送工作结束时要进行的操作
**例如:**将外设的中断请求及通道的中断请求送往CPU等。
- 检查外设的工作状态是否正常,并将该状态信息送往主存指定单元保存。
- 在数据传输过程中完成必要的格式变换
**例如:**把字拆分为字节,或者把字节装配成字等。
6.通道对外设的控制通过输入/输出接口和设备控制器进行:
- 通道与设备控制器之间一般采用标准的输入/输出接口来连接。
- 通道通过标准接口把操作命令送到设备控制器,设备控制器解释并执行这些通道命令,完成命令指定的操作。
- 设备控制器能够记录外设的状态,并把状态信息送往通道和CPU。
8.5.2 通道的工作过程
1.通道完成一次数据输入/输出的工作过程
- 在用户程序中使用访管指令进入管理程序,由管理程序生成一个通道程序,并启动通道。
- 用户在目标程序中设置一条广义指令,通过调用操作系统的管理程序来实现
- 管理程序根据广义指令提供的参数来编制通道程序。
- 启动输入/输出设备指令是一条主要的输入/输出指令,属于特权指令。
工作流程
- 通道处理机执行通道程序,完成指定的数据输入/输出工作。
通道处理机执行通道程序与CPU执行用户程序是并行的。
- 通道程序结束后向CU发中断请求。
2.CPU执行程序和通道执行通道程序的时间关系
8.5.3 通道种类
- 根据信息传送方式的不同,将通道分为三种类型
- 字节多路通道
- 选择通道
- 数组多路通道
- 三种类型的通道与GPU、设备控制器和外设的连接关系
1.字节多路通道
- 为多台低速或中速的外设服务。
- 以字节交叉的方式分时轮流地为它们服务。
- 字节多路通道可以包含多个子通道,每个子通道连接一台设备控制器。
2.选择通道
- 为多台高速外围设备服务。
- 在一段时间内只为一台高速外设独占使用。
- 选择通道的硬件
- 5个寄存器
数据缓冲寄存器、设备地址寄存器、主存地址计数器、交换字节数计数器、设备状态/控制寄存器 - 格式变换部件
用于在主存和设备之间进行字与字节的拆分和装配 - 通道控制部件
3.数组多路通道
- 适用于高速设备。
- 每次选择一个高速设备后传送一个数据块,轮流为多台外围设备服务。
- 数组多路通道之所以能够并行地为多台高速设备服务,是因为虽然其所连设备的传输速率很高,但寻址等辅助操作时间很长。
8.5.4 通道流量分析
通道流量
- 一个通道在数据传送期间,单位时间内能够传送的数据量。所用单位一般为BpS。
- 又称为通道吞吐率、通道数据传输率等。
- 通道最大流量
一个通道在满负荷工作状态下的流量。 - 参数的定义
- Ts:设备选择时间。从通道响应设备发出的数据传送请求开始,到通道实际为这台设备传送数据所需要的时间
- To:传送一个字节所用的时间。
- p:在一个通道上连接的设备台数,且这些设备同时都在工作。
- n:每台设备传送的字节数,这里假设每台设备传送的字节数都相同。
- k:数组多路通道传输的一个数据块中包含的字节数。在一般情况下,k<n。对于磁盘、磁带等磁表面存储器,通常k=512。
- T:通道完成全部数据传送工作所需要的时间。
- 最大流量
- 实际流量是连接在这个通道上的所有设备的数据传输率之和。
- f (i):第i台设备的实际数据传输率
2.选择通道
- 在一段时间内只能单独为一台高速外设服务,当这台设备的数据传送工作全部完成后,通道才能为另一台设备服务。
- p台设备每台传送n个数据总共所需的时间
- 最大流量
3.数组多路通道
- 最大流量
- 选择通道和数组多路通道的实际流量就是连接在这个通道上的所有设备中数据流量最大的那一个
- 各种通道的实际流量应该不大于通道的最大流量
两边的差值越小,通道的利用率就越高。
当两边相等时,通道处于满负荷工作状态。