1、 课程设计课程设计报告报告 题题 目目 磁盘调度算法程序设计磁盘调度算法程序设计 课课 程程 名名 称称 操作系统课程设计操作系统课程设计 院院 部部 名名 称称 信息技术信息技术学院学院 专专 业业 计算机科学与技术计算机科学与技术 班班 级级 M11M11 计算机科学与技术计算机科学与技术 学学 生生 姓姓 名名 学学 号号 成绩 1 目录目录 一、课程设计的目的和要求 2 1、目的 2 2、要求 2 二、二、设计任务介绍及系统需求分析 2.1 任务介绍 2 2.2 基本需求设计 . 2 三、概要设计. 3 3.1 程序主要流程 3 3.2 程序的函数调用关系 . 4 四、详细设计. 5
2、4.1 数据结构描述 . 5 4.2 各功能模块(或主要过程)分析 5 4.3 各子程序流程分析 7 4.3.1 FCFS( ) 错误错误!未定义书签。未定义书签。 4.3.2 SSTF() . 错误错误!未定义书签。未定义书签。 4.3.3 SCAN( ) . 错误错误!未定义书签。未定义书签。 五、调试与测试 . 10 5.1 程序运行初始界面 10 5.2 键盘输入磁道 . 10 5.3 随机产生磁道 . 10 5.4 先来先服务算法 . 10 5.5 最短寻道时间优先算法10 5.6 扫描算法10 5.6.1 先向外扫描 .11 5.6.2 先向里扫描 .11 5.7 退出程序 .11
3、 六、结论与体会 . 12 参考文献 12 附件:源程序清单 13 2 一、课程设计的目的和要求一、课程设计的目的和要求 1 1.1.1 目的目的 磁盘是经常使用的一种重要的外设, 对磁盘数据的寻道时间的长短直接影响机器 的整体运行速度,本设计要求用 C 语言(或高级语言)编写程序模拟实现磁盘调 度的常用算法。以加深对磁盘调度常用算法的理解和实现技巧。 1.2 1.2 要求要求 1) 、设计一个函数完成先来先服务的磁盘调度功能。 2) 、设计一个函数完成最短寻道时间优先的磁盘调度功能。 3) 、设计一个函数完成电梯算法的磁盘调度功能。 二、系统需求分析二、系统需求分析 2.12.1 任务介绍任
4、务介绍 1、可利用先来先服务算法(FCFS 即 first come first served) 、最短寻道时间 优先算法(SSTF 即 shortest seek time first) 、扫描算法(SCAN) ,来实现磁 盘的访问顺序。 2、根据磁盘调度算法的不同的特性做好软件实现的需求分析。 3、可根据问题的实际需要,可模拟数据在磁道的存放位置。 4、当系统运行时,能直观地、动态地反映当前磁盘状态及不同算法的平均寻道 时间。 5、要求在系统安全状态的前提下,用户指定需要访问的磁道,软件自动模拟在 不同算法情况下,磁盘寻道顺序和平均寻道时间。 2.22.2 基本需求设计基本需求设计 系统主
5、界面可以灵活选择某种算法,算法包括:先来先服务算法(FCFS) 、 最短寻道时间优先算法(SSTF) 、扫描算法(SCAN) 。 1、先来先服务算法(FCFS) 这是一种比较简单的磁盘调度算法。 它根据进程请求访问磁盘的先后次序进 行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不 会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化, 在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平 均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。 2、最短寻道时间优先算法(SSTF) 3 该算法选择这样的进程,其要求访问的磁道与当前磁
6、头所在的磁道距离最 近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证 平均寻道时间最短。其缺点是对用户的服务请求的响应机会不是均等的,因而导 致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求 将会无限期的被延迟,有些请求的响应时间将不可预期。 3、扫描算法(SCAN) 扫描算法不仅考虑到欲访问的磁道与当前磁道的距离, 更优先考虑的是磁头 的当前移动方向。例如,当磁头正在自里向外移动时,扫描算法所选择的下一个 访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向 外地访问,直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。这时, 同样也是每次选择这样的进程来调度,即其要访问的磁道,在当前磁道之内