Linux與WindowsNT在記憶體管理上的差別(轉)

ba發表於2007-08-15
Linux與WindowsNT在記憶體管理上的差別(轉)[@more@]  在記憶體管理上,Linux 和Windows NT在面對相同的程式地址空間大小時,對記憶體佈局的使用方式不同。Windows NT實際只為程式準備了2GB弱的可用虛擬地址空間,而Linux中的程式地址空間使用更靈活些。

  在虛擬記憶體的使用上,Linux核心為使用者管理了非常多的細節問題,使用者可以認為自己真正擁有4GB地址空間,而不用關心虛擬記憶體是否提交物理儲存等問題。Windows NT則為程式設計師提供了多種虛擬記憶體使用方案,雖然這些方案的使用有些複雜,但卻提供了一定程度上的靈活性。它也支援DOS和Win16程式的執行,但為了提供這種相容性,它的記憶體管理付出了極高的效能代價。

  Linux 和Windows NT雖然均提供了記憶體共享技術,但它們的實現有些細微的差別。Linux提供給使用者的介面非常簡單,只需將自己的虛擬記憶體空間區域附加到共享記憶體物件之上。Windows NT則是透過記憶體對映檔案提供共享記憶體機制,從使用上講,略顯複雜。

  Linux的記憶體交換管理靈活性很強,使用者可以在普通的檔案系統上建立“無洞”的檔案作為交換空間,還可以使用多個交換檔案,從而可以動態增加交換檔案。它也提供了利用交換分割槽作為交換空間的方法,此方法是優選的交換空間方案。Windows NT的頁面檔案很難擺脫碎片化的危險,為了保證它採用無碎片的頁面檔案,必須採取一定的措施。

  Linux 和Windows NT在快取記憶體的使用上有一些共同之處,均儘量採用系統的全部空閒RAM作為快取記憶體區域,但Linux在快取記憶體管理上有一些獨到之處,這是它效能之所以高的根本原因所在。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-958868/,如需轉載,請註明出處,否則將追究法律責任。

相關文章