分頁技術範例


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

分頁背後的主要思想是以頁面的形式劃分每個進程。 主記憶體也將以影格的形式分割。

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

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

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

範例

讓我們考慮主記憶體儲器大小為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個字將作為實體地址返回。