我知道用戶程序會生成邏輯地址。假設C中有一個小代碼片段。當打印地址時,地址是虛擬地址。我的問題是從哪裏獲取這些地址?在哪裏準確地執行分配的值和變量留在主存儲器或輔助存儲器中?如果主存儲器爲什麼有物理地址?邏輯地址在哪裏?
邏輯地址在哪裏?
回答
用戶模式程序只能看到邏輯地址。只有操作系統(內核模式)才能看到物理內存。
我的問題是從哪裏取得這些地址?
這些是由程序加載器廣告鏈接器分配的邏輯地址。
確切分配的值和變量保持在哪裏?在主存儲器還是輔助存儲器中?
在虛擬內存系統中,它可能位於主存儲器或輔助存儲器中。
如果主存儲器那麼爲什麼有物理地址?
它是一個使用頁表映射到物理地址的邏輯地址。
假設邏輯地址是#23xyz(一個隨機地址)。如果用戶程序生成邏輯地址,那麼這個地址指向哪裏存儲?哪個存儲器是存儲相應變量的值? –
@AjaySadanand我建議你開始閱讀關於頁面表。 – babon
操作系統定義了CPU用於將邏輯頁面映射到物理頁面框架的每個進程的頁面表。翻譯對過程透明。 – user3344003
我是一種新的計算機體系結構和操作系統, 但我會盡力回答我的問題。至於我有 瞭解邏輯地址(我仍然有困難 瞭解,從哪裏它是從哪裏獲取或從哪裏存儲的。我的意思是這些地址(數字)得存儲在某處, 否則CPU可以'它自己生成它,對嗎?),這些地址 由CPU或處理器分配並取決於CPU 體系結構。每個進程分配一個虛擬/邏輯 地址。並且該邏輯地址被CPU(MMU)的存儲器管理單元轉換爲物理地址 。
分配的值和變量究竟保留在哪裏?正如user3344003所說,它可能在主內存或輔助存儲中。
如果主內存然後爲什麼有物理地址?原因在於虛擬內存的概念中有 。每個進程都有自己的虛擬 地址和一個頁表。進程的邏輯地址通過此頁表映射到 到物理內存(RAM)。無論那個邏輯地址是什麼,它都被映射到物理地址。如果物理內存已滿,則操作系統會將一些較少使用的 或未使用的進程轉移到輔助存儲,並將所需進程 放入RAM中。這樣多個進程可以同時運行。 每個進程都假定它們自己擁有RAM中的所有空間,僅爲 。如果不是用於虛擬內存,那麼物理內存將會充滿,進程可能會崩潰,並且可能會關閉操作系統。
希望它有幫助。我還在學習,如果我對邏輯地址和虛擬內存的理解是錯誤的,那麼請評論。
- 1. 在哪裏把業務邏輯在DDD
- 2. 動態視圖?在哪裏放邏輯?
- 3. Django控制器邏輯在哪裏?
- 4. 把UITableViewCell邏輯放在哪裏?
- 5. MVC架構 - 在哪裏放置邏輯?
- 6. 在哪裏做類的邏輯?
- 7. CakePHP - 在哪裏放置服務邏輯
- 8. 你在哪裏把邏輯的迅速
- 9. Django的邏輯和它放在哪裏?
- 10. NHibernate查詢邏輯放在哪裏?
- 11. 你在哪裏放置驗證邏輯?
- 12. ServiceStack,在哪裏放置業務邏輯?
- 13. 在哪裏放置商業邏輯類
- 14. 我在哪裏放置ICommand的邏輯?
- 15. 在哪裏保持驗證邏輯
- 16. PHP:Zend_Layout:在哪裏編寫業務邏輯?
- 17. Lumen的商業邏輯在哪裏?
- 18. 不同的邏輯地址
- 19. 邏輯地址混淆
- 20. 邏輯和虛擬地址
- 21. SQL邏輯在哪里哪里參數化
- 22. 我要去哪裏錯功能邏輯
- 23. 應用程序邏輯去哪裏?
- 24. mvc邏輯設計 - 放哪裏?
- 25. 商業邏輯應該去哪裏?
- 26. DDD + node.js:域邏輯去哪裏
- 27. 導航邏輯屬於哪裏,View,ViewModel或其他地方?
- 28. 哪裏更好地把我的自定義驗證邏輯?
- 29. 哪裏是最好的地方爲asp.net mvc佈局邏輯
- 30. 從邏輯地址轉換爲物理地址。邏輯地址是十六進制的
您應該閱讀關於虛擬內存的WP文章。 –