磁盘调度算法程序课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功