如需源碼請(qǐng)關(guān)注并私信博主哦(本文實(shí)現(xiàn)了先來(lái)先服務(wù)算法(FCFS),最短尋道時(shí)間優(yōu)先算法(SSTF),掃描算法(SCAN),循環(huán)掃描算法(CSCAN))
【設(shè)計(jì)目的】
掌握文件的存取方法;掌握文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu);掌握存儲(chǔ)空間的分配和回收;掌握磁盤管理與調(diào)度。
【設(shè)計(jì)內(nèi)容】
用程序模擬磁盤的調(diào)度過(guò)程,并計(jì)算各磁盤調(diào)度算法包括先來(lái)先服務(wù)算法、最短尋道時(shí)間優(yōu)先算法、掃描算法和循環(huán)掃描算法的平均尋道長(zhǎng)度。
【設(shè)計(jì)步驟】
(篇幅有限,以SSTF算法為例)
static int[] a;
static Integer direction;
static String master;
static int first;
static int[] SSTF(int a[],int index){
if (a[index]==a[0]){
//不做變化
}else if (a[index]==a[a.length-1]){
//數(shù)組對(duì)調(diào)
for (int start = 0, end = a.length - 1; start< end; start++, end--) {
int temp = a[end];
a[end] = a[start];
a[start] = temp;
}
}else {
//int c[a.length-1];
int []c = Arrays.copyOf(a,a.length); //數(shù)組復(fù)制,不能直接復(fù)制?。?!
a[0] = c[index];
int left=index-1,right=index+1; //左右指針
for (int i = 1; i< a.length;i++) {
if ((c[index] - c[left]) >(c[right] - c[index])) { //index右移一位
if (c[right]< c[c.length - 1]) {
a[i] = c[right];
index = right;
right++;
} else {
a[i] = c[c.length - 1]; //到右端點(diǎn)又變成SCAN
for (int k = 1; c[left] >c[0]; k++) {
a[i + k] = c[left];
left--;
}
break;
}
} else {
if (c[left] >c[0]) {
a[i] = c[left];
index = left;
left--;
}else{
a[i] = c[0]; //到左端點(diǎn)又變成SCAN
for (int k = 1; c[right]< c[c.length - 1]; k++) {
a[i + k] = c[right];
right++;
}
break;
}
}
}
}
return a;
}
以SSTF為例:
磁道訪問(wèn)序列: 55 58 39 18 90 160 150 38 184
預(yù)期輸出:100 ?90 ?58 ?55 ?39 ?38 ?18 ?150 ?160 ?184
測(cè)試結(jié)果
主界面
運(yùn)行效果?
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧