您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > IO管理和磁盘调度.
I/O管理和磁盘调度Chapter11主要内容教学目标与要求理解I/O控制方式。掌握I/O缓冲技术掌握磁盘存储器的管理教学重点与难点缓冲技术,磁盘调度I/O设备的种类1、人可读的适合与计算机用户通信,如:打印机,终端(显示器,键盘,鼠标)2、机器可读适合与电子设备通信,如磁盘驱动器,传感器,控制器,执行器3、通信适合与远程设备通信,如数字线路驱动器,调制解调器设备的分类按传输速率分低速设备:每秒几个到数百字节。如调制解调器中速设备:每秒数千到数万字节。如打印机高速设备:每秒数百K到数兆。如磁盘、磁带I/O设备的差别数据率数据传送率可能会差别几个数量级I/O设备的差别应用用于文件操作的磁盘需要文件管理软件的支持在虚拟存储方案中,磁盘用作页面调度的后备存储器,取决于虚存硬件和软件的使用终端被普通用户使用和系统管理员使用可能具有不同的特权级别,从而在OS中有不同的优先级I/O设备的差别控制的复杂度传送单位数据可以按照字节流或者字符流的形式传送(如终端I/O),也可以按照大块传送(如磁盘I/O)数据表示数据编码方案,包括字符代码和奇偶约定的差异错误条件错误的本质、报告的方式、后果以及响应随设备的不同而不同I/O功能的组织常见的三种I/O控制技术:程序控制I/O处理器代表进程给I/O模块发送一个I/O命令,该进程进入忙等待,等待操作的完成,然后才可以继续执行中断驱动I/O处理器代表进程发送一个I/O命令,然后继续执行后续指令,当I/O模块完成工作后,处理器被该模块中断。如果该进程不需等待I/O完成,后续指令可以是该进程中的指令否则,这个进程在这个中断上被挂起,处理器执行其他工作直接存储器存取(DMA)DMA模块控制主存和I/O模块之间的数据交换为传送一块数据,处理器给DMA模块发请求,只有当整个数据块传送结束后,处理器才被中断输入输出功能的发展I/O功能的发展阶段:处理器直接控制外围设备程序控制I/O方式:增加了控制器或I/O模块处理器使用没有中断的程序控制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的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备三者的并行工作,从而更有效的提高了整个系统的资源利用率。直接存储器访问DMA取代处理器控制系统,在系统总线上从存储器中或者往存储器中传送数据周期挪用技术用于在总线上传送数据为了使数据能够传送,挂起一个指令周期,即CPU暂停一个总线周期整块数据传送过程中没有中断发生不需要保存进程上下文DMADMA工作流程请求读/写操作的信号相关的I/O设备地址内存起始地址读/写的字节数DMA机制的配置方法周期挪用技术导致处理器执行得更慢通过DMA和I/O功能集成起来,可以大大的减少所需要的总线周期的数目DMA模块和一个或多个I/O模块之间除了系统总线还存在着路径DMADMADMA操作系统设计问题Efficiency(效率)与主存和处理器相比,大多数I/O设备都是非常慢速的使用多道程序设计,可以允许一些进程在等待I/O操作时另一些进程正在执行交换技术用于将额外的就绪进程加载到内存,使得处理器保持忙状态,但交换本身是一个I/O操作I/O设计的主要任务是提供I/O的效率操作系统设计问题Generality(通用性)为了简单性和避免错误,往往希望能用一种统一的方式处理所有的设备使用一种层次化的、模块化的方法设计I/O功能,在低层例程中隐藏大部分设备I/O的细节,使得用户进程和操作系统高层可以通过一些通用的功能,如read,write,open,close,lock,unlock等来查看I/O设备一种I/O组织的模型I/O缓冲速度的差异问题计算机系统中的各种设备(包括中央处理机)的运行速度差异甚大,CPU的运行速度是以纳秒计,而设备的运行速度则是以毫秒甚至以秒计;负荷不均匀问题有时处理机进行大量的计算工作,没有I/O操作,有时又会进行大量的I/O操作,这两个极端都会造成系统中的一些设备过于繁忙,一部分设备过于空闲,严重地影响CPU与外设的并行工作。缓存cache和缓冲buffer的异同缓存(cache)是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。缓冲(buffer)当存储速度快的设备与存储速度慢的设备进行通信时,存储慢的设备先把数据存放到buffer,达到一定程度后,存储快的设备再读取buffer的数据,在此期间存储快的设备CPU可以干其他的事情。缓存cache和缓冲buffer的异同相同之处:都是为了弥补速度差异,都位于相对较快的设备上,容量相对较小不同之处:Cache要考虑局部性,重复使用Buffer有写“化零为整”和预读的作用(writesequencingandreadprefetching)Cache中的内容在低速设备中一定还有一份,从而要考虑同步,相对的Buffer要考虑flush这种区别并不是绝对的,有时也混用,比如TLB引入缓冲技术的目的提出用缓冲技术来匹配CPU与设备的速度的差异提高处理机与外设的并行程度。缓冲的实现方式硬件缓冲区:如设备控制器中的数据寄存器,数量少软件缓冲区:内存中划出的一块专门空间。两类I/O设备面向块的设备信息保存在固定大小的块中一次只传送一块使用磁盘和磁带面向流的设备传送字节流数据终端,打印机,通信端口,鼠标和其他指示设备以及大多数不是辅存的其他设备,都是面向流的常用的缓冲技术1、单缓冲2、双缓冲3、循环缓冲单缓冲当一个用户进程发出I/O请求时,操作系统给该操作分配一个位于内存中系统部分的缓冲区CPUCPUTCTCM单缓冲面向块设备输入传送进入系统缓冲区当传送完成时,进程把该块移到用户空间,并立即请求另一块称作预读,或者先行输入用户进程可以在下一块数据正在读入时,处理这一块数据由于输入发生在系统存储空间中而不是用户进程存储器中,故而操作系统可以把该进程换出操作系统必须知道给用户进程分配系统缓冲区的情况单缓冲面向流设备在每次传送一行或一个字节的方式下使用每次传送一行适合于上卷式终端:用户每次输入一行,用回车表示到达行尾,并且输出到终端时也是类似的每次输出一行行式打印机每次传送一个字节适用于表格型终端,键盘、传感器、控制器对于块设备:设:数据从磁盘—缓冲区T数据从缓冲区—用户区MCPU计算时间C则:单缓冲系统对数据的处理时间为:max(C,T)+M如无缓冲区,处理时间为:T+C单缓冲性能无缓冲的数据处理时间:T+C单缓冲的数据处理时间:Max[C,T]+M数据由I/O控制器到缓冲区和数据由缓冲区到用户工作区,必须串行操作;单缓冲工作时序图双缓冲给操作系统指定两个系统缓冲区,对单缓冲方案进行改进当一个进程往这一个缓冲区中传送数据(从这个缓冲区中取数据)时,操作系统正在清空(填充)另一个缓冲区,并行操作TCM双缓冲性能双缓冲的数据处理时间:Max[C+M,T]双缓冲工作时序图2011•9、某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为100μs,将缓冲区的数据传送到用户区的时间是50μs,CPU对一块数据进行分析的时间为50μs。在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是(B)•A、1500μs、1000μsB、1550μs、1100μs•C、1550μs、1550μsD、2000μs、2000μsTCM1005050100*9+20010050501005050循环缓冲使用多于两个的缓冲区其中的每一个缓冲区是这个循环缓冲区的一个单元使相关I/O操作能够跟得上这个进程目前,几乎所有随机存取的文件,都是存放在磁盘上,磁盘I/O速度的高低将直接影响文件系统的性能。磁盘分为两种:固定头磁盘:每个磁道设置一个磁头,变换磁道时不需要磁头的机械移动,速度快但成本高移动头磁盘:一个盘面只有一个磁头,变换磁道时需要移动磁头,速度慢但成本低磁盘概述柱面扇区磁臂磁头磁盘侧视图磁道扇区磁盘俯视图信息记录在磁道上,多个盘片,正反两面都用来记录信息,每面一个磁头所有盘面中处于同一磁道号上的所有磁道组成一个柱面每个扇区大小为512字节物理地址形式:柱面号磁头号扇区号柱面、磁头、扇区由三个动作组成:寻道:磁头移动定位到指定磁道旋转延迟:等待指定扇区从磁头下旋转经过数据传输:数据在磁盘与内存之间的实际传输磁盘的访问过程磁盘I/O传送的时序磁盘性能参数为了读和写,磁头必须定位于期望的磁道和该磁道中期望的扇区的开始处寻道时间磁头定位磁道所需要的时间当代磁盘的平均寻道时间小于10ms旋转延迟扇区到达磁头的时间速度为15000r/m,平均旋转延迟为2ms磁盘性能参数存取时间Accesstime寻道时间和旋转延迟的总和达到读或写位置所需要的时间一旦磁头定位,并且扇区旋转到磁头下,就开始执行读或写操作,这是整个操作的数据传送部分传送时间总平均存取时间rNbT时序比较假设一磁盘平均寻道时间为4ms,转速为7500rpm,每个磁道500个扇区,每个扇区512个字节。假设读取一个包含2500个扇区、大小为1.28MB的文件,请问估计传送的总时间?时序比较顺序访问时间总时间=16+(4*12)=64ms=0.064s随机访问时间总时间=2,500*8.016=20,040ms=20.04s磁盘调度策略寻道时间是产生性能差异的原因对于单个磁盘,磁盘访问请求队列中可能有来自多个进程的许多I/O请求(读和写)如果按随机顺序从对列中选择项目,那么磁道完全是被随机访问的,这种情况下的性能最差磁盘调度策略先进先出(First-in,first-out,FIFO)按访问请求到达的先后次序服务优点:对于所有的进程都很公平缺点:如果有多个进程竞争一个磁盘,这种技术在性能上往往接近于随机调度。例:表11.2a图11.7a磁盘调度策略最短服务时间优先(ShortestServiceTimeFirst,SSTF)选择使磁头臂从当前位置开始移动最少的磁盘I/O请求贪心的策略,总是选择最小寻道时间的请求不能保证平均寻道时间最短能提供比FIFO更好的性能饥饿现象例:表11.2b图11.7b磁盘调度策略SCAN(电梯算法)要求磁头臂仅仅沿一个方向移动,并在途中满足所有未完成的请求,直到它到达这个方向上的最后一个磁道,或者在这个方向上没有别的请求为止(可以防止饥饿)后一种改进有时候称作LOOK策略。然后倒转服务方向,沿相反方向扫描,同样按顺序完成所有请求在移动方向固定的情况下采用了SSTF,以避免饥饿现象存在请求进程等待延迟现象,最大延迟时间为2t例:表11.2c图11.7c磁盘调度策略C-SCAN(循环扫描)把扫描限定在一个方向当沿某个方向访问到最后一个磁道时,磁头臂返回到磁盘的另一端,并再次开始扫描请求延迟时间:2tt+Smax,减少了新请求的最大延迟磁盘
本文标题:IO管理和磁盘调度.
链接地址:https://www.777doc.com/doc-2879334 .html