linux 虛 存 分 析 報 告

linux 虛 存 分 析 報 告

ID:16335053

大?。?.31 MB

頁數(shù):29頁

時間:2018-08-09

linux 虛 存 分 析 報 告_第1頁
linux 虛 存 分 析 報 告_第2頁
linux 虛 存 分 析 報 告_第3頁
linux 虛 存 分 析 報 告_第4頁
linux 虛 存 分 析 報 告_第5頁
資源描述:

《linux 虛 存 分 析 報 告》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。

1、Linux虛存分析報告方存好第一章前言2第二章LINUX虛存管理概述31、Linux虛存管理的基本特點32、Linux虛存管理的主要實現(xiàn)技術3第三章LINUX虛存管理數(shù)據(jù)結(jié)構(gòu)51、32-bit虛擬地址52、Linux的多級頁表結(jié)構(gòu)53、頁表項的格式64、動態(tài)地址映射75、用戶進程的虛擬內(nèi)存結(jié)構(gòu)86、我們的工作10第四章PROCESS的虛存管理數(shù)據(jù)結(jié)構(gòu)的建立、維護、拆除及相關系統(tǒng)調(diào)用流程111、進程的載入、創(chuàng)建及內(nèi)存管理數(shù)據(jù)結(jié)構(gòu)和鏈結(jié)關系的建立112、數(shù)據(jù)結(jié)構(gòu)及鏈結(jié)關系的拆除(sys__exit)133、缺頁中斷服務14第五章主要函數(shù)

2、分析16Memory.c16mmap.c22第六章后記2929第一章前言Linux是一個功能強大的操作系統(tǒng),而內(nèi)存管理則是操作系統(tǒng)的核心,它負責管理計算機系統(tǒng)的存儲器。作為操作系統(tǒng)的核心,必須能夠克服物理內(nèi)存的局限,使用戶進程在透明方式下,擁有比實際物理內(nèi)存大得多的內(nèi)存。其策略之一就是使用虛擬內(nèi)存。Linux成功地實現(xiàn)了以虛擬內(nèi)存為核心的內(nèi)存管理策略,強大得分頁機制,公平得交換方式,各類有效得高速緩存,以及以頁保護為主得保護措施等。內(nèi)存管理的目的是要盡可能地方便用戶。同時Linux系統(tǒng)通過對用戶進程虛存的有效管理,作到了虛存對一般用

3、戶和Linux程序員的透明。本文首先闡述了Linux虛存管理以基本特點和主要實現(xiàn)技術,并分析了Linux虛存管理的主要數(shù)據(jù)結(jié)構(gòu)及其相關關系。圍繞它的建立、維護、使用和拆除,作了一個粗淺的剖析,因本人水平有限,有不當之處,請老師指正。同時應該指出的是本文所做的工作離不開同組的林濤、徐玫峰和范昭偉同學的幫助,謝謝他們。29第一章Linux虛存管理概述Linux的內(nèi)存管理采用頁式管理,使用多級頁表,動態(tài)地址轉(zhuǎn)換機構(gòu)與主存、輔存共同實現(xiàn)虛擬內(nèi)存:每個用戶Process擁有4GB的虛擬地址空間,Process在運行過程中可以動態(tài)浮動和擴展,為

4、用戶提供了透明的、靈活有效的內(nèi)存使用方式,下面簡述Linux虛存管理以基本特點和主要實現(xiàn)技術:1、Linux虛存管理的基本特點1.更大的地址空間。虛擬內(nèi)存可以是系統(tǒng)實際擁有的物理內(nèi)存的若干倍。因而它使得操作系統(tǒng)看起來擁有比實際大得多的內(nèi)存。2.合理的物理內(nèi)存分配。Linux通過共享和交換策略,使各個運行的進程能公平地共享內(nèi)存。3.保護。Linux存儲管理子系統(tǒng)為每一內(nèi)存頁設置了“上鎖位”,在線性地址及每級頁表頁項上設置了“讀/寫”位,這樣來確保某一個進程不受其他進程的干擾。即使某一個進程失敗了,也不會影響到其他進程和操作系統(tǒng)本身。4

5、.共享虛擬內(nèi)存Linux實現(xiàn)的虛擬內(nèi)存允許兩個進程之間互相共享內(nèi)存,例如:共享的庫。在這種情形之下,庫代碼僅存在于一個進程,而不需要為每一個應用都復制一份。2、Linux虛存管理的主要實現(xiàn)技術1、請求調(diào)頁(demandingpaging)與內(nèi)存擴展用戶Process創(chuàng)建時,并不是將它所需所有頁都分配給相應物理頁。開始時只裝入頁面中Process的第一個頁面,其他頁根據(jù)Process運行過程的請求從外存調(diào)入所需頁面,當Process訪問一個頁表項P位為0的頁中地址時,表示此頁不在主存中,將產(chǎn)生缺頁中斷,系統(tǒng)調(diào)用handle_mm_fa

6、ult()處理訪問異常,為之分配相應物理頁后,它再調(diào)用swap_in()函數(shù),從外存中讀入該頁面。Linux是一種請求式分頁存貯管理,這才使之可以運行大于主存空間的Process。2、頁換出策略29內(nèi)存中頁面不足時,Linux使用頁面AGE技術實現(xiàn)了頁淘汰策略的最近最少使用(LRU)算法:即每次換出時,總是選擇最老的頁換出,對易于從其他設備上獲取的非臟(notdirty)頁面。Linux采用丟棄(discarding)技術,如果發(fā)生過寫操作,則將該頁寫入系統(tǒng)的Swapfile中,這樣就可以加快換入的速度。1、內(nèi)存共享Linux將內(nèi)存

7、劃分為4K大小的頁面,為內(nèi)存共享提供了基礎:(1)不同進程間頁面共享時,可令共享該頁的Process的頁表項(pte)均指向該頁。(2)對kernel代碼和數(shù)據(jù)段的共享,通過Process創(chuàng)建時fork()函數(shù)將kernel代碼和數(shù)據(jù)段映射到用戶虛存的3GB~4GB的空間中去,所以每個Process都可以通過一定方式共享kernel的代碼和數(shù)據(jù)段。2、內(nèi)存保護采用了“Hole”技術、虛存段的保護、地址轉(zhuǎn)換機構(gòu)、頁表存取控制位(R/W位)等技術實現(xiàn)了內(nèi)存保護。──“Hole”技術物理內(nèi)存前4K是一空頁(empty_zero_page)

8、,用來捕獲NULL指針的異常訪問。在Process每個虛存段后,都有一個“4K”的“Hole”,用來捕獲虛存段的越界訪問。──虛存段保護方式主存中虛存段的全部或部分可以設為保護方式,防止非法訪問。──頁表項存取控制位(R/W位)頁表項

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。