欢迎来到天天文库
浏览记录
ID:30245936
大小:100.00 KB
页数:8页
时间:2018-12-27
《操作系统实验六磁盘调度算法正确c++代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案《操作系统》实验报告【实验题目】:磁盘调度算法【实验目的】通过这次实验,加深对磁盘调度算法的理解,进一步掌握先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法的实现方法。【实验内容】问题描述:设计程序模拟先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法的工作过程。假设有n个磁道号所组成的磁道访问序列,给定开始磁道号m和磁头移动的方向(正向或者反向),分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度。
2、程序要求如下:1)利用先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法模拟磁道访问过程。2)模拟四种算法的磁道访问过程,给出每个磁道访问的磁头移动距离。3)输入:磁道个数n和磁道访问序列,开始磁道号m和磁头移动方向(对SCAN和循环SCAN算法有效),算法选择1-FCFS,2-SSTF,3-SCAN,4-循环SCAN。4)输出:每种算法的平均寻道长度。精彩文档实用标准文案实验要求:1)上机前认真复习磁盘调度算法,熟悉FCFS,SSTF,SCAN和循环SCAN算法的过程;2)上机时
3、独立编程、调试程序;3)根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行结果截图)。实验代码:#include#include#includeusingnamespacestd;constintMaxNumber=100;intTrackOrder[MaxNumber];intMoveDistance[MaxNumber];//移动距离intFindOrder[MaxNumber];//寻好序列doubleAverage
4、Distance;//平均寻道长度booldirection;//方向true时为向外,false为向里intBeginNum;//开始磁道号intM=500;//磁道数intN;//提出磁盘I/O申请的进程数intSortOrder[MaxNumber];//排序后的序列boolFinished[MaxNumber];voidInith(){cout<<"请输入提出磁盘I/O申请的进程数:";cin>>N;cout<<"请依次输入要访问的磁道号:";for(inti=0;i>Tr
5、ackOrder[i];for(intj=0;j>BeginNum;for(intk=0;k6、;for(inti=N-1;i>=0;i--)for(intj=0;jSortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortOrder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;for(inti=0;i7、MoveDistance[i]=abs(TrackOrder[i]-temp);temp=TrackOrder[i];FindOrder[i]=TrackOrder[i];}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;for(inti=0;i8、)
6、;for(inti=N-1;i>=0;i--)for(intj=0;jSortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortOrder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;for(inti=0;i7、MoveDistance[i]=abs(TrackOrder[i]-temp);temp=TrackOrder[i];FindOrder[i]=TrackOrder[i];}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;for(inti=0;i8、)
7、MoveDistance[i]=abs(TrackOrder[i]-temp);temp=TrackOrder[i];FindOrder[i]=TrackOrder[i];}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;for(inti=0;i8、)
8、)
此文档下载收益归作者所有