freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)原理課程設(shè)計-模擬存儲器管理(編輯修改稿)

2024-08-30 00:10 本頁面
 

【文章內(nèi)容簡介】 在未來最近一段時間不會被使用,然后我就用下一個頁面序號替換內(nèi)存中的在以后最長時間不被使用的頁面。 FIFO 算法: 這個算法是最容易實現(xiàn)的,思路很簡單。就是逐個替換內(nèi)存塊中頁面,以實現(xiàn)先進先出的功能。如果下一個要執(zhí)行的頁面已在內(nèi)存中,則無需置換,如果不在內(nèi) 存中,則要考慮置換了。我用 m 標記將要唄置換的物理塊序號,該物理塊被替換后, m+1,這樣下一次替換的就是下一個物理塊,就這樣,先進來的總是先 12 出去。 LRU 算法 LRU 算法,我感覺也蠻有意思的,我一開始想到的是把進入內(nèi)存的頁面都標記為 1,出內(nèi)存的和不在內(nèi)存的我都標記為 0,然后下一次需要替換的時候,我就從前往后查找為 1 的頁面,首先找到的肯定是最近最久未使用的,然后把下一個要執(zhí)行的頁面與此頁面做置換。然后我又想到了一個方法,就是每執(zhí)行一次頁面,就給每個頁面 memory[ ].A+1,再用 maxcount 標記出 A 最 大的物理塊, A 值越大說明該頁面在物理塊中呆的時間越長,第一次是把第一塊物理塊的 1 換成等待頁面序列的第一個,然后 memory[0].A 置 0,這樣maxcount 標記的就變成第二塊物理塊了,然后以此類推,每個物理塊將被逐個置換。 總之,通過這次課程設(shè)計,我是學(xué)到了很多東西,不僅僅是編程能力提高了,分析問題的能力也有所提高,我會再接再厲。 附錄:程序源代碼 ////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////// /////////////////// 本程序內(nèi)容是關(guān)于 頁面置換算法的模擬 //////////////////////////////////// /////////////////// 包含 最佳頁面置換算法 (OPtimal) //////////////////////////////////// /////////////////// 先進先出頁面置換算法 (FIFO) //////////////////// //////////////// /////////////////// 最近最久未使用頁面置換算法 (LRU) ///////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////// includeiostream using namespace std。 struct page { int page_num。//頁號 int memory_num。//所在物理塊號 int P。//狀態(tài)位 0 表示不在內(nèi)存物理塊中 1 表示在物理塊中 }。 struct memory { int memory_page_num。//物理塊中此刻存在的頁面序號 int page_n。//頁面執(zhí)行順序號 int A。//訪問字段 }。 int page_size,memory_size。//頁面大小 物理塊大小 page page_table[500]。//存儲頁面 memory memory_table[100]。 13 void reset()//頁面 物理塊初始化 { cout請輸入頁面大小 :。 cinpage_size。 for(int i=0。ipage_size。i++) { page_table[i].page_num=1。 page_table[i].memory_num=1。 page_table[i].P=0。 }//for(int i=0。ipage_size。i++) cout請輸入物理塊數(shù) :。 cinmemory_size。 for(int j=0。jmemory_size。j++) { memory_table[j].memory_page_num=1。 memory_table[j].page_n=1。 memory_table[j].A=0。 }// for(int j=0。jmemory_size。j++) }//void reset() void creat()//創(chuàng)建頁面和內(nèi)存分塊 { cout請輸入需訪問的頁面序號 :。 for(int i=0。ipage_size。i++) { cinpage_table[i].page_num。 }//for(int i=0。ipage_size。i++) }//void creat() //////////////////////////////////// /// optimal 最佳置換算法 /// //////////////////////////////////// void optimal() { int mem=0。//記錄等待隊列中與內(nèi)存中序號相同的隊列號 int num=0。//頁面號計數(shù)器 14 for(int i=0。imemory_size。i++)//前幾個未重復(fù)的可直接送入內(nèi)存 { for(int v=0。vmemory_size。v++) { if(page_table[num].page_num==memory_table[v].memory_page_num) { num++。 if(num=page_size) goto begin。 }//if(page_table[num].page_num==memory_table[v].memory_page_num) }//for(int v=0。vmemory_size。v++) memory_table[i].memory_page_num=page_table[num].page_num。 memory_table[i].page_n=num。 page_table[num].P=1。 num++。 //cout此時在內(nèi)存中的頁面序號是 :endl。 for(int j=0。jmemory_size。j++) coutmemory_table[j].memory_page_num 。 coutendl。 }//for(int i=0。imemory_size。i++) begin: while(numpage_size) { //如果下一個需要操作的頁面在內(nèi)存中則無需更換 for(int m=0。mmemory_size。m++) {
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1