本課設主要實現fifo演算法和lru演算法,雖然實現了功能,但是個人感覺**可以優化,而且採用的主存塊數是3,如果主存塊數修改了,那麼**也需要修改,這是我課設不足之處,望大神來指教!
下面是我的**
#include #include #define page_num 3 //主存塊數
#define serial_num 12 //訪問序列的次數
int serial[serial_num] = ; //初始化訪問序列
int page_num[page_num] = ; //初始化主存塊中的序列
void fifo()
for(a = 0; a < page_num; a++)
/*演算法模擬*/
for(i = 0; i < serial_num; i++)
}//三個主存塊有空
while(flag != 0)
}if(page_temp[k] != serial_temp[i])
break;
}//三個主存塊都滿
if(flag == 0)
}if(c != 222)
}for(m = 0; m < page_num; m++) //輸出
if(c == 222 || c != 10)
else
printf(" 缺頁次數為%d次!\n",count);
}}void lru()
for(a = 0; a < page_num; a++)
/*演算法模擬*/
for(i = 0; i < serial_num; i++)
}//主存塊有空位
while(flag != 0)
}count_1= 3 - flag;
if(10 == c && count_1 == 0)
if(10 == c && count_1 == 2)
if(10 == c && count_1 ==1)
if(c !=10)
if(count_1 == 2)}}
break;
}//滿
if(0 == flag)
}//無重複
if(c != 222)
//第乙個重複
if(0 == cc)
//第2個重複
if(1 == cc)
//第三個重複
if(2 == cc)
}for(m = 0; m < page_num; m++) //輸出
if(c == 222 || c != 10 || 1 == c || 2 == c)
else
printf("缺頁次數為%d次!\n",count);
}}void inte***ce() //介面函式
case 2:
case 3:
default:}}
}int main()
作業系統頁面置換演算法模擬
一 實驗目的通過模擬實現請求頁式儲存管理的幾種基本頁面置換演算法,了解虛擬儲存技術的特點,掌握虛擬儲存請求頁式儲存管理中幾種基本頁面置換演算法的基本思想和實現過程,並比較它們的效率。二 實驗內容 設計乙個虛擬儲存區和記憶體工作區,並使用下述演算法計算訪問命中率。1 最佳淘汰演算法 opt 2 先進先...
作業系統 頁面置換演算法
1 最佳頁面置換演算法 opt 其所選擇的被淘汰頁面,將是以後永不再用的,或許是在最長 未來 時間內不再被訪問的頁面。最佳置換演算法是一種理想化的演算法,具有最好的效能,但難於實現。先進先出置換演算法最直觀,但可能性能最差,故應用極少。優點 保證獲得最低的缺頁率 缺點 無法預知乙個程序在記憶體的若干...
作業系統 頁面置換演算法
我在很多地方遇到了這個問題,所以想寫來看看,避免在以後換回再次的遇到這個問題,就在今天進行深入的了解下這個問題,我先它會對我以後的生活工作會有很大的幫助的。在位址對映過程中,若在頁面中發現所要訪問的頁面不再記憶體中,則產生缺頁中斷。當發生缺頁中斷時作業系統必須在記憶體中選擇乙個頁面將其移出記憶體,以...