1. 程式人生 > >【作業系統】頁式儲存方式,頁,頁表,頁表項

【作業系統】頁式儲存方式,頁,頁表,頁表項

//
//作業系統和計算機組成原理裡都講到記憶體管理的頁式管理,但是本人以及很多初次學習分頁的時候,都會迷茫頁表大小和頁表項大小之間的關係,本人仔細分析了後寫了這篇blog,僅當學習交流,個人理解之用,如果有錯或者分析不夠嚴謹,歡迎指正。
//按字、圖結合起來分析,相信還是比較容易看懂。

//一、首先明確幾個概念

邏輯地址:是程式編譯後,生成的目標模組進行編址時都是從0號單元開始編址,稱之為目標模組的相對地址,即為邏輯地址。

頁:將程序劃分的塊,對應的大小就叫頁面大小。

頁框:將記憶體劃分的塊。

頁和頁框二者一一對應,一個頁放入一個頁框,(理論上)頁的大小和頁框的大小相等。

頁表:就是一個頁和頁框一一對應的關係表。【存放在記憶體中】 關係表只是起到一個索引的作用,說白了就是能根據關係表能查到某一個頁面和哪一個頁框所對應。

//

//

//二、用例子說話【例子出現在:《王道考研作業系統》的記憶體管理部分】

已知條件:邏輯地址32位、頁面大小4KB、頁表項大小4B,按位元組編址。

分析:

1.

img

​ 首先

32

位的虛擬地址可表示的程序大小應該是2^32B = 4GB(暫時別去想頁號P佔多少位,W佔多少位)

2.(根據頁的定義和頁面大小的定義)將程序進行分頁:

3.我們已經知道了頁面的數目為:2^20頁。現在的迷茫點就在於頁表項的問題上。

上圖在頁表上已經給出了幾個資料:20位,12位,32位,2^20項。一一解釋如下【請結合上圖一個一個數據分析】:

​ 2^20項:因為頁表的作用是要將頁面的頁框一一對應起來,所以,每一個頁面在頁表中都應該有一個頁表項:用來表示一個頁號對應一頁頁框號(記憶體中的塊號),故應

​ 該有2^20項。【不應該有問題吧,就好像一個班有50個同學,每個人都應該有一個地址一樣】

20位:已經很顯然了,需要表示出2^20個頁表項,就至少需要20位的地址。為什麼只取20位而不是21位,22位呢,本人現在還沒想這個問題,就暫時定為恰好取20位即可。

32位:已知條件裡告訴了頁表項大小為4B,那麼自然就應該是32位了。

12位:32位-20位 = 12位。為什麼頁框號地址為12位,只能表示2^12個頁框,要小於2^20個頁面呢,因為並不是程序的每一個頁面都要調入記憶體。其實32位、12位、20位這三個資料還是有一定依據的,在二級分頁的時候就會發現“哦,原來剛剛好”。此處暫不討論二級分頁。

4.通過上面的分析我們得出了哪些資料:

邏輯地址32位,程序大小:4GB。

頁面:大小4KB,數量:2^20頁。

頁表項:4B,數量:2^20項。所以頁表就需要4B*2^20 = 4MB的空間儲存(這就是書中說:頁表項大小為4MB的由來)進一步,主存的頁框大小和頁面大小是相等的,也為4KB,所以將頁表存在主存就需要佔用4MB/4KB = 1024頁(因為頁表也是存在主存中的,而主存也是按頁框劃分的。這的確是一種資源浪費,所以就需要建立二級頁面,將其大小控制在1頁之內,將二級頁面存入主存即可)

相關推薦

作業系統儲存方式

// //作業系統和計算機組成原理裡都講到記憶體管理的頁式管理,但是本人以及很多初次學習分頁的時候,都會迷茫頁表大小和頁表項大小之間的關係,本人仔細分析了後寫了這篇blog,僅當學習交流,個人理解之用,如果有錯或者分析不夠嚴謹,歡迎指正。 //按字、圖結合起

作業系統虛擬記憶體+儲存管理選擇題

Chapter 9虛擬記憶體 1、基本概念 (1)定義: 虛擬儲存器是具有請求調入功能和置換功能,能僅把程序的一部分裝入記憶體便可執行程序的儲存管理系統,它能從邏輯上對記憶體容量進行擴充的一種虛擬的儲存器系統 (2)區域性性原理: ①時間區域性性 ②空間區域性性 2、De

資料結構 C描述有兩個整數集合 A 和 B 分別用兩個線性 LA 和 LB 表示求:一個新的集合A=A∪BA仍然為純集合線性採用鏈儲存方式單鏈

這是我的作業題,作業寫完後再附到部落格中,可能程式碼寫得很爛。雖然是C語言寫的,但是我在其中加入了C++的寫法,例如cout。我懶得寫printf的格式控制符,所以用cout來輸出內容,這樣我感覺簡便多了 題目 假設:有兩個整數集合 A 和 B 分別用兩個線性表

作業系統請求分儲存管理方式

請求頁表機制 狀態位 P:指示該頁是否已調入記憶體。 供程式訪問時參考 訪問欄位 A:記錄本頁在一段時間內被訪問的次數或最近未被訪問的時間。 供選擇頁面換出時參考 修改位 M:表示該頁在調入記憶體後是否被修改過。若修改過,則置換該頁時需重寫該頁至外存。

挑戰計算48種依次泛化的假設情況下總共有多少種不可再簡化的析合範

const lin ber 一個 alt names ans nowrap onos 一種可行的算法: 由於屬性泛化後,一個泛化的假設可以對應多個具體假設。 把所有假設按三屬性泛化,二屬性泛化,一屬性泛化,具體屬性排序(這樣可以保證排在後面的假設不會包含前面的任何一個假設,

作業系統(4)虛擬儲存--覆蓋與交換、區域性性原理、虛擬儲存、虛擬段式儲存、缺異常

文章目錄 1. 虛擬儲存的需求背景 2. 覆蓋和交換技術 (過時技術) 3. 區域性性原理(虛擬儲存的可實現前提) 4. 虛擬儲存概念 4. 虛擬頁式儲存 5. 缺頁異常 1. 虛擬儲存的需

儲存管理方式

基本分頁儲存管理方式 (1)頁面與頁表:頁面將一個程序的邏輯地址空間分成若干個大小相等的片,分頁地址中頁號和頁內地址的計算P=INT[A/L],d=[A] MOD L;頁表:系統為每個程序建立了一張頁面映像表簡稱頁表; (2)地址變換機構:實現從邏輯地址到實體地址的轉換  

作業系統 第四章 3 分、分段、段儲存管理 +作業題

一、分頁儲存管理方式 1、(物理)塊:記憶體劃分成多個小單元,每個單元K大小         頁面:作業也按K單位大小劃分成片         物理劃分塊的大小 = 邏輯劃分的頁的大小

OraclePL/SQL 儲存過程 顯遊標、隱遊標、動態遊標

  【Oracle】PL/SQL 顯式遊標、隱式遊標、動態遊標 2013年06月17日 09:02:51 AlphaWang 閱讀數:13009更多 個人分類: 【Database】 在PL/SQL塊中執行SELECT、INSERT、DELET

Unity3D圖片紋理壓縮方式乾貨走起!

  Unity3D引擎對紋理的處理是智慧的:不論你放入的是PNG,PSD還是TGA,它們都會被自動轉換成Unity自己的Texture2D格式。   在Texture2D的設定選項中,你可以針對不同的平臺,設定不同的壓縮格式,如IOS設定成PVRTC4,Android平

作業系統執行緒間實現同步的方式

同步與互斥的區別與聯絡 互斥:是指散佈在不同程序(執行緒)之間的若干程式片斷,當某個程序(執行緒)執行其中一個程式片段時,其它程序(執行緒)就不能執行它們之中的任一程式片段,只能等到該程序(執行緒)

JavaScript通過JavaScript的方式如果手機瀏覽器訪問PC版頁面自動跳轉到手機版頁面

這個其實根本不用自己寫,因為在網上就有一個寫的非常不錯的js。 做到如下效果,如果是PC、平板訪問這個頁面,則顯示PC版的頁面,如果是手機訪問這個頁面則跳到手機版的頁面,同時不載入PC版頁面,直接跳轉。 首先,目錄結構如下: 其中JS資料夾中的uaredirect.js

作業系統儲存管理之儲存管理深入淺出

用分割槽方式管理的儲存器,每道程式總是要求佔用主存的一個或幾個連續儲存區域,作業或程序的大小仍受到分割槽大小或記憶體可用空間的限制,因此,有時為了接納一個新的作業而往往要移動已在主存的資訊。這不僅不方便,而且開銷不小。採用分頁儲存器既可免去移動資訊的工作,又可儘

求職筆記-作業系統-分段式儲存管理、分儲存管理的區別?

分頁式儲存管理 使用者程式的邏輯地址空間被劃分為若干個固定大小的地址空間,稱為“頁”,記憶體實體地址空間也分成相對應的若干個物理塊,頁和塊的大小相等,可將使用者程式的任一頁放在任一塊中,實現離散分配 。有效提高記憶體利用率。 分段式儲存管理 將使用者程

作業系統分段與分機制

分段機制 分段,是指將程式所需要的記憶體空間大小的虛擬空間,通過對映機制對映到某個實體地址空間(對映的操作由硬體完成)。分段對映機制解決了之前作業系統存在的兩個問題:(1)地址空間沒有隔離。(2)程式

作業系統:虛擬儲存管理(缺中斷、頁面置換演算法)

1、基本工作原理 1、基本工作原理 在程序開始執行之前,不是全部裝入頁面,而是裝入一個或者零個頁面,之後根據程序執行的需要,動態裝入其他頁面;當記憶體已滿,而又需要裝入 新的頁面時,則根據某種演算法淘

作業系統記憶體管理-基本分段管理方式

引入分段儲存管理方式的目的: 主要是為了滿足使用者(程式設計師)在程式設計和使用上多方面的要求。 在分段儲存管理方式中,作業的地址空間被劃分為若干個段,每個段定義了一組邏輯資訊、 例如,有主程式段MAIN、子程式段X、資料段D及棧段S等(如下段表圖)。每個段都有自己的名字。

AndroidAndroid開發之常用的loading等待效果實現仿微博等待動畫。兩種實現方式詳解

長期維護的Android專案,裡面包括常用功能實現,以及知識點詳解, 當然還有Java中的知識點。 具體請看github:https://github.com/QQ986945193/DavidAndroidProjectTools 首先大家都知道,當我

分段與段儲存管理

一.  分頁儲存管理 1.基本思想 使用者程式的地址空間被劃分成若干固定大小的區域,稱為“頁”,相應地,記憶體空間分成若干個物理塊,頁和塊的大小相等。可將使用者程式的任一頁放在記憶體的任一塊中,實現了離散分配。 1)      等分記憶體 頁式儲存管理將記憶體空間

作業系統員動態記憶體分配————分儲存

4.3 知識點3:基本分頁儲存管理方式4.3.1 要點歸納1. 基本分頁儲存管理的原理在分割槽儲存管理中,要求把作業放在一個連續的儲存區中,因而會產生許多碎片,固定分割槽會產生內部碎片,動態分割槽會產生外部碎片。儘管通過拼接技術可以解決碎片問題,但代價較高。分頁儲存管理允許將作業存放到許多不相鄰接的記憶體區域