2013-03-29 81 views
0

當我在閱讀這篇維基百科文章,http://en.wikipedia.org/wiki/Memory_management_unit#How_it_works,我碰到的是鴻溝的虛擬地址空間(由處理器使用的地址範圍)成爲頁。但是我知道只有物理內存(RAM)被分成幾頁。那麼,一個進程的虛擬地址空間如何劃分呢?如何分頁虛擬地址空間?

另外,虛擬地址空間的這裏定義推移如由處理器所使用的地址的範圍。 處理器使用的地址範圍表示處理器中的地址總線長度,對吧?所以如果我有一個32位地址總線處理器和一個4 GB(2^32)的RAM,我的物理和虛擬地址空間是否一樣?

多多包涵,如果問題是太天真了..我還沒有得到的地址空間非常清晰的可視化。提前致謝。

回答

1

答案是具體到每個OS,但總體而言這意味着儘管每個進程都有說32位等值的可尋址內存,該內存空間中範圍或一定規模的頁面劃分。

簡單地當你的進程訪問的地址來說,該位置將在某一頁。操作系統將確保存在映射到該位置的物理內存。但它可能不在物理內存中的相同地址。

當其他一些工藝解決了位置,然後操作系統將在物理RAM的頁的映射,這樣的位置也將是可尋址的。

物理存儲器頁被映射到和從磁盤(這樣就可以有worth_ \,和虛擬存儲器頁被映射到剛剛描述的物理頁存儲器大於32位的全部時間。

我真的推薦閱讀這個問題的鏈接https://stackoverflow.com/questions/1437914/best-book-on-operating-systems