欢迎来到天天文库
浏览记录
ID:50865260
大小:97.00 KB
页数:8页
时间:2020-03-15
《操作系统实验六磁盘调度算法正确C++代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《操作系统》实验报告【实验题目】:磁盘调度算法【实验目的】通过这次实验,加深对磁盘调度算法的理解,进一步掌握先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法的实现方法。【实验内容】问题描述:设计程序模拟先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法的工作过程。假设有n个磁道号所组成的磁道访问序列,给定开始磁道号m和磁头移动的方向(正向或者反向),分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度。程序要求如下:1)利用先来先服务FCFS,最短寻道时
2、间优先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];//寻好序列doubleAverageDistance;//平均寻道长度booldirection;//方向true时为向外,false为向里intBeginNum;//开始磁道号intM=
4、500;//磁道数intN;//提出磁盘I/O申请的进程数intSortOrder[MaxNumber];//排序后的序列boolFinished[MaxNumber];voidInith(){cout<<"请输入提出磁盘I/O申请的进程数:";cin>>N;cout<<"请依次输入要访问的磁道号:";for(inti=0;i>TrackOrder[i];for(intj=0;j>BeginNum;for(intk=0;k5、k++)Finished[k]=false;for(intl=0;l=0;i--)for(intj=0;jSortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortO6、rder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;for(inti=0;i7、){inttemp,n;intA=M;temp=BeginNum;for(inti=0;i8、====SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort()
5、k++)Finished[k]=false;for(intl=0;l=0;i--)for(intj=0;jSortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortO
6、rder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;for(inti=0;i7、){inttemp,n;intA=M;temp=BeginNum;for(inti=0;i8、====SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort()
7、){inttemp,n;intA=M;temp=BeginNum;for(inti=0;i8、====SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort()
8、====SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort()
此文档下载收益归作者所有