2012-01-24 84 views
0

我已閱讀關於虛擬內存。我有一個疑問。假設有兩個進程P和Q.兩者都將具有相同的虛擬內存尋址。他們都有他們的頁面表。將會有一個系統範圍的頁表。那麼如果我們使用系統範圍的頁表,那麼這兩個進程如何在RAM上區分?虛擬內存中的兩個進程

+0

你是指虛擬地址空間嗎? –

+1

谷歌MMU! –

+0

通過他們的進程ID? – Kevin

回答

1

每個進程都有一個虛擬地址空間,它具有到物理內存的映射,但也可以虛擬化爲磁盤。

0

如果有一個全系統的頁表中使用所有的時間,則該無法工作,因爲將只有一個虛擬映射和2個處理將步驟上的每個其他存儲器。然而,每個進程保留一個頁表(簡單來說),並在內核調度一個進程運行時在這些頁之間進行切換。這樣每個進程就可以擁有映射到不同物理地址的相同虛擬地址,並且沒有問題。

1

這是因爲虛擬地址被分成用戶和內核空間。引導過程開始之後,尋呼裝置允許哪一個突然跳躍到內核空間的虛擬地址,最後它傳遞控制到用戶空間。系統範圍的頁面表是針對內核的,每個進程都有自己的頁表。

當它運行到內核,它使用的內核頁表和切換回用戶時,它使用用戶進程的頁表。

每個進程都有自己的頁表,因此它區分了兩個進程