计算机操作系统第四版第五章缓冲管理设备分配ppt课件.ppt_第1页
计算机操作系统第四版第五章缓冲管理设备分配ppt课件.ppt_第2页
计算机操作系统第四版第五章缓冲管理设备分配ppt课件.ppt_第3页
计算机操作系统第四版第五章缓冲管理设备分配ppt课件.ppt_第4页
计算机操作系统第四版第五章缓冲管理设备分配ppt课件.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1 缓冲 Buffering 管理 缓冲管理的主要职责 组织好缓冲区并提供获得和释放缓冲区的手段 1 引入缓冲的主要原因 可归结为以下几点 1 改善CPU与I O设备间速度不匹配的矛盾事实上 凡在数据的到达速率与其离去速率不同的地方 都可设置缓冲 以缓和它们之间速度不匹配的矛盾 2 可以减少对CPU的中断频率 放宽对中断响应时间的限制如果I O操作每传送一个字节就要产生一次中断 那么设置了n个字节的缓冲区后 则可以等到缓冲区满才产生中断 这样中断次数就减少到1 n 而且中断响应的时间也可以相应的放宽 3 提高CPU和I O设备之间的并行性例如 在CPU和打印机之间设置了缓冲区后 便可以使CPU和打印机并行工作 2 缓冲区设置硬缓冲 在设备中设置缓冲区 由硬件实现软缓冲 在内存中开辟一个空间 用作缓冲区管理单缓冲双缓冲循环缓冲 多缓冲 缓冲池 多个缓冲区连接起来统一管理 常采用多缓冲管理 3 1 单缓冲 SingleBuffer 单缓冲是操作系统提供的最简单的一种缓冲形式 在设备和CPU之间设置一个缓冲器 由输入和输出设备共用 例如 CPU要从磁盘上读一块数据进行计算 先从磁盘把一块数据读入到缓冲区中 然后由OS将缓冲区的数据传送到用户区 最后由CPU对这一块数据进行计算 可见第一步和最后一步是可以并行执行的 这样就提高了CPU和外设的利用率 但是对缓冲区中数据的输入和提取是串行工作的 如下图所示 处理时间 MAX C T M 通常 M远小于T或C 4 2 双缓冲 DoubleBuffer 双缓冲 缓冲对换 工作方式基本方法是在设备输入时 先将数据输入到缓冲区A 装满后便转向缓冲区B 此时OS可以从缓冲区A中提取数据传送到用户区 最后由CPU对数据进行计算 如下图所示 系统处理一块数据的处理时间可粗略地认为 MAX C T 若C T 可使块设备连续输入 若C T 可使CPU不必等待设备输入 5 解决外设之间并行工作的最简单的办法是设置双缓冲 在双缓冲方案中 具体的做法是为输入或输出操作设置两个缓冲区buffer1和buffer2 双缓冲方式和单缓冲方式相比 虽然双缓冲方式能进一步提高CPU和外设的并行程度 并能使输入设备和输出设备并行工作 但是在实际系统中很少采用这一方式 这是因为在计算机系统中的外设很多 又有大量的输入和输出 同时双缓冲很难匹配设备和CPU的处理速度 因此现代计算机系统中一般使用循环缓冲或缓冲池结构 6 3 循环缓冲 多缓冲 CircularBuffer 多缓冲可以实现对缓冲区中数据的输入和提取 与CPU的计算 三者并行工作 所以多缓冲进一步加快了I O的速度 提高了设备的利用率 当对缓冲区中数据的输入和提取的速度基本相匹配时 采用双缓冲可使两者并行工作 获得较好的效果 但是如果两者的速度相差甚远时 双缓冲的效果就不够理想了 如果增加缓冲区的个数 情况就会有所改善 我们可以将多个缓冲区组织成循环队列的形式 如下图所示 7 环形缓冲技术是在主存中分配一组大小相等的存储区作为缓冲区 并将这些缓冲区链接起来 每个缓冲区中有一个指向下一个缓冲的指针 最后一个缓冲区的指针指向第一个缓冲区 这样n个缓冲区就成了一个环形 此外 系统中有个缓冲区链首指针指向第一个缓冲区 8 R 空缓冲区 G 装满数据的缓冲区 C 正在使用的缓冲区 9 环形缓冲技术使用设置一个输入指针in 一个输出指针out 开始指针strat 系统初始时 strat in out 输入时 要判断in是否与out相等 若相等 则要等待 否则 将信息送入in指向的缓冲区 填满后 将缓冲区中的指向下一个缓冲区的指针next置in 如此类推 输出时 首先判断out in 若相等 则等待 意味着系统中没有数据可取 否则 取出缓冲区中的信息 将缓冲区中的next置out 10 一组缓冲仅适用于某个特定的I O进程和计算进程 当系统配置较多的设备时 使用专用缓冲区就要消耗大量的内存空间 且其利用率不高 为了提高缓冲区的利用率 目前广泛使用公用缓冲池 池中的缓冲区可供多个进程共享 对于同时用于输入 输出的公用缓冲池 至少含有三种类型的缓冲区 空缓冲区 装满输入数据的缓冲区和装满输出数据的缓冲区 为了管理上的方便 可将相同类型的缓冲区链成一个队列 于是就形成三个队列 空缓冲区队列 输入缓冲区队列和输出缓冲区队列 空缓冲区队列 emq 由空缓冲区所链成的队列 输入缓冲区队列 inq 由装满输入数据的缓冲区所链成的队列 输出缓冲区队列 outq 由装满输出数据的缓冲区所链成的队列 4 缓冲池 BufferPool 11 另外还应具有四种工作缓冲区 用于收容输入数据的工作缓冲区 hin 用于提取输入数据的工作缓冲区 sin 用于收容输出数据的工作缓冲区 hout 用于提取输出数据的工作缓冲区 sout 缓冲区工作在收容输入 提取输入 收容输出和提取输出四种工作方式下 如下图所示 12 设备的分配 在多道程序环境下 设备必须由系统分配 每当进程向系统提出I O请求时 设备分配程序按照一定的策略 把其所需的设备及其有关资源 如缓冲区 控制器和通道 分配给该进程 在分配设备时还必须考虑系统的安全性 避免发生死锁现象 分配原则 根据设备特性 用户要求和系统配置情况决定的 总原则是 既要充分发挥设备的使用效率 又要避免由于不合理的分配方法造成进程死锁 还要做到设备的无关性 13 1 静态分配当一个作业 或进程 运行前 根据作业要求的设备 系统如果能满足 则将其要求的设备全部分配给它 然后开始运行 运行完成释放其占用的所有设备 这种分配方式的优点是系统绝不会出现死锁 缺点是设备利用率太低 2 动态分配这种分配方法是在作业 或进程 运行的过程中 需要使用设备时 就向系统申请 系统根据某种分配原则进行分配 这种方法的优点是设备的利用率高 缺点是系统有出现死锁的可能 设备的分配 14 1 设备分配中数据结构数据结构有 设备控制表 DCT 控制器控制表 COCT 通道控制表 CHCT 系统设备表 SDT 设备的分配 15 16 设备分配程序是负责向对系统提出I O请求的进程分配设备 及其相应的控制器和通道 1 设备分配中的数据结构数据结构有 设备控制表 DCT 控制器控制表 COCT 通道控制表 CHCT 系统设备表 SDT 个表的具体内容如下图所示 在整个系统中 有一张系统设备表 SDT 用于记录系统中全部设备的信息 每个设备占一个表目 其中包括设备类型 设备标识符 设备控制表指针及设备驱动程序的入口地址等表项 17 设备分配的数据结构图 18 系统为每一个设备都配置了一张设备控制表 DCT 用于记录该设备的情况 表中除了有用于指示设备类型的字段和设备标识符字段外 还应有下列字段 1 设备队列的队首指针 凡因请求本设备而未得到满足的进程 其PCB都应按照一定的策略排成一个队列 称为设备请求队列或简称为设备队列 其队首指针指向队首PCB 在有的系统中还设置了队尾指针 2 设备状态 当设备自身处于 忙 状态时 将设备的忙标志置 l 若与该设备相连接的控制器或通道处于 忙 状态 而不能启动该设备 则将设备的等待标志置 l 设备的分配 19 3 与设备连接的控制器表指针 该指针指向与该设备相连接的控制器的控制表 在具有多条通路的情况下 一个设备可与多个控制器相连接 此时 在DCT中应设置多个控制器表指针 4 重复执行次数 外部设备在传送数据时 若发生信息传送错误 系统并不立即认为传送失败 而是允许它重新传送 只要在规定的重复次数或时间内恢复正常传送 则仍认为传送成功 否则才认为传送失败 设备的分配 20 2 设备分配的流程对于具有单通道的系统 则当进程提出I O请求后 系统进行设备分配的流程图如下图 3 设备分配程序的改进为了获得设备的独立性 进程应用逻辑设备名请求I O 这样 系统首先从系统设备表SDT中找出第一个该类设备的设备控制表DCT 如忙 则查找第二个该类设备的DCT 当所有该类设备都忙时 才把进程挂在该类设备的等待队列中 实际上 系统为了提高可靠性和灵活性 通常采用多通路的I O系统结构 此时对多个控制器和通道的分配 必须查找所有的控制器和通道 才能决定是否将该进程挂起 设备的分配 21 进程P提出所需的I O设备 根据物理设备名 从SDT中找出该设备的DCT 由DCT的设备状态字段 检查该设备是否忙 将该进程的PCB插入到该设备的等待队列中 检查本次设备分配是否安全 将此设备分配给该进程 从其DCT中找出与该设备连接的控制器的COCT 检查该控制器是否忙 将该进程的PCB插入到该控制器的的等待队列中 将该控制器分配给进程 从COCT中找到与该控制器连接的通道的CHCT 检查该通道是否忙 将该进程的PCB插入到该通道的的等待队列中 将该通道分配给进程 至此 设备 控制器和通道三者都已分配成功 启动I O设备 进行具体的I O操作 不忙 不忙 不忙 忙 忙 安全 不安全 忙 单通道系统的设备分配流程 22 1 根据设备的固有属性而采取的策略独占性独占性是指将一个设备分配给某进程后 便一直由它独占 直至该进程完成或释放该设备为止 系统才能将该设备分配给其它进程使用 这种分配方式是对独占设备采用的分配策略 它不仅往往造成设备利用率低 而且还会引起系统死锁 针对独占设备 系统一般采用静态分配方式 即在一个作业执行前 将它所需要使用的这类设备分配给它 当作业结束撤离时 才将分配给它的独占设备收回 设备分配时应考虑的因素 23 共享性共享性是指将共享设备 磁盘 同时分配给多个进程使用 但是这些进程访问设备的先后次序需进行合理的调度 对共享设备的分配一般采用动态分配这一方式 虚拟设备是指通过高速的共享设备 把一台慢速的以独占方式工作的物理设备改造成若干台虚拟的同类逻辑设备 需要引入SPOOLing技术 虚拟设备属于逻辑设备 24 2 设备分配算法 与进程的调度算法相似 先来先服务 当多个进程同时向某设备提出I O请求时 该算法就根据对该设备提出请求的先后次序将这些进程排列成一个设备请求队列 设备分配程序把设备首先分配给队首进程 优先级高者优先 对优先权高的进程所提出的I O请求赋予高优先权 在形成设备队列时 将优先级高的进程排在设备队列前面 先得到分配 而对于优先权相同的I O请求 则按先来先服务原则排队分配 设备的分配 25 3 设备分配中的安全性安全分配方式每当进程发出一个I O请求后 便进入阻塞状态 直到其I O操作完成时才被唤醒 当它停止运行时不保持任何设备资源 打破了产生死锁一个必要条件 请求和保持 所以这种分配方式是安全的 但是这种分配算法使得CPU与I O设备串行工作 设备的利用率比较低 设备的分配 26 不安全分配方式进程发出一个I O请求后仍可以继续运行 需要时还可以发第二个I O请求 第三个I O请求 只有当进程所请求的设备已被另一个进程占用时 进程才进入阻塞状态 这种分配方式是不安全 因为它可能具备 请求和保持 条件 从而可能造成系统死锁 当一个进程P1发出第一个I O请求 占有了资源1后 再继续向前推进时 又要申请资源2 此时 进程P2却占有了资源2 在继续向前推进时 又要申请资源1 从而造成系统死锁 所以 在设备分配程序中应该增加安全性检查的功能 设备的分配 27 设备的相对号和绝对号 计算机系统中配置了各种不同类型的外围设备 每一类型外围设备可以有若干台 为了对设备进行管理 系统为每一台设备确定一个编号 用于区分和识别设备 称为绝对号 在多道程序设计系统中 用户无法知道当前计算机系统中设备的使用情况 因此 一般用户不直接使用设备的绝对号 直接向系统说明所要使用的设备类型 由系统根据该类设备的分配情况决定使用哪一台设备 为了避免使用时产生混乱 用户可以在程序中对自己要求使用的若干台同类型设备给出编号 称为设备的相对号 用户总是用 设备类 相对号 向系统提出作用设备的要求 而系统为用户分配一个绝对号设备供用户使用 28 为了提高OS的可适应性和可扩展性 目前几乎所有的OS都实现了设备的独立性 也称为设备无关性 其基本思想是 用户程序不直接使用物理设备名 或设备的物理地址 而只能使用逻辑设备名 而系统在实际执行时 将逻辑设备名转换为某个具体的物理设备名 实施I O操作 设备独立性 DeviceIndependence 29 设备独立性带来以下两方面的好处 设备分配时的灵活性 当进程以逻辑设备名请求某类设备时 如果一台设备已经分配给其它进程或正在检修 此时系统可以将其它几台相同的空闲设备中的任一台分配给该进程 只有当此类设备全部被分配完时 进程才会被阻塞 设备分配适应性强 易于实现I O重定向 所谓重定向是指用于I O操作的设备可以更换 而不必改变应用程序 设备的分配 30 设备驱动程序是一个与硬件 或设备 紧密相关的软件 为了实现设备的独立性 需要在设备驱动程序之上设置一层软件 称为设备独立性软件 其主要功能如下 1 执行所有设备的公有操作 2 向用户层 或文件层 软件提供统一接口 31 Spooling技术 掌握 1 什么是S

温馨提示

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

评论

0/150

提交评论