2016-11-17 80 views
0

據我瞭解,程序在虛擬內存中被分配連續的地址空間。地址空間包含堆,堆棧,數據和文本部分以及一些可用空間。解決外部碎片 - 非連續分配

但實際上,這些部分在物理內存(RAM)中不是連續的。如果是這種情況,那麼它不能解決外部碎片問題嗎?我的意思是,外部碎片的整個意義在於我們沒有足夠的連續空間。那麼,爲什麼不分解這些細分市場並使用非連續空間?

我知道我錯過了一些東西。有人可以詳細說明這一點嗎?謝謝。

回答

1

邏輯到物理頁面映射解決了一個碎片問題,但不是全部。操作系統通常具有可能變得碎片化的內存池。另外,操作系統需要操作物理內存。一個例子是頁表本身。頁表的一部分(如果不是全部的話 - 取決於底層硬件)必須在物理內存中。

+0

您能否解釋映射如何解決碎片問題? –

+0

映射解決了設置線性邏輯地址空間的問題,因爲物理頁面框架可以以任何順序映射到地址空間。不需要連續的頁面框架來設置邏輯地址空間。 – user3344003