頁面置換演算法模擬實現(C)

2021-10-06 05:54:19 字數 1102 閱讀 8191

#include "stdio.h"

#include "stdlib.h"

typedef struct item

pro;

int pagenum; //系統分配給作業的主存中的頁面數

int memorynum; //可用記憶體頁面數

void print(pro *page1); //列印當前主存中的頁面

int search(int num1, pro *memory1); //在頁面集memory1中查詢num1,如果找到,返回其在memory1中的下標,否則返回-1

int main(void)

do

printf("*****f:fifo頁面置換*****\n");

printf("*****o:opt頁面置換*****\n");

printf("*****l:lru頁面置換*****\n");

printf("*****請選擇操作型別(f,o,l),按其它鍵結束******\n");

fflush(stdin);

scanf("%c", &c);

i = 0;

curmemory = 0;

if(c=='f') //fifo頁面置換

}//end for

missrate = (float)missnum/pagenum;

printf("缺頁次數:%d 缺頁率: %f\n", missnum, missrate);

}//end if

if(c=='o') //opt頁面置換

//end if

if(c=='l') //lru頁面置換

//end if

}while(c=='f'||c=='l'||c=='o');

return 0;

}void print(pro *memory1)//列印當前的頁面

//在頁面集memory1中查詢num1,如果找到,返回其在memory1中的下標,否則返回-1

int search(int num1,pro *memory1 )

return -1;

}

頁面置換演算法

常用的頁面置換演算法有三種 先進先出演算法fifo first in first out 該演算法的基本思想是首先淘汰那些駐留在主存時間最長的頁面。最近最久未用演算法 lru 該演算法的基本思想是 如果某一頁被訪問了,那麼它很可能馬上又被訪問 反之,如果某一頁很久沒被訪問,那麼最近也不會再訪問。lr...

頁面置換演算法

include using namespace std int process 100 頁面佇列 int memory 3 塊數 int optqueue 100 opt演算法的佇列 int fifoqueue 100 fifo演算法佇列 int lruqueue 100 lru演算法佇列 int ...

頁面置換演算法

位址對映過程中,若在頁面中發現所要訪問的頁面不再記憶體中,則產生缺頁中斷。當發生缺頁中斷時作業系統必須在記憶體選擇乙個頁面將其移出記憶體,以便為即將調入的頁面讓出空間。而用來選擇淘汰哪一頁的規則叫做頁面置換演算法。常見的置換演算法有 1 最佳置換演算法 opt 理想置換演算法 這是一種理想情況下的頁...