我已閱讀關於虛擬內存。我有一個疑問。假設有兩個進程P和Q.兩者都將具有相同的虛擬內存尋址。他們都有他們的頁面表。將會有一個系統範圍的頁表。那麼如果我們使用系統範圍的頁表,那麼這兩個進程如何在RAM上區分?虛擬內存中的兩個進程
0
A
回答
1
每個進程都有一個虛擬地址空間,它具有到物理內存的映射,但也可以虛擬化爲磁盤。
0
如果有一個全系統的頁表中使用所有的時間,則該無法工作,因爲將只有一個虛擬映射和2個處理將步驟上的每個其他存儲器。然而,每個進程保留一個頁表(簡單來說),並在內核調度一個進程運行時在這些頁之間進行切換。這樣每個進程就可以擁有映射到不同物理地址的相同虛擬地址,並且沒有問題。
1
這是因爲虛擬地址被分成用戶和內核空間。引導過程開始之後,尋呼裝置允許哪一個突然跳躍到內核空間的虛擬地址,最後它傳遞控制到用戶空間。系統範圍的頁面表是針對內核的,每個進程都有自己的頁表。
當它運行到內核,它使用的內核頁表和切換回用戶時,它使用用戶進程的頁表。
每個進程都有自己的頁表,因此它區分了兩個進程
相關問題
- 1. 程序exectuion進程和虛擬內存
- 2. 分配給進程的虛擬內存
- 3. Continus進程虛擬內存增加
- 4. Flash虛擬內存改進
- 5. 虛擬內存:進程'一個和系統的一個
- 6. 獲得程序中AIX進程的虛擬內存大小
- 7. 虛擬內存
- 8. 虛擬內存?
- 9. iOS中的進程使用的虛擬內存?
- 10. 虛擬內存 - 如果進程'虛擬內存大於真實物理內存,爲什麼在進程覆蓋其他內存時沒有問題?
- 11. 如何在內核模式下寫入某個進程的虛擬內存
- 12. 在進程內運行erlang虛擬機
- 13. 進程的虛擬內存是否縮小?
- 14. 進程虛擬內存 - 堆棧和堆之間的空間
- 15. 內存模塊是否映射到進程的虛擬空間?
- 16. 圖形卡內存和進程的虛擬地址空間
- 17. Linux上的虛擬內存
- 18. 虛擬內存的使用
- 19. 將映射交換到虛擬內存中兩頁的兩個物理頁面
- 20. 虛擬內存的虛擬頁面中包含什麼?
- 21. 線程虛擬內存狀態
- 22. 進程如何共享虛擬內存(Linux)
- 23. Linux用戶進程上下文訪問用戶虛擬內存
- 24. Node.js虛擬內存不斷增加,同時使用子進程
- 25. 進程地址空間vs虛擬內存
- 26. 進程地址空間和虛擬內存
- 27. 分配內存之前虛擬內存
- 28. 虛擬內存到物理內存
- 29. 物理內存與虛擬內存
- 30. 虛擬內存或物理內存
你是指虛擬地址空間嗎? –
谷歌MMU! –
通過他們的進程ID? – Kevin