欢迎来到天天文库
浏览记录
ID:58651732
大小:158.01 KB
页数:18页
时间:2020-10-16
《磁盘调度算法实验设计报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验五磁盘调度算法班级:xxxxxxxxxxxx姓名:xxxxxxxx学号:xxxxxxxxxxxxxxxxxxxxx上级日期:2018年11月成绩:___________________________一、实验目的:通过磁盘调度算法设计一个磁盘调度模拟系统,从而使磁盘调度算法更加形象化,容易理解,使磁盘调度的特点更简单明了,加深对先来先服务算法、最短寻道时间优先算法、扫描算法以及循环扫描算法等磁盘调度算法的理解二、实验内容1、程序流程图磁盘调度模拟系统模块调用关系图退出先来先服务算法最短寻道时间优先扫描算法循环扫描算法模块程序流程图输入磁道号求平均寻道长度输出移动的平均磁道数按输
2、入顺序将磁道序列输出开始结束FCFS算法(先来先服务)流程图求平均寻道长度选择与当前磁道距离最近的磁道进行扫描移动到最小(大)号,改向外(内)移动扫描未扫描的磁道输出移动的平均磁道数输出排好序的磁道序列判断当前磁头在序列中的位置结束开始输入磁道号使用冒泡法从小到大排序输入当前磁道号SSTF(最短寻道时间优先算法)流程图求平均寻道长度选择移动臂移动方向,开始扫描移动到最小(大)号,改向外(内)移动扫描未扫描的磁道输出移动的平均磁道数输出排好序的磁道序列开始结束输入磁道号使用冒泡法从小到大排序输入当前磁道号判断当前磁头在序列中的位置SCAN算法(扫描算法)流程图求平均寻道长度扫描到最大
3、号后,直接移动到最小号从内向外扫描未扫描的磁道输出移动的平均磁道数输出排好序的磁道序列判断当前磁头在序列中的位置规定移动臂单向反复的从内向外扫描开始结束输入磁道号使用冒泡法从小到大排序输入当前磁道号CSCAN算法(循环扫描算法)流程图2、程序源码1.#include 2.#include 3.#include 4.#include 5.using namespace std; 6.#define maxsize 1000 7./*********************判断输入数据是否有效****
4、**********************/ 8.int decide(char str[]) //判断输入数据是否有效 9.{ 10. int i = 0; 11. while (str[i] != ' ') 12. { 13. if (str[i]<'0'
5、
6、 str[i]>'9') 14. { 15. return 0; 16. break; 17. } 18. i++; 19. } 20. return i;
7、21.} 22./******************将字符串转换成数字***********************/ 23.int trans(char str[], int a) //将字符串转换成数字 24.{ 25. int i; 26. int sum = 0; 27. for (i = 0; i8、33./*********************冒泡排序算法**************************/ 34.int *bubble(int cidao[], int m) 35.{ 36. int i, j; 37. int temp; 38. for (i = 0; icidao[j]) 42. 9、{ 1. temp = cidao[i]; 2. cidao[i] = cidao[j]; 3. cidao[j] = temp; 4. } 5. } 6. cout << "排序后的磁盘序列为:"; 7. for (i = 0; i
8、33./*********************冒泡排序算法**************************/ 34.int *bubble(int cidao[], int m) 35.{ 36. int i, j; 37. int temp; 38. for (i = 0; icidao[j]) 42.
9、{ 1. temp = cidao[i]; 2. cidao[i] = cidao[j]; 3. cidao[j] = temp; 4. } 5. } 6. cout << "排序后的磁盘序列为:"; 7. for (i = 0; i
此文档下载收益归作者所有