操作系统之内存管理:4、基本地址变换机构(段氏、页式、段页式)
4、基本地址變換機構
- 頁式
- 1、頁式
- 硬件實現流程
- 地址變化步驟
- 例
- 問題
- 2、頁式+快表
- 什么是快表?
- 引入快表后地址變換步驟
- 引入快表后的硬件實現
- 快表無法裝入完整的慢表,達到高命中率的基礎原理是什么?-------->局部性原理
- 有無快表的對比:
- 3、兩級頁表
- 單級頁表存在的問題
- 二級頁表的邏輯地址結構
- 二級頁表的硬件實現(解決第一個問題)
- 二級頁表如何實現地址轉換?
- 第二個問題的解決?
- 什么叫各級頁表大小不能超過一個頁面?
- 段氏
- 什么叫分段?
- 如何確定進程的每個段在內存中存放的位置?--------->段表
- 段氏硬件實現流程
- 內存訪問次數
- 分段、分頁管理的對比
- 段頁式
- 段氏和頁式的缺點
- 如何確定進程的每個段在內存中存放的位置?--------->段表+頁表
- 段頁式管理的邏輯地址結構
- 段頁氏硬件實現流程
頁式
1、頁式
硬件實現流程
需要進行倆次內存訪問
地址變化步驟
例
問題
2、頁式+快表
什么是快表?
快表:就是高速緩存cache,訪問速度快于內存,造價高于內存
所以:cache的容量小于內存,
cache和快表(TLB)的區別:TLB 中只有頁表項的副本,而普通 Cache 中可能會有其他各種數據的副本
引入快表后地址變換步驟
什么叫快表和慢表同時查找?
就是在訪問快表的同時也訪問慢表,所以在上面的例子中可以節省一秒時間
引入快表后的硬件實現
假如:
第一次訪問(0,0),檢查越界后查詢快表,未命中,查詢頁表,并將該頁表項復制到快表,訪問物理地址。(訪問兩次內存)
第二次訪問(0,4),檢查越界后查詢快表,命中,直接訪問物理地址(訪問一次內存)
第三次訪問(0,8),檢查越界后查詢快表,命中,直接訪問物理地址(訪問一次內存)
快表無法裝入完整的慢表,達到高命中率的基礎原理是什么?-------->局部性原理
有無快表的對比:
3、兩級頁表
單級頁表存在的問題
由于段氏內存分配的一個優點就是可以進行非連續的存儲,但是當我們采用頁式存儲的時候,邏輯地址與頁表項需要建立一一對應的關系,當邏輯地址太多時,就需要一片很長的連續空間進行頁表存儲,這樣就喪失了非連續存儲的優勢。因此,提出了二級頁表的概念。
二級頁表的邏輯地址結構
二級頁表的硬件實現(解決第一個問題)
我們可以類比于一級頁表,一級頁表可以將一個程序分頁存儲到不同不連續的內存單元。那二級頁表其實就是將一級頁表分頁存儲到不同不連續的內存單元,即將一級頁表再分頁。這樣就可以解決第一個問題了。
二級頁表如何實現地址轉換?
就是先用一級頁表查到二級頁表存放的位置,在從二級頁表查到物理地址。相對于一級頁表的方式,就是多了一步頁表查詢的過程。
第二個問題的解決?
見下篇博客:操作系統之內存管理:5、虛擬存儲技術
什么叫各級頁表大小不能超過一個頁面?
其中,二級頁表在沒有快表時需要進行3次內存的訪問才能找到實際的物理地址。n級頁表需要訪問n+1次。
段氏
什么叫分段?
1、當我們寫一個程序時會有一個main()函數,已經一系列的子函數;那么分段的意思就是:按照完整的自身邏輯結構(比如一個函數)將一個程序劃分成多個塊,然后將不同的塊存儲到不同不連續的內存段中。(如上圖所示),一個函數名就對應一個斷號。
2、用戶要對分段存儲的程序進行數據的訪問時,需要有倆個參數:第一個是段名,第二個是段內偏移量,所以稱段氏的地址空間是二維的
3、段是信息的邏輯單位。分頁的主要目的是更好地滿足用戶需求。。分段對用戶是可見的,用戶編程時需要顯式地給出段名。
如何確定進程的每個段在內存中存放的位置?--------->段表
我們可以通過邏輯地址與段表,段表與物理地址的映射關系實現從邏輯地址到物理地址的轉化
段氏硬件實現流程
首先用短號與段表寄存器對比查看是否越界;
未越界則查找段表中對應的段表項
然后段內地址與段長對比,判斷是否越界
未越界則查找物理地址
假如現在要查找:(2,1024),未越界則查找到段基址:40K,在加上偏移量:1K,所以最終的物理地址為41K處
內存訪問次數
分段、分頁管理的對比
假如現在程序有三個段:0,1,2;第二段可共享;用段氏就很容易實現共享;若采用頁式:
可能出現一頁中一部分可共享,一部分不可共享的情況。
段頁式
段氏和頁式的缺點
如何確定進程的每個段在內存中存放的位置?--------->段表+頁表
段頁式和段氏中的段表存儲字段不同。
段頁式管理的邏輯地址結構
段頁氏硬件實現流程
不使用快表時內存訪問次數:每次地址轉化都需要訪問內存3次。
總結
以上是生活随笔為你收集整理的操作系统之内存管理:4、基本地址变换机构(段氏、页式、段页式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端基础-html-表格的结构标签(了解
- 下一篇: 计组之存储系统:4、双口RAM和多模块存