OS-09设备管理

上传人:ahu****ng1 文档编号:146137405 上传时间:2020-09-26 格式:PPTX 页数:67 大小:510.24KB
返回 下载 相关 举报
OS-09设备管理_第1页
第1页 / 共67页
OS-09设备管理_第2页
第2页 / 共67页
OS-09设备管理_第3页
第3页 / 共67页
OS-09设备管理_第4页
第4页 / 共67页
OS-09设备管理_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《OS-09设备管理》由会员分享,可在线阅读,更多相关《OS-09设备管理(67页珍藏版)》请在金锄头文库上搜索。

1、操作系统原理,金 海 溶 (MSN) 办公室: JK329,第9章 设备管理,输入/输出设备 输入/输出功能的组织 操作系统设计问题 输入/输出缓冲 磁盘调度 RAID 磁盘高速缓冲,第9章 设备管理,各种设备及其应用程序如此众多,所以很难开发一种通用的、一致的输入/输出解决方案 对于输入/输出,最关键的问题是性能 计算机系统处理器的速度在不断提高,如果一个处理器仍然不够快,SMP可以提供多个处理器来加快处理速度 内部存储器访问速度尽管没有处理器速度提高得快,但它也在不断提高,而且,通过聪明地使用一级、两级甚至更多级内部 cache,主存访问时间应该可以跟上处理器的速度 但输入/输出仍然面临着

2、重要的性能挑战,特别是磁盘存储,第9章 设备管理,磁盘输入/输出,介绍多磁盘请求的调度方法,通过利用磁盘访问的物理特性来提高响应时间。这是用户所能觉察到的一个关键性能因素 使用磁盘阵列来提高性能和可靠性 磁盘cache,输入/输出设备,计算机系统输入/输出外部设备大体可分为: I/O类外设:适合与计算机用户通信,例如打印机、终端 (显示器和键盘、鼠标等),传感器等 存储类型的设备:应用于存储程序和数据,如磁盘设备,磁带,光盘等 网络通信设备:适合与远程设备通信,例如调制解调器,各种网络接口等,输入/输出设备,各类输入/输出外部设备之间有很大差别,主要包括 数据率:数据传送速率可能会相差几个数量

3、级,101 102 103 104 105 106 107 108 109,典型的输入/输出设备数据率,6.1 输入/输出设备,各类输入/输出外部设备之间有很大差别,主要包括 数据率:数据传送速率可能会相差几个数量级 应用程序:设备的用途对软件、操作系统策略以及支持实用程序都有影响。例如,用于文件操作的磁盘需要文件管理软件的支持等;不同使用情况隐含着不同的特权,从而可能有不同的优先级 控制的复杂度:相对而言,打印机接口比较简单,而磁盘接口要复杂得多。这些差别影响到控制该设备的I/O模块的复杂度,输入/输出设备,传送单位:数据可以按照字节流或者字符流的形式传送 (例如终端I/O) ,也可以按大块

4、传送 (如磁盘I/O) 数据表示:不同的设备使用不同的数据编码方案 错误条件:错误、报告错误方式、错误后果以及可以得到的响应范围随设备的不同而不同,操作系统设计问题,设计I/O功能时,最重要的目标是:效率和通用性 I/O设计的一个主要任务就是提高I/O的效率,最关注的是磁盘I/O 与主存和处理器相比,大多数I/O设备都非常慢,I/O操作往往构成计算机系统的瓶颈,因此效率非常重要。 解决这个问题的方法之一是多道程序。多道程序允许一些进程在等待I/O操作时另一些进程正在执行。但是,即使有巨大的主存,仍然常常出现I/O跟不上处理器活动的情况等,操作系统设计问题,操作系统设计的另一个重要目标是通用性

5、为了简单和避免错误,往往希望能用一种统一的方式处理所有的设备。这不仅是从处理器的角度看I/O设备时所需要的,也是操作系统管理I/O设备和I/O操作所需要的 由于设备之间的差异,实际中很难真正实现通用性。所能做的是用一种层次化的、模块化的方法设计I/O功能。这种方法在低层例程中隐藏了大部分设备I/O的细节,使得用户进程和操作系统高层可以通过一些通用的功能,如读、写、打开、锁定、解锁等来查看I/O设备,操作系统设计问题,设备管理的功能和任务: 设备分配: 设备处理:设备与cpu之间的通信与并行处理 缓冲管理: 设备独立性:也叫设备无关性。指用户程序独立于物理设备,输入/输出缓冲,在各种缓冲方法中,

6、有时需要区别两类I/O设备: 面向块的I/O设备 在块中保存信息,块的大小通常是固定的,并且一次只传送一块。通常,可以通过块号访问数据。磁盘和磁带都是面向块的设备 面向流的I/O设备 面向流的设备传送字节流数据,没有使用块结构。终端、打印机、通信端口、鼠标和其他指示设备以及大多数不是辅存的其他设备,都是面向流的,操作系统提供的最简单的类型是单缓冲区 当一个用户进程发出 I/O请求时,操作系统给该操作分配一个主存空间称为缓冲区。 输入传送进入系统缓冲区。当传送完成时,进程把该块移到用户空间,并立即请求另一块。这称作预读。这样做是希望最终会需要这个块 相对于没有系统缓冲的情况,此方法通常会提高速度

7、。用户进程可以在下一块数据正在读入时,处理这一块数据。由于输入发生在系统存储空间中而不是用户进程存储器中,故而操作系统可以把该进程换出。但这种技术增加了操作系统的逻辑复杂度,单缓冲区,单缓冲区可以用于面向块的输出 当准备把数据发送到一台设备时,首先把它们从用户空间复制到系统缓冲区,最终是从系统缓冲区中被写出的。发请求的进程现在可以自由地继续进行,或者在必要时换出 对于面向流的I/O,在每次传送一行的方式下,或者每次传送一个字节的方式下可以使用单缓冲方案 每次传送一行适合于上卷式终端。对于这类终端,用户每次输入一行,用回车表示到达行尾,并且输出到终端时也是类似的每次输出一行。行式打印机是这类设备

8、的一个例子,单缓冲区,双缓冲,可以通过给操作系统指定两个系统缓冲区来实现对单缓冲方案进行改进 当一个进程往这一个缓冲区中传送数据 (从这个缓冲区中取数据) 时,操作系统正在清空 (填充) 另一个缓冲区,这种技术称作双缓冲或缓冲交换,循环缓冲,双缓冲方案可以平滑I/O设备和进程之间的数据流 如果某个特定进程的性能是关注的焦点,常常会希望相关I/O操作能够跟得上这个进程。如果这个进程突然快速执行了大量的I/O,仅有双缓冲就不够了,在这种情况下,通常使用多于两个的缓冲区来解决这个问题 当使用两个以上的缓冲区时,这组缓冲区被称作循环缓冲区,其中的每一个缓冲区是这个循环缓冲区的一个单元,缓冲的作用,缓冲

9、是用来平滑I/O请求的峰值的一种技术,但是当进程的平均请求大于I/O设备的服务能力时,缓冲再多也不能让I/O设备与这个进程一直并驾齐驱 即使有多个缓冲区,所有的缓冲区终将被填满,进程在处理完每块数据后不得不等待。但是,在多道程序环境中,当存在多种I/O活动和多种进程活动时,缓冲是提高操作系统效率和单个进程性能的一种工具,磁盘调度,处理器速度和主存速度的提高远远超过了磁盘访问速度的提高,并且可以预见将来这个差距还会继续增大。因此,磁盘存储子系统的性能是至关重要的 磁盘系统的性能与文件系统的设计问题紧密相关,盘面,盘片,磁头臂运动方向,读/写磁头 (每个盘面一个),磁盘驱动器的组成,磁盘性能参数,

10、磁盘I/O的实际操作细节取决于计算机系统、操作系统以及I/O通道和磁盘控制硬件的特性,磁盘性能参数,磁盘驱动器工作时,磁盘以一种稳定的速度旋转。为了读或写,磁头必须定位于期望的磁道和该磁道中期望的扇区的开始处,磁盘性能参数,磁道选择包括在活动头系统中移动磁头或者在固定头系统中电子选择一个磁头 在活动头系统中,磁头定位磁道所需的时间称作寻道时间 一旦选择好磁道,磁盘控制器就开始等待,直到适当的扇区旋转到磁头处。扇区到达磁头的时间称作旋转延迟 寻道时间和旋转延迟的总和为存取时间,这是达到读或写位置所需要的时间 一旦磁头定位,并且扇区旋转到磁头下,就开始执行该操作或写操作,这是整个操作的数据传送部分

11、 此外,一次磁盘I/O操作通常还有许多排队延迟,如等待该设备可用,等待通道可用等,磁盘调度策略,考虑在多道程序环境中的一种典型情况,操作系统为每个I/O设备维护一条请求队列。因此对一个磁盘,队列中可能有来自多个进程的许多I/O请求 (写和读) 如果按随机顺序从队列中选择项目,那么磁道完全是被随机访问的,这种情况下的性能最差 最简单的调度是先进先出 (FIFO) ,这意味着按顺序处理队列中的项目。这个策略具有公平性,每个请求都会按照接收到的顺序得到处理,磁盘调度策略,对于FIFO,如果有多个进程竞争一个磁盘,这种技术在性能上往往接近于随机调度。因此,需要考虑一些更复杂的调度策略,磁盘调度策略,优

12、先级 优先级方法不会优化磁盘的使用率,但可以满足操作系统的其他目标 通常比较短的批作业和交互作业比需要较长计算时间的长作业的优先级高。这就使得大量的短作业能够迅速地通过系统,从而可以提供比较好的交互响应时间。但是,长作业可能不得不等待过长的时间,磁盘调度策略,后进先出 (LIFO) 取最近请求的策略有许多优点。在事务处理系统中,把设备给最近的用户会导致磁头臂在一个顺序文件中移动时移动得很少,甚至不移动。利用这种局部性可以提高吞吐量,减小队列长度 只要一个作业积极地使用文件系统,它就可以尽可能快地得到处理 但如果由于工作量大而使磁盘保持忙状态,就有可能出现饿死的情况。当一个作业已经往队列中送入一

13、个加请求,并且错过了磁头位置时,该作业就可能永远得不到磁头,除非它前面的队列变为空,磁盘调度策略,最短服务时间优先 SSTF策略选择使磁头臂从当前位置开始移动最少的磁盘I/O请求。因此,SSTF策略总是选择导致最小寻道时间的请求。 当然,总是选择最小寻道时间并不能保证平均寻道时间最小,但是,它能提供比FIFO更好的性能。 由于磁头臂可以向两个方向移动,因此可以使用一种随机选择算法解决距离相等的情况,磁盘调度策略,SCAN算法(电梯调度算法) SCAN要求磁头臂仅仅沿一个方向移动,并在途中满足所有未完成的请求,直到它到达这个方向上的最后一个磁道为止。然后倒转服务方向,沿相反方向扫描,同样按顺序完

14、成所有请求,磁盘调度策略,C-SCAN算法 C-SCAN要求磁头臂从0磁道向里移动,并在途中满足所有未完成的请求,直到它到达这个方向上的最后一个磁道,在返回时,直接快速的移至起始端,而不响应任何服务请求,接着再进行下一次的扫描,磁盘调度策略,其他算法 LOOK C-LOOK,磁盘调度策略,磁盘共400磁道,若磁头的当前位置为100,磁头正向磁道号增加方向移动,现有一磁盘读写请求队列,23,376,205,132,19,61,190,398,29,4,18,40, 若分别采用 FCFS、 SSTF、 SCAN,C-SCAN调度算法,求访问顺序和磁头移动道数。,解,FCFS:23,376,205,

15、132,19,61,190,398,29,4,18,40 磁头移动道数(100-23)+(376-23)+(376-205)+(205-132)+(132-19)+(61-19)+(190-61)+(398-190)+(398-29)+(29-4)+(18-4)+(40-18)1596,磁盘调度策略,SCAN偏爱那些请求接近最靠里或最靠外的磁道的作业,并且偏爱最近的作业 C-SCAN当沿某个方向访问到最后一个磁道时,磁头臂返回到磁盘的另一端,并再次开始扫描 N-step-SCAN把磁盘请求队列分成长度为N的子队列,每一次用SCAN处理一个子队列。此时,新请求必须添加到其他某个队列中 FSCAN

16、使用两个子队列。扫描开始时,所有请求都在一个队列中,而另一个队列为空。在扫描过程中,所有新请求都被放入另一个队列中。因此,对新请求的服务延迟到处理完所有老请求以后,RAID,设想:如果使用一个组件对性能只能提高这么多,那么可以通过使用多个并行的组件来获得额外的性能提高 在磁盘存储器的情况下,就产生了独立、并行运行的磁盘阵列 通过多个磁盘,多个独立的I/O请求可以并行地进行处理,只要它们所需要的数据驻留在不同的磁盘中 此外,如果要访问的数据块分布在多个磁盘上,I/O请求也可以并行地执行,RAID,RAID,独立磁盘冗余阵列,是关于多磁盘数据库设计的一个标准方案 RAID方案包括从0到6的7层,层不仅仅是层次关系,还表明了不同的设计结构 提高磁盘访问的速度 增强磁盘的可靠性,RAID,RAID设计结构有三个共同的特性: RAID是一组物理磁盘驱动器,操作系统把它看作是一个单个的逻辑驱

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

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