OS之實驗五 虛擬儲存區和記憶體訪問演算法

2021-08-20 08:30:51 字數 924 閱讀 2950

一 實驗內容:

(1) 通過隨機數產生乙個指令序列,共320條指令。

指令的位址按下述原則生成:

① 50%的指令是順序執行的;

② 25%的指令是均勻分布在前位址部分;

③ 25%的指令是均勻分布在後位址部分;

具體的實施方法是:

① 在[0,319]的指令位址之間隨機選取一起點m;

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

③ 在前位址[0,m+1]中隨機選取一條指令並執行,該指令的位址為m』;

④ 順序執行一條指令,其位址為m』+1;

⑤ 在後位址[m』+2,319]中隨機選取一條指令並執行;

⑥ 重複上述步驟①~⑤,直到執行320條指令。

(2) 將指令序列變換為頁位址流

假設:① 頁面大小為1k;② 使用者記憶體容量為4頁到32頁;③使用者虛存容量為32k;

在使用者虛存中,按每k存放10條指令排列虛存位址,即320條指令在虛存中的存放方式為:

第0條~第9條指令為第0頁(對應虛存位址為[0,9]);

第10條~第19條指令為第1頁(對應虛存位址為[10,19]);

…… 第310條~第319條指令為第31頁(對應虛存位址為[310,319]);

按以上方式,使用者指令可組成32頁。

(3) 任務:

設計乙個虛擬儲存區和記憶體工作區,並使用下述演算法計算訪問命中率。

(1) 先進先出的演算法(fifo);

(2) 最近最少使用演算法(lru);

(3) 最佳淘汰演算法(opt)。

命中率=(1-頁面失效次數)/頁位址流長度

在本實驗中,頁位址流長度為320,頁面失效次數為每次訪問相應指令時,該指令所對應的頁不在記憶體的次數。

這裡寫**片

學習筆記 OS虛擬儲存器

虛擬儲存器從邏輯上實現對記憶體容量的擴充,讓使用者感覺到的記憶體容量比實際記憶體容量大得多。於是便可讓比記憶體空間更大的程式執行,或者讓更多的使用者程式併發執行。要求將乙個作業全部裝入記憶體方可執行,會出現以下兩種情況 1 有的作業很大,記憶體空間超過記憶體總儲存量 2 有大量作業要求執行。1.常規...

實驗五 儲存管理實驗

include stdio.h include stdlib.h include time.h struct wuli 記憶體表 struct wuli wuli table 20 struct page 頁表 struct page page table 10 int allocate int w...

實驗六 共享儲存區通訊

實驗六 共享儲存區通訊 實驗目的 了解和熟悉共享儲存機制 實驗內容 編制一長度為1k的共享儲存區傳送和接收的程式。實驗指導 一 共享儲存區 1 共享儲存區機制的概念 共享儲存區 share memory 是unix系統中通訊速度最高的一種通訊機制。該機制可使若干程序共享主存中的某乙個區域,且使該區域...