linux操作系統(tǒng)存儲(chǔ)器管理

linux操作系統(tǒng)存儲(chǔ)器管理

ID:35515022

大小:110.50 KB

頁數(shù):7頁

時(shí)間:2019-03-25

linux操作系統(tǒng)存儲(chǔ)器管理_第1頁
linux操作系統(tǒng)存儲(chǔ)器管理_第2頁
linux操作系統(tǒng)存儲(chǔ)器管理_第3頁
linux操作系統(tǒng)存儲(chǔ)器管理_第4頁
linux操作系統(tǒng)存儲(chǔ)器管理_第5頁
資源描述:

《linux操作系統(tǒng)存儲(chǔ)器管理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、Linux是一種自由和開放源碼的類Unix操作系統(tǒng)。目前存在著許多不同的Linux,但它們都使用了Linux內(nèi)核。Linux可安裝在各種計(jì)算機(jī)硬件設(shè)備中,從手機(jī)、平板電腦、路由器和視頻游戲控制臺,到臺式計(jì)算機(jī)、大型機(jī)和超級計(jì)算機(jī)。Linux操作系統(tǒng)的誕生1981年IBM公司推出享譽(yù)全球的微型計(jì)算機(jī)IBMPC。Linux實(shí)現(xiàn)了基于虛擬頁式存儲(chǔ)管理的虛擬存儲(chǔ),在i386結(jié)構(gòu)的機(jī)器上,每個(gè)用戶任務(wù)的虛擬地址空間都可達(dá)到4GB。??Linux的存儲(chǔ)管理使用了三層頁表來處理邏輯地址到物理地址的轉(zhuǎn)換,分別是PGD(頁表目錄)、PMD(中間頁表目錄)和PT(頁表)。??Linux將存儲(chǔ)

2、管理分為物理內(nèi)存管理、內(nèi)核內(nèi)存管理、虛擬內(nèi)存管理、內(nèi)核虛擬內(nèi)存管理和用戶級內(nèi)存管理。一存儲(chǔ)器管理的目的(1).為多道程序設(shè)計(jì)提供支持(2).提高內(nèi)存利用率(3).簡化內(nèi)存的使用,為用戶開發(fā)應(yīng)用程序提供支持多道次序設(shè)計(jì)的主要目的是提高微處理器的利用律。而為了實(shí)現(xiàn)多道程序的并行運(yùn)行,存儲(chǔ)器管理系統(tǒng)必須能夠?qū)?nèi)存分為多個(gè)部分,每部分都裝入一道程序,以便多道程序的并行運(yùn)行。影響內(nèi)存利用率的一個(gè)重要因素是內(nèi)存的管理開銷。為了便于管理,內(nèi)存分配有一個(gè)最小單位。小于該單位的內(nèi)存請求,將按此最小單位分配內(nèi)存,其多余的未使用空間被稱為“碎片”。減少碎片的方法,是縮小該基本單位。從內(nèi)存的分區(qū)

3、管理到分段管理再到分頁管理和分段分頁結(jié)合的段頁式管理都體現(xiàn)了這一思路。為了方便用戶使用,存儲(chǔ)器管理應(yīng)該提供相應(yīng)的功能,以支持用戶的應(yīng)用程序開發(fā)。比如分段機(jī)制可以幫助用戶按功能組織代碼,共享存儲(chǔ)器機(jī)制可以方便用戶高速通信。二存儲(chǔ)管理1物理內(nèi)存管理:物理內(nèi)存管理以頁為單位,記錄、分配和回收物理內(nèi)存,物理內(nèi)存管理使用Buddy(伙伴)算法。(1)空閑物理內(nèi)存單元的管理Linux物理內(nèi)存管理使用Buddy算法實(shí)現(xiàn)。其物理頁面的信息由mem_map_t結(jié)構(gòu)描述,系統(tǒng)中的所有物理頁面由一個(gè)mem_map_t類型的數(shù)組mem_map來表示。該數(shù)組的每一項(xiàng)都代表物理內(nèi)存的一個(gè)頁面,該叔祖

4、的大小由實(shí)際的物理內(nèi)存大小決定。mem_map_t結(jié)構(gòu)的定義參考linuxlinux-2.4.xincludelinuxmm.h.Linux內(nèi)核定義了free_area數(shù)組記錄系統(tǒng)中的當(dāng)前空閑物理內(nèi)存單元。每一項(xiàng)都是一個(gè)free_area_struct結(jié)構(gòu),描述了一組由相同大小的空閑物理頁塊構(gòu)成的雙向鏈表。另外,Linux使用全局變量nr_free_pages來跟蹤系統(tǒng)中的空閑物理內(nèi)存頁面的總數(shù),該變量的值等于free_area數(shù)組中空閑頁的總數(shù)。使用該變量,Linux可以知道系統(tǒng)物理內(nèi)存的使用狀況,當(dāng)空閑的物理內(nèi)存頁面樹立低于某個(gè)指標(biāo)時(shí),Linux將喚醒內(nèi)核交換

5、守護(hù)進(jìn)程kswapd,讓其盡可能回收一些物理內(nèi)存。(2)物理頁的分配所有物理內(nèi)存的分配和釋放必須針對連續(xù)的物理內(nèi)存。因此,Buddy酸法將內(nèi)存劃分成2的i次方頁大小的連續(xù)的頁塊,每一組有相同的i值。并且將同一組的空閑頁塊鏈接成一個(gè)雙向鏈表然后將所有鏈表的頭節(jié)點(diǎn)組成一個(gè)數(shù)組。分配空間時(shí),首先要在頁塊大小相應(yīng)的空閑頁塊鏈中找到一塊空間來返回給調(diào)用者,如果在這個(gè)鏈里沒有找到合適的空間分配,則到free_area數(shù)組中的下一個(gè)元素的空閑鏈中去查找,直至找到能夠分配的空間。(3)物理頁的釋放內(nèi)存管理系統(tǒng),在分配空間時(shí)將大頁塊都劃分成了小頁塊,這使得系統(tǒng)中的頁塊都越變越小,這對于分配

6、大塊內(nèi)存是不利的。為了避免產(chǎn)生大量的內(nèi)存碎片,內(nèi)存管理系統(tǒng)在物理頁釋放時(shí),應(yīng)該斤可能地將小頁塊合并成大頁塊。(4)物理內(nèi)存管理評價(jià)為了內(nèi)存對齊,Buddy算法往往會(huì)分配一些多余的內(nèi)存空間給用戶,這對提供內(nèi)存利用率是不利的;但是Buddy算法避免了內(nèi)存碎片的產(chǎn)生,避免了內(nèi)存緊抽的開銷,效率很高。2內(nèi)核內(nèi)存管理:內(nèi)核內(nèi)存管理主要負(fù)責(zé)為各種內(nèi)核數(shù)據(jù)結(jié)構(gòu)分配空間,其大小一般較小。如果使用以頁為單位的物理內(nèi)存管理則浪費(fèi)較大,為此Linux專門提供了使用Slab算法的內(nèi)核內(nèi)存管理。3虛擬內(nèi)存管理:在物理內(nèi)存管理的基礎(chǔ)上,使用請求調(diào)頁機(jī)制和交換機(jī)制,為系統(tǒng)中的每個(gè)進(jìn)程都提供高達(dá)4GB(

7、i386平臺)的虛擬內(nèi)存空間。(1)頁表的管理一個(gè)頁表入口標(biāo)識一個(gè)物理頁,它包含了物理頁的大量信息,如該頁是否有效、該頁的讀寫權(quán)限等。最重要的是頁表入口給出了物理頁的頁框號,根據(jù)這個(gè)物理頁框號就可以找到這個(gè)物理頁的實(shí)際起始物理地址。??為了操作系統(tǒng)的可移植性,Linux使用三級頁表來存儲(chǔ)虛擬地址轉(zhuǎn)換為物理地址映射關(guān)系。一級頁表只占用一個(gè)頁,其中存放了二級頁表的入口指針,記為PGD;二級頁表中存放了三級頁表的入口的指針,記為pmd;在三級頁表中每個(gè)項(xiàng)都是一個(gè)頁表入口。在Linux的X86版本中,只使用了兩極頁表,即第一級和第三級

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

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

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