1、 1 题题 目:磁盘调度目:磁盘调度 一一 设计目的设计目的 本课程设计是学习完计算机操作系统课程后,进行的一次全 面的综合训练, 通过课程设计,我们更好地掌握操作系统的原理及实 现方法,加深对操作系统基础理论和重要算法的理解,加强了动手能 力。 二二 课程设计内容和要求课程设计内容和要求 编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度, 要求设计主界面以灵活选择某算法,且以下算法都要实现: 1、先来先服务算法(FCFS) 2、最短寻道时间优先算法(SSTF) 3、扫描算法(SCAN) 4、循环扫描算法(CSCAN) 三算法及数据结构三算法及数据结构 3.13.1 算法的总体思想算法
2、的总体思想 设备的动态分配算法与进程调度相似,也是基于一定的分配策略 的。常用的分配策略有先请求先分配、优先级高者先分配等策略。在 多道程序系统中,低效率通常是由于磁盘类旋转设备使用不当造成 的。操作系统中,对磁盘的访问要求来自多方面,常常需要排队。这 时,对众多的访问要求按一定的次序响应, 会直接影响磁盘的工作效 率,进而影响系统的性能。访问磁盘的时间因子由 3 部分构成,它们 是查找(查找磁道)时间、等待(旋转等待扇区)时间和数据传输时 2 间,其中查找时间是决定因素。因此,磁盘调度算法先考虑优化查找 策略,需要时再优化旋转等待策略。 平均寻道长度(L)为所有磁道所需移动距离之和除以总的所
3、需 访问的磁道数(N) ,即: L=(M1+M2+Mi+MN)/N 其中 Mi 为所需访问的磁道号所需移动的磁道数。 启动磁盘执行输入输出操作时,要把移动臂移动到指定的柱面, 再等待指定扇区的旋转到磁头位置下,然后让指定的磁头进行读写, 完成信息传送。因此,执行一次输入输出所花的时间有: 寻找时间磁头在移动臂带动下移动到指定柱面所花的时间。 延迟时间指定扇区旋转到磁头下所需的时间。 传送时间由磁头进程读写完成信息传送的时间。 其中传送信息所花的时间,是在硬件设计就固定的。而寻找时间 和延迟时间是与信息在磁盘上的位置有关。 为了减少移动臂进行移动花费的时间, 每个文件的信息不是按盘 面上的磁道顺
4、序存放满一个盘面后, 再放到下一个盘面上。而是按柱 面存放,同一柱面上的各磁道被放满信息后,再放到下一个柱面上。 所以各磁盘的编号按柱面顺序(从 0 号柱面开始) ,每个柱面按磁道 顺序,每个磁道又按扇区顺序进行排序。 3.23.2 算法实现算法实现 1.先来先服务算法(FCFS) 先来先服务(FCFS)调度:按先来后到次序服务,未作优化。 最简单的移臂调度算法是“先来先服务”调度算法,这个算法实际上 不考虑访问者要求访问的物理位置, 而只是考虑访问者提出访问请求 的先后次序。例如, 如果现在读写磁头正在 100 号柱面上执行输出操 作 , 而 等 待 访 问 者 依 次 要 访 问 的 柱 面 为 55,58,39,18,90,160,150,38,184 那么,当 100 号柱面上的操作结束 后,移动臂将按请求的先后次序先移到 55 号柱面,最后到达 184 号 柱面。 3 采用先来先服务算法决定等待访问者执行输入输出操作的次序 时,移动臂来回地移动。先来先服务算法花费的寻找时间较长,所以 执行输入输出操作的总时间也很长。 void