ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:111.35KB ,
资源ID:21254999      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21254999.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(磁盘调度算法的实现Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

磁盘调度算法的实现Word文档下载推荐.docx

1、 要求设计主界面能灵活选择某算法,且以下算法都要实现。 (1)先来先服务算法(FCFS) (2)最短寻道时间优先算法(SSTF) (3)扫描算法(SCAN) (4)循环扫描算法(CSCAN) 三、 设计步骤(1)需求分析: 本设计中可在运行时随机产生一个请求序列,先把序列排序,以方便找 到下一个要寻找的磁道。要求用户选择磁头移动方向,向里和向外移动用1和0表示,若输入值不为0或1,则报错。选择某种调度算法后,要求显示调度顺序和移动的总磁道数。(2)详细设计:1.先来先服务算法(FCFS)2.最短寻道时间算法(SSTF)3.扫描算法(SCAN)4.循环扫描算法(CSCAN) (3)算法及测试结果

2、:1.先来先服务算法(FCFS)及测试结果2.最短寻道时间算法(SSTF)及测试结果3.循环扫描算法(SCAN)及测试结果4.循环扫描算法(CSCAN)测试及结果四、设计总结: 此次设计基本完成了本实验所规定的功能,但是还不够完善,很多东西 做的不够好,程序不够完善和严谨。由于我的编程基础不是很好,其中不免会 有些纰 漏,出错处理不够完善等多方面问题,这些都有进一步改善。 在编程设计过程中,由于不知道怎产生不相等的随机数,以及后来的扫描算法和循环扫描算法计算移动总的磁道数都遇到了一点问题,通过上网查询,最后在老师以及同学的指导下很快完成了设计。此次课程设计中我学到了很多东西,无论在理论上还是实

3、践中,都得到不少的提高,这对于我以后的工作和学习都是一种巨大的帮助!5、参考资料:计算机操作系统(第三版)西安电子科技大学出版社6、源码#define _CRT_SECURE_NO_WARNINGS#includestdlib.htime.hWindows.h/*先来先服务 (FCFS)*/void FCFS(int a, int n) int sum = 0, i, j, now; printf(请输入当前磁道号:n); scanf(%d, &now); sum += abs(a0 - now);从当前位置到第1个磁道移动的磁道数:t%dn, sum); for (i = 0, j = 1;

4、 j n; j+, i+) sum += abs(aj - ai); printf(从第%d磁道到第%d磁道移动的磁道数:, i + 1, j + 1, abs(aj - ai); 移动的总磁道数:%dn移动的平均磁道数:%.2lfn, 1.0*sum / n);请再次输入你想使用的方法:/*最短寻道时间函数SSTF*/void SSTF(int a, int n) int temp; int now; int sum = 0, i, j, k=0; /冒泡排序法对磁道号进行排序排序后的磁道分布: for (i = 0; i aj) temp = ai; ai = aj; aj = temp;

5、 %d t, ai); if (i % 10 = 9) printf(请输入当前磁道号: if (a0 =now)当前访问的磁道%dn, a0); for (i = 0; n-1;当前访问的磁道:,ai+1); sum = an - 1 - now; else if (an - 1 = now), an-1); for (j=n-1; in-1;j-),aj-1); sum = now-a0; else while (ak =0)&(k= ak - now) printf(, ak); sum += ak - now; now = ak; k+; else, aj); sum += now -

6、 aj; now = aj; j-; if (k n-1) for (int t = j; t 0; t-) i+; if (t = j) printf(,aj); else, at+1); sum += an - 1 - a0; if (j 0) for (int t = k; t ,aj - 1); if (d = 1) int i = 0; sum += at - now; now = at; for (int t = 0; k; sum += an-1 - a0+aj-a0; else if (d = 0) sum += now - at; for (int t = n-1;=k; s

7、um += an - 1 - a0+an-1-ak; else/* 主函数*/void main() int n;/磁道数 int control=1;/控制处理的方式请输入要处理的磁道数:,&n); int c1000;随机生成磁道号: srand(unsigned)time(NULL); /srand(unsigned)time(NULL); for (int i = 0; ci = (rand() % 100) + 1;, ci); if (i % 10 =9)n 数据生成成功!*n- -n-算法选择-n- 1.先来先服务算法 -n- 2.最短寻道时间算法 -n- 3.扫描算法 -n- 4.循环扫描算法 -n- 0.退出程序 -n /*算法选择*/请输入你想使用的方法: while (control)control); switch (control) case 0: break; case 1: FCFS(c, n); case 2: SSTF(c, n); case 3: SCAN(c, n); case 4: CSCAN(c, n); default:选项错误!重新选择!程序退出成功,谢谢使用! system(pause

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1