Linux與Windows NT在內存管理上的差別
在內存管理上,Linux 和Windows NT在面對相同的進(jìn)程地址空間大小時(shí),對內存布局的使用方式不同。Windows NT實(shí)際只為進(jìn)程準備了2GB弱的可用虛擬地址空間,而Linux中的進(jìn)程地址空間使用更靈活些。
本文引用地址:http://dyxdggzs.com/article/201609/304110.htm在虛擬內存的使用上,Linux內核為用戶(hù)管理了非常多的細節問(wèn)題,用戶(hù)可以認為自己真正擁有4GB地址空間,而不用關(guān)心虛擬內存是否提交物理存儲等問(wèn)題。Windows NT則為程序員提供了多種虛擬內存使用方案,雖然這些方案的使用有些復雜,但卻提供了一定程度上的靈活性。它也支持DOS和Win16程序的執行,但為了提供這種兼容性,它的內存管理付出了極高的性能代價(jià)。
Linux 和Windows NT雖然均提供了內存共享技術(shù),但它們的實(shí)現有些細微的差別。Linux提供給用戶(hù)的接口非常簡(jiǎn)單,只需將自己的虛擬內存空間區域附加到共享內存對象之上。Windows NT則是通過(guò)內存映射文件提供共享內存機制,從使用上講,略顯復雜。
Linux的內存交換管理靈活性很強,用戶(hù)可以在普通的文件系統上建立“無(wú)洞”的文件作為交換空間,還可以使用多個(gè)交換文件,從而可以動(dòng)態(tài)增加交換文件。它也提供了利用交換分區作為交換空間的方法,此方法是優(yōu)選的交換空間方案。Windows NT的頁(yè)面文件很難擺脫碎片化的危險,為了保證它采用無(wú)碎片的頁(yè)面文件,必須采取一定的措施。
Linux 和Windows NT在高速緩存的使用上有一些共同之處,均盡量采用系統的全部空閑RAM作為高速緩存區域,但Linux在高速緩存管理上有一些獨到之處,這是它性能之所以高的根本原因所在。
評論