操作系统课程设计磁盘调度先来先服务算法

上传人:人*** 文档编号:431459957 上传时间:2022-10-19 格式:DOCX 页数:12 大小:101.04KB
返回 下载 相关 举报
操作系统课程设计磁盘调度先来先服务算法_第1页
第1页 / 共12页
操作系统课程设计磁盘调度先来先服务算法_第2页
第2页 / 共12页
操作系统课程设计磁盘调度先来先服务算法_第3页
第3页 / 共12页
操作系统课程设计磁盘调度先来先服务算法_第4页
第4页 / 共12页
操作系统课程设计磁盘调度先来先服务算法_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《操作系统课程设计磁盘调度先来先服务算法》由会员分享,可在线阅读,更多相关《操作系统课程设计磁盘调度先来先服务算法(12页珍藏版)》请在金锄头文库上搜索。

1、操作系统原理课程设计报告书题 目:磁盘调度先来先服务算法学 号:学生姓名:专 业:计算机科学与技术指导教师:2014 年 5 月 291功能描述31.1 功能实现思想31.2 功能详述32系统设计32.1 系统总体设计32.1.1 数据结构描述32.1.2 函数功能分析32.1.3 程序函数调用关系 42.2 系统详细设计42.2.1 设计任务42.2.2 设计要求42.2.3 算法思想42.2.4 FCFS算法流程图53系统实现54系统测试与分析64.1 系统运行结果 64.2 系统运行结果分析65总结7参考文献7附:源程序代码8教师评分表111功能描述根据进程请求访问磁盘的先后次序进行调度

2、,从而计算出磁头移动的总距离和平均寻道 长度。1.1 功能实现思想这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况 下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。1.2 功能详述根据进程请求访问磁盘的先后次序进行调度,首先根据提示输入总的磁道数、提出磁盘 I/O申请的进程数、开始磁道号和磁道序列。通过程序调用函数输出磁盘请求序列和磁盘扫 描序列,从而计算

3、出磁头移动的总距离和平均寻道长度。2系统设计2.1 系统总体设计2.1.1 数据结构描述void FCFS(intcidao口,intm)输入磁道号,按先来先服务的策略输出磁盘请求序列和磁盘扫描序列,求移动的总距离和平均寻道长度,输出移动的总磁道数和平均寻道长度。2.1.2 函数功能分析由于一开始要对键盘输入的磁道数和要使用的算法进行一次有效性的判断,我使用了 int decide(char str),如果输入的信息不是 09之间的数都将被判定为不合法,合法后才能进行下一步。判断完合法性后,要将输入的字符转化为数字,这里我用了inttrans(char str,int a)。先来先服务调度算法

4、我使用了void FCFS(int cidao,int m),该算法主要完成按原来键盘输入的次序来寻道,然后输出移动的总磁道数和平均寻道长度。2.1.3 程序函数调用关系主函数调用子函数,子函数也可下图为磁盘调度算法之先来先服务的函数之间的调用关系, 以调用子函数。图1程序函数调用关系2.2 系统详细设计2.2.1 设计任务本系统采用先来先服务算法FCFS来实现磁盘调度的模拟。2.2.2 设计要求根据磁盘调度算法的思想,编程实现求先来先服务算法的平均寻道长度。2.2.3 算法思想先来先服务的算法,即先来的请求先被响应。FCFS算法看起来是比较合理的算法,但是当请求频率过高的时候 FCFS算法的

5、响应时间就会大大的延长,这也是最基本的算法,直接实现的是由输入的顺序来顺序的执行。2.2.4 FCFS算法流程图图2 FCFS算法流程图3系统实现1)开发环境:Window72)开发工具和编程语言开发工具:Visual C+ 6.0编程语言:C+4系统测试与分析4.1 系统运行结果 G:FC F Debu qf cfs., ex exz 0束15A 输 新 F 3 请3S 18438 1841E0IbUi9 0 3 0i 8s8 8 5 ?4 一55 i11 列1道.:,为55to道1磁:SSIWb长 磁39的蓄某显忠道 入R入入军一请WS寻 编5篇输盘盘动均 青is1y_ n a图3运行结果

6、4.2 系统运行结果分析根据系统提示进行输入数据,如输入的总磁道数为9,磁盘I/O申请的进程数为9,输入的磁道系列为 55 58 39 18 90 160 150 38 184,输入开始磁道号:100 (当输入的数据类型有误是,会提醒重新输入),可以得到磁盘请求的序列和扫描的序列都为55 58 39 18 90160 150 38 184,也得到了移动的总磁道数为498和平均寻道长度为 55.3333。实验结果符合预想的结果。5总结通过本次课程设计, 我对磁盘的调度算法之先来先服务有了更深的了解,但在本次课程设计过程也遇到了 一些问题, 最后在同学的帮助下通过各种尝试,发现需将字符转化成数字,

7、这也算是一个不小的收获吧。总体而言,本次课设让我学会了很多, 也让我对以前学过的知识回顾了很多,本次课程设计涉及的算法并不难,都是些基本的算法,所以告诉我们要打好基础,学好数据结构也是很重要的。还有就是让我对操作系统的基础知识了解得更透彻了。 我深刻认识到算法的逻辑性对程序的重要影响,算法的准确度对程序运行结果的重要影响, 这对我以后在操作系统的学习中有极大帮助。参考文献【1】汤小丹 汤子瀛 计算机操作系统(第三版)西安电子科技大学出版社【2】付永华 王素立 薛海燕 C+高级语言程序设计中国电力出版社【3】张海云计算机操作系统原理实验指导书中国电力出版社附:源程序代码#include#incl

8、ude#include#includeusing namespace std;#define maxsize 100 /定义最大数组域int decide(char str) /判断输入数据是否有效int i=0;while(stri!=0) if(stri9) return 0; break; i+; return i; int trans(char str口,int a) /将字符串转换成数字int i;int sum=0;for(i=0;ia;i+) sum=sum+(int)(stri-0)*pow(10,a-i-1);return sum;void FCFS(int cidao口,i

9、nt m) /磁道号数组,个数为 mint beginnumber;/ 开始的磁道号int sum=0; /总寻道长度int j,i;int a; / 字符串个数char str100;float ave; /平均寻道长度B:coutstr; 对输入数据进行有效性判断a=decide(str);if(a=0)cout输入数据的类型错误,请重新输入!endl;goto B;/输入错误,跳转到 B,重新输入 elsebeginnumber=trans(str,a); /输入开始的磁道号sum+=abs(cidao0-beginnumber);cout磁盘请求序列为:;for( i=0;im;i+)

10、 /按先来先服务的策略输出磁盘请求序列coutcidaoi;coutendl;cout磁盘扫描序列为:;for( i=0;im;i+) /输出磁盘扫描序列coutcidaoi;for(i=0,j=1;jm;i+,j+) /求平均寻道长度sum+=abs(cidaoj-cidaoi);ave=(float)(sum)/(float)(m);coutendl;cout移动的总磁道数为:sumendl;cout平均寻道长度:aveendl; void main() coutendl;cout 计算机科学与技术endl;cout 111006333endl;cout 张愿丽endl;coutendl;

11、int a;int cidaomaxsize;int i=0,number;int n;coutn;coutendl;int m;coutm;coutendl;char str100;A:cout请输入磁道序列(0结束):str; 对输入数据进行有效性判断a=decide(str);if(a=0)cout输入数据的类型错误,请重新车入!str; /对输入数据进行有效性判断a=decide(str);if(a=0)cout输入数据的类型错误,请重新输入!endl;elsecidaoi=trans(str,a);i+;number=i-1; /要访问的磁道数cout您输入的磁道序列为:;for(i=0;inumber;i+)coutcidaoi ;/输出磁道序列coutendl;FCFS(cidao,number);教师评分表评分细则分数理解功能及基本原埋程度。(20分)报告文字、图、走格式规范、整齐程度。(15分)报告内容完整、逻辑性程度。(15分)程序代码是否有注释、是否有语法错误。(10分)程序运行是否正常。(20分)程序运行界面是否美观。(15分)是否有创新思考、做法等。(5分)其他说明:总分:成绩:指导老师签名:日期:12

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号