#include <bits/stdc++.h>
using namespace std;
#define max_num 9
int sort_cidao[max_num]={0};//磁道请求序列
int flag1=0,flag2=0;//记录磁道移动的距离
int count1=0;
void init_cidao(){
for(int i=0;i<max_num;i++){
sort_cidao[i]=rand()%200;
}
for(int i=0;i<max_num;i++){
cout<<sort_cidao[i]<<' ';
}
cout<<endl;
sort(sort_cidao,sort_cidao+max_num);
for(int i=0;i<max_num;i++){
cout<<sort_cidao[i]<<' ';
}
cout<<endl;
}
int main(){
init_cidao();
int t_flag=100;//用来标记磁道初始的位置 假设为100
int index_flag=0;//磁道号增加方向上最近的一个磁道
int i_flag=0;//记录最近磁道序列所在的下标
int flag=0;
for(int i=0;i<max_num;i++){
if(t_flag<=sort_cidao[i]){
index_flag=sort_cidao[i];
i_flag=i;
flag=1;
break;
}
}
for(int i=i_flag;i<max_num-1;i++){
flag1+=sort_cidao[i+1]-sort_cidao[i];
}
flag1+=sort_cidao[i_flag]-t_flag;
flag2+=sort_cidao[max_num-1]-sort_cidao[i_flag-1];
for(int i=i_flag-1;i>=0;i--){
flag2+=sort_cidao[i]-sort_cidao[i-1];
}
//计算平均寻道长度
int total=0;
double re=0;
total=flag1+flag2;
re=total/(max_num*1.0);
cout<<"平均寻道长度:"<<re<<endl;
return 0;
}
操作系统实验四:磁盘调度算法(scan电梯算法)c++实现
于 2023-07-09 13:14:16 首次发布