缓冲技术和设备分配.ppt_第1页
缓冲技术和设备分配.ppt_第2页
缓冲技术和设备分配.ppt_第3页
缓冲技术和设备分配.ppt_第4页
缓冲技术和设备分配.ppt_第5页
免费预览已结束,剩余31页可下载查看

下载本文档

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

文档简介

第13章I O系统 I O设备的多样性Os管理和控制I O操作和I O设备 13 1I O管理 概述 外设管理目的提高效率 提高I O访问效率 匹配CPU和多种不同处理速度的外设方便使用 方便用户使用 对不同类型的设备统一使用方法 协调对设备的并发使用方便控制 方便OS内部对设备的控制 增加和删除设备 适应新的设备类型外设管理功能提供设备使用的用户接口 命令接口和编程接口设备分配和释放 使用设备前 需要分配设备和相应的通道 控制器 设备的访问和控制 包括并发访问和差错处理 虚拟设备 I O缓冲和调度 目标是提高I O访问效率 按交互对象分类人机交互设备 视频显示设备 键盘 鼠标 打印机与计算机或其他电子设备交互的设备 磁盘 磁带 传感器 控制器计算机间的通信设备 网卡 调制解调器按交互方向分类输入 可读 键盘 扫描仪输出 可写 显示设备 打印机输入 输出 可读写 磁盘 网卡按外设特性分类使用特征 存储 输入 输出 终端数据传输率 低速 如键盘 中速 如打印机 高速 如网卡 磁盘 信息组织特征 单个字符或数据块字符设备 如打印机 通常的输入输出型设备 以字符为单位存储 传输信息 不可寻址块设备 如磁盘 以数据块为单位存储 传输信息 可寻址 13 1I O管理 外部设备类型和特征 按资源分配角度分类独占设备在一段时间内只能有一个进程使用的设备 一般为低速I O设备 如打印机 磁带等 共享设备在一段时间内可有多个进程共同使用的设备 多个进程以交叉的方式来使用设备 其资源利用率高 如硬盘虚拟设备在一类设备上模拟另一类设备 常用共享设备模拟独占设备 用高速设备模拟低速设备 被模拟的设备称为虚设备 实例 SPOOLing技术 从程序使用角度分逻辑设备 用户程序中使用的设备物理设备 实际完成I O操作的设备 13 1I O管理 外部设备类型和特征 13 2I O控制技术 程序控制I O 轮询 CPU代表进程给I O模块发送一个命令 CPU进入忙等待 输入输出完全由CPU控制 中断驱动I O CPU代表进程给I O模块发送一个命令 然后CPU继续执行后续指令 当I O模块完成后 CPU被该模块 CPU和I O设备可以共同工作 中断 直接存储器存取 DMA CPU给DMA模块发请求 只有当DMA将整个数据块传送结束后 CPU才被中断 数据在内存和外设之间传输时不需要CPU干预 设备绝对号和相对号 设备绝对号 计算机系统为每一台设备确定的编号 用来区分和识别设备 用户在编写程序时不能通过设备的绝对编号来使用设备设备类型号 操作系统为每类设备规定的一个编号设备相对号 用户自己规定的所用的同类设备中的第几台 如Unix中 rfd0和rfd1分别表示第1个和第2个软盘驱动器 设备绝对号和相对号 设备的指定方式设备绝对号设备类型号 设备相对号用户程序中提出使用设备的申请时 使用系统规定的设备类型号和用户自己规定的设备相对号 由操作系统进行地址转换 变成系统中的设备绝对号 I O软件的设计目标 效率 大多数I O设备慢 I O操作一般是系统瓶颈 很大程度上影响系统的性能和吞吐量 因此要改善I O的有效性 采用多道程序设计 交换 目前比较关注磁盘I O 通用性 设备种类 特点和性能千差万别 要求能够以一种一致的方式来管理所有设备 一致的外部接口 很难做到通用 但希望能够用统一的方法处理所有设备 用一种层次化的 模块化的方法设计I O功能 能够在低层例程中隐藏大部分设备I O的细节 使得用户进程和OS高层可以通过一些通用的功能 如读 写 打开 关闭等查看I O设备 设备独立性 用户在编写使用软盘或硬盘上文件的程序时 无需为不同的设备类型而修改程序就可以使用统一命名 一个文件或一个设备的名字只应是一个简单的字符串或一个整数 不应依赖于设备 13 3设备管理系统的组织 设备独立性 如果用户程序中直接使用真实的物理设备 那么会出现这样的问题 用户指定的设备因故障不能使用 或者该设备正忙于为其他进程服务 只有等待或者修改程序 重新指定设备 为了实现用户程序与物理设备的无关性 在用户程序中不要直接使用物理设备名 或者设备的物理地址 而只能使用逻辑设备名 逻辑设备是实际物理设备的抽象 它不限于某类具体设备 逻辑设备究竟和哪一个具体的物理设备相对应 还要由系统根据当时的设备忙 闲情况来决定或者由系统管理员指定 I O软件的基本思想是按分层的思想构成 较低层软件要使较高层软件独立于硬件的特性 较高层软件则要向用户提供一个友好的 清晰的 简单的 功能更强的接口 13 3设备管理系统的组织 13 3设备管理分层模型 逻辑I O 将设备当作一个逻辑资源 不涉及实际的设备控制的细节 针对用户接口 提供抽象的命令 如 Open Close Read 针对通信设备 则是通信体系结构如网络协议栈 针对文件存储设备 是文件系统的逻辑结构控制 设备I O 逻辑设备与物理设备间的过渡协调机构 用户命令到设备操作序列的转换 请求的操作和数据被转换成适当的I O指令序列 通道命令和控制器指令 可以用I O缓冲提高I O效率调度和控制 是I O模块和设备硬件真正发生交互的软件层 直接面对硬件设备的控制细节 如I O操作的排队 设备控制和状态维护 中断处理 这部分通常体现为设备驱动程序 13 3设备管理分层模型 进行I O调用 格式化I O Spooling 命名 保护 阻塞 缓冲 分配 建立设备寄存器 检查状态 当I O结束时 唤醒驱动器 执行I O操作 I O系统的层次结构及每层的主要功能 用户进程层执行输入输出系统调用 对I O数据进行格式化独立于设备的软件实现设备的命名 设备的保护 成块处理 缓冲技术和设备分配 逻辑I O 设备驱动程序设置设备寄存器 检查设备的执行状态中断处理程序负责I O完成时 唤醒设备驱动程序进程 进行中断处理硬件层实现物理I O的操作 I O系统的层次结构及每层的主要功能 练习题 描述设备管理软件的层次结构 并说明以下的工作各在I 0软件层次的哪一层 维护一个最近使用的块的缓冲 为一个磁盘读操作计算磁道 扇区 磁头 向设备寄存器写命令 设备保护各类I O库函数 缓冲技术的基本思想 在CPU和外设之间设置缓冲区 用于暂存CPU与外设之间交换的数据 从而缓和CPU与外设速度不匹配的矛盾 缓冲区所在的位置 内存 控制器或外设 多级缓冲机制 硬件缓冲 如I O控制器中的数据缓冲寄存器软件缓冲 在内存画出一个具有n个单元的专用缓冲区 根据方向 分为输入缓冲和输出缓冲根据用途 分为专用缓存 为一个设备独占 如键盘缓存 和公用缓存 为多个设备公用 缓冲区 CPU 外设 13 4缓冲 13 4缓冲 无缓冲时问题分析 设备直接向进程地址空间传送数据 如用户从磁带中读数据块的操作 则进程要么忙等待 要么阻塞 如果用忙等待方式 则浪费大量CPU时间 如果是阻塞方式 则进程阻塞在设备的I O请求队列中 这时 不能将进程全部换出 还可能出现单进程死锁 进程在等待I O操作结果之前被换出 等待I O事件 而I O操作也被阻塞 等待该进程被换入 缓冲技术的用途可以在发出请求之前就开始执行输入操作 预输入 在发出请求一段时间后才开始执行输出操作 缓输出 匹配CPU或用户应用进程与外设的不同处理速度减少对CPU的中断次数 提高CPU和I O设备之间以及各个I O设备之间的处理并行性 多道程序环境中提高OS效率和单个进程的工具 技术 之一 13 4缓冲 用途 单缓冲 singlebuffer 当一个用户进程发出I O请求时 OS给该操作分配一个位于主存中系统部分的缓冲区 以面向块的设备为例 输入先传送至系统缓冲区 当传送完成时 进程将该块移动到用户空间 并立即请求另一块 预读 对于输出 则称为延迟写 好处 用户可以在下一块数据正在读入时 处理这块数据 用户进程处理某个数据块的同时 下一个数据块正在读入 由于输入发生功能在系统存储空间而不是用户进程存储区 因此OS可以将该进程换出 增加了OS的逻辑复杂度 OS必须直到用户进程的缓冲区的分配情况 交换逻辑受到影响 13 4缓冲 单缓冲区 13 4缓冲 双缓冲和循环缓冲 双缓冲 doublebuffer 两个缓冲区 CPU和外设都可以连续处理而无需等待对方 当一个进程往一个缓冲区中写数据时 取数据 时 OS正在清空 填充 另一个缓冲区 循环缓冲 circularbuffer 多个缓冲区 CPU和外设的处理速度可以相差较大 如这个进程突然快速执行了大量的I O 13 4I O缓冲 13 4I O缓冲 由于外设资源的有限 需解决进程间的外设共享问题 以提高外设资源的利用率 设备分配是对进程使用外设过程的管理 这里有两种作法 1 在进程间切换使用外设 如键盘和鼠标 2 通过一个虚拟设备把外设与应用进程隔开 只由虚拟设备来使用设备 13 4设备分配 13 4 1设备分配 数据结构 系统设备表 SDT SystemDeviceTable 系统内一张 反映系统中设备资源的状态 记录所有设备的状态及其设备控制表的入口 设备控制表 DCT DeviceControlTable 每个设备一张 描述设备特性和状态 反映设备的特性 设备和控制器的连接情况 控制器控制表 COCT COntrollerControlTable 每个设备控制器一张 描述I O控制器的配置和状态 如DMA控制器所占用的中断号 DMA数据通道的分配 通道控制表 CHCT CHannelControlTable 每个通道一张 描述通道工作状态 各表间的关系 系统设备表 设备控制表 DCT 控制器控制表COCT 通道控制表CHCT 13 4 2设备分配 原则 设备分配的原则合理使用外设 公平和避免死锁 提高设备利用率应用程序与设备无关与设备分配有关的设备属性 独享设备 打印机等 共享设备 磁盘 网卡等 设备分配技术 独占分配 不会出现死锁 但设备利用率不高 共享分配 利用率高 但控制复杂虚拟分配 利用共享设备去实现独占设备的功能 有利于提高设备利用率 先来先服务 FCFS 按I O请求的先后顺序 排成I O请求命令队列 队首指向被请求设备的DCT 按FCFS分配设备 基于优先级 依据进程的优先级 指定I O请求的优先级 排成不同优先级队列 按优先级高低分配设备 13 4 2设备分配 算法 先回顾一下设备分类问题按资源分配角度分类独占设备在一段时间内只能有一个进程使用的设备 一般为低速I O设备 如打印机 磁带等 因数量有限 会成为系统中的 瓶颈 资源 使进程经常处于阻塞状态 设备利用率比较低共享设备在一段时间内可有多个进程共同使用的设备 多个进程以交叉的方式来使用设备 其资源利用率高 如硬盘 13 5Spooling系统 13 5虚拟设备 虚拟设备技术多道程序系统中 进程对设备的需求频繁 尤其是独占设备数量有限 效率低 故引入虚拟设备管理技术 基本思想 用大容量的快速设备 磁盘 模拟慢速度的独占设备 把一台物理上的独占设备变为逻辑上的多台共享设备 通过共享型设备来模拟独占型设备的动作 使独占型设备成为共享型设备 提高设备的利用率和系统的效率 实例 SPOOLing技术 SimultaneouslyPeripheralOperationOnLine 外围设备同时联机操作 是用程序模拟脱机I O的功能 故又称为假脱机技术 虚拟设备 13 5Spooling系统 13 5SPOOLing系统 工作原理 作业执行前用慢速设备将作业预先输入到输入井中 称为预输入 输入井和输出井是某共享设备 磁盘 上的一部分存储空间 作业运行后 使用数据时 从输入井中取出作业执行不必直接启动外设输出数据 只需将这些数据写入输出井中作业全部运行完毕 再由外设输出全部数据和信息 称为缓输出实现了对作业输入 组织调度和输出的统一管理使外设在CPU直接控制下 与CPU并行工作 称为假脱机 SPOOLing系统 13 5SPOOLing系统 举例 假设系统中全部打印机采用了Spooling技术 当某进程要求打印输出时 并不是将某台打印机分配给该进程 而是在某共享设备 磁盘 上的输出井中 为其分配一块存储区 同时为该进程的输出数据建立一个文件 该进程的输出数据实际上并未从打印机上输出 只是以文件形式输出 并输出存放在输出井中 这个输出文件实际相当于虚拟的打印机 这些输出井中的文件形成了一个输出队列 然后调度输出用户进程并未真正分到打印机 用户进程被分配的只是共享设备中的一个存储区 思考 以打印机为例 简述Spooling技术的工作原理 它是如何使一台打印机虚拟成多台打印机的 13 5SPOOLin

温馨提示

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

评论

0/150

提交评论