Linux內(nèi)存管理詳解_第1頁
Linux內(nèi)存管理詳解_第2頁
Linux內(nèi)存管理詳解_第3頁
Linux內(nèi)存管理詳解_第4頁
Linux內(nèi)存管理詳解_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、虛擬地址即使是現(xiàn)代操作系統(tǒng)中,內(nèi)存依然是計(jì)算機(jī)中很寶貴的資源,看 看你電腦幾個(gè)T固態(tài)硬盤,再看看內(nèi)存大小就知道了。為了充分利用和管理系統(tǒng)內(nèi)存資源,Linu x采用虛擬內(nèi)存管理技 術(shù),利用虛擬內(nèi)存技術(shù)讓每個(gè)進(jìn)程都有4GB互不干涉的虛擬地址空間。 進(jìn)程初始化分配和操作的都是基于這個(gè)虛擬地址,只有當(dāng)進(jìn)程需 要實(shí)際訪問內(nèi)存資源的時(shí)候才會(huì)建立虛擬地址和物理地址的映射,調(diào) 入物理內(nèi)存頁。打個(gè)不是很恰當(dāng)?shù)谋确?,這個(gè)原理其實(shí)和現(xiàn)在的某某網(wǎng)盤一樣。 假如你的網(wǎng)盤空間是1TB,真以為就一口氣給了你這么大空間嗎?那 還是太年輕,都是在你往里面放東西的時(shí)候才給你分配空間,你放多 少就分多少實(shí)際空間給你,但你和你朋友看

2、起來就像大家都擁有1 TB 空間一樣。虛擬地址的好處o避免用戶直接訪問物理內(nèi)存地址,防止一些破壞性操作,保護(hù)操作系 統(tǒng)o每個(gè)進(jìn)程都被分配了 4GB的虛擬內(nèi)存,用戶程序可使用比實(shí)際物理內(nèi) 存更大的地址空間用戶空間和內(nèi)核空間i4GB的進(jìn)程虛擬地址空間被分成兩部分:迸程A用戶空間3GB進(jìn)程5用戶空間3G0iSSC用戶空間3GB匹核空問1GB用戶空間內(nèi)核空間使用的地 核的請(qǐng)物理地址上面章節(jié)我們已經(jīng)知道不管是用戶空間還是內(nèi)核空間, 址都是虛擬地址,當(dāng)需進(jìn)程要實(shí)際訪問內(nèi)存的時(shí)候,會(huì)由內(nèi) 求分頁機(jī)制產(chǎn)生缺頁異常調(diào)入物理內(nèi)存頁。把虛擬地址轉(zhuǎn)換成內(nèi)存的物理地址,這中間涉及利用MMU內(nèi)存管 理單元(Memory

3、M an age ment U ni t ) 對(duì)虛擬地址分段和分頁(段 頁式)地址轉(zhuǎn)換,關(guān)于分段和分頁的具體流程,這里不再贅述,可以 參考任何一本計(jì)算機(jī)組成原理教材描述。flY段頁式內(nèi)存管理地址轉(zhuǎn)換 Li nu x 內(nèi)核會(huì)將物理內(nèi)存分為3個(gè)管理區(qū),分別是:ZONE_DMADMA 內(nèi)存區(qū)域。包含0M&1 6MB之間的內(nèi) 存頁框,可 以由老式 基于I SA的設(shè)備通過DMA使用,直接映射到內(nèi)核的地址空間。 ZONE_NORMAL普通內(nèi)存區(qū)域。包含16MB896MB之間的內(nèi)存頁框,常規(guī)頁框,直接 映射到內(nèi)核的地址空間。ZONE_HI GHMEM高端內(nèi)存區(qū)域。包含896 MB以上的內(nèi)存 頁框,不進(jìn)行直接

4、映射,可以 通過永久映射和臨時(shí)映射進(jìn)行這部分內(nèi)存頁框的訪問。ZONE_HIGHMEM ,假設(shè)內(nèi)喜黃小為4G880M-4G20NE_N0RMAL&0MZONE_DHA -4物理內(nèi)存區(qū)劃分用戶空間用戶進(jìn)程能訪問的是用戶空間,每個(gè)進(jìn)程都有自己獨(dú)立的用 戶空間,虛擬 地址范圍從從 0x00000000至OxBFFFFFFF總?cè)萘?3G。用戶進(jìn)程通常只能訪問用戶空間的虛擬地址,只有在執(zhí)行內(nèi)陷操 作或系統(tǒng)調(diào)用時(shí)才能訪問內(nèi)核空間。進(jìn)程與內(nèi)存進(jìn)程(執(zhí)行的程序)占用的用戶空間按照訪問屬性一致的地址 空間存放在一起的原則,劃分成5個(gè)不同的內(nèi)存區(qū)域。訪問屬性指 _的是“可讀、可寫、可執(zhí)行等。o代碼段代碼段是用來存放

5、可執(zhí)行文件的操作指令,可執(zhí)行程序在內(nèi)存中 的鏡像。代碼段需要防止在運(yùn)行時(shí)被非法修改,所以只準(zhǔn)許讀取操作, 它是不可寫的。o數(shù)據(jù)段數(shù)據(jù)段用來存放可執(zhí)行文件中已初始化全局變量,換句話說就是 存放程序靜態(tài)分配的變量和全局變量。廠BSS段BSS段包含了程序中未 初始化的全局變量,在內(nèi)存中bss段全部 置零。o 堆 hea P 堆是用于存放進(jìn)程運(yùn)行中被動(dòng)態(tài)分配的內(nèi)存段,它的大小并不固 定,可動(dòng)態(tài)擴(kuò)張或縮減。當(dāng)進(jìn) 程調(diào)用mall oc等函數(shù)分配內(nèi)存時(shí),新 分配的內(nèi)存就被動(dòng)態(tài)添加到堆上(堆被擴(kuò)張);當(dāng)利用fr ee等函數(shù)釋 放內(nèi)存時(shí),被釋放的內(nèi)存從堆中被剔除(堆被縮減)。o 棧 sta ck棧是用戶存放程序

6、臨時(shí)創(chuàng)建的局部變量,也就是函數(shù)中定義的變 量(但不包括st at ic聲明的變量,sta ti c意味著在數(shù)據(jù)段中存放變 量)。除此以外,在函數(shù)被調(diào)用時(shí),其參數(shù)也會(huì)被壓入發(fā)起調(diào)用的進(jìn) 程棧中,并且待到調(diào)用結(jié)束后,函數(shù)的返回值也會(huì)被存放回棧中。由 于棧的先進(jìn)先出特點(diǎn),所以棧特別方便用來保存/恢復(fù)調(diào)用現(xiàn)場(chǎng)。從這 個(gè)意義上講,我們可以把堆??闯梢粋€(gè)寄存、交換臨時(shí)數(shù)據(jù)的內(nèi)存區(qū)。 上述幾種內(nèi)存區(qū)域中數(shù)據(jù)段、BSS段、堆通常是被連續(xù)存儲(chǔ)在內(nèi)存中, 在位置上是連續(xù)的,而代碼段和棧往往會(huì)被獨(dú)立存放。堆和棧兩個(gè)區(qū) 域在i3 86體系結(jié)構(gòu)中棧向下擴(kuò)展、堆向上擴(kuò)展,相對(duì)而生。桟 stack堆 HeapBSS你也可以

7、在l in ux下用si ze命令查看編譯后程序的各個(gè)內(nèi)存區(qū) 域大小:lem on -# size /usr/local/sb in /sshdtext data bss dec hex file name1924532 12412 426896 2363840 2411c0 /usr/local/sbi n/sshd 內(nèi)核空間在x86 3 2位系統(tǒng)里,Lin ux內(nèi)核地址空間是指虛擬地址從OxCOOOOOOO開始至U OxFFFFFFFF為止 的高 端內(nèi)存 地址 空間,總計(jì)1G 的容量,包括了內(nèi)核鏡像、物理頁面表、驅(qū)動(dòng)程序等運(yùn)行在內(nèi)核空間。4KB固走戌存映時(shí)區(qū)4MDh永久內(nèi)存浜射區(qū)4MD總計(jì)

8、T 線性地址映身 以上28M的 時(shí)到物理地址 旳高垛內(nèi)存&KB安全保護(hù)區(qū)域0IMB1r內(nèi)核空間細(xì)分區(qū)域.直接映射區(qū)直接映射區(qū) Di re ct Memory Reg ion :從內(nèi)核空間起始地址開始, 最大896M的內(nèi)核空間地址區(qū)間,為直接內(nèi)存映射區(qū)。直接映射區(qū)的896MB的線性地址直接與物理地址的前 896MB進(jìn)行映射,也就是說線性地址和分配的物理地址都是連續(xù)的。 內(nèi)核地址空間的線性地址Ox C000 0001所對(duì)應(yīng)的物理地址為0x00 0000 01,它們之間相差一個(gè)偏移量 PAGE_OFFSET =OxCOOOOO 00該區(qū)域的線性地址和物理地址存在線性轉(zhuǎn)換關(guān)系線性 地址=PAGE_OF

9、FSET+物理地 址也可以 用vi rt _t o_phys()函數(shù) 將 內(nèi)核虛擬空間中的線性地址轉(zhuǎn)化為物理地址。高端內(nèi)存線性地址空間內(nèi)核空間線性 地址 從896 M到1G的區(qū)間,容量1 28 MB的地址 區(qū)間是高端內(nèi)存線性地址空間,為什么叫高端內(nèi)存線性地址空間?下 面給你解釋一下:前面已經(jīng)說過,內(nèi)核空間的總大小1 GB,從內(nèi)核空間起始地址開 始的8 96 MB的線性地址可以直接映射到物理地址大小為896 MB的 地址區(qū)間。所以,內(nèi)核空間拿出了最后的128M地址區(qū)間,劃分成下面三個(gè) 高端內(nèi)存映射區(qū),以達(dá)到對(duì)整個(gè)物理地址范圍的尋址。而在64位的 系統(tǒng)上就不存在這樣的問題了,因?yàn)榭捎玫木€性地址空間

10、遠(yuǎn)大于可安 裝的內(nèi)存。動(dòng)態(tài)內(nèi)存映射區(qū)vmal lo c Reg ion 該區(qū)域由內(nèi)核函數(shù)v mal loc 來分配,特點(diǎn)是: 線性空間連續(xù),但是對(duì)應(yīng)的物理地址空間不一定連續(xù)。vmal lo c 分 配的線性地址所對(duì)應(yīng)的物理頁可能處于低端內(nèi)存,也可能處于高端內(nèi) 存。永久內(nèi)存映射區(qū)Pers is te nt K er nel Mappin g Regi on 該區(qū)域可訪問高端內(nèi) 存。訪問方法 是使用all oc_p age (_ GFP_HIG HMEM)分配高端內(nèi)存頁 或者使用kmap函數(shù)將分配到的高端內(nèi)存映射到該區(qū)域。固定映射區(qū)Fi xi ng k er nel Mappin g Regi o

11、n 該區(qū)域 和 4G 的頂端只有 4k 的隔離帶,其每個(gè)地址項(xiàng)都服務(wù)于特定的用途,女口 ACPI _BASE等。dKB匡走応存映更國(guó)4r/&東汎円再映尉邑4MB星L計(jì)8M憲歧性戢赴勒i里昨0窯W以上E:)有歸內(nèi)存ZOMt NORMAL-seoM安主保護(hù)舉ESM&ZOMt_DMA IU. 0 .一 g1GM曲舸JT丘小葩(5切內(nèi)棣空lE內(nèi)核空間物理內(nèi)存映射先別著急進(jìn)入下一節(jié),在這之前我們?cè)賮砘仡?如果認(rèn)真看完上面的章節(jié),我這里再畫了一張上面講的有點(diǎn)多, 一下上面所講的內(nèi)容。 圖,現(xiàn)在你的腦海中應(yīng)該有這樣一個(gè)內(nèi)存管理的全局圖。3云古與ifJGM it.I.a1024 11024片 4 尸 4 護(hù)斗

12、*1024伙伴系統(tǒng),減少了外部碎片產(chǎn)生。申請(qǐng)4個(gè)頁框,但是長(zhǎng)度為4個(gè)連續(xù)頁框塊鏈表沒 伙伴系統(tǒng)會(huì)從連續(xù)8個(gè)頁框塊的鏈表獲取一個(gè),并 個(gè),另外一個(gè)放入連續(xù)4因?yàn)槿魏握麛?shù)都可以由2八n的和組成,所以總能找到合適大小 的內(nèi)存塊分配出去 分配實(shí)例比如:我需要 有空閑的頁框塊, 將其拆分為兩個(gè)連續(xù)4個(gè)頁框塊,取其中 個(gè)頁框塊的空閑鏈表中。釋放的時(shí)候會(huì)檢查,釋放的這幾個(gè)頁框前后 的頁框是否空閑,能否組成下一級(jí)長(zhǎng)度的塊。命令查看lem on # cat /p roc/buddy infoNode 0, zone DMA 1 0 0 0 2 1 1 0 1 1 3Node 0, zone DMA32 319

13、8 4108 4940 4773 4030 2184 891 180 67 32 330Node 0, zone Normal 42438 37404 16035 4386 610 121 22 30 0 1 slab分配器看到這里你可能會(huì)想,有了伙伴系統(tǒng)這下總可以管理好物理內(nèi)存 了吧?不,還不夠,否則就沒有sla b分配器什么事了。那什么是sl ab分配器呢?一般來說,內(nèi)核對(duì)象的生命周期是這樣的:分配內(nèi)存-初始化-釋 放內(nèi)存,內(nèi)核中有大量的小對(duì)象,比如文件描述結(jié)構(gòu)對(duì)象、任務(wù)描述 結(jié)構(gòu)對(duì)象,如果按照伙伴系統(tǒng)按頁分配和釋放內(nèi)存,對(duì)小對(duì)象頻繁的 執(zhí)行分配內(nèi)存-初始化-釋放內(nèi)存會(huì)非常消耗性能?;锇橄?/p>

14、統(tǒng)分配出去的內(nèi)存還是以頁框?yàn)閱挝?,而?duì)于內(nèi)核的很多 場(chǎng)景都是分配小片內(nèi)存,遠(yuǎn)用不到一頁內(nèi)存 大小的空間。slab 分配器, 通過將內(nèi)存按使用對(duì)象不同再劃分成不同大小的空間,應(yīng)用于內(nèi) 核對(duì)象的緩存?;锇橄到y(tǒng)和slab不是二選一的關(guān)系,slab 內(nèi)存分配器是對(duì)伙 伴分配算法的補(bǔ)充。原理對(duì)于每個(gè)內(nèi)核中的相同類型的對(duì)象,如ta sk_ st ru ct、已經(jīng)初始化的對(duì)象,每當(dāng)要申請(qǐng)這種 sl ab列表中分配一個(gè)出去;而當(dāng)要釋放 ,而不是直接返回給伙伴系統(tǒng),從而避 了內(nèi)存分配性能。file_str uct等需要重復(fù)使用的小型內(nèi)核數(shù)據(jù)對(duì)象,都會(huì)有個(gè)sl ab 緩存池,緩存住大量常用的 類型的對(duì)象時(shí),就從緩

15、存池的 時(shí),將其重新保存在該列表中 免內(nèi)部碎片,同時(shí)也大大提高 主要優(yōu)點(diǎn)o sl ab內(nèi)存管理基于內(nèi)核小對(duì)象,不用每次都分配一頁內(nèi)存,充分利用 內(nèi)存空間,避免內(nèi)部碎片。o sl ab對(duì)內(nèi)核中頻繁創(chuàng) 建和釋放的小對(duì)象做緩存,重復(fù)利用一些相同的 _對(duì)象,減少內(nèi)存分配次數(shù)。數(shù)據(jù)結(jié)構(gòu)Zcache_criainkmpm cacheBtabft fullslabpageobjectkmm cacheslabs_partja1slabG亙IGobjectkmem cachefilab&_empty JslabpageVobjectV(完全分配的sl ab鏈表)l (部分分配的sla b鏈表)(沒有被分配對(duì)象

16、的sl ab鏈表)中有個(gè)重要的結(jié)構(gòu)體kmemJi st 3包含了以上三個(gè)數(shù)據(jù)slab分配器kmem cache 是一個(gè) each e ch a in 的 鏈表 組成節(jié) 點(diǎn),代表 的是 個(gè)內(nèi)核中的相同類型的對(duì)象高速緩存,每個(gè)kmem_ca ch e通常是 一段連續(xù)的內(nèi)存塊,包含了三種類型的sl abs鏈表:sl ab s_fu llsl ab s_pa rt ia sl ab s_empt y k mem_c ac he 結(jié)構(gòu)的聲明。-h I i t. .:. Ur: Hl Jd . UbL p; rL Ldi ;: *. hr l i I; I ;- 2冷址-_ ee; ,-urriqned

17、Lang free_otjjectsj ,“ unsigned ini free.Iinit:un&lgnetf knt 分餐旨後人sianajullslabs_parial11皇打ir;求苗Clslab分配圖解命令查看上面說的都是理論, 你可以通過cat / proc/比較抽象,動(dòng)動(dòng)手來看看系統(tǒng)中的s l ab吧! sl ab in fo命令,實(shí)際查 看系 統(tǒng)中sl ab信息。SMrVt k*LL M If Ufl*Ml戶.迓屯-耳直勰SP砂 -wbjprt tji-”暉?軸畫 I.fi i74 IJ -IdMC rch_lirf 4EPf;fi3-iiQ AM 6*4 -urvl 2!氏_

18、叩tC0審 Fii削-yU護(hù)旺云包t 肚伙密5 L IM T|iiriidiciTr tujCmq Junntt: UrvCJr;HuU_L*frirTv叮皿5 lx riril_th hME 嚴(yán)“弼廠血注踴盯JO*124ua121ra-Ijfi 屈r/ ., EnH 1 H;二 TiAMb ;i n JUtlHir4 : tUdblffBi :;TUM陽耳 i : idMffllK.! LilMt* : TJtml1 ImkKJ = SAtls J tJWtMtar-LlUEz-j mgq. 11占 fl i : t1皿出; t .; iUftdiri 甲 H卄IN a vlMdij h :

19、和曲恒 D llAblA h Hiii a tlALab m申門m fhblJivB 和曲皿p my$ U HtU4llfli rvG.slabi nfo 查詢 已a(bǔ)b t op實(shí)時(shí)顯示內(nèi)內(nèi)存緩存信息。% used) Active y Total Slmbs (% usd) Active 7 Total Caches (先 used) Active J Total 5ize 代 jsed) Minimum / Average Z Maximm Object(99.31_ 噢幻送一咚 V SIZE SLABS OBJ/SLAB CACHE SIZE NAMEslabtop 查詢 si ab高速緩

20、存的分類 sl ab高速緩存分為兩大類,通用高速緩存 通用高速緩存si ab分配器中用kmem_cache來描述高速 需要s la b分配器對(duì)其進(jìn)行高速緩存。cach e 速緩存描述符的高速緩存,是一種通用高速緩存,保存在 cach e_ch ai n 鏈表 中的第一個(gè) 元素。另2卜,sla b分配器所提供的小塊連續(xù)內(nèi)存的分配,也是通用高 速緩存實(shí)現(xiàn)的。通用高速緩存所提供的對(duì)象具有幾何分布的大小,范 圍為32到131 072字節(jié)。內(nèi) 核中提供了 kmall oc ()和kfr ee()兩個(gè) 接口分別進(jìn)行內(nèi)存的申請(qǐng)和釋放。專用咼速緩存內(nèi)核為專用高速緩存的申請(qǐng)和釋放提供了一套完整的接口,根據(jù) 所傳

21、入的參數(shù)為指定的對(duì)象分配sla b緩存。專用高速緩存的申請(qǐng)和釋放k mem_c ac he _c re ate ()用于對(duì)一個(gè)指定 的對(duì)象創(chuàng)建高速緩存。 它從c ac he_c ac he普通高速緩 存中為新的專有緩存分配一個(gè)高速緩 存描述符,并把這個(gè)描述符插入到高速緩存描述符形成的 cach e_ch ai n 鏈表中 。kmem_c ac he_de sto ry () 用 于撤 消和 從 cach e_ch ai n鏈表上 刪除高速緩 存。sl ab的申請(qǐng)和釋放sl ab數(shù)據(jù)結(jié)構(gòu)在內(nèi)核中的定義,如下:9TSfc97 9S% rmS.IGK 64590G-20KO.04KQ.93KL959

22、7195& 5692r re1392Q102342595&GK buffMjiad783BaK. dent ry782 4K e xt4_ext en t_s t a tu s 1&2144K ext4 inpde cqche和專用高速緩存。緩存的結(jié)構(gòu),它本身也_ ca ch e保存著對(duì)高unsigned long coiauroff; vod *s_en;unsigned tdt vnus電; kmpm一bufctl一t freej unsigned short nodeid;Slab結(jié)構(gòu)體內(nèi)核代碼kmem_c ac he_a ll oc()在其參 數(shù)所 指定的 高速緩 存中分配一個(gè) sl

23、ab,對(duì)應(yīng)的 kmem_cac he_f re e() 在其參數(shù)所 指定 的高 速緩存中 釋放一個(gè)sl ab。虛擬內(nèi)存分配前面討論的都是對(duì)物理內(nèi)存的管理,Linu x通過虛擬內(nèi)存管理, 欺騙了用戶程序假裝每個(gè)程序都有4G的虛擬內(nèi)存尋址空間(如果這 里不懂我說啥,建議回頭看下 別再說你不懂Linux內(nèi)存管理了,10 張圖給你安排的明明白白!)。所以我們來研究下虛擬內(nèi)存的分配,這里包括用戶空間虛擬內(nèi)存 和內(nèi)核空間虛擬內(nèi)存。注意,分配的虛擬內(nèi)存還沒有映射到物理內(nèi)存,只有當(dāng)訪問申請(qǐng) 的虛擬內(nèi)存時(shí),才會(huì)發(fā)生缺頁異常,再通過上面介紹的伙伴系統(tǒng)和 sl ab分配器申請(qǐng)物理內(nèi)存。用戶空間內(nèi)存分配mal l o

24、cmall oc用于申請(qǐng) 用戶 空間的 虛擬 內(nèi)存,當(dāng)申請(qǐng)小 于128KB小內(nèi) 存 的時(shí),mall oc使用sbr k或br k分配內(nèi) 存;當(dāng) 申請(qǐng)大于128KB的內(nèi) 存時(shí),使用mmap函數(shù)申請(qǐng)內(nèi)存;存在問題由于br k/ sb rk /m map屬于系統(tǒng)調(diào)用,如果每次申請(qǐng)內(nèi)存都要產(chǎn)生 系統(tǒng)調(diào)用開銷,cpu在用戶態(tài)和內(nèi)核態(tài)之間頻繁切換,非常影響性能。 而且,堆是從低地址往高地址增長(zhǎng),如果低地址的內(nèi)存沒有被釋放, 高地址的內(nèi)存就不能被回收,容易產(chǎn)生內(nèi)存碎片。解決因此,mal lo c采用的是內(nèi)存池的實(shí)現(xiàn)方式,先申請(qǐng)一大塊內(nèi)存, 然后將內(nèi)存分成不同大小的內(nèi)存塊,然后用戶申請(qǐng)內(nèi)存時(shí),直接從內(nèi) 存池中

25、選擇一塊相近的內(nèi)存塊分配出去。f、用戶空問逬程mmdpindllocbih sbrk*vm area structvrteiIIqc 進(jìn)屋頁我夢(mèng)儀徉舷鶴理內(nèi)薦 空用頁框內(nèi)核空間內(nèi)存分配在講內(nèi)核空間內(nèi)存分配之前,先來回顧一下內(nèi)核地址空間。vmal loc分別用于分配不同映射區(qū)的虛擬內(nèi)存,看這張上kmal Io c 和次畫的圖:4KBHl走氏存映死區(qū)4MD永久內(nèi)存映射區(qū)4 MB&KB安全保護(hù)區(qū)域8IMB直綏映鴕區(qū) 最小呂總計(jì)呂忖的線性地址映射到物理tffititS95MUi的高垛內(nèi)存jr內(nèi)核空間細(xì)分區(qū)域kmal I ockmal Io區(qū)。按字節(jié)為單位虛擬內(nèi)存,一般用于分配小塊內(nèi)存,釋放內(nèi)存對(duì)應(yīng) 于kfr ee,可以分配連 續(xù)的物理內(nèi)存。函數(shù) 原型在中聲明,一般情況下在驅(qū)動(dòng)程序中都是調(diào)用 kmal Io c()來給數(shù)據(jù)結(jié)構(gòu)分配內(nèi)存。c()分配的虛擬地址范圍在內(nèi)核空間的直接內(nèi)存映射還記得刖 面說 的sla b嗎? kmall oc命令,c-1同樣可以用cat / pr oc/ sl 下面的k mal lo oc咼速緩存。對(duì)象信息, 配 的 k mallabin c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論