欢迎来到天天文库
浏览记录
ID:56344116
大小:31.13 KB
页数:8页
时间:2020-06-12
《SCAN 磁盘调度模拟实现.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、信息科学与电气工程学院上机实验报告学号:姓名:班级:课程:操作系统指导教师:时间:2017年11月29日SCAN磁盘调度模拟实现一.实验目的1)理解磁盘调度相关理论;2)掌握多种磁盘调度算法;3)彻底掌握SCAN磁盘调度算法。二、实验内容本实验主要针对操作系统中磁盘调度相关理论进行实验。要求实验者设计一个程序,该程序模拟操作系统的磁盘调度,调度采用SCAN算法。1)设计磁盘调度请求队列(请求数≥10);2)设定单位寻道时间;3)可动态修改发出磁盘请求的时间和磁道号;4)实现SCAN磁盘调度算法;5)实现动态调度并输出调度序列。#include"stdafx.h"
2、#include#include#include#include#definemaxsize1000/*********************判断输入数据是否有效**************************/intdecide(charstr[])//判断输入数据是否有效{inti=0;while(str[i]!=' '){if(str[i]<'0'
3、
4、str[i]>'9'){return0;break;}i++;}returni;}/******************将
5、字符串转换成数字***********************/inttrans(charstr[],inta)//将字符串转换成数字{inti;intsum=0;for(i=0;i6、or(j=i+1;jcidao[j]){temp=cidao[i];cidao[i]=cidao[j];cidao[j]=temp;}}cout<<"排序后的磁盘序列为";for(i=0;i7、的移动方向{intk=1;intnow,l,r,d;inti,j,sum=0;inta;charstr[100];floatave;cidao=bubble(cidao,m);//调用冒泡排序算法排序cout<<"请输入当前的磁道号";D:cin>>str;//对输入数据进行有效性判断a=decide(str);if(a==0){cout<<"输入数据的类型错误,请重新输入"<8、各//请求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=m-1;i>=0;i--)cout<=now)//若当前磁道号小于请求序列中最小者则直接由内向外依次给予各请//求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=0;icidao[0]&&now9、大者{while(cidao[k]>d;if(d==0)//选择移动臂方向向内则先向内扫描{cout<<"磁盘扫描序列为";for(j=l;j>=0;j--){cout<10、//选择移动臂方向向外
6、or(j=i+1;jcidao[j]){temp=cidao[i];cidao[i]=cidao[j];cidao[j]=temp;}}cout<<"排序后的磁盘序列为";for(i=0;i7、的移动方向{intk=1;intnow,l,r,d;inti,j,sum=0;inta;charstr[100];floatave;cidao=bubble(cidao,m);//调用冒泡排序算法排序cout<<"请输入当前的磁道号";D:cin>>str;//对输入数据进行有效性判断a=decide(str);if(a==0){cout<<"输入数据的类型错误,请重新输入"<8、各//请求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=m-1;i>=0;i--)cout<=now)//若当前磁道号小于请求序列中最小者则直接由内向外依次给予各请//求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=0;icidao[0]&&now9、大者{while(cidao[k]>d;if(d==0)//选择移动臂方向向内则先向内扫描{cout<<"磁盘扫描序列为";for(j=l;j>=0;j--){cout<10、//选择移动臂方向向外
7、的移动方向{intk=1;intnow,l,r,d;inti,j,sum=0;inta;charstr[100];floatave;cidao=bubble(cidao,m);//调用冒泡排序算法排序cout<<"请输入当前的磁道号";D:cin>>str;//对输入数据进行有效性判断a=decide(str);if(a==0){cout<<"输入数据的类型错误,请重新输入"<8、各//请求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=m-1;i>=0;i--)cout<=now)//若当前磁道号小于请求序列中最小者则直接由内向外依次给予各请//求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=0;icidao[0]&&now9、大者{while(cidao[k]>d;if(d==0)//选择移动臂方向向内则先向内扫描{cout<<"磁盘扫描序列为";for(j=l;j>=0;j--){cout<10、//选择移动臂方向向外
8、各//请求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=m-1;i>=0;i--)cout<=now)//若当前磁道号小于请求序列中最小者则直接由内向外依次给予各请//求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=0;icidao[0]&&now9、大者{while(cidao[k]>d;if(d==0)//选择移动臂方向向内则先向内扫描{cout<<"磁盘扫描序列为";for(j=l;j>=0;j--){cout<10、//选择移动臂方向向外
9、大者{while(cidao[k]>d;if(d==0)//选择移动臂方向向内则先向内扫描{cout<<"磁盘扫描序列为";for(j=l;j>=0;j--){cout<10、//选择移动臂方向向外
10、//选择移动臂方向向外
此文档下载收益归作者所有