分頁技術實例

在操作系統中,分頁是一種存儲機制,用於以頁面形式從輔助記憶體檢索進程到主記憶體中。

分頁背後的主要思想是以頁面的形式劃分每個進程。 主存也將以幀的形式分割。

進程的一頁將被存儲在記憶體的一個幀中。 分頁可以存儲在內存的不同位置,但優先順序始終是查找連續的幀或空洞。

進程頁面只有在需要時才會被帶入主記憶體,否則它們將駐留在輔助存儲中。

不同的操作系統定義不同的幀大小。 每個幀的大小必須相等。 考慮到頁面被映射到頁面中的幀,頁面大小需要與幀大小相同。

示例

讓我們考慮主記憶體大小為16Kb,幀大小為1KB,因此主記憶體將被分成每個1KB的16個幀的集合。

系統中有4個進程,分別是4KB的P1,P2,P3和P4。 每個進程分為每個1 KB的頁面,以便一個頁面可以存儲在一個幀中。

最初,所有的幀都是空的,因此進程的頁面將以連續的方式存儲。

下圖顯示了框架,頁面兩者之間的映射。

讓我們考慮一下,P2和P4在一段時間後會轉移到等待狀態。 現在,8個幀變空了,因此可以將其他頁面加載到空閒的地方。 大小為8 KB(8頁)的進程P5正在就緒佇列內等待。

鑒於這一事實,在內存中有8個不連續的幀,分頁提供了將流程存儲在不同位置的靈活性。 因此,可以在P2和P4的地方加載進程P5的頁面。

記憶體管理單元

記憶體管理單元(MMU)的目的是將邏輯地址轉換為物理地址。 邏輯地址是CPU為每個頁面生成的地址,而物理地址是存儲每個頁面的幀的實際地址。

當CPU使用邏輯地址訪問頁面時,操作系統需要獲取物理地址以物理訪問該頁面。

邏輯地址有兩部分。

  • 頁碼
  • 偏移量

OS的記憶體管理單元需要將頁碼轉換為幀號。

示例

考慮到上面的圖像,假設CPU要求進程P3的第4頁的第10個字。 由於處理P1的第4號頁面被存儲在第9號幀,因此第9幀的第10個字將作為物理地址返回。


上一篇: 分頁技術 下一篇: 二進位地址基礎知識