北工大毕业生热血研究 揭密硬盘提速
12.7 系统整体考虑
在什么情况下有必要应用磁盘的调度策略?什么情况下使用了磁盘调度策略反而会降低系统整体性能?这些问题需要在集成了磁盘调度策略的系统里面得到解释。在接下来的文章中我们将开始讨论哪些有关的情况会影响到设计师的决定。
12.7.1 磁盘存储资源是有限的
磁盘性能已经被证明是系统整体性能的瓶颈,因此一些专家建议增加磁盘的数量以改善这一情况。但是这么做也未必能够治本,因为增加数量有限的磁盘数量在大量的磁盘操作请求面前仍然是杯水车薪。一旦出现这种情况,磁盘调度管理也就成了最为行之有效的提升性能、消除瓶颈的手段。
12.7.2 多任务的程度
随着多任务程度的增加,磁盘的负担以及请求的随机性都有上升的趋势。因此,磁盘调度策略在不常见多任务的批处理系统中难以发挥作用;而在有适当多任务的分时操作系统中经常是很有效的;尤其在每分钟有上千条请求的信息交换系统中,磁盘调度策略经常能够收到意想不到的效果。例如,对于一个大型局域网内的文件服务器来说,可能要同时服务上百个用户,这时调度策略就成为非常必要的环节了。
12.7.3 多磁盘子系统
出于模块化以及经济上面的考虑,在硬件系统中一个磁盘控制器往往要支配多个磁盘。而这些控制器需要轮流和输入输出通道进行通信,最终把磁盘上面的数据传递给中央系统。而一个通道可以支持多个磁盘控制器,每个磁盘控制器又带有多个磁盘,这样就形成了一个树型结构(图12.10)。
我们看到在这种结构中,输入输出通道并不是与磁盘直接相连的。因此系统设计师们在设计磁盘调度策略的时候需要首先进行调查分析,以研究这种系统的瓶颈所在。有时候瓶颈出在控制器的任务饱和上面,或者是通道的阻塞上。这些情况是比较容易被观察到的,因为不管是用软件还是硬件监测这些通道和控制器,都是可以实时进行的。如果某个控制器的负担经常饱和,那么设计师就要考虑减少这个控制器下属的磁盘数量了。如果是通道阻塞的情况,那么就要试着让其他通道对这个通道进行分流处理。或者追加入新的通道。这些硬件上面的重组对于消除系统瓶颈是非常必要的。
为了降低通道的负担,很多磁盘系统中都集成了一种被称作“rotational position sensing (RPS 旋转位置探测)”的技术。这一技术能够降低磁盘系统在查找数据时候的繁忙时间。当一条请求到达后,RPS能够另通道空闲,直到磁头开始读取响应数据为止。RPS同样支持多任务的请求,以充分利用硬件资源。
12.7.4 请求的不均匀分布
相关文献中的多数分析工作,都是建立在假设请求是平均分布在盘片各个位置的。因此这种分析的结论在那些请求分布并不平均的系统中并不适用。这种不均匀请求分布的情况在某些系统中是很常见的,人们也研究过它会造成什么样的结果。Lynch在一项研究中认为,绝大多数的请求地址都是和刚刚处理的地址处于同一柱面。
造成请求非常集中于相同位置的一个重要原因就是对大尺寸文件以及连续文件进行的读写操作。当操作系统对用户提出的连续文件请求开辟磁盘空间时,往往习惯于使用相同的磁道(尽管现在很多个人操作系统已经支持交错处理)。当一个磁道空间用完之后,系统将追加相邻磁道的空间来存放多余的数据。因此对于处理这样的连续文件来说,寻道时间几乎是零。即使需要寻道操作,也只不过是吊臂移动到相邻的柱面上,这点时间是非常短暂的。显然,这种情况对于磁盘调度策略来说是非常理想的。
在某些系统中,当发现损坏磁道的时候,就需要分配交错磁道进行替换。这样一来,这些交错磁道的位置就难以确定了,而其所需的寻道时间更是无法预测。
12.7.5 文件组织技术
经过实践应用的文件组织技术,例如ISAM(index sequential access method索引顺序存取法)可能会导致长寻道时间操作的增加。ISAM的接口可能包含多个磁盘的请求。在某些情况下,一个完整的ISAM操作可能需要从主索引记录开始,经过柱面索引记录,然后再转换为最后的真实操作地址。这样一来,每个完整的响应过程可能会包含多个寻道延迟。由于从主索引记录和柱面索引记录都存放在盘片上面(而且远离真正的数据位置),因此这样一来,我们就要为这些寻道操作付出昂贵的时间代价。尽管对于软件设计人员来说ISAM非常方便,但是对于硬件系统来说,这实在是令人头痛的。<