欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    操作系统课程设计磁盘调度先来先服务算法(共12页).docx

    • 资源ID:14427967       资源大小:105.20KB        全文页数:12页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统课程设计磁盘调度先来先服务算法(共12页).docx

    精选优质文档-倾情为你奉上 操作系统原理课 程 设 计 报 告 书题 目: 磁盘调度先来先服务算法学 号: 学生姓名: 专 业: 计算机科学与技术 指导教师: 2014 年 5 月 29目 录1 功能描述 根据进程请求访问磁盘的先后次序进行调度,从而计算出磁头移动的总距离和平均寻道长度。 功能实现思想 这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。 功能详述 根据进程请求访问磁盘的先后次序进行调度,首先根据提示输入总的磁道数、提出磁盘I/O申请的进程数、开始磁道号和磁道序列。通过程序调用函数输出磁盘请求序列和磁盘扫描序列,从而计算出磁头移动的总距离和平均寻道长度。2 系统设计 系统总体设计 数据结构描述void?FCFS(int?cidao,int?m)输入磁道号,按先来先服务的策略输出磁盘请求序列和磁盘扫描序列,求移动的总距离和平均寻道长度,输出移动的总磁道数和平均寻道长度。 函数功能分析 由于一开始要对键盘输入的磁道数和要使用的算法进行一次有效性的判断,我使用了int?decide(char?str),如果输入的信息不是09之间的数都将被判定为不合法,合法后才能进行下一步。判断完合法性后,要将输入的字符转化为数字,这里我用了int trans(char str,int a) 。先来先服务调度算法我使用了void?FCFS(int?cidao,int?m),该算法主要完成按原来键盘输入的次序来寻道,然后输出移动的总磁道数和平均寻道长度。 程序函数调用关系下图为磁盘调度算法之先来先服务的函数之间的调用关系,主函数调用子函数,子函数也可以调用子函数。 main() trans() decide() FCFS() 图1 程序函数调用关系 系统详细设计 设计任务 本系统采用先来先服务算法FCFS,来实现磁盘调度的模拟。 设计要求 根据磁盘调度算法的思想,编程实现求先来先服务算法的平均寻道长度。 算法思想先来先服务的算法,即先来的请求先被响应。FCFS算法看起来是比较合理的算法,但是当请求频率过高的时候FCFS算法的响应时间就会大大的延长,这也是最基本的算法,直接实现的是由输入的顺序来顺序的执行。? FCFS 算法流程图 开始 输入总的磁道数 输入提出磁盘I/O申请的进程数 输入磁道序列(以0结束) 输入开始的磁道号输出磁盘请求序列和扫描序列 求移动的总的磁道数 求平均寻道长度 结束 图2 FCFS算法流程图3 系统实现1)开发环境:Window72)开发工具和编程语言 开发工具:Visual C+ 编程语言:C+4 系统测试与分析 系统运行结果 图3 运行结果 系统运行结果分析 根据系统提示进行输入数据,如输入的总磁道数为9,磁盘I/O申请的进程数为9,输入的磁道系列为55 58 39 18 90 160 150 38 184 ,输入开始磁道号:100(当输入的数据类型有误是,会提醒重新输入),可以得到磁盘请求的序列和扫描的序列都为55 58 39 18 90 160 150 38 184,也得到了移动的总磁道数为498和平均寻道长度为 。实验结果符合预想的结果。 ?5 总结通过本次课程设计,我对磁盘的调度算法之先来先服务有了更深的了解,但在本次课程设计过程也遇到了一些问题,最后在同学的帮助下通过各种尝试,发现需将字符转化成数字,这也算是一个不小的收获吧。总体而言,本次课设让我学会了很多,也让我对以前学过的知识回顾了很多,本次课程设计涉及的算法并不难,都是些基本的算法,所以告诉我们要打好基础,学好数据结构也是很重要的。还有就是让我对操作系统的基础知识了解得更透彻了。我深刻认识到算法的逻辑性对程序的重要影响,算法的准确度对程序运行结果的重要影响,这对我以后在操作系统的学习中有极大帮助。参考文献【1】汤小丹 汤子瀛 计算机操作系统(第三版)西安电子科技大学出版社 【2】付永华 王素立 薛海燕 C+高级语言程序设计 中国电力出版社【3】张海云 计算机操作系统原理实验指导书 中国电力出版社附:源程序代码#include<>#include<>#include<>#include<iostream>using namespace std;#define maxsize 100 /定义最大数组域int decide(char str) /判断输入数据是否有效 int i=0;while(stri!='0') if(stri<'0'|stri>'9')return 0;break;i+;return i;int trans(char str,int a) /将字符串转换成数字int i;int sum=0;for(i=0;i<a;i+)sum=sum+(int)(stri-'0')*pow(10,a-i-1);return sum;void FCFS(int cidao,int m) /磁道号数组,个数为m int beginnumber;/开始的磁道号 int sum=0; /总寻道长度 int j,i;int a; /字符串个数char str100; float ave; /平均寻道长度B:cout<<"请输入开始的磁道号:" cin>>str; /对输入数据进行有效性判断 a=decide(str); if(a=0) cout<<"输入数据的类型错误,请重新输入!"<<endl; goto B;/输入错误,跳转到B,重新输入 else beginnumber=trans(str,a); /输入开始的磁道号 sum+=abs(cidao0-beginnumber);cout<<"磁盘请求序列为:" for( i=0;i<m;i+) /按先来先服务的策略输出磁盘请求序列 cout<<cidaoi<<" " cout<<endl; cout<<"磁盘扫描序列为:" for( i=0;i<m;i+) /输出磁盘扫描序列 cout<<cidaoi<<" " for(i=0,j=1;j<m;i+,j+) /求平均寻道长度 sum+=abs(cidaoj-cidaoi); ave=(float)(sum)/(float)(m); cout<<endl;cout<<"移动的总磁道数为:"<<sum<<endl; cout<<"平均寻道长度:"<<ave<<endl;void main() cout<<"-"<<endl; cout<<"计算机科学与技术"<<endl; cout<<" 3"<<endl; cout<<" 张愿丽"<<endl; cout<<"-"<<endl; int a; int cidaomaxsize; int i=0,number; int n; cout<<"请输入总磁道数:" cin>>n; cout<<endl; int m; cout<<"请输入提出磁盘I/O申请的进程数:" cin>>m; cout<<endl; char str100; A:cout<<"请输入磁道序列(0结束):"<<endl; cin>>str; /对输入数据进行有效性判断 a=decide(str); if(a=0) cout<<"输入数据的类型错误,请重新输入!"<<endl; goto A;/输入错误,跳转到A,重新输入 else cidaoi=trans(str,a); i+; while(cidaoi-1!=0) cin>>str; /对输入数据进行有效性判断 a=decide(str); if(a=0) cout<<"输入数据的类型错误,请重新输入!"<<endl; else cidaoi=trans(str,a); i+; number=i-1; /要访问的磁道数 cout<<"您输入的磁道序列为:" for(i=0;i<number;i+) cout<<cidaoi<<" " /输出磁道序列 cout<<endl; FCFS(cidao,number); 专心-专注-专业教师评分表评分细则分数理解功能及基本原理程度。(20分)报告文字、图、表格式规范、整齐程度。(15分)报告内容完整、逻辑性程度。(15分)程序代码是否有注释、是否有语法错误。(10分)程序运行是否正常。(20分)程序运行界面是否美观。(15分)是否有创新思考、做法等。(5分)其他说明:总分:成绩:指导老师签名:日期:

    注意事项

    本文(操作系统课程设计磁盘调度先来先服务算法(共12页).docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开