• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 論文大全 > 管理論文 > linux內存管理論文

    linux內存管理論文

    時間: 家文952 分享

    linux內存管理論文

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

      linux內存管理論文篇一

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

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

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

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

      一、實現過程

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

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

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

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

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

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

      1、Linux虛擬尋址

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

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

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

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

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

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

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

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

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

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

      參考文獻:

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

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

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

    2457214 主站蜘蛛池模板: 亚洲欧美精品伊人久久| 机机对机机30分钟无遮挡的软件免费大全 | 欧美日韩高清完整版在线观看免费| 日韩午夜激情视频| 国产日产在线观看| 亚洲a级成人片在线观看| jizz黄色片| 男国少年梦电影| 天堂8在线天堂bt| 亚洲精品无码你懂的| 中文字幕在线精品| 美女大黄三级视频在线观看| 波多野结衣伦理片在线观看| 扒开双腿疯狂进出爽爽爽动态图| 国产精品亚洲片在线观看不卡| 免费成人激情视频| HEYZO高无码国产精品| 老马的春天顾晓婷5| 朝桐光亚洲专区在线中文字幕| 大伊香蕉在线精品不卡视频| 国产999视频| 东北妇女精品BBWBBW| 国产精品视频yuojizz| 欧美超强性xxxxx| 国产精品久久久尹人香蕉| 亚洲视频第一页| 18禁白丝喷水视频www视频| 玉蒲团之风雨山庄| 国产综合久久久久| 亚洲一卡2卡4卡5卡6卡在线99| caopon在线| 欧美日韩一区二区三区麻豆| 奇米777视频国产| 亚洲欧美中文日韩综合| gay白袜男强制捆绑视频网站| 羞羞漫画小舞被黄漫免费| 最近2019中文字幕mv免费看| 国产精品无码素人福利免费| 亚洲黄色三级视频| jizzjizz护士| 撞击着云韵的肉臀|