Linux與WindowsNT在記憶體管理上的差別(轉)
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在快取記憶體管理上有一些獨到之處,這是它效能之所以高的根本原因所在。
在虛擬記憶體的使用上,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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從C++看C#託管記憶體與非託管記憶體C++C#記憶體
- 在linux檢視記憶體的大小(轉)Linux記憶體
- Linux記憶體使用的體會(轉)Linux記憶體
- [轉載] Java直接記憶體與堆記憶體Java記憶體
- WindowsNT和Linux的檔案許可權一個區別(轉)WindowsLinux
- 記憶體的SDR與DDR的區別記憶體
- Linux在X86上的虛擬記憶體管理(轉)Linux記憶體
- 轉 linux 記憶體釋放Linux記憶體
- Arm64記憶體模型、記憶體型別、效能與DMA記憶體模型型別
- linux系統只識別出一半的實體記憶體 (轉)Linux記憶體
- 託管堆記憶體佔用記憶體
- TRIZ在減少人為誤差原理上的應用
- 堆和棧在物理上的區別
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- 資料型別、記憶體與拷貝資料型別記憶體
- Linux 記憶體管理:記憶體對映Linux記憶體
- Go:記憶體管理與記憶體清理Go記憶體
- 聊聊 記憶體模型與記憶體序記憶體模型
- Linux作業系統中記憶體buffer和cache的區別(轉載)Linux作業系統記憶體
- 記憶體的分配與釋放,記憶體洩漏記憶體
- 記憶體上的linux記憶體Linux
- linux的記憶體管理Linux記憶體
- Linux中的管道是什麼?管道與共享記憶體的區別有哪些?Linux記憶體
- iPhone7/Plus配置對比:記憶體/攝像頭差別最大iPhone記憶體
- java記憶體溢位和記憶體洩漏的區別Java記憶體溢位
- 我的眼裡無軟體差別(轉)
- 記憶體分析與記憶體洩漏定位記憶體
- 遊戲記憶體對比普通記憶體區別 遊戲記憶體和普通記憶體相差大嗎?遊戲記憶體
- 虛擬記憶體與系統效能(轉)記憶體
- 記憶體跟硬碟的區別記憶體硬碟
- Redis 記憶體優化在 vivo 的探索與實踐Redis記憶體優化
- 【轉】java中的記憶體溢位和記憶體洩漏Java記憶體溢位
- 獲取linux可用記憶體 剩餘記憶體Linux記憶體
- JVM——記憶體洩漏與記憶體溢位JVM記憶體溢位
- 關於.net託管環境下struct型別的記憶體佈局的認識Struct型別記憶體
- Linux共享記憶體的管理Linux記憶體
- Linux中的記憶體管理Linux記憶體
- 【Linux】Linux 的快取記憶體Linux快取記憶體