系统结构期末复习(六)输入/输出系统

目录

  1. 输入输出系统的性能
  2. 输入输出系统的可靠性、可用性和可信性
  3. 廉价磁盘冗余阵列RAID
  4. 总线
  5. 通道处理机
  6. I/O与操作系统
    在这里插入图片描述
    输入输出系统分为通信IO和存储IO:通信IO负责系统和外部设备的信息交流,存储IO负责扩大存储容量。

1. 输入输出系统的性能

  1. 如果输入输出系统的性能和CPU的性能不匹配,输入输出系统就会成为瓶颈。(无论在哪,最差的都是瓶颈)。
  2. 这里不能使用CPU时间作为衡量了,因为这里没有很好的测量输入输出系统的性能。应该使用系统响应时间:指用户输入命令开始到得到结果所花的时间。由两部分组成输入输出系统的响应时间CPU的处理时间

这里不能用CPU时间作为衡量的原因是CPU的处理会被打断,那么CPU的处理时间就不只是单单的输入输出系统的时间衡量,所以将整个事件推广到系统处理IO的时间和单纯的输入输出响应时间。

3.🌟 I/O处理的影响🌟:
- 多进程技术只能提高系统的吞吐率,并不能减少系统的响应时间【使用多进程技术不能忽略I/O性能对系统性能的影响
- 进程切换时可能需要增加I/O操作
- 可切换的进程数量有限,当I/O处理较慢时,仍会导致CPU处于空闲状态
4. 输入输出系统的性能参数:
- 连接特性:哪些输入输出设备可以和计算机系统相连
- 输入输出系统的容量:输入输出系统可以容纳的输入输出设备数
- 响应时间和吞吐率
- 考虑输入输出操作对CPU的打扰情况(考查某个进程在执行时,由于其他进程的输入/输出操作,使得该进程的执行时间增加了多少)

不考虑当前进程的IO,考虑其他进程的IO对当前进程的影响。

2.输入输出系统的可靠性、可用性和可信性

存储设备应该无条件地保护好用户的数据,反应输入输出系统可靠性的参数有可靠性】可用性和可信性。
在这里插入图片描述

MTTF是平均失效前时间,那指的就是还没有失效的持续时间,其倒数是失效率,各个模块之间是串行关系,所以各个模块的失效率是加和的形式,前面有提到每个模块的生存周期是服从指数分布的,而指数分布如果两项相乘的话指数部分是相加的关系,失效率应该就是那个指数,所以失效率才是加和的形式。

在这里插入图片描述
在这里插入图片描述

  • 🌟提高系统组成部件的可靠性的方法🌟:
    1. 有效构建方法:在构建系统的过程中消除故障隐患,这样建立起来的系统不会出现故障。
    2. 纠错方法:在系统构建过程中采用容错的方法,这样即使出现故障,也可以通过容错信息保证系统正常工作【建立在“冗余”的基础上,提供系统所需必要功能部件之外的部件】

纠错方法的容错信息可以理解为磁盘阵列的冗余盘,在磁盘上信息错误的时候可以通过冗余盘上的信息来恢复原有信息。 在这里插入图片描述

  1. 为了保证冗余信息出现错误时不失效:通常要将其存放在与出错部件不同的部件中,典型应用——磁盘冗余阵列

3. 廉价磁盘冗余阵列RAID

  • 磁盘阵列:磁盘阵列是使用多个磁盘(包括驱动器)的组合来代替一个大容量的磁盘。

  • 优点:

    1. 可以比较容易的构建大容量的磁盘存储器系统
    2. 可以提高系统的性能(因为磁盘阵列中的多个磁盘可以并行工作
  • 🌟磁盘阵列的结构特点🌟:

    1. 一般是以条带为单位把数据均匀地分布在多个磁盘上【交叉存储
    2. 条带存放使得磁盘存储器系统可以并行地处理多个数据读/写请求,从而提高总的I/O性能

在这里插入图片描述
在这里插入图片描述
在RAID中增加冗余信息盘有几种不同的方法,它们构成了不同的RAID级别

在这里插入图片描述
在这里插入图片描述

  • RAID的关键问题:
    1. 如何发现磁盘的故障
      在磁盘扇区中除了保存数据信息外,还保存有用于发现该扇区错误的检测信息。对扇区数据进行读取的同时,可以检测到是否有错误。
    2. 如何减少平均修复时间(MTTR)
      在系统中增加热备份盘(热切换技术:允许系统在不关机的情况下更换设备),丢失的数据将根据冗余盘及其他盘上的信息进行重新构建,并放到热备份盘中。【在具有热备份盘和热切换技术的系统将会一直提供在线服务,丢失的数据立即在热备份盘上重新构建,并使该备份盘变成工作盘,而失效盘被换下,新换上去的磁盘变成备份盘】

RAID 0

在这里插入图片描述
所有的磁盘都可以并行工作,各自读出相应的部分。任何一块磁盘出现故障整个系统无法工作,因为没有冗余。适用于需要高带宽磁盘访问的场合,性能和容量可能比可靠性更重要。

RAID 1(镜像磁盘)

  1. 核心思想:对所有的磁盘数据提供一份冗余的备份。每当写入数据时,都要将其也同时写入镜像盘,在系统中所有的数据都有两份
  2. 特点
    【1】能实现快速的读取操作
    【2】写性能由写性能最差的磁盘决定,相对于各级RAID来说,RAID 1 写速度较快
    【3】可靠性高,数据恢复简单
    【4】最昂贵的解决方法,物理磁盘空间是逻辑磁盘的二倍
  3. 当从该磁盘阵列读取数据时,磁盘及镜像盘可独立同时工作,由最先读出数据的磁盘提供数据
  4. 🌟读取快原因🌟:对于访问请求的排队时间、寻道时间和旋转延迟的总和最小
  5. 🌟写入快原因🌟:可以并行执行,不需要计算校验信息
    在这里插入图片描述

RAID 2(存储式的磁盘阵列)

Hamming纠错码的思路,每当写入数据时就写入Hamming码,每当读出数据时,也将Hamming码读出,用于判断数据是否有错。Hamming具有纠正1位错误和检测2位错误的能力。
缺点:

  1. 在磁盘个数较少时,冗余盘占磁盘总数的比例是比较高的,效率低下。
  2. 当数据盘较多时,系统规模会变得比较庞大
  3. 现在的磁盘大多在自己内部已有纠错码

在这里插入图片描述

RAID 3(位交叉奇偶校验磁盘阵列)

在这里插入图片描述
特点:

  1. 写数据时,为每行数据形成奇偶校验码并写入校验盘。
  2. 读出数据时,如果控制器发现某个磁盘出现故障,可据故障以外其他所有盘的正确信息来恢复故障盘中的数据。(异或运算,即使故障盘是校验盘也可以)
  3. 细粒度的磁盘阵列,采用的条带宽度较小,甚至可以是1B或1位。对于绝大多数的I/O请求都需要磁盘阵列中断所有磁盘为之服务。对大数据量的读写具有很大的优越性
  4. 缺点:不能同时进行多个I/O请求的处理。
  5. 传输率靠所有同时为之服务的磁盘数量决定,越多传输速率越高(同时为同一个服务);若同时为不同的I/O请求服务就是并行性
  6. 置需要一个校验盘,开销较小

RAID 4(块交叉奇偶校验磁盘阵列)

在这里插入图片描述
特点:

  1. 能够同时处理多个小规模访问要求,采用粗粒度的磁盘阵列。每一个代表一个数据块。
  2. 磁盘中各个扇区都有自己的纠错码,所以完全可以让每个磁盘独立地进行读操作,从而提高单位时间完成的读操作的数量。
  3. 读操作:每次只需访问数据所在的磁盘,仅在磁盘出现故障时,才会读校验盘并进行数据的重建。
  4. 写入操作:由于要重新计算校验码,所以采用如下的捷径来简化处理:
    在这里插入图片描述
    写入新数据时,将原有数据与旧的奇偶校验码进行异或运算,然后计算出新的奇偶校验,最后把新数据和奇偶校验写入磁盘。
  5. 优点:除了能够有效地处理小规模访问,也可以一样快速处理大规模访问,但是控制比较复杂。

RAID3是每一行的数据使用一个盘当校验盘,因为使用的是细粒度所以共用一个,但是RAID4是粗粒度的也就是每一块磁盘的条带中都有很多的位信息,所以每一个扇区都有自己的冗余校验位。

RAID 5(块交叉分布奇偶校验阵列)

在这里插入图片描述
特点:

  1. 数据以块交叉的方式存于各盘,🈚️专门的冗余盘,奇偶校验信息均匀分布在所有的磁盘上。
  2. 校验工作不集中在一个磁盘上完成,无论校验读还是校验写
  3. 之前的RAID任何一次磁盘访问都要被访问到,校验盘压力较大
  4. 可以快速处理大规模访问,小规模读取,还能让它们更快地处理小规模写操作。
  5. 校验空间开销较小

RAID 6(P+Q双校验磁盘阵列)

在这里插入图片描述
特点:

  1. 有时需要系统能容忍两个磁盘出错
  2. 增加了一个独立的校验信息,放在另一个校验盘中
  3. 很适合重要数据的保存
  4. 校验空间开销是RAID 5 的2倍

RAID 10 与 RAID 01在这里插入图片描述

RAID 10 :组内做镜像,组间按条带存放
RAID 01:组内按条带存放,组间做镜像

直接按照RAID0是按条带普通存放,而RAID1是镜像存放来记。按照这个顺序去记忆组内和组间的关系。

RAID的实现与发展

🌟实现磁盘阵列的方式主要有3种🌟:

  1. 软件方式:阵列管理软件由主机实现,优点是成本低,缺点是过多的占用主机时间而且带宽指标上不去
  2. 阵列卡方式:把RAID管理软件固化在I/O控制卡上,从而可不占用主机时间,一般用于工作站和PC机
  3. 子系统方式:基于通用接口总线的开放式平台,可用于各种主机平台和网络系统

4.总线

重要知识点:
1. 什么是总线
2. 总线的仲裁
3. 总线标准
4. 总线与CPU连接

总线是连接系统各个部分的公共信号线
优点:
成本低,简单
缺点:
是由不同的外设分时共享的,形成了信息交换的瓶颈,从而限制了系统中总的I/O吞吐量

4.1 总线的设计

在这里插入图片描述
在这里插入图片描述

  • 总线主设备的数量是要仔细考虑的问题之一(总线主设备是指能够启动总线活动的设备)
  • 总线仲裁机制:确定由哪个主设备来控制和使用总线。仲裁机制通常采用固定优先权(菊花链仲裁)或者相对公平的随机选取机制来分配总线的控制权。
  • 包交换(可以提高总线带宽):将总线事务分成请求和应答两部分。在请求和应答之间的空闲时间内,总线可以供给其他的I/O使用,采用这种技术的总线称为分离事务总线(流水总线、悬挂总线、包交换总线)
  • 分离事务总线工作过程:(多个请求在1个包内以流水的形式占用总线)
    在这里插入图片描述
    如上图约定地址1出现多长时间之后数据总线上出现数据。
  • 定时方式:
    在这里插入图片描述
  • 同步总线和异步总线的选择:
    同步总线比异步总线快:🈚️握手协议
    考虑:带宽、传输距离和可以连接的设备数量
    同步总线:设备的类型较少且距离较近
    异步总线:设备类型较多且距离较远

4.2 总线标准和实例

在这里插入图片描述

4.3 总线与CPU的连接

I/O总线的物理连接方式由有两种选择:连接到存储器上(更为常见)、连接到Cache上
在这里插入图片描述
在这里插入图片描述

5. 通道处理机

重要知识点:
1. 什么是通道处理机
2. 为什么使用通道处理机(与其他三种进行比较)
3. 通道的功能

5.1 通道的作用与功能

为什么使用通道?
在这里插入图片描述
通道:专门负责整个计算机系统的输入/输出工作【通道处理机只能执行有限的一组输入/输出指令】
在这里插入图片描述

  • 通道的功能:
  1. 接收CPU发来的I/O指令,并根据指令要求选择指定的外设与通道连接
    在这里插入图片描述
    在这里插入图片描述

5.2 通道的工作过程

重要知识点:
1. 通道程序
2. 广义指令
3. CPU执行程序和通道执行程序的时间关系(与那三种执行方式比较)
完成一次数据传输过程主要分3步:

在这里插入图片描述

1. 在用户程序中使用访管指令进入管理程序,由管理程序来编制一个通道程序并启动通道。
  • 关于启动I/O指令:
    1. 启动I/O指令是一条主要的输入输出指令,属于特权指令。
    2. 首先判断所要使用的通道和子通道是否在线且空闲在这里插入图片描述
    3. 在上述过程中,如果任何一个地方不正确,就表示该指令没有执行成功,形成相应的条件码并结束启动过程。通道通过检测这些条件码,就能够知道设备为什么没有启动成功。
2.通道处理机执行通道程序,完成指定的数据输入输出工作

如下图所示,通道处理机执行通道程序与CPU执行用户程序是并行的。通道被启动后,CPU就可以推出管理程序,返回到用户程序继续执行,而通道程序进入通道数据传送期,开始进行与设备的数据传送。执行完通道程序最后一条通道指令==“无链通道指令”时,通道的数据传输工作就全部结束了。通道进入数据传送结束期==。
在这里插入图片描述

3. 通道程序结束后向CPU发送中断请求

数据传送完成后,通道向CPU发I/O中断请求。CPU响应该中断请求,再次进入管态,调用相应的管理程序对该中断请求进行处理。如果正常结束,管理程序进行必要的登记等工作;如果是故障、错误等异常情况,则进行异常处理。然后,CPU返回到目态,继续进行目态程序的执行。

把握要点:
1. 谁编制的通道程序?根据什么进行编制?
2. 通道程序编制好之后放在哪里?
3. 通道处理机接下来应该如何工作?
4. 通道的工作完成了之后它做了什么?

5.3 通道的种类

在这里插入图片描述
在这里插入图片描述

5.4 通道流量分析

key:
1. 通道流量:一个通道在数据传送期间,单位时间内能够传送的数据量,单位Bps(字节/秒)
2. 通道最大流量:一个通道在满负荷下的流量,通道最大流量是通道的属性(无论客观环境如何变化它本身是不变的(主要与通道的种类、通道选择设备1次所用的时间、传送一个字节所用的时间等因素有关)
3. 通道的实际流量:通道实际的工作流量
4. 三种通道的流量分析

在这里插入图片描述

1. 字节多路通道

在这里插入图片描述
在这里插入图片描述

2. 选择通道

在这里插入图片描述
在这里插入图片描述

3. 多路选择通道

在这里插入图片描述
在这里插入图片描述

6. I/O与操作系统

  1. 操作系统的作用之一是多进程之间进行进程保护,这种保护包括存储器访问和I/O操作两个方面。由于I/O操作主要是在外设和存储器之间进行,所以操作系统必须保证这些I/O操作的安全性
  2. 设计I/O系统需要考虑操作系统的因素

6.1 DMA和虚拟存储器

  • DMA是使用虚拟地址还是物理地址来传输数据?如果使用物理地址存在的问题?
    1. 当数据缓冲区大小超过1页时,由于缓冲区所使用的多个页面在物理存储器中不一定是连续的,所以传输可能会出现问题
    2. 如果DMA正在存储器和缓冲区之间传输数据时,操作系统从存储器中移出(或重定位)一些页面,那么DMA将会在存储器中错误的物理页面上进行传输
      在这里插入图片描述
      如果进程在内存中被移动,操作系统应该能够及时的修改相应的DMA地址表。
      还有一种不咋地的方法:
      在这里插入图片描述

6.2 I/O和Cache数据一致性

背景:
Cache数据一致性问题,由于Cache中的数据有两份:一份在主存中、一份在Cache中。
写直达法:二者一致
写回法:二者不一致,但是早晚得一致

  • 加入I/O操作后存在的问题:
    在这里插入图片描述
    在这里插入图片描述
    如果把I/O连接到Cache上,CPU会和I/O竞争访问Cache,在进行I/O时,会造成CPU的停顿;而且I/O还可能会破坏Cache中CPU访问的内容(因为I/O操作可能导致一些新数据被加入Cache,而这些新数据在近期并不会被CPU访问),因此许多计算机还是把I/O连接到存储器上,把存储器的一片区域作为I/O缓冲器,从而减少对CPU的打扰,并设法解决数据不一致的问题。

在这里插入图片描述

  • 无论写回还是写直达,解决一致性的方法:
    在这里插入图片描述
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值