2010-07-16 99 views
2

我對純粹的分割有點困惑,因爲在我的腦海中總是存在虛擬內存的想法。純粹的分割

但據我所知,純粹的分割也想象一個虛擬地址空間,劃分爲所有加載到RAM中的段。

與分割虛擬內存的區別在於,可能存在某些段不在RAM中。

這是正確的嗎?

我加了一個問題: 分段結合分頁和雙層分頁是否存在實際區別?除了段方法的「極限」保護外,其他方面是相同的。或者還有其他的區別?

+0

您的術語有點偏離。 「虛擬內存」描述了在訪問RAM之前可以更改地址的任何系統。 *分段*是虛擬內存的一種形式。 *分頁*是更常用的另一種形式。也許你把「虛擬內存」與「分頁?」混淆了? – Karmastan 2010-07-16 06:04:14

+0

我對分頁和純分頁感到困惑。或者分割和純粹的分割。什麼是純粹的? – makakko 2010-07-16 06:18:28

回答

2

不,這是不正確的。例如,在x86上,分段使用由兩部分組成的「遠」指針:段選擇器(加載到段寄存器,例如DS)和段中的偏移量。段偏移總是從0開始.CPU使用段選擇器來查找包含段的LINEAR基地址,長度和訪問權限的段描述符。所有訪問都經過長度檢查;如果您嘗試訪問超出段限制或無效訪問的內存(例如,寫入只讀段),CPU將生成一般性保護錯誤。

由於段地址始終爲零,並且段基址隱含在段選擇器中,操作系統可以移動段並對存儲段進行碎片整理,而不會影響使用該數據的程序。 (與「平坦」內存模型對比,如果移動一些數據,則還必須更新指向它的所有指針)。

現在,當禁用分頁時,LINEAR段基址是其物理內存地址。當啓用分頁功能時,所有對分段數據的訪問都會像往常一樣由MMU轉換。

+0

是的,分割和兩級分頁有區別。兩級或(多級)分頁是一種減少頁表使用的內存的技術。 – zvrba 2010-07-16 06:35:31

+0

在只有分段存儲器系統中,MMU不能使用?我的意思是,使用像TLB這樣的緩存來避免緩慢的RAM來檢查每個段的基數和限制。據我所知,TLB對於分頁工作正常,具有(以簡單的形式):頁框,頁框等。在分割的情況下,我需要:分段限制幀,分段限制幀,限制幀...... – makakko 2010-07-16 06:53:05

+0

不,MMU在唯一分段系統中沒有功能。段描述符通常以另一種方式由CPU緩存。 – zvrba 2010-07-16 10:46:57

0

如果您對認識這個級別的內存管理非常認真,可以通過Silberschatz,Galvin和Gagne閱讀Operating System Concepts找到一個很好的解釋。你應該能夠找到一個便宜的舊版本。