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

2021-03-04 04:29:12 字數 2901 閱讀 5679

電腦科學與技術學院

2007-2008 學年第一學期

《 作業系統》課程設計

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

教師馮霞

班級050341d班

學號050341404

姓名陳玉虎

成績1. 題目分析

1.1 設計目的

● 了解記憶體管理機制,掌握段頁式虛擬儲存技術;

● 理解記憶體分配原理,特別是以頁面為單位的虛擬記憶體分配方法;

● 用視覺化介面來掌握作業系統的知識。

1.2 設計內容

● 根據邏輯位址中的段號進行查詢,先查詢快表。如果找到,則形成實體地址,否則進行後續步驟;

● 通過段表始址暫存器,查詢段表在記憶體中的始址;

● 通過段表並根據段號,查詢頁表所在位置;

● 訪問頁表,根據邏輯頁號查詢該頁所在的物理塊號;

● 將物理塊號和邏輯位址中的頁內位址拼接,形成訪問記憶體單元的實體地址。

1.3 相關知識概述

● 段頁式儲存管理的主要內容是:

● (1)用頁式方法來分配和管理記憶體空間,即:把記憶體分為若干大小相等的頁面;

● (2)用段式方法對使用者程式按照其內在的邏輯關係劃分成若干段;

● (3)再按照劃分的記憶體頁面的大小,把每一段內劃分成若干大小相等的頁面;

● (4)使用者程式的邏輯位址由三部分組成:段號(s),頁號(p),頁內位址(d);

● (5)記憶體是以頁為基本單位分配給每個使用者程式的,在邏輯上相鄰的頁面在記憶體不一定相鄰。

1.4 基本設計思路

● (1)建立段表

● 系統為每個使用者程式建立一張段表,用於記錄各段的頁表始址和頁表長度。

● (2)建立頁表

● 系統為使用者程式的每一段各建立一張頁表,用於記錄該段中各邏輯頁號與物理塊號之間的對應關係。

● 段表、頁表和記憶體的關係如圖所示。

● (3)建立記憶體空閒頁面表

● 整個系統建立一張記憶體空閒頁面表,用於記錄並管理記憶體空閒頁面。

● (4)硬體支援

● 為加快位址對映速度,硬體需要提供如下2個暫存器:

① 段表始址暫存器;

② 段表長度暫存器;

● (5)位址對映過程

● 在段頁式儲存管理中,要訪問記憶體的單元,則要經過如下位址轉換步驟,才能得到最終的實體地址。

● 根據邏輯位址中的段號查詢快表。如果找到,則形成實體地址,否則進行後續步驟;

● 通過段表始址暫存器,查詢段表在記憶體中的始址;

● 通過段表並根據段號,查詢頁表所在位置;

● 訪問頁表,根據邏輯頁號查詢該頁所在的物理塊號;

● 將物理塊號和邏輯位址中的頁內位址拼接,形成訪問記憶體單元的實體地址;

2. 概要設計

2.1 功能模組ny

yn2.2 主要資料結構描述

● 對段表與頁表中的資料的儲存如下:

頁號: 段表和頁表的儲存以由低到高的優先順序順序進行編排,在進行程式分段分析的時候用到了堆疊和佇列,以便對程式的語句進行逐個分析。

3. 詳細設計

3.1 主要演算法描述

主要**:void cscannerdlg::showout()

}m2=n2;

updatedata(false);

m_result+="----(段2)標識段-----";

m_result+="\r\n";

int n3=0;

for(i=0;i<50;i++)

m3=n3;

updatedata(false);

m_result+="-----(段3)常數段----";

m_result+="\r\n";

int l=0;

int n4=0;

for(i=0;i<50;i++)

m_result+=const[i];

n4=+1;

m_result+="\r\n

m4=n4;

updatedata(false);

}void cscannerdlg::onbutton1()

if(m32==m19)

if(m32==m20)

if(m32==m21)

else

messagebox("未找到!!!","越界中斷",mb_iconexclamation);

return;

}else

messagebox("段越界!!!","越界中斷",mb_iconexclamation);

return;

}3.2 程式介面設計

4. 編碼實現

4.1 開發工具簡介

visual c++

4.2 實現過程總結

對於分析器的設計只設計了四個段,整個程式都是在圍繞四個程式段進行訪問。這是乙個段頁式位址轉換的過程,其實,資料的訪問對於此程式是個虛擬的過程。記憶體中的段表與頁表也是虛擬出來的,程式需要查詢段表和頁表兩個表,並通過使用段表始址暫存器與頁表始址暫存器來確定要查詢的段號與頁號。

通過此程式中位址的轉化過程,使自己在儲存管理面方面了解了很多,了解了記憶體管理機制,掌握了段頁式虛擬儲存技術;理解了記憶體分配原理,特別是以頁面為單位的虛擬記憶體分配方法;並加深了以視覺化介面來掌握系統知識的能力。

4.3 程式使用手冊

先通過「開啟檔案」按鈕新增源程式,或者編寫一段**,然後點「分析」按鈕,分析結果一欄顯示劃分成段後的結果,並且邏輯位址表中顯示每段的段號以及每段的最後的乙個單元的頁號和頁內位址,系統的段表與頁表內的數值開始是預設,也可以修改,包括要轉化的邏輯位址也可以修改,一旦修改即要據此來進行轉化,點「」按鈕進行轉換查詢。

5. 結果分析與總結

5.1 結果分析

將段號、頁號、頁內位址分別為2、3、b3的邏輯位址,在段表始址為0,段表長度為6,頁表始址為0,頁表長度都為10的情況下,轉化為實體地址為23b3。結果正確。

5.2 總結與建議

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

電腦科學與技術學院 作業系統課程設計報告 課題 模擬頁式儲存管理 姓名學號 同組姓名 專業班級 網工10101 指導教師 劉國清 設計時間 2013 6 25 目錄一 目的和要求 2 1 設計目的 2 2 設計要求 2 二 設計思路及過程 2 1 概要設計 2 2 過程設計 3 三 資料定義 5 四...

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

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

實驗四分頁式儲存管理

自動化1203張千偉201203870323 1 實驗目的 1.熟悉分頁式儲存管理 2.掌握最久未使用演算法以及fifo演算法 2 實驗內容 1.實驗 include include include include define bsize 4 物理塊大小 define psize 16 程序大小 ...