六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學習啦 > 論文大全 > 管理論文 > linux內存管理論文

linux內存管理論文

時間: 家文952 分享

linux內存管理論文

  Linux是多用戶、多任務的操作系統(tǒng),存儲資源由多個進程有效共享。下面是學習啦小編整理了linux內存管理論文,有興趣的親可以來閱讀一下!

  linux內存管理論文篇一

  分頁式虛擬內存管理及Linux實現

  摘 要:本文分析了操作系統(tǒng)的頁式虛擬存儲管理機制,并結合當前支持多平臺的Linux操作系統(tǒng),根據其中虛擬存儲的特點,詳細分析了在Linux系統(tǒng)下的頁式內存虛擬實現,重點指出了Linux所獨特的具體實現過程,其中包括請頁機制,物理內存分配與回收和交換機制等。

  關鍵詞:內存;分頁;虛擬;Linux

  現代大多數計算機操作系統(tǒng)由于內存空間的限制,都采用了虛擬內存空間管理的方法。虛擬存儲管理器通過在輔存中建立一個虛擬地址空間,提供了一個物理存儲器的抽象,并且在任意時刻“自動地”確定哪部分地址空間被加載在內存中,系統(tǒng)處理在內存和輔存之間地址空間塊的來回傳送,而無須人工干預。現在大部分的虛擬內存系統(tǒng)都采用了分頁式虛擬內存管理。提高其管理性能可增強計算機的運行速率和工作效率。本文即介紹分頁式虛擬內存管理的過程并結合Linux操作系統(tǒng)介紹其實現。

  一、實現過程

  1、地址轉換。在分頁式虛擬內存管理系統(tǒng)中,虛擬地址空間劃分成許多頁,頁是一段連續(xù)的虛擬地址空間。相應的,物理內存空間也劃分成多個頁幀。頁和頁幀的大小是相同的,一個頁可以映射到一個頁幀。頁表項(Page Table Entry,PTE)包含有與主存中的頁相對應的幀號,對應的頁是否在主存中的存在位(P),頁的內容從上次裝入至今是否改變的修改位(M)。圖示如下:

  為了將邏輯地址轉換成物理地址,系統(tǒng)中必須設置地址變換機構。但是現在計算機使用的虛擬地址一般是32位的,而且每次訪問內存都要進行地址轉換,這將嚴重影響系統(tǒng)效率?,F實中使用TLB(Translation Lookaside Buffer)以及三級頁表等解決上述問題。

  2、請求頁面調度。 虛擬內存管理中,進程駐留在次級存儲器。當訪問到某頁中的一個單元時才將該頁取入內存。當一個進程第一次啟動時,會出現大量的頁錯誤,當越來越多的頁被取入內存時,根據局部性原理,在一段時間后錯誤會逐漸平息下來,頁錯誤的數目會降的很低。

  3、頁面置換算法。在進程運行過程中,若其所要訪問的頁面不在內存而需把它們調入內存,但內存無空閑空間時,系統(tǒng)必須從內存中調出一頁程序或數據,送磁盤的對換區(qū)中。頁面置換算法(Page-Replacement Algorithms)確定將哪個頁面調出。

  二、Linux中的分頁虛擬內存管理具體實現

  Linux是多用戶、多任務的操作系統(tǒng),存儲資源由多個進程有效共享。Linux內存管理的設計充分利用了計算機系統(tǒng)所提供的虛擬存儲技術,真正實現了虛擬存儲器管理。其虛擬地址空間大小為4GB,內核將這4G的空間分為兩部分,高1G為內核空間,低3G為內核空間,即Linux可以擁有4GB的虛擬空間。

  1、Linux虛擬尋址

  Linux使用三級頁表結構,且與平臺無關,由頁目錄,頁中間目錄和頁表構成。Linux中的虛擬地址可由4個域組成,其地址轉換與前述類似。

  2、Linux請頁機制。在Linux中,當一個進程執(zhí)行時,如果CPU訪問到一個有效的虛地址,但是這個地址對應的頁不在內存,則CPU產生一個缺頁異常,并將這個虛地址存入CR2存儲器,然后調用缺頁異常處理程序do_page_fault()。

  有兩種方法裝入所缺的頁,取決于此頁是否與磁盤文件建立了映射關系。可以調用do_no_page()函數檢查虛存區(qū)描述符的nopage域來確定這一點。若nopage域不為空,說明映射了一個磁盤文件,nopage域指向執(zhí)行從磁盤讀入操作的函數;若nopage域為空,虛存區(qū)沒有映射磁盤文件。因此,do_no_page()調用do_anonymous_page()函數,獲得一個新的頁面。

  3、物理內存分配與回收。在Linux中,虛存區(qū)間的分配在前,物理頁面的分配在后。隨著用戶程序的執(zhí)行和結束,系統(tǒng)不斷地分配和釋放物理頁面,這導致在已分配的內存塊中分散著許多小的空閑頁面,即外碎片。外碎片無法滿足大塊連續(xù)頁面的分配要求。為此,Linux采用伙伴(buddy)算法來解決外碎片問題。它把所有的空閑頁面分為10個塊組,每組中塊的大小是2n個頁面,且把同樣大小的塊形成一個鏈表。然后把大小相等且物理地址連續(xù)的兩個塊合并為一個塊。

  4、交換機制。物理頁面的換入換出主要過程如下,其中涉及Linux中的page結構和free_area結構。

  釋放頁面。如果一個頁面變?yōu)榭臻e可用,就把該頁面的page結構鏈入某個空閑隊列free_area,同時頁面的使用計數count減1。

  分配頁面。調用在__get_free_page()從某個空閑隊列分配內存頁面,將頁面的使用計數count置為1。

  活躍狀態(tài)。已分配的頁面處于活躍狀態(tài),該頁面的數據結構page通過其隊列頭結構lru鏈入活躍頁面隊列active_list,并在進程地址空間中至少有一個頁與該頁面之間建立了映射關系。

  總結:操作系統(tǒng)中的虛擬存儲技術是當今計算機領域的熱點之一。它的優(yōu)劣直接影響到計算機的性能的好壞。Linux是一個功能強大的實際的操作系統(tǒng),每個技術環(huán)節(jié)都有其自身的特點,特別在系統(tǒng)架構方面有其獨到的特點。在Linux虛擬內存方面的性能改善將成倍的提高計算機在實際應用中的價值和生產率。本文為虛擬內存的理論闡述,可作為相關方向的理論介紹材料,對提高計算機實際應用能力有一定幫助。

  作者單位:東北林業(yè)大學信息與計算機工程學院

  參考文獻:

  [1]Abraham Baer Galvin等.鄭扣銀譯.OPERATING SYSTEM CONCEPTS[M].北京:高等教育出版社.2005.

  [2]William Stallings,陳渝譯.Operating Systems Internals and Design Principles[M].北京:電子工業(yè)出版社.2007.

點擊下頁還有更多>>>linux內存管理論文

2457214