io管理和磁盘调度

上传人:今*** 文档编号:106987687 上传时间:2019-10-17 格式:PPT 页数:79 大小:2.34MB
返回 下载 相关 举报
io管理和磁盘调度_第1页
第1页 / 共79页
io管理和磁盘调度_第2页
第2页 / 共79页
io管理和磁盘调度_第3页
第3页 / 共79页
io管理和磁盘调度_第4页
第4页 / 共79页
io管理和磁盘调度_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《io管理和磁盘调度》由会员分享,可在线阅读,更多相关《io管理和磁盘调度(79页珍藏版)》请在金锄头文库上搜索。

1、I/O 管理 和磁盘调度,Chapter 11,主要内容,教学目标与要求 理解I/O控制方式。 掌握I/O缓冲技术 掌握磁盘存储器的管理 教学重点与难点 缓冲技术,磁盘调度,I/O 设备的种类,1、人可读的 适合与计算机用户通信,如:打印机,终端( 显示器 ,键盘 , 鼠标 ) 2、机器可读 适合与电子设备通信,如磁盘驱动器, 传感器, 控制器, 执行器 3、通信 适合与远程设备通信,如数字线路驱动器, 调制解调器,设备的分类,按传输速率分 低速设备:每秒几个到数百字节。如调制解调器 中速设备:每秒数千到数万字节。如打印机 高速设备:每秒数百K到数兆。如磁盘、磁带,I/O 设备的差别,数据率

2、数据传送率可能会差别几个数量级,I/O 设备的差别,应用 用于文件操作的磁盘需要文件管理软件的支持 在虚拟存储方案中,磁盘用作页面调度的后备存储器,取决于虚存硬件和软件的使用 终端被普通用户使用和系统管理员使用可能具有不同的特权级别,从而在OS中有不同的优先级,I/O 设备的差别,控制的复杂度 传送单位 数据可以按照字节流或者字符流的形式传送(如终端I/O),也可以按照大块传送(如磁盘I/O) 数据表示 数据编码方案,包括字符代码和奇偶约定的差异 错误条件 错误的本质、报告的方式、后果以及响应随设备的不同而不同,I/O功能的组织,常见的三种I/O控制技术: 程序控制 I/O 处理器代表进程给I

3、/O模块发送一个I/O命令,该进程进入忙等待,等待操作的完成,然后才可以继续执行 中断驱动 I/O 处理器代表进程发送一个I/O命令,然后继续执行后续指令,当I/O模块完成工作后,处理器被该模块中断。 如果该进程不需等待I/O完成,后续指令可以是该进程中的指令 否则,这个进程在这个中断上被挂起,处理器执行其他工作,直接存储器存取 (DMA) DMA 模块控制主存和 I/O模块之间的数据交换 为传送一块数据,处理器给DMA模块发请求,只有当整个数据块传送结束后,处理器才被中断,输入输出功能的发展,I/O功能的发展阶段: 处理器直接控制外围设备 程序控制I/O方式 :增加了控制器或 I/O模块 处

4、理器使用没有中断的程序控制I/O 处理器不需要处理外部设备接口的具体细节 又称忙-等待方式,输入输出功能的发展,中断驱动I/O :控制器或 I/O 模块采用了中断 处理器不再需要花费时间等待执行一个I/O操作 DMA控制方式 :I/O模块通过DMA直接控制存储器 从主存中移出或往主存移入一块数据,不需要处理器参与 仅仅在传送开始和结束时需要用到处理器,输入输出功能的发展,I/O通道控制方式 I/O 模块被增强成一个单独的处理器,又专门为I/O设计的指令集 I/O 模块有自己的局部存储器 I/O 模块本身就是一个计算机 也称作I/O处理器 特点:是DMA方式的发展,它可进一步减少CPU的干预,即

5、把对一个数据块的 读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备三者的并行工作,从而更有效的提高了整个系统的资源利用率。,直接存储器访问DMA,取代处理器控制系统,在系统总线上从存储器中或者往存储器中传送数据 周期挪用技术用于在总线上传送数据 为了使数据能够传送,挂起一个指令周期,即CPU 暂停一个总线周期 整块数据传送过程中没有中断发生 不需要保存进程上下文,DMA,DMA工作流程 请求读/写操作的信号 相关的I/O设备地址 内存起始地址 读/写的字节数,DMA机制的配置方法,周期挪用技术导致处理器执行得更慢 通过

6、DMA和I/O功能集成起来,可以大大的减少所需要的总线周期的数目 DMA 模块和一个或多个I/O模块之间除了系统总线还存在着路径,DMA,DMA,DMA,操作系统设计问题,Efficiency(效率) 与主存和处理器相比,大多数 I/O 设备都是非常慢速的 使用多道程序设计,可以允许一些进程在等待I/O操作时另一些进程正在执行 交换技术用于将额外的就绪进程加载到内存,使得处理器保持忙状态,但交换本身是一个I/O操作 I/O 设计的主要任务是提供I/O的效率,操作系统设计问题,Generality(通用性) 为了简单性和避免错误,往往希望能用一种统一的方式处理所有的设备 使用一种层次化的、模块化

7、的方法设计I/O功能,在低层例程中隐藏大部分设备I/O的细节,使得用户进程和操作系统高层可以通过一些通用的功能,如read, write, open, close, lock, unlock等来查看I/O设备,一种I/O组织的模型,I/O 缓冲,速度的差异问题 计算机系统中的各种设备(包括中央处理机)的运行速度差异甚大,CPU的运行速度是以纳秒计,而设备的运行速度则是以毫秒甚至以秒计; 负荷不均匀问题 有时处理机进行大量的计算工作,没有I/O操作,有时又会进行大量的I/O操作,这两个极端都会造成系统中的一些设备过于繁忙,一部分设备过于空闲,严重地影响CPU与外设的并行工作。,缓存cache和缓

8、冲buffer的异同,缓存(cache)是把读取过的数据 保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。 缓冲(buffer)当存储速度快的设备与存储速度慢 的设备进行通信时,存储慢的设备先把数据存放到buffer,达到一定程度后,存储快的设备再读取buffer的数据,在此期间存储快的设备CPU可以干其他 的事情。,缓存cache和缓冲buffer的异同,相同之处:都是为了弥补速度差异,都位于相对较快的设备上,容量相对较小 不同之处: Cache

9、要考虑局部性,重复使用 Buffer有写“化零为整”和预读的作用(write sequencing and read prefetching) Cache中的内容在低速设备中一定还有一份,从而要考虑同步,相对的Buffer要考虑flush,这种区别并不是绝对的,有时也混用,比如TLB,引入缓冲技术的目的,提出用缓冲技术来匹配CPU与设备的速度的差异 提高处理机与外设的并行程度。,缓冲的实现方式,硬件缓冲区:如设备控制器中的数据寄存器,数量少 软件缓冲区:内存中划出的一块专门空间。,两类I/O设备,面向块的设备 信息保存在固定大小的块中 一次只传送一块 使用磁盘和磁带 面向流的设备 传送字节流数

10、据 终端, 打印机, 通信端口, 鼠标和其他指示设备以及大多数不是辅存的其他设备,都是面向流的,常用的缓冲技术,1、单缓冲 2、双缓冲 3、循环缓冲,单缓冲,当一个用户进程发出 I/O请求时,操作系统给该操作分配一个位于内存中系统部分的缓冲区,CPU,CPU,T,C,T,C,M,单缓冲,面向块设备 输入传送进入系统缓冲区 当传送完成时,进程把该块移到用户空间,并立即请求另一块 称作预读,或者先行输入 用户进程可以在下一块数据正在读入时,处理这一块数据 由于输入发生在系统存储空间中而不是用户进程存储器中,故而操作系统可以把该进程换出 操作系统必须知道给用户进程分配系统缓冲区的情况,单缓冲,面向流

11、设备 在每次传送一行或一个字节的方式下使用 每次传送一行适合于上卷式终端:用户每次输入一行,用回车表示到达行尾,并且输出到终端时也是类似的每次输出一行 行式打印机 每次传送一个字节适用于表格型终端, 键盘、传感器、控制器,对于块设备: 设:数据从磁盘缓冲区 T 数据从缓冲区用户区 M CPU计算时间 C 则:单缓冲系统对数据的处理时间为:max(C,T)+M 如无缓冲区,处理时间为: T+C,单缓冲性能,无缓冲的数据处理时间: T+C 单缓冲的数据处理时间:MaxC,TM 数据由I/O控制器到缓冲区和数据由缓冲区到用户工作区,必须串行操作;,单缓冲工作时序图,双缓冲,给操作系统指定两个系统缓冲

12、区,对单缓冲方案进行改进 当一个进程往这一个缓冲区中传送数据(从这个缓冲区中取数据)时,操作系统正在清空(填充)另一个缓冲区,并行操作,T,C,M,双缓冲性能,双缓冲的数据处理时间:MaxC+M,T,双缓冲工作时序图,2011,9、某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为100s,将缓冲区的数据传送到用户区的时间是50s,CPU对一块数据进行分析的时间为50s。在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是( B ) A、1500s、1000s B、1550s、1100s C、

13、1550s、1550s D、2000s、2000s,T,C,M,100,50,50,100*9+200,100,50,50,100,50,50,循环缓冲,使用多于两个的缓冲区 其中的每一个缓冲区是这个循环缓冲区的一个单元 使相关 I/O操作能够跟得上这个进程,缓冲池,环形缓冲区一般用于特定的进程,属于专用缓冲区,当系统较大时,将会有许多这样的环形缓冲区,这不仅要消耗大量的内存空间,利用率也不高。 为了提高缓冲区的利用率,目前广泛流行公用缓冲池,池中的缓冲区可供多个进程共享。 缓冲池由内存中一组大小相等的缓冲区组成,池中各缓冲区的大小与用于I/O的设备的基本信息单位相似,缓冲池属于系统资源,由系

14、统进行管理。 缓冲池中各缓冲区可用于输出信息,也可用于输入信息,并可根据需要组成各种缓冲区队列。,目前,几乎所有随机存取的文件,都是存放在磁盘上,磁盘I/O速度的高低将直接影响文件系统的性能。 磁盘分为两种: 固定头磁盘:每个磁道设置一个磁头,变换磁道时不需要磁头的机械移动,速度快但成本高 移动头磁盘:一个盘面只有一个磁头,变换磁道时需要移动磁头,速度慢但成本低,磁盘概述,磁盘侧视图,磁道,扇区,磁盘俯视图,信息记录在磁道上,多个盘片,正反两面都用来记录信息,每面一个磁头 所有盘面中处于同一磁道号上的所有磁道组成一个柱面 每个扇区大小为512字节 物理地址形式: 柱面号 磁头号 扇区号,柱面、

15、磁头、扇区,由三个动作组成: 寻道 :磁头移动定位到指定磁道 旋转延迟:等待指定扇区从磁头下旋转经过 数据传输:数据在磁盘与内存之间的实际传输,磁盘的访问过程,磁盘I/O传送的时序,磁盘性能参数,为了读和写,磁头必须定位于期望的磁道和该磁道中期望的扇区的开始处 寻道时间 磁头定位磁道所需要的时间 当代磁盘的平均寻道时间小于10ms 旋转延迟 扇区到达磁头的时间 速度为15000r/m,平均旋转延迟为2ms,磁盘性能参数,存取时间Access time 寻道时间和旋转延迟的总和 达到读或写位置所需要的时间 一旦磁头定位,并且扇区旋转到磁头下,就开始执行读或写操作,这是整个操作的数据传送部分 传送

16、时间 总平均存取时间,时序比较,假设一磁盘平均寻道时间为4ms,转速为7500rpm,每个磁道500个扇区,每个扇区512个字节。假设读取一个包含2500个扇区、大小为1.28MB的文件,请问估计传送的总时间?,时序比较,顺序访问时间 总时间= 16 + (4 * 12) = 64ms = 0.064 s 随机访问时间 总时间= 2,500 * 8.016 = 20,040ms = 20.04 s,磁盘调度策略,寻道时间是产生性能差异的原因 对于单个磁盘,磁盘访问请求队列中可能有来自多个进程的许多I/O请求(读和写) 如果按随机顺序从对列中选择项目,那么磁道完全是被随机访问的,这种情况下的性能最差,磁盘调度策略,先进先出 (First-in, first-out, FIFO) 按访问请求到达的先后次序服务 优点:对于所有的进程都很公平 缺点:如果有多个进程竞争一个磁盘,这种技术在性能上往往接近于随机调度。 例:表11.2a 图11.7a,磁

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号