1. 程式人生 > >磁軌管理:先來先服務(FCFS)

磁軌管理:先來先服務(FCFS)

先來先服務:就是將申請磁碟服務的程序按先後順序排隊,每次排程選擇位於隊首的程序執行。假定當前磁頭處於第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;
	
}