OS09设备管理[1]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 每次传送一行适合于上卷式终端。对于这类终端,用户 每次输入一行,用回车表示到达行尾,并且输出到终端 时也是类似的每次输出一行。行式打印机是这类设备的 一个例子
OS09设备管理[1]
双缓冲
➢ 可以通过给操作系统指定两个系统缓冲区来实现对 单缓冲方案进行改进
▪ 当一个进程往这一个缓冲区中传送数据 (从这个缓冲区中 取数据) 时,操作系统正在清空 (填充) 另一个缓冲区,这 种技术称作双缓冲或缓冲交换
OS09设备管理[1]
单缓冲区
➢ 操作系统提供的最简单的类型是单缓冲区 ➢ 当一个用户进程发出 I/O请求时,操作系统给该操
作分配一个主存空间称为缓冲区。
▪ 输入传送进入系统缓冲区。当传送完成时,进程把该块 移到用户空间,并立即请求另一块。这称作预读。这样 做是希望最终会需要这个块
▪ 相对于没有系统缓冲的情况,此方法通常会提高速度。 用户进程可以在下一块数据正在读入时,处理这一块数 据。由于输入发生在系统存储空间中而不是用户进程存 储器中,故而操作系统可以把该进程换出。但这种技术 增加了操作系统的逻辑复杂度
CSCAN
7
8
9
10 11 12 13 14
0
1
2
3
4
5
6
FCFS:23,376,205,132,19,61,190,398,29,4,18,40 磁头移动道数=(100-23)+(376-23)+(376-205)+(205132)+(132-19)+(61-19)+(190-61)+(398-190)+(39829)+(29-4)+(18-4)+(40-18)=1596
OS09设备管理[1]
磁盘调度策略
➢ 其他算法 ▪ LOOK ▪ C-LOOK
OS09设备管理[1]
磁盘调度策略
❖ 磁盘共400磁道,若磁头的当前位置为100,磁头正向 磁道号增加方向移动,现有一磁盘读写请求队列,23, 376,205,132,19,61,190,398,29,4,18,40, 若分别采用 FCFS、 SSTF、 SCAN,C-SCAN调度 算法,求访问顺序和磁头移动道数。
OS-09设备管理
2020/11/6
OS09设备管理[1]
第9章 设备管理
▪ 输入/输出设备 ▪ 输入/输出功能的组织 ▪ 操作系统设计问题 ▪ 输入/输出缓冲 ▪ 磁盘调度 ▪ RAID
▪ 磁盘高速缓冲
OS09设备管理[1]
第9章 设备管理
➢ 各种设备及其应用程序如此众多,所以很难开发一种 通用的、一致的输入/输出解决方案
OS09设备管理[1]
第9章 设备管理
磁盘输入/输出,介绍多磁盘请求的调度方法,通 过利用磁盘访问的物理特性来提高响应时间。这 是用户所能觉察到的一个关键性能因素
使用磁盘阵列来提高性能和可靠性 磁盘cache
OS09设备管理[1]
输入/输出设备
➢ 计算机系统输入/输出外部设备大体可分为: ▪ I/O类外设:适合与计算机用户通信,例如打印 机、终端 (显示器和键盘、鼠标等),传感器等 ▪ 存储类型的设备:应用于存储程序和数据,如磁 盘设备,磁带,光盘等 ▪ 网络通信设备:适合与远程设备通信,例如调制 解调器,各种网络接口等
OS09设备管理[1]
➢解
0 4 18 19 23 29 40 61 100 132 190 205 376 398 400
FCFS
10 11 5 1 9 12 6 0 4 7 3 2 8
SSTF
10 9 8 7 6 5 4 0 1 2 3 11 12
SCAN
13 12 11 10 9 8 7 0 1 2 3 4 5 6
磁盘调度策略
• 后进先出 (LIFO)
– 取最近请求的策略有许多优点。在事务处理系统中,把设 备给最近的用户会导致磁头臂在一个顺序文件中移动时移 动得很少,甚至不移动。利用这种局部性可以提高吞吐量, 减小队列长度
– 只要一个作业积极地使用文件系统,它就可以尽可能快地 得到处理
– 但如果由于工作量大而使磁盘保持忙状态,就有可能出现 饿死的情况。当一个作业已经往队列中送入一个加请求, 并且错过了磁头位置时,该作业就可能永远得不到磁头, 除非它前面的队列变为空
OS09设备管理[1]
输入/输出设备
➢各类输入/输出外部设备之间有很大差别,主 要包括
▪ 数据率:数据传送速率可能会相差几个数量级
OS09设备管理[1]
101 102 103 104 105 106 107 108 109
典型的输入/输出设备数据率
OS09设备管理[1]
§6.1 输入/输出设备
OS09设备管理[1]
磁盘调度策略
➢ SCAN算法(电梯调度算法) ▪ SCAN要求磁头臂仅仅沿一个方向移动,并在途中 满足所有未完成的请求,直到它到达这个方向上 的最后一个磁道为止。然后倒转服务方向,沿相 反方向扫描,同样按顺序完成所有请求
OS09设备管理[1]
磁盘调度策略
➢ C-SCAN算法 ▪ C-SCAN要求磁头臂从0磁道向里移动,并在途中 满足所有未完成的请求,直到它到达这个方向上 的最后一个磁道,在返回时,直接快速的移至起 始端,而不响应任何服务请求,接着再进行下一 次的扫描
OS09设备管理[1]
操作系统设计问题
➢ 操作系统设计的另一个重要目标是通用性
▪ 为了简单和避免错误,往往希望能用一种统一的方式处 理所有的设备。这不仅是从处理器的角度看I/O设备时所 需要的,也是操作系统管理I/O设备和I/O操作所需要的
▪ 由于设备之间的差异,实际中很难真正实现通用性。所 能做的是用一种层次化的、模块化的方法设计I/O功能。 这种方法在低层例程中隐藏了大部分设备I/O的细节,使 得用户进程和操作系统高层可以通过一些通用的功能, 如读、写、打开、锁定、解锁等来查看I/O设备
OS09设备管理[1]
磁盘调度
➢ 处理器速度和主存速度的提高远远超过了磁盘访问 速度的提高,并且可以预见将来这个差距还会继续 增大。因此,磁盘存储子系统的性能是至关重要的
➢ 磁盘系统的性能与文件系统的设计问题紧密相关
OS09设备管理[1]
盘片 盘面
磁头臂运动方向
读/写磁头 (每个盘面一个)
磁盘驱动器的组成
OS09设备管理[1]
RAID
➢ RAID,独立磁盘冗余阵列,是关于多磁盘数据库设 计的一个标准方案
➢ RAID方案包括从0到6的7层,层不仅仅是层次关系, 还表明了不同的设计结构
▪ 提高磁盘访问的速度 ▪ 增强磁盘的可靠性
OS09设备管理[1]
RAID
➢ RAID设计结构有三个共同的特性:
OS09设备管理[1]
磁盘调度策略
➢最短服务时间优先
▪ SSTF策略选择使磁头臂从当前位置开始移动最少 的磁盘I/O请求。因此,SSTF策略总是选择导致 最小寻道时间的请求。
▪ 当然,总是选择最小寻道时间并不能保证平均寻 道时间最小,但是,它能提供比FIFO更好的性能。
▪ 由于磁头臂可以向两个方向移动,因此可以使用 一种随机选择算法解决距离相等的情况
1
2
OS09设备管理[1]
循环缓冲
➢ 双缓冲方案可以平滑I/O设备和进程之间的数据流 ➢ 如果某个特定进程的性能是关注的焦点,常常会希
望相关I/O操作能够跟得上这个进程。如果这个进程 突然快速执行了大量的I/O,仅有双缓冲就不够了, 在这种情况下,通常使用多于两个的缓冲区来解决 这个问题 ➢ 当使用两个以上的缓冲区时,这组缓冲区被称作循 环缓冲区,其中的每一个缓冲区是这个循环缓冲区 的一个单元
操作系统设计问题
➢ 设计I/O功能时,最重要的目标是:效率和通用性 ➢ I/O设计的一个主要任务就是提高I/O的效率,最关
注的是磁盘I/O
▪ 与主存和处理器相比,大多数I/O设备都非常慢,I/O操作 往往构成计算机系统的瓶颈,因此效率非常重要。
▪ 解决这个问题的方法之一是多道程序。多道程序允许一些 进程在等待I/O操作时另一些进程正在执行。但是,即使 有巨大的主存,仍然常常出现I/O跟不上处理器活动的情 况等
OS09设备管理[1]
磁盘调度策略
• 优先级
– 优先级方法不会优化磁盘的使用率,但可以满足操作系统 的其他目标
– 通常比较短的批作业和交互作业比需要较长计算时间的长 作业的优先级高。这就使得大量的短作业能够迅速地通过 系统,从而可以提供比较好的交互响应时间。但是,长作 业可能不得不等待过长的时间
OS09设备管理[1]
➢ 对于输入/输出,最关键的问题是性能 ▪ 计算机系统处理器的速度在不断提高,如果一个处理器仍 然不够快,SMP可以提供多个处理器来加快处理速度 ▪ 内部存储器访问速度尽管没有处理器速度提高得快,但它 也在不断提高,而且,通过聪明地使用一级、两级甚至更 多级内部 cache,主存访问时间应该可以跟上处理器的速度 ▪ 但输入/输出仍然面临着重要的性能挑战,特别是磁盘存储
OS09设备管理[1]
RAID
➢ 设想:如果使用一个组件对性能只能提高这么多, 那么可以通过使用多个并行的组件来获得额外的性 能提高
➢ 在磁盘存储器的情况下,就产生了独立、并行运行 的磁盘阵列
▪ 通过多个磁盘,多个独立的I/O请求可以并行地进行处理, 只要它们所需要的数据驻留在不同的磁盘中
▪ 此外,如果要访问的数据块分布在多个磁盘上,I/O请求 也可以并行地执行
OS09设备管理[1]
磁盘性能参数
➢ 磁盘I/O的实际操作细节取决于计算机系统、操作系 统以及I/O通道和磁盘控制硬件的特性
等待设备
等待通道
寻道
旋转延迟 数据传送
设备忙
磁盘I/O传送的一般时序图
OS09设备管理[1]
磁盘调度策略
➢ 考虑在多道程序环境中的一种典型情况,操作系统 为每个I/O设备维护一条请求队列。因此对一个磁盘, 队列中可能有来自多个进程的许多I/O请求 (写和读)
➢ 各类输入/输出外部设备之间有很大差别,主要包括
▪ 数据率:数据传送速率可能会相差几个数量级 ▪ 应用程序:设备的用途对软件、操作系统策略以及支持
实用程序都有影响。例如,用于文件操作的磁盘需要文 件管理软件的支持等;不同使用情况隐含着不同的特权, 从而可能有不同的优先级 ▪ 控制的复杂度:相对而言,打印机接口比较简单,而磁 盘接口要复杂得多。这些差别影响到控制该设备的I/O模 块的复杂度
OS09设备管理[1]
输入/输出缓冲
➢ 在各种缓冲方法中,有时需要区别两类I/O设备:
▪ 面向块的I/O设备 在块中保存信息,块的大小通常是固 定的,并且一次只传送一块。通常,可以通过块Байду номын сангаас访问 数据。磁盘和磁带都是面向块的设备
▪ 面向流的I/O设备 面向流的设备传送字节流数据,没有 使用块结构。终端、打印机、通信端口、鼠标和其他指 示设备以及大多数不是辅存的其他设备,都是面向流的
OS09设备管理[1]
OUT IN
OS09设备管理[1]
缓冲的作用
➢ 缓冲是用来平滑I/O请求的峰值的一种技术,但是当 进程的平均请求大于I/O设备的服务能力时,缓冲再 多也不能让I/O设备与这个进程一直并驾齐驱
➢ 即使有多个缓冲区,所有的缓冲区终将被填满,进 程在处理完每块数据后不得不等待。但是,在多道 程序环境中,当存在多种I/O活动和多种进程活动时, 缓冲是提高操作系统效率和单个进程性能的一种工 具
➢ 如果按随机顺序从队列中选择项目,那么磁道完全 是被随机访问的,这种情况下的性能最差
➢ 最简单的调度是先进先出 (FIFO) ,这意味着按顺序 处理队列中的项目。这个策略具有公平性,每个请 求都会按照接收到的顺序得到处理
OS09设备管理[1]
磁盘调度策略
➢ 对于FIFO,如果有多个进程竞争一个磁盘,这种技 术在性能上往往接近于随机调度。因此,需要考虑 一些更复杂的调度策略
OS09设备管理[1]
输入/输出设备
▪ 传送单位:数据可以按照字节流或者字符流的形式传送 (例如终端I/O) ,也可以按大块传送 (如磁盘I/O)
▪ 数据表示:不同的设备使用不同的数据编码方案 ▪ 错误条件:错误、报告错误方式、错误后果以及可以得
到的响应范围随设备的不同而不同
OS09设备管理[1]
OS09设备管理[1]
单缓冲区
• 单缓冲区可以用于面向块的输出
– 当准备把数据发送到一台设备时,首先把它们从用户空 间复制到系统缓冲区,最终是从系统缓冲区中被写出的。 发请求的进程现在可以自由地继续进行,或者在必要时 换出
• 对于面向流的I/O,在每次传送一行的方式下,或者 每次传送一个字节的方式下可以使用单缓冲方案
相关文档
最新文档