磁軌管理:先來先服務(FCFS)
阿新 • • 發佈:2018-12-26
先來先服務:就是將申請磁碟服務的程序按先後順序排隊,每次排程選擇位於隊首的程序執行。假定當前磁頭處於第10道,等待服務的程序有七個,它們請求的磁軌順序是8、5、24、6、18、36、16。可以計算所有程序執行後磁頭一共移動的磁軌數:
2+3+19+18+13+18+20=93
下面的程式是隨機產生數字的,產生多少個有自己輸入的數字決定。
#include<iostream>//使用結構化 #include<time.h> #include<stdlib.h> using namespace std; #define Min //巨集定義 #define Max 1//最大值最小值範圍 int main() { cout<<"磁軌個數:"; int N; cin>>N; int arr[N], m, min = 0, max = 100, i; srand((unsigned)time(0)); time(0);//time(NULL) for (i = 0; i<N; i++) { m = min + rand() % (max + min + 1); //隨機產生100以內的隨機數 arr[i] = m; //將隨機數逐個賦值給陣列arr[] } cout<<"磁軌訪問序列:"; for (i = 0; i < N; i++)//輸出陣列 { cout <<arr[i] << " "; } cout<<'\n'; cout<<"請輸入100以內開始的磁軌號:" ; int j; cin>>j; int sum=0; for(int k=0;k<N-1;k++) { sum+=abs(arr[k+1]-arr[k]); } double totalstack=arr[0]-j+sum;//移動的磁軌總數 double avgstack=totalstack/N;// 平均尋道總數 cout<<"移動的磁軌總數="<<totalstack<<endl; cout<<"平均尋道總數="<<avgstack<<endl; }