蒲晓蓉_操作系统原理第4章_外部设备管理.ppt_第1页
蒲晓蓉_操作系统原理第4章_外部设备管理.ppt_第2页
蒲晓蓉_操作系统原理第4章_外部设备管理.ppt_第3页
蒲晓蓉_操作系统原理第4章_外部设备管理.ppt_第4页
蒲晓蓉_操作系统原理第4章_外部设备管理.ppt_第5页
已阅读5页,还剩148页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章设备管理 本章要点 设备管理的主要功能 模型I O子系统的组成 结构设备的控制 I O控制设备的类型设备分配I O缓冲技术虚拟设备与SPOOLing系统磁盘设备的管理 4 1设备管理概述 设备管理的主要功能 设备分配设备映射设备驱动I O缓冲区的管理 设备分配 多道程序系统中的设备不允许用户直接使用 而是由操作系统统一调度和控制 设备分配功能是设备管理的基本任务 设备分配程序按照一定的策略 为申请设备的用户进程分配设备 记录设备的使用情况 设备管理的主要功能 设备分配设备映射设备驱动I O缓冲区的管理 设备映射 为了提高应用软件对运行平台的适应能力 方便实现应用软件I O重定向 大多数现代操作系统均支持应用软件对设备的无关性 即通常所说的设备无关性 或者设备独立性 设备无关性 应用软件所引用的 用于实现I O操作的设备与物理I O系统中实际安装的设备没有固定的联系 设备映射 逻辑设备和物理设备 逻辑设备是指 应用软件所引用的用于实现I O操作的设备 物理设备则指 物理I O系统中实际安装的设备 从应用软件的角度看 逻辑设备是一类物理设备的抽象 从操作系统设备管理程序的角度看 物理设备则是某种逻辑设备的实例 设备映射 如果某系统支持设备无关性 那么该系统中应用软件所引用的逻辑设备与实际安装的物理设备没有固定的联系 事实上 在应用软件运行期间 操作系统的设备管理程序必须将该应用软件对逻辑设备的引用转换成对相关物理设备的引用 设备管理的这种功能称为逻辑设备到物理设备的映射功能 简称设备映射功能 设备管理的主要功能 设备分配设备映射设备驱动I O缓冲区的管理 设备驱动 又称设备处理 指对物理设备进行控制 以实现真正的I O操作 设备驱动的主要任务是 接收上层软件发来的抽象服务请求 例如读 写命令 再把它转换为具体要求 通过一系列的I O指令 控制设备完成请求的操作 同时 设备驱动程序还将设备发来的有关信号传送给上层软件 例如设备是否已损坏等 设备驱动 设备驱动程序与硬件密切相关 应为每一类设备配置一种驱动程序 设备驱动程序一般由设备开发厂商根据操作系统的要求组织编写 操作系统仅对与设备驱动的接口提出要求 一般不负责具体设备驱动程序的编写 有时候 某些硬件无法在某种操作系统中使用 原因很可能就是没有专门的或通用的设备驱动程序 或者设备驱动程序设计有问题 使得设备无法正常工作 设备管理的主要功能 设备分配设备映射设备驱动I O缓冲区的管理 I O缓冲区的管理 为了缓和处理机与外部设备间速度不匹配的矛盾 提高处理机和外部设备间的并行性 现代操作系统大都在设备管理部分引入了缓冲技术 通常 缓冲区是指内存中的若干区域 用于缓存进程与外部设备间的数据传输 又称为I O缓冲区 I O缓冲区管理的任务是 组织I O缓冲区 并为使用者提供获得和释放I O缓冲区的手段 通用设备管理分层模型 将设备管理功能模块分为设备硬件无关以及设备硬件相关两个层次 设备硬件无关层主要实现 I O缓冲区管理以及设备映射功能 该层与设备用法有关 与设备硬件无关 一般地 根据设备的用法 该层也可视作虚拟存储系统 文件系统或通信系统的一部分 通用设备管理分层模型 设备硬件相关层将设备硬件无关层与设备硬件隔离开来 从设备硬件无关层的角度看 设备硬件相关层为其提供了一个相对简洁的I O功能接口 该接口屏蔽了设备硬件复杂的操作细节 从设备硬件相关层的内部看 该层主要实现设备驱动功能 毫无疑问 该层与设备硬件密切相关 通用设备管理分层模型 支持中断的设备管理模型 4 2计算机I O子系统的组成 总线型I O系统的结构 通道型I O系统的结构 具有控制器的I O系统结构 传统的设备 机械部分 电子部分电子部分在系统的控制下驱动机械部分运转 完成I O操作 由于设备中电子部分比机械部分的速度快得多 为了降低硬件成本 将电子部分从设备中分离出来作为一个独立的部件 这就是控制器 分离之后的设备仅由机械部分构成 一个控制器可与多个设备相连 交替地或分时地控制与其相连的设备 例如 磁盘控制器可以控制多个磁盘驱动器 具有控制器的I O系统结构 设备的控制 设备的寻址与操作 从处理机的角度看 各种外部设备可以看作是由一组设备寄存器组成的 常见的设备寄存器有 操作方式寄存器 命令寄存器 数据寄存器 状态寄存器等 为了使CPU能够寻址这些设备寄存器 硬件平台引入了I O端口地址的概念 设备的控制 设备的寻址与操作 I O端口地址的编址方式有两种 1 将设备寄存器与内存物理单元统一编址 2 独立于内存物理地址为设备寄存器编址 无论一个设备是否由多个控制器控制 或者一个控制器控制了多少个设备 每一个设备都能通过这些寄存器的地址唯一确定 设备的控制 即插即用 随着外部设备种类增加 设备间极可能发生冲突 即 设备使用的中断号 DMA 内存地址 端口地址可能因相同或重叠而导致设备无法正常工作 手工调整这些设备的相关参数要求用户具有较多的计算机硬件知识 并对系统配置的硬件有较全面的了解 设备的控制 即插即用 顾名思义是指 插上了就可使用 不需要用户进行其它设置 即插即用 技术取消了跳线和软件配置程序 当用户插入一个 即插即用 适配卡或设备时 即插即用 功能就可以自动进行检测 配置相应的接口参数 并安装相应的驱动程序 设备的控制 即插即用 对已安装硬件的自动和动态识别 包括系统初始安装时 两次系统启动之间以及运行时发生的硬件事件 如笔记本的对接 分离以及设备的插入 拔出 的响应 配合操作系统分配 再分配硬件资源加载相应的驱动程序 当系统中加入新设备时 如果操作系统中没有集成相应设备的驱动程序 则会要求用户指定驱动程序的位置并完成驱动程序的安装 设备驱动程序 设备驱动程序一般由设备制造商提供 不包含在操作系统中 但是 为了方便用户 操作系统软件包中通常会集成提供标准的 通用的或者流行的 常用设备厂商的设备驱动程序供用户选择 从系统分层的观点来讲 设备驱动程序可以是操作系统的一部分 也可以被认为是硬件设备的一部分 I O控制方式 程序I O方式 在早期的计算机系统中 由于没有中断装置 处理机对于I O设备的控制采取程序I O方式也称忙等待方式或循环测试方式 对于读操作 这种方式的基本工作过程为 处理机向设备 或设备控制器 发出一条I O指令启动设备 输入数据 同时将状态寄存器中的 忙 标志置为1 处理机不断地循环测试忙标志 直到忙标志变为0 处理机通过I O读指令将数据从数据寄存器中取出 送入内存中指定单元 若数据已读完 则结束本过程 否则转 继续读下一个数据 在程序I O方式中 由于处理机的速度非常快 而设备的速度相对较慢 使得处理机的绝大部分时间都处于等待设备完成数据I O的循环测试中 造成对CPU的极大浪费 I O控制方式 中断I O方式 对于读操作 中断方式的基本工作过程为 处理机向设备 或设备控制器 发出一条I O指令 启动设备 输入数据 处理机完成其它工作 设备准备数据 当设备准备好数据并将数据存入数据寄存器 向处理机发中断信号 告之数据已准备好 处理机响应中断请求 从数据寄存器中将数据取出 送入内存的指定单元 若数据已读完 结束 否则 转 继续 中断方式控制I O的优点在于 设备与处理机并行 提高了处理机的利用率 性能优于程序控制I O方式 I O控制方式 DMA方式 中断I O比程序I O方式高效 但以字 字节为传输单位 每完成一个字 字节的传输 设备均要向CPU请求一次中断 对于块设备而言 这种方式的效率还是显得有些低下 因为 频繁的 大量的中断所累积的开销很大 为了进一步减少处理机对I O事务的干预 出现了DMA DirectMemoryAccess 直接存储器访问方式 DMA的特点 数据传输的基本单位是数据块 数据直接从设备送入内存 或者直接从内存送入设备 仅在传送一个或多个数据块的开始和结束时 才需要处理机的干预 与中断方式相比 DMA方式大大减少了数据I O对处理机的占用 进一步提高了处理机的利用率 提高了处理机和I O设备的并行操作能力 I O控制方式 I O通道方式 通道相当于一个功能单纯的处理机 专门用于处理I O操作 通道有自己的运控部件和指令系统 但没有专门的内存 而是通过 周期窃用 方式与主机共享内存 通道通过执行通道程序来完成I O操作 通道程序是通道指令的有序序列 它由系统中的输入 输出进程根据用户进程的I O要求来确定 可以是事先编制好的程序段 也可以动态产生 通道程序以及需要与设备交换的数据均放置在内存中 I O控制方式 I O通道方式 一条通道指令可以传送一组数据 一个通道程序可以传送多组数据 多组数据全部传送完毕后 即一个通道程序执行完毕 才向处理机发出一次中断 通道不仅可以传送数据 更重要的是它还完成对设备的控制 在通道的协助下 主机只需发出一个启动通道 执行通道程序的指令即可 主机仅与通道直接通信 不必考虑设备的具体控制以及如何完成数据传送等问题 从而大大减轻了主机的负担 4 3设备分类 设备类型 根据外部设备的用途不同 可以将其分为输入 输出型设备与存储型设备 根据外设传输的基本数据单位不同 可以将设备分为块型设备与字符型设备 按照资源管理的方式不同 可以将设备分为独占型设备和共享型设备 输入 输出型VS存储型设备 输入 输出型设备 键盘 鼠标 显示器 读卡机 扫描仪 打印机 绘图仪 数码相机等 存储型设备 磁带机 磁鼓机 磁盘机等 可用作输入 也可以用作输出 主要用于长期保存信息 但需要管理其上的存储空间 可以在存储设备上可以建立文件系统 有组织 有结构地长期存储信息 块型设备VS字符型设备 块型设备通常就是存储型设备 这类设备由若干长度相同的块构成 一块的长度通常为2n个字节 如256B 512B 1024B等 对这类设备来说 块是存储分配的基本单位 也是I O传输的基本单位 字符型设备通常就是输入 输出型设备 这类设备I O传输的基本单位是字节 独占型VS共享型设备 独占型设备包括所有的字符型设备及磁带机 任意时间段内最多只能被一个进程占用 使用时 进程首先向系统申请 可能进入阻塞状态 当设备可用时 唤醒一个等待进程 使用完毕以后 进程必须释放设备 共享型设备包括除磁带机以外的所有块型设备 I O传输单位 块 宏观上 一个共享型设备可以被多个进程同时占用 微观上 多个进程交替使用同一设备 进程使用这类设备时 无须申请或释放设备 也不存在某个进程占用设备的问题 4 4设备分配 分配 设备 控制器和通道需要记录与他们相关的信息 包括 资源标识 物理连接情况 占有进程 等待进程等 具体实现时 可以将其分为设备控制块 控制器控制块和通道控制块 这些控制块中包含的信息在不同的系统中会有所不同 设备控制块UCB UnitControlBlock 控制器控制块CUCB 通道控制块CCB 设备无关性 为了实现设备的无关性 操作系统要求进程申请设备时 应当指明所需设备的类别 或者逻辑设备名 不能指定某一设备的具体编号 系统根据进程的请求以及资源分配情况在相应类别的设备中选择一个空闲的物理设备 并将其分配给申请者 优点 提高设备的利用率 从根本上讲 申请者只关心使用设备的结果 不在乎到底使用哪一个设备 假设申请者指定具体设备 被指定的设备可能正在被使用 因而申请无法满足 而此时 其他同类设备可能空闲 这将造成资源的浪费和进程的不必要等待 程序与设备无关 假设申请者指定具体设备 而被指定的设备已损坏或未联机 则要么程序无法正常工作 要么修改程序 系统设备表SDT 根据上述实现要求 系统通常将相同类型设备的UCB记录在一张表中 称作UCB表 将逻辑设备名 设备数 设备等待队列以及UCB表的起始地址登记在另一个表中 该表通常称作系统设备表 SDT 如表4 7所示 设备分配算法 先来先服务 根据进程对某设备提出请求的先后次序 将这些进程排成一个设备请求队列 设备分配程序总是把设备分配给队首的进程 优先级高者优先服务 根据进程优先级的高低 将优先级高的进程排在设备等待队列的前面 对于优先级相同的进程 则按先来先服务的原则进行排队 设备分配程序总是把设备分配给排在队首的进程 独占型设备的分配 进程使用独占设备的过程 申请 使用 释放 1进程申请设备2系统分配设备3进程发送使用命令4系统将转到设备驱动模块完成一次I O传输5进程释放设备6系统回收设备当进程的一次设备申请成功 直到发出释放命令期间 一直独占设备 共享型设备的分配 进程使用共享型设备不需要申请 当然也就不存在占用或释放设备的问题 但是 I O期间只能有一个进程使用设备 因此 进程使用共享型设备之前 有一个隐含的申请命令 使用完毕以后 有一个隐含的释放命令 以实现一次基本I O传输期间的排它性 保证操作的正常进行 使用共享型设备的过程中 进程完全有可能进入阻塞等待状态 4 5I O缓冲技术 缓冲技术的引入 缓解处理机与设备间速度不匹配的矛盾实现设备与处理机一定程度的并行操作减少设备的中断频率 放宽对中断响应时间的限制 提前读 指用户进程从I O缓冲区中取走前一个数据以后 立即发出对下一个数据的输入请求 操作系统将在适当的时候响应该请求以便把用户进程需要的下一个数据从用户进程指定的输入设备读入到I O缓冲区中 显然 用户进程加工前一个数据的工作与操作系统输入下一个数据的工作可以同时进行 延后写 是指 当用户进程请求输出数据时 操作系统将很快把用户进程请求输出的数据从用户进程的工作区中取走并将其暂时存放在I O缓冲区中 直到用户进程指定的输出设备空闲时 操作系统才把暂时存放在I O缓冲区中的用户进程的输出数据写入用户进程指定的输出设备上 显然 用户进程生成下一个输出数据的工作与操作系统输出前一个输出数据的工作可以同时进行 硬件缓冲和软件缓冲 硬件缓冲区配置在设备中 具有专门的用途 对处理机透明 不需要处理机的直接管理 不会影响系统性能 软件实现的缓冲区是内存空间的一部分 其目的是为了弥补硬件缓冲区的不足 因为并非所有外设都拥有 或者足够拥有硬件缓冲区 操作系统中介绍的缓冲区都是指软件缓冲区 缓冲区的组织形式 单缓冲双缓冲循环缓冲缓冲池 单缓冲 简单 仅在内存中为进程对某个设备的I O访问分配一个缓冲区 如图 假定 一块数据从外部设备输入到内存所花费的时间为T 在内存中移动所花费的时间为M 被用户进程加工处理所花费的时间为C 那么在没有使用I O缓冲区的情况下 平均每块数据的处理时间近似为 T C在使用单I O缓冲区的情况下 平均每块数据的处理时间近似为 max T C M 相对于没有I O缓冲区的情形 单I O缓冲区能提高用户进程的运行效率 如果用户进程在对有关数据进行加工处理时不释放I O缓冲区 那么用户进程的性能并不能得到改善 如果T远远大于C 即外部设备的I O速度比用户进程的计算速度慢得多 那么 单I O缓冲区不会显著改善用户进程的性能 双缓冲 增加一个缓冲区 两个缓冲区可以交替使用 当数据从缓冲区复制到用户进程空间时 输入设备不必等待 可立即开始向另一个缓冲区输入数据 因此 增加了一个缓冲区后 前述的平均工作时间可近似为 max T C 另外 若用户进程阵发性I O的数据超过一个缓冲区而不满两个缓冲区 双缓冲使进程不会在I O数据期间被阻塞 循环缓冲 当用户进程处理数据的速度较快 外部设备处理数据的速度较慢 或者用户进程阵发性输入 输出的数据较多时 必须考虑增加缓冲区的数量以改善系统性能 这就是多缓冲区方式 多个I O缓冲区常常被组织成一个环形队列 故 称为循环缓冲 实质上 双缓冲可以看作是循环缓冲的一个特例 缓冲池 上述三种缓冲区的组织形式仅适用于某种特定的I O进程和计算进程 属于专用缓冲 当系统中的设备很多时 将会有许多这样的循环缓冲区 消耗大量的内存空间 而且其利用率也不高 为了提高缓冲区的利用率 可以采用公共缓冲池技术 其中的缓冲区可为多个设备和进程服务 缓冲池 两种缓冲池 分别用于块型设备和字符型设备 用于块型设备的缓冲池 缓冲区较大 其长度通常与外部设备物理块的长度相同 用于字符型设备的缓冲池 缓冲区较小 其长度通常为8个字节 16个字节等 若单个缓冲区的容量太大会造成资源浪费 而太小的缓冲区则会增加系统管理开销 缓冲池 缓冲池中的缓冲区通常组织成链表结构 需要缓冲区时 从链表中申请一个或多个缓冲区 使用完毕时 释放的缓冲区将被链接到链表中 缓冲区和缓冲池都属于操作系统空间 用户进程不能直接对缓冲区中的数据进行操作 只能通过系统调用间接地使用 或让操作系统将缓冲区中的数据复制到用户进程空间 或者相反 缓冲技术的实现 内容简单 请读者自学 4 6虚拟设备 虚拟设备的引入 独占型设备的速度一般较慢 进程常需要长时间等待I O传输完成 影响进程的推进速度 进程在占有设备期间不一定一直使用此设备 而其他申请该设备的进程只能阻塞等待 降低了设备的利用率 影响其他进程的推进速度 引入虚拟设备技术 能解决独占设备利用率不高的问题 虚拟设备技术的实现 虚拟设备技术类似缓冲区技术 可以认为是为设备提供了多个更大的 甚至在实际工作中是无限长度的缓冲区 进一步提高系统效率 虚拟设备技术的实现 在独占型设备与进程之间加入一个共享型设备作为过渡 如图 共享型设备的某一区域是由若干个设备块构成的 对进程而言相当于真实的设备 由于共享型设备较独占型设备的速度较快 所以 进程I O所需的时间较短 提高了进程的推进速度 又由于共享型设备的存储容量很大 可提供多个这样的区域 因而虚拟设备的数量多 一般可为每个需要使用设备的进程提供一个 这些进程不用排队等待 他们的推进速度也就不受任何影响 这样 多个进程可以同时使用同一独占型设备 而每个进程对应一个虚拟设备 提高了设备利用率 输入型虚拟设备的实现 对于输入型虚拟设备 数据的流向 独占型设备共享型设备进程空间 内存假定用于输入的独占型设备是读卡机 用于实现虚拟设备的共享型设备是磁盘 则对于进程所发出的资源申请命令 使用命令及释放命令 操作系统需要完成的工作如下 输入型虚拟设备的实现 申请分配一台虚拟设备 磁盘区域 分配一台实设备 一台读卡机 将信息由实设备 读卡机 连续地传输到虚拟设备 磁盘区域 释放实设备 读卡机 使用将数据从虚拟设备 磁盘区域 传输到进程空间 释放回收虚拟设备 磁盘区域 输出型虚拟设备的实现 对于输出型虚拟设备来说 数据的流向 内存共享型设备独占型设备假定用于输出的独占型设备是打印机 用于实现虚拟设备的共享型设备是磁盘 则对于进程所发出的资源申请命令 使用命令及释放命令 操作系统需要完成的工作如下 输出型虚拟设备的实现 申请分配一台虚拟设备 磁盘区域 使用将数据由进程空间传送到虚拟设备 磁盘区域 释放申请一台实设备 一台打印机 将数据由虚拟设备 磁盘区域 输出到实设备 打印机 回收实设备 打印机 SPOOLing系统 SPOOLing SimultaneousPeripheralOperationsOn Line 直译意思是 联机情况下同时进行的外围设备操作 通常称其为 假脱机操作 SPOOLing系统是虚拟设备最典型的代表 包括假脱机输入和输出系统两个部分 核心思想 在快速辅助存储设备中建立I O缓冲区 用于缓存从慢速输入设备流入内存的数据 或缓存从内存流向慢速输出设备的数据 4 7磁盘设备的管理 磁盘的性能和安全性 磁盘是计算机系统最重要的外部存储设备之一影响磁盘性能和数据安全性的主要因素 磁盘性能参数 转速 寻道时间 磁盘缓存 磁盘控制器 IDE SCSI磁盘控制器 RAID等磁盘容错技术 磁盘管理算法 磁盘调度算法 磁盘高速缓存 高性能的文件系统 磁盘设备的物理特性 磁盘由若干张圆形的盘片组成 每张盘片上都涂有磁层 用于记录数据 各盘片的圆心固定在一个旋转轴上 该轴沿固定方向等速地转动 并带动磁盘组不停地旋转 硬盘的转速比软盘快几十倍 并在开机后一直高速旋转 随时准备就绪 而软盘则需要I O时才旋转 否则停止旋转 软盘使用前必须等待转速从0加速 并稳定到额定转速 故工作效率较低 每张盘片分为上 下两个盘面 每个盘面有若干磁道 同一盘面上的所有磁道是绕旋转轴的一组同心圆 所有磁道由外向内依次由0开始编号 称为磁道号 磁盘组中各盘面上序号相同的磁道构成一个柱面 由外向内依次编号 若磁盘组有l个柱面 则编号为0 1 2 l 1 称为柱面号 若磁盘组共有s个盘片 则共有2s个盘面 但通常最上面和最下面的两个盘面作为伺服面 用以进行控制磁头定位等操作 并不存放数据 因而实际可用盘面数为m 2 s 1 由下至下依次编号为0 1 2 m 1 称为盘面号 整个盘面被划分为若干大小相同的扇面 它把一个磁道等分为若干个区域 一个区域称为一个扇区 数据保存在各个扇区中 每个扇区内保存的数据量相同 为2的幂次 例如512字节 1024字节甚至2048字节 扇区是磁盘进行I O传输的基本单位 也是磁盘空间分配的基本单位 若扇区的数量为n 则每条磁道上的扇区被依次编号为0 1 2 n 1 称为扇区号 磁盘的基本存储单元 扇区 的寻址方式为三维地址 柱面号 盘面号 扇区号 为了方便管理及屏蔽存储设备的物理细节 操作系统向上层软件提供统一的接口 常使用一维地址 即只有逻辑磁盘块号 逻辑扇区号 将磁盘组中所有的扇区从0开始编号 显然 这里就存在着一维地址与三维地址间相互转换的问题为了提高效率 对于移动磁头式磁盘机来说 磁头引臂的机械运动 寻道 速度最慢 其次才是盘片转动的速度 因此 编排逻辑块号时 扇区号先变化 其次是盘面号 最后才是柱面号 磁盘的磁头工作方式 磁盘 固定头磁盘和移动头磁盘 固定头磁盘的每一条磁道上都有一个读 写磁头 所有的磁头都被安装在一刚性磁臂中 通过磁头访问磁道 可以并行读 写 磁盘的I O速度很快 固定头磁盘的优点是访问速度快 其缺点是成本较高 容量受磁头数量限制 磁盘的磁头工作方式 移动头磁盘为每一个盘面配置一个磁头 所有盘面的磁头被装入磁臂中 磁盘I O时 必须移动磁头 寻道 因此 移动头磁盘只能进行串行读 写 I O速度相对较慢 但由于其具有结构简单 成本较低 容量不受磁头数量限制等优点 因而被广泛使用 影响磁盘I O性能的技术指标 从磁盘读数据的过程 磁盘接收到读指令后 磁头从当前位置移到目标磁道位置 所需的时间称为寻道时间 然后 旋转磁盘 定位数据所在的扇区 所需的时间称为旋转延迟 最后 从磁盘上读取数据 所需的时间称为数据传输时间 访问时间 寻道时间 旋转延迟 传输时间 寻道时间 寻道时间 把磁头从当前位置移动到指定磁道所需要的时间 是影响磁盘数据传输率的重要参数 与磁头移过的磁道数量成正比 衡量磁盘的寻道性能时 通常使用平均寻道时间 旋转延迟 旋转延迟与磁盘转速直接相关 是指旋转磁盘 将指定扇区移动到磁头下面所需要的时间 假设Tr为旋转延迟 r为磁盘转速 转数 单位时间 那么Tr 1 2r 例 对于一个转速为3600rpm的硬盘而言 其每旋转一周的时间为16 7ms 其平均旋转延迟为8 3ms 对于一个转速为300rpm的软盘而言 其每旋转一周的时间为200ms 其平均旋转延迟为100ms 传输时间 传输时间是指把数据从硬盘读出或向磁盘写入数据所经历的时间 传输时间与硬盘的转速和所读 写的数据长度有关 当一次读 写的数据长度相当于半条磁道上的字节数时 传输时间与平均旋转延迟相同 缓存 当缓存足够大时 对于写操作 尽管数据并未真正写到磁盘上 但它给主机的印象就是写操作已 非常快 地完成 延后写 对于读操作 尽管是读一扇区 但磁盘却将整条磁道的数据都读入缓存中 提前读 当下一次需要再读数据时 就显得非常快了 前提是下一次读的数据还位于同一条磁道 由于缓存不可能很大 因此对于密集访问磁盘的系统而言 缓存并不能发挥多大的作用 但由于多数系统是间歇地访问磁盘 因而缓存在很多时候还是能发挥较大的作用 综上所述 传统上影响磁盘I O性能的主要技术指标是平均寻道时间和转速 转速则影响平均旋转延迟和数据传输时间 对于实际的系统而言 较大缓存也对硬盘的I O性能有较大的影响 但不是决定性的 调整磁盘I O性能 磁盘的平均寻道时间和转速是固定不变的 为了提高磁盘的I O性能 只能从磁盘调度的方式和访问数据的组织形式上入手 即缩短寻道时间和旋转延迟 磁盘调度算法 当有多个进程都请求访问磁盘时 他们访问的位置 这里主要关心磁道 各不一样 磁头需要来回频繁移动进行寻道操作 磁头的寻道操作属于机械运动 花费的时间较长 而且过度的寻道操作会大大缩短磁盘的寿命 因此 必须采用适当的磁盘调度算法 使得在尽可能公平的情况下 缩短平均寻道时间 并使磁头移动距离最小 先到先服务算法FCFS FirstComeFirstServe FCFS算法按照输入 输出请求的先后次序为各个进程服务 这是最公平 最简单的算法 但是效率非常低 例如 一个有100条磁道的磁盘 磁道依次编号为0 99 磁头当前位于第20磁道 对于如下的访问请求 请求次序 12345 访问磁道 992971026 先到先服务算法FCFS FirstComeFirstServe 若按FCFS算法 则磁头移动的磁道数为79 97 95 87 16 374磁头在磁道之间来回频繁移动 不但造成较大的时间开销 影响效率 而且容易使磁头臂疲劳 磁盘很容易损坏 因此 这种简单的算法只适合于负载很轻的系统 最短寻道时间优先算法SSTF ShortestSeekTimeFirst 为了克服FCFS算法之缺点 人们提出了SSTF算法 即优先为距离磁头当前所在位置最近的磁道服务 例如 对于上述服务请求 按照SSTF算法 则系统将按如下次序为进程提供服务 磁头移动的磁道数为6 16 8 95 2 127 效率比FCFS高了许多 服务次序 12345 访问磁道 261029799 扫描算法Scan 也称电梯算法 其基本思想类似电梯的工作原理 其具体过程为 假定开始时磁头处于最外磁道 并向内磁道方向移动 在磁头移动过程中 如果经过的磁道有访问请求 则为其服务 然后判断当前磁道以内的磁道是否还有访问请求 如果有 则磁头继续向内磁道方向移动 否则 判断当前磁道以外的磁道是否有访问请求 若有 则磁头掉转方向朝外移动 若此时当前磁道内外均无访问请求 则磁头引臂停止不动 扫描算法Scan 这种算法比较公平 效率很高 但是 若在某一段时间内某一磁道的访问请求不断 则磁头引臂将停留在该磁道上不动 称为磁臂粘着 磁盘被相应的进程垄断 所有其他磁道上的请求将在较长时间内得不到服务 N步扫描算法N Scan N步扫描算法将磁盘请求队列分成若干个长度为N的子队列 磁盘调度程序按照FCFS算法依次处理这些子队列 而处理每一个子队列时 则按照SCAN算法 当N值取得很大时 N步扫描算法的性能与SCAN算法的性能相当 当N取值为1时 N步扫描算法退化为FCFS算法 N步扫描算法N Scan 在实际应用中 N步扫描算法被简化为 只为一次特定的扫描开始前已经等待的访问请求服务 以防止发生扫描算法中存在的不公平现象 尽管这种不公平的现象对磁头有利 在一次扫描期间内新到达的访问请求将只能放在下一次扫描期间完成处理 无论这些新的请求是否处于一次扫描的服务途中 磁盘高速缓存 指 操作系统利用内存实现的 专门针对磁盘I O操作的缓冲区 与磁盘机本身所带的缓存以及磁盘控制器所带的缓存相比 磁盘机和磁盘控制器上的缓存的特点 容量较小 利用此类缓存进行数据提前读和延后写操作能与主机并行工作 磁盘高速缓存的特点 容量较大 常存储全局范围 经常访问的重要数据 文件系统的目录 文件分配表 索引块等 缺点 利用该缓存进行数据提前读和延后写操作需要主机的管理 增加了主机的负担 对于高档的服务器而言 大的硬件缓存更能提高磁盘I O的性能 但是 若磁盘机和磁盘控制器上没有缓存 那么 就需要依靠磁盘高速缓存的作用 磁盘高速缓存的实现形式 在内存中单独开辟一个大小固定的存储空间作为磁盘高速缓存区 有的操作系统允许用户指定或调整此空间的大小 二是把系统中所有未使用的内存空间变为一个缓冲池 供请求分页系统和磁盘高速缓存共享 其大小不固定 当磁盘I O操作频率时 磁盘高速缓存区可能较大 磁盘高速缓存的数据安全性 读操作不存在安全问题 写操作对进程而言数据已写出 但数据其实是被写入高速缓存中 并未真正写到磁盘上 操作系统必须在适当的时候将数据真正写到磁盘 何时进行写操作呢 磁盘高速缓存的数据安全性 有三种策略可供选择 在系统空闲或需要淘汰被写的缓存空间时进行写 这种策略风险最大 效率高 周期性地进行写 风险较低 效率较高 立即写回 即只要高速缓存中的某盘块数据被修改 便立即将它们写回磁盘 这种高速缓存通常被称为 写穿透高速缓存 write throughcache 相当于只有读缓存而没有写缓存 其风险最低 效率也最低 优化数据的物理存储结构 磁盘I O常针对整个文件进行 如果一个文件被分散存储到多个柱面上 则读 写这样的文件时 需要进行多次寻道操作和旋转延迟 为什么把文件分散存储呢 在系统建立的初期 文件都是连续存储的 但随着系统使用时间的积累 文件会不断被用户删除或新建 为了充分利用存储空间 新建文件常分散存储 磁盘高速缓存的效率 取决于其命中率 使用缓存需要基于两个要素 一是访问频率 二是基于局部性原理的提前读技术 提前读技术是使用缓存的关键 当读入进程申请的数据时 将其空间局部存储的数据一起提前读 以期在后面的操作中得到回报而在总体上节约时间 如果一个文件在物理上存储得较分散 尽管不影响系统的正确性 但却使提前读操作失效 反而降低系统效率 若将分散到多个柱面或磁道上的文件进行类似内存分配过程中的碎片整理 紧凑 使这些文件在物理上连续存储 则不仅能提高文件的读 写性能 减少寻道时间和平均旋转延迟 而且能提高磁盘高速缓存的命中率 从而提高整个系统效的效率 减少磁盘的机械损耗 因此 人们经常使用MS DOS Windows等操作系统提供的磁盘碎片整理功能 以提高系统工作效率 上节内容回顾 设备管理的主要功能 设备分配 设备映射 设备驱动 I O缓冲技术I O缓冲区的组织形式 单缓冲 双缓冲 循环缓冲 缓冲池虚拟设备技术 引入的原因 实现方法 SPOOLing系统实例磁盘设备的管理 磁盘性能参数 转速 寻道时间 磁盘缓存 磁盘管理算法 磁盘调度 DiskCache 高性能的文件系统 磁盘的平均访问时间 寻道时间 旋转延迟 传输时间 引入磁盘调度的例子 假定 一个硬盘的扇区长度为512个字节 磁道长度为32个扇区 平均寻道时间为20ms 传输速率为1MB s 转速为3600rpm 显然 如果一个长度为128K个字节的文件存放在该硬盘上 那么该文件将在该硬盘上占用256个扇区 请问 如果系统从该硬盘上完整地读入该文件 将花费多长时间 若文件连续地存放在硬盘的8个相邻的磁道上 那么系统完整地读入该文件需要花费的时间 20 8 3 16 7 8 3 16 7 7 220ms 若文件随机地存放在硬盘的256个扇区上 那么读入该文件需要花费的时间 20 8 3 0 5 256 7373ms 比较与分析 比较前面两种结果可以发现 如果文件的存储方式不同 系统访问文件的效率就不同 即 文件的存储方式影响着系统访问文件的效率 文件的存储方式对系统访问文件的效率的影响主要在于 访问文件总的寻道时间和总的旋转延迟 结论 当系统访问一组磁盘扇区时 如果能够减少总的寻道时间和总的旋转延迟 那么系统的访问效率将得到提高 磁盘调度算法小结 FCFSSSTFSCANN SCAN 例子 假定 当前有9个磁盘读写请求 这9个磁盘读写请求要访问的磁道号按照各个磁盘读写请求到达的次序依次为 55 58 39 18 90 160 150 38 184 此外 磁头当前位于100号磁道上 如果系统使用SCAN算法 还假定磁头当前的移动方向为磁道号增长的方向 请问 如果系统分别使用FIFO策略 SSTF算法 SCAN算法调度磁盘 那么系统处理这9个磁盘读写请求时磁头的平均寻道长度为多少 FIFO SSTF SCAN DiskCache的工作原理 当用户进程请求从磁盘读入一个扇区时 系统首先在diskcache中寻找该扇区的副本 如果能够找到 那么系统将从diskcache中取出该扇区的副本并返给用户进程 否则 系统首先从磁盘上读入该扇区并在diskcache中为其建立一个副本 然后将该副本返给用户进程 当用户进程请求向磁盘上写出一个扇区时 系统同样首先在diskcache中寻找该扇区的副本 如果能够找到 那么系统将根据用户进程的请求修改该扇区的副本 否则 系统同样首先从磁盘上读入该扇区并在diskcache中为其建立一个副本 然后根据用户进程的请求修改该副本 磁盘高速缓存的数据安全性 DiskCache中的数据写出到磁盘 在系统空闲或需要淘汰被写的缓存空间时进行写 周期性地进行写 立即写回 称为 写穿透高速缓存 相当于只有读缓存而没有写缓存 磁盘管理的另一个有效方法 高性能的文件系统 磁盘碎片整理 使磁盘文件尽量连续 磁盘容错技术 磁盘中常常存储着非常重要的数据 例如交易数据 帐目数据 学生成绩等 若这些数据出了问题 或者存储这些数据的磁盘报废 其后果是非常严重的 因此 要求保证磁盘数据的可靠性 磁盘容错技术通过在系统中设置冗余部件来提高系统可靠性 冗余部件包括增加冗余的磁盘驱动器 磁盘控制器等 使得当磁盘系统某部分出现缺陷或故障时 磁盘仍能正常工作 且不至于造成数据的错误和丢失 磁盘容错技术级别 也称为系统容错技术 SFT SystemFaultTolerance 大体分为三个级别 SFT I低级磁盘容错技术 主要防止磁盘表面介质缺陷所引起的数据丢失 SFT II中级磁盘容错技术 主要防止磁盘驱动器和磁盘控制器故障所引起的数据丢失 SFT III高级系统容错技术 常使用双服务器 以保证在其中一台服务器出现故障 甚至停止工作时 整个系统仍能照常运作 第一级容错技术 最早出现 最基本的容错技术 包括 双份目录和双份文件分配表热修复重定向和写后读校验 双份目录和双份文件分配表 文件目录和文件分配表FAT是文件管理所需的关键数据结构 可在不同的磁盘上或同一磁盘的不同区域中 分别建立维护两份目录和FAT 当其中一个目录或FAT损坏时 系统便自动启用另一个目录和FAT 同时在磁盘的其它区域再建立新的文件目录和FAT 每当系统重新启动时 都要对这两份目录和FAT进行检查 以保证它们的一致性 热修复重定向和写后读校验 热修复重定向是指 系统将一定的磁盘容量作为热修复重定向区 用于存放当发现磁盘块有缺陷时的待写数据 并对写入该区的所有数据进行登记 以便于以后对此数据进行访问 写后读校验是指 每次将数据写到磁盘以后 立即从磁盘上读出该块数据 并进行对比 若写入的数据与读出的数据一致 则表示写入成功 否则 重写数据 若重写后两者仍不一致 则认为该磁盘块有缺陷 便将该块标识为坏块 相应数据写入热修复重定向区中 第二级容错技术SFT II 用于防止磁盘驱动器或磁盘控制器发生故障 包括 磁盘镜像磁盘双工 磁盘镜像 在同一磁盘控制器上 连接两个完全相同的磁盘驱动器 如图 同一数据被先后写到两个驱动器上 磁盘双工 将两台完全相同的磁盘驱动器连接到两个磁盘控制器上 如图 数据被同时写到两个磁盘上 磁盘双工vs 磁盘镜像 磁盘双工的成本较高 可靠性更高 对两个磁盘的写入是并行进行 速度较快 在某些实现中读数据时 还可使用分离查找技术 从响应快的通道上取得数据 加快读取速度 RAID技术 RAID RedundantArrayofIndependent InexpensiveDisks 独立或廉价磁盘冗余阵列 其中 独立 是目前通用的一个行业术语 强调RAID阵列的重要性和可靠性 廉价 是较早使用的一个术语 重在强调RAID磁盘阵列中采用的相对较小的 价格较便宜的磁盘 RAID技术 RAID磁盘阵列技术能以较低的成本 提供大容量 快速 安全可靠的磁盘存储系统 从容错的角度讲 RAID技术应属第二级容错技术 但其内涵远远不止容错 RAID的构成 一组可以并行工作的磁盘所构成的磁盘阵列在磁

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论