模擬頁式儲存管理作業系統課程設計

2021-04-11 19:20:42 字數 3200 閱讀 3041

電腦科學與技術學院

作業系統課程設計報告

課題: 模擬頁式儲存管理

姓名學號

同組姓名

專業班級: 網工10101

指導教師: 劉國清

設計時間: 2013-6-25

目錄一、目的和要求 2

1、設計目的 2

2、設計要求 2

二、設計思路及過程 2

1、概要設計 2

2、過程設計 3

三、資料定義 5

四、核心** 5

五、執行截圖 8

六、小結 10

七、參考文獻 11

附錄 12

通過請求頁式儲存管理中頁面置換演算法模擬設計,了解虛擬儲存技術的特點,掌握請求頁式儲存管理的頁面置換演算法。

根據模擬的頁式管理設計,掌握在頁式儲存管理中最基本的三種頁面排程演算法fifo、lru以及opt。但在三種演算法中均要求在排程程式中產生的頁面序列是隨機產生的,而不是人為的輸入,在執行時只需改變頁面的大小及記憶體容量就可以得到不同的頁面序列,另外還需要說明隨機的效能和其效能可能對演算法的影響,並對隨機性要有一定的引數控制能力。此外,計算並輸出fifo、lru以及opt演算法在不同記憶體容量下的命中率。

根據方法的執行過程,編寫乙個解決上述問題的程式,顯示訪問每個值頁面中的值。

具體引數:訪問串的長度,訪問串,頁面個數。

分別用3種不同的方法實現頁面的置換,並輸出相關資訊。

1.1 問題概述

根據三種不同的置換演算法,依據其不同的演算法方式,分別計算該演算法在不同情況下的命中率,並顯示各頁面的變化情況。

1.2 內容分析

對於該課程設計中模擬的頁式儲存管理的頁面置換過程,只要掌握其中最基本的三種演算法,包括fifo、lru及opt。 但最重要的一點就是要求產生隨機序列,所以在編寫程式時要採用控制產生隨機值的種子數函式,如此能產生隨機的訪問序列。另外,不能在執行完一次操作後就只能進行另外一種演算法的操作,必須還要有更加詳細的操作,比如:

是否要重新得到新序列?還是要不改變訪問序列而只改變訪問串的記憶體容量?抑或是不操作就退出該演算法以進行下一種排程演算法?

因此,在執行完每次操作後都必須要有提示語,看是否進入更細節的操作,還是退出本次演算法的操作以進入下一種演算法的排程。

2.1模組設計

在下圖的主模組設計圖中,只注重描繪了頁式儲存管理的三種主要演算法,未描繪出細節部分。其中,在執行每種演算法時都會要求輸入你所需要的訪問串長度、隨機值以及同一種演算法的不同記憶體容量,如此就可以得出不同的命中率。另外,在執行完該操作後又會出現三條提示語,是重新得到新序列?

還是不改變訪問序列只改變訪問串的記憶體容量?抑或是不操作退出以進行下一種排程演算法?這些在下圖中都未一一實現。

圖2.1 頁式儲存管理的主模組設計圖

2.2 演算法原理分析

要學成功實現演算法,首先要知道各個方法是怎麼做的,即原理是怎樣的,下面是三種演算法的原理。

fifo演算法是先進先出,當當前記憶體中沒有正要訪問的頁面時,置換出最先進來的頁面。

lru演算法是最近最久未使用,當當前記憶體中沒有正要訪問的頁面時,置換出在當前頁面中最近最久沒有使用的頁面。

opt演算法是未來最遠出現,當當前記憶體中沒有正要訪問的頁面時,置換出當前頁面中在未來的訪問頁中再也不出現的頁面或最遠出現的頁面。

2.3 程式流程圖

本次課程設計的主要流程是3種置換演算法的流程圖,我負責opt演算法的流程圖,流程圖如下所示:

圖2.2 opt 演算法流程圖

int length,num_page,count,seed; //length記錄訪問串的長度,num_page頁面數,count記錄缺頁次數

int result[20][30],order[30],a[10]; //result記錄結果,order儲存訪問串,a儲存當前頁面中的值

int pos1,flag1,flag2; //pos1位置變數,flag1等為標誌變數

char result1[30]; //記錄缺頁數組

三種置換演算法中只列出我負責部分( opt 演算法),具體**及注釋如下:

void opt() //理想型

again(); //再操作

if(flag1==0&&flag2==0)

break;

}}其中的查詢函式search()具體**如下:

bool search(int n) //查詢當前記憶體中是否已存在該頁

return false;

}其中的再操作函式again(),具體**如下:

void again() //用於再輸入

else if(m==2)

else return ;

主選單:

根據不同的分工,限於紙張只列出部分截圖,以下是對 opt 排程演算法的實驗截圖:

圖5.1 相同的記憶體容量下不同的訪問串串行1

圖5.2 相同的記憶體容量下不同的訪問串串行2

依上圖5.1和5.2來看, opt 排程演算法在訪問串長度一致,隨機值不同以致產生不同的訪問串串行時,但頁面數不相同的情況下,所得到的命中率也不同。

圖5.3 不同的記憶體容量下相同的訪問串串行

在上圖5.3中就是對同一訪問串串行進行 opt 排程,只是改變其頁面的大小,得到了不同的命中率。

本次課程設計目的是通過請求頁式管理中頁面置換演算法模擬設計,了解虛擬儲存技術的特點,掌握請求頁式儲存管理的頁面置換演算法。要求設計隨機頁面產生程式,並說明隨機的效能和其效能可能對演算法的影響,對隨機性要有一定的引數控制能力;計算並輸出fifo及lru opt演算法在不同記憶體容量下的命中率。

由於上學期做過頁面置換的實驗,內容包括先進先出演算法(fifo)、最近最久未使用頁面置換演算法(lru)和理想淘汰演算法(opt),3種演算法思想簡單明確,選好資料結構,思路清晰便基本沒問題了。所以相對來說,這次作業系統的課程設計容易許多,只是在之前實驗基礎上,要附加設計隨機頁面產生程式,對隨機性要有一定的引數控制能力。對於隨機頁面產生程式,我們之前沒做過,在網上查閱資料,使用了庫函式srand()和rand(),實現了簡單的隨機頁面產生程式,功能基本完成。

我們知識所限,沒有使用漂亮視覺化介面程式設計實現功能,用簡單的c語言程式設計實現的。不管怎麼樣,最終還是實現的本次課程設計要求的。

做了這麼多次課程設計了,大致的過程都熟悉了,每次的動手實踐,調動了我們主動學習的積極性, 並引導我們根據實際程式設計要求, 訓練自己實際分析問題的能力及程式設計能力, 並養成良好的程式設計習慣。 通過詳細的例項, 循序漸進地啟發我們完成設計課程設計將要求。

模擬頁式儲存管理 作業系統課程設計報告

作業系統課程設計報告 課題 模擬頁式儲存管理 姓名學號 同組姓名 專業班級 指導教師 設計時間 2011 2 22 目錄一 目的和要求 2 1 設計目的 2 2 設計要求 2 二 設計思路及過程 2 1 概要設計 2 2 過程設計 3 三 資料定義 5 四 核心 5 五 執行截圖 8 六 小結 10...

模擬段頁式儲存管理位址變換

電腦科學與技術學院 2007 2008 學年第一學期 作業系統 課程設計 題目 模擬段頁式儲存管理位址變換 教師馮霞 班級050341d班 學號050341404 姓名陳玉虎 成績1.題目分析 1.1 設計目的 了解記憶體管理機制,掌握段頁式虛擬儲存技術 理解記憶體分配原理,特別是以頁面為單位的虛擬...

作業系統之儲存器管理

p116 4.0.1 儲存器管理的目的和功能 儲存器管理的主要目的和功能如下 1.主儲存器的分配和管理 按使用者要求把適當的儲存空間分配給相應的作業。乙個有效的儲存分配機制,應在使用者請求時能作出快速的響應,分配相應的儲存空間 在使用者不再使用它時,應立即 以供其他使用者使用。為此,這個儲存分配機制...