模擬磁碟排程演算法 c

2022-07-26 01:48:11 字數 2199 閱讀 2415

測試結果

流程圖

**實現:

#include#include 

#define inf 999999typedef

struct

seqlist;

/**********sstf演算法********

*/void sstf(int n,seqlist *l,int

temp)

}l[k].time=false

; sum+=min;

printf(

"|%d\t\t|%d\t\t|\n

",l[k].pid,min);

temp=l[k].pid;

m--;

min=inf;

}printf(

"---------------------------------\n");

printf(

"平均尋道長度為:%0.2lf\n

",sum/(double

)n);}/*

*********scan演算法********

*/void sort(int *a,int

n) }}

}void scan(int n,seqlist *l,int

temp)

sort(a,k1);

sort(b,k2);

printf(

"---------------------------------\n");

printf(

"| 下乙個磁軌號 | 移動的磁軌數 |\n");

printf(

"---------------------------------\n");

for(i=0;i)

for(i=k1-1;i>=0;i--)

printf(

"---------------------------------\n");

printf(

"平均尋道長度為:%0.2lf\n

",sum/(double

)n);}/*

*********cscan演算法********

*/void cscan(int n,seqlist *l,int

temp)

sort(a,k1);

sort(b,k2);

printf(

"---------------------------------\n");

printf(

"| 下乙個磁軌號 | 移動的磁軌數 |\n");

printf(

"---------------------------------\n");

for(i=0;i)

for(i=0;i)

printf(

"---------------------------------\n");

printf(

"平均尋道長度為:%0.2lf\n

", sum/(double

)n);

}int

main()

printf(

"當前磁頭所在位置為%d\n

",temp);

sstf(n,l1,temp);

break

; }

case2:

printf(

"當前磁頭所在位置為%d\n

",temp);

scan(n,l2,temp);

break

; }

case3:

printf(

"當前磁頭所在位置為%d\n

",temp);

cscan(n,l3,temp);

break

; }

default:return0;} }

while(k!=0

);

return0;

}

C語言 磁碟排程模擬

created by herbert on nov 24,2017 c語言 磁碟排程模擬 什麼是磁碟排程?磁碟排程指待的是訪問的磁軌時,當前磁頭訪問的方式 也指待是演算法 磁碟的訪問也是一種i o裝置的訪問,在資料訪問中需要知道如何去訪問從記憶體以及i o傳輸過來的資料。怎麼樣去儲存或者是讀取在磁碟...

磁碟排程演算法

磁碟排程在多道程式設計的計算機系統中,各個程序可能會不斷提出不同的對磁碟進行讀 寫操作的請求。由於有時候這些程序的傳送請求的速度比磁碟響應的還要快,因此我們有必要為每個磁碟裝置建立乙個等待佇列,常用的磁碟排程演算法有以下四種 先來先服務演算法 fcfs 最短尋道時間優先演算法 sstf 掃瞄演算法 ...

磁碟排程演算法

一次磁碟讀寫操作的時間由尋找 尋道 時間 延遲時間和傳輸時間決定 1 尋找時間ts 活動頭磁碟在讀寫資訊前,將磁頭移動到指定磁軌所需要的時間。這個時間除跨越n條磁軌的時間外,還包括啟動磁臂的時間s,即 ts m n s。式中,m是與磁碟驅動器速度有關的常數,約為0.2ms,磁臂的啟動時間約為2ms。...