請求調頁儲存管理方式的模擬

2021-10-12 05:02:45 字數 1310 閱讀 3454

1、實驗目的

通過對頁面、頁表、位址轉換和頁面置換過程的模擬,加深對請求調頁系統

的原理和實現過程的理解。

2、實驗內容

(1)假設每個頁面中可存放 10 條指令,分配給一作業的記憶體塊數為 4。

(2)用 c 語言模擬一作業的執行過程。該作業共有 320 條指令,即它的位址空

間為 32 頁,目前它的所有頁都還未調入記憶體。在模擬過程中,如果所訪問的指

令已經在記憶體中,則顯示其實體地址,並轉下一條指令。如果所訪問的指令還未

裝入記憶體,則發生缺頁,此時需記錄缺頁的次數,並將相應頁調入記憶體。如果 4

個記憶體塊中均已裝入該作業,則需進行頁面置換。最後顯示其實體地址,並轉下

一條指令。在所有 320 條指令執行完畢後,請計算並顯示作業執行過程中發生的

缺頁率。

(3)置換演算法:請分別考慮 opt、fifo 和 lru 演算法。

(4)作業中指令的訪問次序按下述原則生成:

•50%的指令是順序執行的。

•25%的指令是均勻分布在前位址部分。

•25%的指令時均勻分布在後位址部分。

具體的實施辦法是:

① 在[0,319]之間隨機選取一條起始執行指令,其序號為 m;

② 順序執行下一條指令,即序號為 m+1 的指令;

③ 通過隨機數,跳轉到前位址部分[0,m-1]中的某條指令處,其序號為 m1;

④ 順序執行下一條指令,即序號為 m1+1 的指令;

⑤ 通過隨機數,跳轉到後位址部分[m1+2,319]中的某條指令處,其序號為 m2;

⑥ 順序執行下一條指令,即序號為 m2+1 的指令;

⑦ 重複跳轉到前位址部分、順序執行、跳轉到後位址部分、順序執行的過程,

直至執行 320 條指令

#include#include#include#includeusing namespace std;

struct page

;int merge_time;

int random_num[320];

int count=0;

vectorpage_in;

page temp;

void random_()

}void page_print() //輸出記憶體中的東西

break;

}else}}

for(int i=0;ipage_in[max_id].lru_time)

else

}return max_id;

}void lru()

}return 0;

}

請求調頁儲存管理方式的模擬 python實現

1實驗目的 通過對頁面 頁表 位址轉換和頁面置換過程的模擬,加深對請求調頁系統的原理和實現過程的理解。2實驗內容 1 假設每個頁面中可存放10條指令,分配給乙個作業的記憶體塊數為4。2 模擬乙個作業的執行過程。該作業共有320條指令,即它的位址空間為32頁,目前它的所有頁都還未調入記憶體。在模擬過程...

請求分頁儲存管理方式

請求分頁系統是建立在基本分頁的基礎上的,為了能支援虛擬儲存器功能而增加了請求調頁功能和頁面置換功能。相應地,每次調入和換出的基本單位都是長度固定的頁面,這使得請求分頁系統在實現上要比請求分段系統簡單 請求分段系統在換進和 換出時是 可變長度的段 因此,請求分頁便成為目前最常用的一種實現虛擬儲存器的方...

4 6分段儲存管理方式 段頁式儲存管理方式

1.分段 3.段表與位址變換機構 段是連續存放在記憶體中。段表中針對每個 段編號 記錄 記憶體首位址 和 段長 同樣有兩次記憶體訪問問題 解決方法 設定聯想暫存器,用於儲存最近常用的段表項。位址變換機構 4.分頁和分段的主要區別 1 需求 分頁是出於系統管理的需要,是一種資訊的物理劃分單位,分段是出...