測試結果
流程圖
**實現:
#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。...