如需源碼請(qǐng)關(guān)注并私信博主哦(本文實(shí)現(xiàn)了先來(lái)先服務(wù)算法(FCFS),最短尋道時(shí)間優(yōu)先算法(SSTF),掃描算法(SCAN),循環(huán)掃描算法(CSCAN))
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比汝南網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式汝南網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋汝南地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。【設(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)查看詳情吧