操作系統——存儲管理:分區、分頁、分段、請求式分頁和虛擬內存

1. 綜述

  突然把這麼多概念弄到一起,讓人有點兒困惑。自己的一些理解:

  分區式管理:最簡單直觀的方式,在內存中分配一個區,將整個進程放入這個區。缺點是會產生外碎片,即時間長了會在分區之間產生難以被利用的小空間。

  分頁式管理:將內存分成固定大小的頁,分配若干頁將整個進程載入。頁面可以不連續是其重要優點,不會產生外碎片,更有效地利用了內存,不過會產生一些內碎片,即分配給進程的最後一個頁往往不能正好用完,不過在頁面大小不是很大的時候可以接受。

  分段式管理:將程序分爲若干個段,如數據段和代碼段,加以不同的保護。施加保護是分段式的優點,但其仍是向分區式管理一樣的連續分配。

  段頁式管理:同樣將程序分段,加以不同的保護,但是各段不再連續分配,而採用分頁式離散分配。

  以上四種全是實存管理。即進程要麼全部載入內存中,要麼就不能載入。

 

2. 請求式分頁和虛擬內存

  請求式分頁:將進程放入虛擬內存中,由於一個進程的頁面不會同時全部被用到,只將需要用到的頁面調入物理內存。即進程並沒有整個在物理內存中。

  幾個請求式分頁的概念:(博客鏈接:請求式分頁中的內存分配)

  固定分配:物理內存中分配給進程的內存塊數一定。

  可變分配:物理內存先分配給進程一些內存塊,如不夠,可適當增加。

  局部置換:發生在分配的內存塊已用完,又發生了缺頁時,只能置換本來就是自己的內存塊。

  全局置換:發生在分配的內存塊已用完,又發生了缺頁時,可以置換到操作系統保留的空閒頁。這其實相當於增加了進程佔有的內存塊數。

  三種分配方式:固定分配局部置換、可變分配全局置換、可變分配局部置換。固定分配、全局置換不能組合。

發佈了15 篇原創文章 · 獲贊 13 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章