操作系统实验六磁盘调度算法正确C++代码.docx
《操作系统实验六磁盘调度算法正确C++代码.docx》由会员分享,可在线阅读,更多相关《操作系统实验六磁盘调度算法正确C++代码.docx(5页珍藏版)》请在三一办公上搜索。
1、操作系统实验六磁盘调度算法正确C+代码操作系统实验报告 :磁盘调度算法 通过这次实验,加深对磁盘调度算法的理解,进一步掌握先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法的实现方法。 问题描述: 设计程序模拟先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法的工作过程。假设有n个磁道号所组成的磁道访问序列,给定开始磁道号m和磁头移动的方向,分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度。 程序要求如下: 1)利用先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法模拟磁道访问过程
2、。 2)模拟四种算法的磁道访问过程,给出每个磁道访问的磁头移动距离。 3)输入:磁道个数n和磁道访问序列,开始磁道号m和磁头移动方向,算法选择1-FCFS,2-SSTF,3-SCAN,4-循环SCAN。 4)输出:每种算法的平均寻道长度。 实验要求: 1) 上机前认真复习磁盘调度算法,熟悉FCFS,SSTF,SCAN和循环SCAN算法的过程; 2) 上机时独立编程、调试程序; 3) 根据具体实验要求,完成好实验报告。 实验代码: #include #include #include using namespace std; const int MaxNumber=100; int TrackO
3、rderMaxNumber; int MoveDistanceMaxNumber;/移动距离 int FindOrderMaxNumber;/寻好序列 double AverageDistance;/平均寻道长度 bool direction;/方向 true时为向外,false为向里 int BeginNum;/开始磁道号 int M=500;/磁道数 int N;/提出磁盘I/O申请的进程数 int SortOrderMaxNumber;/排序后的序列 bool FinishedMaxNumber; void Inith coutN; cout请依次输入要访问的磁道号: ; for(int
4、 i=0;iTrackOrderi; for(int j=0;jN;j+) MoveDistancej=0; coutBeginNum; for(int k=0;kN;k+) Finishedk=false; for(int l=0;l=0;i-) for(int j=0;jSortOrderj+1) temp=SortOrderj; SortOrderj=SortOrderj+1; SortOrderj+1=temp; /=FCFS,先来先服务= void FCFS int temp; temp=BeginNum; for(int i=0;iN;i+) MoveDistancei=abs(T
5、rackOrderi-temp); temp=TrackOrderi; FindOrderi=TrackOrderi; /=SSTF,最短寻道法= void SSTF int temp,n; int A=M; temp=BeginNum; for(int i=0;iN;i+) for(int j=0;jN;j+) if(abs(TrackOrderj-temp)A&Finishedj=false) A=abs(TrackOrderj-temp); n=j; else continue; Finishedn=true; MoveDistancei=A; temp=TrackOrdern; A=M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 磁盘 调度 算法 正确 C+ 代码
链接地址:https://www.31ppt.com/p-3549668.html