当前位置:首页 > 磁盘调度算法程序课程设计报告(DOC)
成绩
课程设计报告
题 目 磁盘调度算法程序设计
课 程 名 称 操作系统课程设计 院 部 名 称 信息技术学院 专 业 计算机科学与技术 班 级 M11计算机科学与技术Ⅱ 学 生 姓 名 学 号 课程设计地点 A205 课程设计学时 20 指 导 教 师 李 莉
金陵科技学院教务处制
目录
一、课程设计的目的和要求 ........................................................................................................... 2
1、目的 ..................................................................................................................................... 2 2、要求 ..................................................................................................................................... 2 二、设计任务介绍及系统需求分析
2.1 任务介绍 ........................................................................................................................... 2 2.2基本需求设计 .................................................................................................................... 2 三、概要设计 ................................................................................................................................... 3
3.1程序主要流程 ..................................................................................................................... 3 3.2 程序的函数调用关系 ........................................................................................................ 4 四、详细设计 ................................................................................................................................... 5
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 扫描算法………………………………………………………………………………11
5.6.1先向外扫描 ............................................................................................................ 11 5.6.2先向里扫描 ............................................................................................................ 11 5.7 退出程序 ....................................................................................................................... 11 六、结论与体会 ............................................................................................................................. 12 参考文献 ......................................................................................................................................... 12 附件:源程序清单 ......................................................................................................................... 14
1
一、课程设计的目的和要求
1.1目的
磁盘是经常使用的一种重要的外设,对磁盘数据的寻道时间的长短直接影响机器的整体运行速度,本设计要求用C语言(或高级语言)编写程序模拟实现磁盘调度的常用算法。以加深对磁盘调度常用算法的理解和实现技巧。 1.2 要求
1)、设计一个函数完成先来先服务的磁盘调度功能。 2)、设计一个函数完成最短寻道时间优先的磁盘调度功能。 3)、设计一个函数完成电梯算法的磁盘调度功能。
二、系统需求分析
2.1 任务介绍
1、可利用先来先服务算法(FCFS即first come first served)、最短寻道时间优先算法(SSTF即shortest seek time first)、扫描算法(SCAN),来实现磁盘的访问顺序。
2、根据磁盘调度算法的不同的特性做好软件实现的需求分析。 3、可根据问题的实际需要,可模拟数据在磁道的存放位置。
4、当系统运行时,能直观地、动态地反映当前磁盘状态及不同算法的平均寻道时间。
5、要求在系统安全状态的前提下,用户指定需要访问的磁道,软件自动模拟在不同算法情况下,磁盘寻道顺序和平均寻道时间。 2.2基本需求设计
系统主界面可以灵活选择某种算法,算法包括:先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)。 1、先来先服务算法(FCFS)
这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。 2、最短寻道时间优先算法(SSTF)
2
该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证平均寻道时间最短。其缺点是对用户的服务请求的响应机会不是均等的,因而导致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求将会无限期的被延迟,有些请求的响应时间将不可预期。 3、扫描算法(SCAN)
扫描算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在自里向外移动时,扫描算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。这时,同样也是每次选择这样的进程来调度,即其要访问的磁道,在当前磁道之内,从而避免了饥饿现象的出现。由于这种算法中磁头移动的规律颇似电梯的运行,故又称为电梯调度算法。此算法基本上克服了最短寻道时间优先算法的服务集中于中间磁道和响应时间变化比较大的缺点,而具有最短寻道时间优先算法的优点即吞吐量较大,平均响应时间较小,但由于是摆动式的扫描方法,两侧磁道被访问的频率仍低于中间磁道。
三、概要设计
3.1程序主要流程
下图3-1为磁盘调度算法总流程图,程序运行开始,进入选择界面,输入磁道数,然后依次调用decide()函数和trans()函数,再进入主循环界面,选择调度算法,直到选择4,程序执行完毕退出。
3
共分享92篇相关文档