嵌入式系統(tǒng)內(nèi)存管理課件_第1頁
嵌入式系統(tǒng)內(nèi)存管理課件_第2頁
嵌入式系統(tǒng)內(nèi)存管理課件_第3頁
嵌入式系統(tǒng)內(nèi)存管理課件_第4頁
嵌入式系統(tǒng)內(nèi)存管理課件_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、嵌入式操作系統(tǒng)之內(nèi)存管理組長(zhǎng):小組成員:萬富、嵌入式操作系統(tǒng)之內(nèi)存管理組長(zhǎng):主要內(nèi)容概述內(nèi)存管理的主要功能內(nèi)存保護(hù)虛擬內(nèi)存主要內(nèi)容概述概述 內(nèi)存管理系統(tǒng)式嵌入式操作系統(tǒng)內(nèi)核中重要的功能之一。由于處理器直接運(yùn)行和處理的程序和數(shù)據(jù)只能放在內(nèi)存中,因此內(nèi)存的管理質(zhì)量是否優(yōu)良將直接影響系統(tǒng)。概述 內(nèi)存管理的主要功能虛擬內(nèi)存空間 操作系統(tǒng)采用虛擬內(nèi)存功能使系統(tǒng)顯得它有比實(shí)際大得多得內(nèi)存空間,虛擬內(nèi)存可以比系統(tǒng)中的物理內(nèi)存大好多。保護(hù) 系統(tǒng)中每個(gè)進(jìn)程都有自己的虛擬地址空間,這些虛擬內(nèi)存空間相互之間完全分離,因此運(yùn)行一個(gè)應(yīng)用的進(jìn)程不會(huì)影響其他的進(jìn)程。同樣,硬件的虛擬內(nèi)存機(jī)制允許內(nèi)存區(qū)域被寫保護(hù),這樣就保護(hù)了

2、代碼和數(shù)據(jù)不被惡意應(yīng)用重寫。內(nèi)存管理的主要功能虛擬內(nèi)存空間內(nèi)存映射 內(nèi)存映射用來把映像和數(shù)據(jù)文件映像到一個(gè)進(jìn)程的地址空間。在內(nèi)存映射中,文件的內(nèi)容被直接鏈接到進(jìn)程的虛擬地址空間。公平物理內(nèi)存分配 內(nèi)存管理系統(tǒng)給予系統(tǒng)中運(yùn)行的每個(gè)進(jìn)程公平的一份系統(tǒng)物理內(nèi)存。共享虛擬內(nèi)存 盡管虛擬內(nèi)存允許進(jìn)程擁有分隔的虛擬地址空間,但有時(shí)還需要進(jìn)程共享內(nèi)存,如進(jìn)程間通信需要共享內(nèi)存。內(nèi)存映射內(nèi)存保護(hù) 內(nèi)存保護(hù)可通過硬件提供的MMU(memory management unit)來實(shí)現(xiàn)。目前,大多數(shù)處理器都集成了MMU:大幅度降低那些通過在處理器外部添加MMU模塊的處理方式所存在的內(nèi)存訪問延遲。MMU現(xiàn)在大都被設(shè)計(jì)

3、作為處理器內(nèi)部指令執(zhí)行流水線的一部分,使得使用MMU不會(huì)降低系統(tǒng)性能,相反,如果系統(tǒng)軟件不使用MMU,還會(huì)導(dǎo)致處理器的性能降低。在某些情況下,不使能MMU,跳過處理器的相應(yīng)流水線,可能導(dǎo)致處理器的性能降低80%左右。 內(nèi)存保護(hù) 內(nèi)存保護(hù)可通過硬件提供的MMU(memory ma早期的嵌入式操作系統(tǒng)大都沒有采用MMU:一方面是出于對(duì)硬件成本的考慮;另一方面是出于實(shí)時(shí)性的考慮。嵌入式系統(tǒng)發(fā)展到現(xiàn)在,硬件成本越來越低,MMU所帶來的成本因素基本上可以不用考慮原來的嵌入式CPU的速度較慢,采用MMU通常會(huì)造成對(duì)時(shí)間性能的不滿足,而現(xiàn)在CPU的速度也越來越快,并且采用新技術(shù)后,已經(jīng)將MMU所帶來的時(shí)間代

4、價(jià)降低到比較低的程度嵌入式CPU具有MMU的功能已經(jīng)是一種必要的趨勢(shì)。 早期的嵌入式操作系統(tǒng)大都沒有采用MMU:由于采用MMU后對(duì)應(yīng)用的運(yùn)行模式甚至開發(fā)模式都會(huì)有一些影響,大量嵌入式操作系統(tǒng)都沒有使用MMU。對(duì)于安全性、可靠性要求高的應(yīng)用來講如果不采用MMU,則幾乎不可能達(dá)到應(yīng)用的要求。如果沒有MMU的功能,將無法防止程序的無意破壞,無法截獲各種非法的訪問異常,當(dāng)然更不可能防止應(yīng)用程序的蓄意破壞了。采用MMU后,便于發(fā)現(xiàn)更多的潛在問題,并且也便于問題的定位。未采用MMU時(shí),內(nèi)存模式一般都是平面模式,應(yīng)用可以任意訪問任何內(nèi)存區(qū)域、任何硬件設(shè)備,程序中出現(xiàn)非法訪問時(shí),開發(fā)人員是無從知曉的,也非常難

5、于定位。由于采用MMU后對(duì)應(yīng)用的運(yùn)行模式甚至開發(fā)模式都會(huì)有一些影響,內(nèi)存保護(hù)MMU通常具有如下功能: 內(nèi)存映射;檢查邏輯地址是否在限定的地址范圍內(nèi),防止頁面地址越界;檢查對(duì)內(nèi)存頁面的訪問是否違背特權(quán)信息,防止越權(quán)操作內(nèi)存頁面;在必要的時(shí)候(頁面地址越界或是頁面操作越權(quán))產(chǎn)生異常。 內(nèi)存保護(hù)MMU通常具有如下功能: 應(yīng)用程序邏輯地址MMU物理內(nèi)存物理地址內(nèi)存映射把應(yīng)用程序使用的地址集合(邏輯地址)翻譯為實(shí)際的物理內(nèi)存地址(物理地址) 邏輯地址物理地址內(nèi)存映射把應(yīng)用程序使用的地址集合(邏輯地址)內(nèi)存保護(hù)大多數(shù)處理器的典型頁面大小為4K字節(jié),有些處理器也可能使用大于4K字節(jié)的頁面,但頁面大小總是2的

6、冪,以對(duì)發(fā)生在MMU中的地址映射行為流水線化。當(dāng)頁放置到物理內(nèi)存時(shí),頁面將放置到頁框架(page frame)中。頁框架是物理內(nèi)存的一部分,具有與頁面同樣的大小,且開始地址為頁面大小的整數(shù)倍。內(nèi)存保護(hù)大多數(shù)處理器的典型頁面大小為4K字節(jié),有些處理器也可MMU包含著能夠把邏輯地址映射為物理地址的表,稱為頁表。操作系統(tǒng)能夠在需要的時(shí)候?qū)@種映射關(guān)系進(jìn)行改變:應(yīng)用程序?qū)?nèi)存的需求發(fā)生變化或是添加或刪除應(yīng)用程序的時(shí)候。在應(yīng)用程序中的任務(wù)發(fā)生上下文切換時(shí)。 MMU包含著能夠把邏輯地址映射為物理地址的表,稱為頁表。頁號(hào)邏輯地址偏移量頁框架物理地址偏移量頁表基址寄存器特權(quán)和其他信息頁框架頁表基于頁表的內(nèi)存映

7、射過程 。 頁號(hào)邏輯地址偏移量頁框架物理地址偏移量頁表基址寄存器特權(quán)和其每個(gè)內(nèi)存頁還具有一些特權(quán)和狀態(tài)信息。MMU提供二進(jìn)制位來標(biāo)識(shí)每個(gè)頁面的特權(quán)或狀態(tài)信息。這些二進(jìn)制位用來確定頁面中的內(nèi)容是否: 可被處理器指令所使用(執(zhí)行特權(quán)) 可寫(寫特權(quán)) 可讀(讀特權(quán)) 已被回寫(臟位) 當(dāng)前在物理內(nèi)存中(有效位) 每個(gè)內(nèi)存頁還具有一些特權(quán)和狀態(tài)信息。在操作系統(tǒng)的支持下,MMU還提供虛擬存儲(chǔ)功能,即在任務(wù)所需要的內(nèi)存空間超過能夠從系統(tǒng)中獲得的物理內(nèi)存空間的情況下,也能夠得到正常運(yùn)行。當(dāng)需要的頁面被添加到邏輯地址空間時(shí),任務(wù)對(duì)內(nèi)存頁面的合法訪問,將自動(dòng)訪問到物理內(nèi)存。頁面當(dāng)前不在物理內(nèi)存中時(shí),將導(dǎo)致頁面

8、故障異常,然后操作系統(tǒng)負(fù)責(zé)從后援存儲(chǔ)器(如硬盤或是FLASH存儲(chǔ)設(shè)備)中獲取需要的頁面,并從產(chǎn)生頁面故障的機(jī)器指令處重新執(zhí)行。 在操作系統(tǒng)的支持下,MMU還提供虛擬存儲(chǔ)功能,即在任務(wù)所需要MMU通常具有如下不同功能程度的使用方式: 沒有使用MMU,應(yīng)用程序和系統(tǒng)程序能夠?qū)φ麄€(gè)內(nèi)存空間進(jìn)行訪問。采用該模式的系統(tǒng)比較簡(jiǎn)單、性能也比較高,適合于程序簡(jiǎn)單、代碼量小和實(shí)時(shí)性要求比較高的領(lǐng)域。大多數(shù)傳統(tǒng)的嵌入式操作系統(tǒng)都采用該模式; 0級(jí),內(nèi)存的平面使用模式MMU通常具有如下不同功能程度的使用方式: 0級(jí),內(nèi)存的平面通常只是打開MMU,并通過創(chuàng)建一個(gè)域(domain,為內(nèi)存保護(hù)的基本單位,每個(gè)域?qū)?yīng)一個(gè)頁

9、表)的方式來使用內(nèi)存,并對(duì)每次內(nèi)存訪問執(zhí)行一些必要的地址轉(zhuǎn)換操作。該模式仍然只是擁有MMU打開特性的平面內(nèi)存模式; 1級(jí),處理具有MMU和內(nèi)存緩存的嵌入式處理器1級(jí),處理具有MMU和內(nèi)存緩存的嵌入式處理器MMU被打開,且創(chuàng)建了靜態(tài)的域(應(yīng)用程序的邏輯地址同應(yīng)用程序在物理內(nèi)存中的物理地址之間的映射關(guān)系在系統(tǒng)運(yùn)行前就已經(jīng)確定),以保護(hù)應(yīng)用和操作系統(tǒng)在指針試圖訪問其他程序的地址空間時(shí)不會(huì)被非法操作。通常使用消息傳送機(jī)制實(shí)現(xiàn)數(shù)據(jù)在被MMU保護(hù)起來的各個(gè)域之間的移動(dòng)。 2級(jí),內(nèi)存保護(hù)模式2級(jí),內(nèi)存保護(hù)模式通過操作系統(tǒng)使用CPU提供的內(nèi)存映射機(jī)制,內(nèi)存頁被動(dòng)態(tài)地分配、釋放或是重新分配。從內(nèi)存映射到基于磁盤

10、的虛擬內(nèi)存頁的過程是透明的。3級(jí),虛擬內(nèi)存使用模式3級(jí),虛擬內(nèi)存使用模式0級(jí)模式為大多數(shù)傳統(tǒng)嵌入式實(shí)時(shí)操作系統(tǒng)的使用模式,同1級(jí)模式一樣,都是內(nèi)存的平面使用模式,不能實(shí)現(xiàn)內(nèi)存的保護(hù)功能。2級(jí)模式是目前大多數(shù)嵌入式實(shí)時(shí)操作系統(tǒng)所采用的內(nèi)存管理模式,既能實(shí)現(xiàn)內(nèi)存保護(hù)功能,又能通過靜態(tài)域的使用方式保證系統(tǒng)的實(shí)時(shí)特性。3級(jí)模式適合于應(yīng)用比較復(fù)雜、程序量比較大,并不要求實(shí)時(shí)性的應(yīng)用領(lǐng)域。 0級(jí)模式為大多數(shù)傳統(tǒng)嵌入式實(shí)時(shí)操作系統(tǒng)的使用模式,同1級(jí)模式應(yīng)用程序1應(yīng)用程序2代碼2數(shù)據(jù)24G0代碼1數(shù)據(jù)14G0邏輯地址應(yīng)用程序1的頁表應(yīng)用程序2的頁表代碼1數(shù)據(jù)1數(shù)據(jù)2代碼2操作系統(tǒng)物理內(nèi)存0基于靜態(tài)域的MMU使

11、用方式 也稱為是一一對(duì)應(yīng)的使用方式。在這種一一對(duì)應(yīng)的使用方式中,應(yīng)用程序的邏輯地址同應(yīng)用程序在物理內(nèi)存中的物理地址相同,簡(jiǎn)化了內(nèi)存管理的實(shí)現(xiàn)方式。 應(yīng)用程序1應(yīng)用程序2代碼2數(shù)據(jù)24G0代碼1數(shù)據(jù)14G0邏輯在嵌入式實(shí)時(shí)操作系統(tǒng)中,MMU通常被用來進(jìn)行內(nèi)存保護(hù):實(shí)現(xiàn)操作系統(tǒng)與應(yīng)用程序的隔離應(yīng)用程序和應(yīng)用程序之間的隔離防止應(yīng)用程序破壞操作系統(tǒng)的代碼、數(shù)據(jù)以及應(yīng)用程序?qū)τ布闹苯釉L問。對(duì)于應(yīng)用程序來講,也可以防止別的應(yīng)用程序?qū)ψ约旱姆欠ㄈ肭?,從而破壞?yīng)用程序自身的運(yùn)行。 在嵌入式實(shí)時(shí)操作系統(tǒng)中,MMU通常被用來進(jìn)行內(nèi)存保護(hù):在內(nèi)存保護(hù)方面,MMU提供了以下措施: 防止地址越界通過限長(zhǎng)寄存器檢查邏輯

12、地址,確保應(yīng)用程序只能訪問邏輯地址空間所對(duì)應(yīng)的、限定的物理地址空間,MMU將在邏輯地址超越限長(zhǎng)寄存器所限定的范圍時(shí)產(chǎn)生異常; 防止操作越權(quán)根據(jù)內(nèi)存頁面的特權(quán)信息控制應(yīng)用程序?qū)?nèi)存頁面的訪問,如果對(duì)內(nèi)存頁面的訪問違背了內(nèi)存頁面的特權(quán)信息,MMU將產(chǎn)生異常。 在內(nèi)存保護(hù)方面,MMU提供了以下措施: 應(yīng)用1應(yīng)用2應(yīng)用3操作系統(tǒng)簡(jiǎn)單的MMU保護(hù)模式 應(yīng)用程序之間要通信就只能通過操作系統(tǒng)提供的通信服務(wù),如:信號(hào)量、管道、消息、共享內(nèi)存等,而不能直接訪問彼此的地址空間。MMU通常還提供權(quán)限等級(jí),不同的權(quán)限等級(jí)對(duì)硬件訪問的權(quán)限不一樣。操作系統(tǒng)一般運(yùn)行在核心態(tài),具有所有的特權(quán),而應(yīng)用則一般運(yùn)行在用戶態(tài),具有一般權(quán)限,以防止應(yīng)用程序的故意破壞。 應(yīng)用1應(yīng)用2應(yīng)用3操作系統(tǒng)簡(jiǎn)單的MMU保護(hù)模式 嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核共享庫任務(wù) 任務(wù) 信號(hào)量任務(wù)信號(hào)量堆堆堆共享數(shù)據(jù)域基于域的內(nèi)存管理方式

溫馨提示

  • 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)論