欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

嵌入式操作系統(tǒng)中進(jìn)程映射實(shí)現(xiàn)方法

文檔序號(hào):6556504閱讀:190來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):嵌入式操作系統(tǒng)中進(jìn)程映射實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及實(shí)時(shí)任務(wù)處理技術(shù),特別是涉及一種嵌入式操作系統(tǒng)中進(jìn)程映射實(shí)現(xiàn)方法。
背景技術(shù)
存儲(chǔ)管理是操作系統(tǒng)的重要組成部分,它負(fù)責(zé)管理計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器。存儲(chǔ)器可分成主存儲(chǔ)器(簡(jiǎn)稱(chēng)主存)和輔助存儲(chǔ)器(簡(jiǎn)稱(chēng)輔存)兩類(lèi)。
主存儲(chǔ)器的存儲(chǔ)空間一般分中兩部分一部分是系統(tǒng)區(qū),存放操作系統(tǒng)以及一些標(biāo)準(zhǔn)子程序,例行程序等;另一部分是用戶(hù)區(qū),存放用戶(hù)的程序和數(shù)據(jù)等。存儲(chǔ)管理主要是對(duì)主存儲(chǔ)器中的用戶(hù)區(qū)域進(jìn)行管理。
計(jì)算機(jī)系統(tǒng)采用多道程序設(shè)計(jì)技術(shù)后,往往要在主存儲(chǔ)器中同時(shí)存放多個(gè)進(jìn)程的程序,而這些程序在主存儲(chǔ)器中的位置是不能預(yù)先知道的,所以用戶(hù)在編寫(xiě)程序時(shí)不能使用絕對(duì)地址?,F(xiàn)代計(jì)算機(jī)的指令中地址部分所指示的地址通常是地址,邏輯地址可從0開(kāi)始編號(hào)。用戶(hù)按邏輯地址編寫(xiě)程序。當(dāng)要把程序裝入計(jì)算機(jī)時(shí),首先,操作系統(tǒng)要為其分配一個(gè)合適的主存空間。由于邏輯地址經(jīng)常與分配到的主存空間的絕對(duì)地址不一致,而處理器執(zhí)行指令是按絕對(duì)地址進(jìn)行的,所以必須把邏輯地址轉(zhuǎn)換成絕對(duì)地址才能得到信息的真實(shí)存放處。把邏輯地址轉(zhuǎn)換成絕對(duì)地址的工作稱(chēng)地址轉(zhuǎn)換。
多個(gè)進(jìn)程共享主存儲(chǔ)器時(shí),必須對(duì)主存儲(chǔ)器中的程序和數(shù)據(jù)進(jìn)行保護(hù),并進(jìn)行合理有效地調(diào)動(dòng),以達(dá)到充分發(fā)揮主存儲(chǔ)器的效率。
為方便用戶(hù)編制程序,使用戶(hù)編寫(xiě)程序時(shí)不受主存儲(chǔ)器實(shí)際容量的限制,可以采用一定的技術(shù)“擴(kuò)充”主存儲(chǔ)器容量,可使用得到比實(shí)際容量大的主存空間。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種嵌入式操作系統(tǒng)中進(jìn)程映射實(shí)現(xiàn)方法。
本發(fā)明解決其技術(shù)問(wèn)題采用的技術(shù)方案如下為每一個(gè)進(jìn)程提供兩個(gè)虛存,一個(gè)是核心態(tài)下的虛存,使用該態(tài)下的那組活動(dòng)頁(yè)寄存器來(lái)實(shí)現(xiàn)其虛、物理地址的映射;一個(gè)是用戶(hù)態(tài)下的虛存,使用該態(tài)下的那組活動(dòng)頁(yè)寄存器來(lái)實(shí)現(xiàn)其虛、物理地址的映射。這兩個(gè)狀態(tài)下的虛存,最大都是64K字節(jié)。
1)虛擬空間地址在存儲(chǔ)管理部件的支持下,16位的字節(jié)地址不再被直接解釋為物理地址,而被看作是一個(gè)虛擬空間地址;把64K字節(jié)的虛擬空間地址空間分成8頁(yè),每頁(yè)分成128塊,每塊為64個(gè)字節(jié),于是每頁(yè)最多可達(dá)到8K字節(jié),為了充分利用內(nèi)存空間,系統(tǒng)是按虛頁(yè)實(shí)際的頁(yè)長(zhǎng)來(lái)分配內(nèi)存空間的;2)活動(dòng)頁(yè)寄存器虛存頁(yè)在內(nèi)存中的實(shí)際位置,需要有一張映象表加以反映,這個(gè)映象表在由兩組活動(dòng)頁(yè)寄存器組成的,一組用于核心態(tài),一組用于用戶(hù)態(tài)。每組有8個(gè)32位長(zhǎng)的寄存器,每一個(gè)一分為二一個(gè)是頁(yè)地址寄存器,一個(gè)是頁(yè)說(shuō)明寄存器;頁(yè)地址寄存器用來(lái)記錄虛擬空間地址空間相應(yīng)各頁(yè)在內(nèi)存的起始?jí)K號(hào);頁(yè)說(shuō)明寄存器,記錄著虛擬空間地址空間相應(yīng)各頁(yè)的存取權(quán)限、擴(kuò)展方向以及該頁(yè)的長(zhǎng)度。寄存器的第1、2位表明對(duì)相應(yīng)頁(yè)的存取權(quán)限,第3位表明該頁(yè)的擴(kuò)展方向,寄存器的第8~14位為該虛頁(yè)的實(shí)際長(zhǎng)度,用含多少塊來(lái)表示;3)虛——物理地址的轉(zhuǎn)換在得到虛存空間地址之后,按照如下過(guò)程實(shí)現(xiàn)從虛擬空間地址到物理地址的轉(zhuǎn)換第一步,根據(jù)處理機(jī)狀態(tài)字的第14、15位,確定處理機(jī)現(xiàn)在所處的運(yùn)行狀態(tài),由此選擇相應(yīng)的活動(dòng)頁(yè)寄存器組;第二步,由虛擬空間地址中的頁(yè)號(hào)得到該組中相應(yīng)的頁(yè)地址寄存器主頁(yè)說(shuō)明寄存器;第三步,由頁(yè)地址寄存器中的“本頁(yè)在內(nèi)存起始?jí)K號(hào)”和虛擬空間地址中的“頁(yè)內(nèi)塊號(hào)”構(gòu)成內(nèi)存中的物理塊號(hào),并由頁(yè)說(shuō)明寄存器檢查該塊號(hào)的合法性;第四步,由物理塊號(hào)和虛擬空間地址中的“位移量”構(gòu)成這個(gè)虛擬空間地址所對(duì)應(yīng)的物理地址。
4)進(jìn)程在核心態(tài)下的虛擬空間地址空間在核心態(tài)下,進(jìn)程運(yùn)行的是操作系統(tǒng)程序,要使用核心棧區(qū),要用到該進(jìn)程的用戶(hù)結(jié)構(gòu),此態(tài)下的虛擬空間地址空間的組成包括在用戶(hù)態(tài)下,進(jìn)程運(yùn)行時(shí)涉及共享正文段,數(shù)據(jù)區(qū),以及用戶(hù)棧區(qū)5)進(jìn)程映像在內(nèi)存中的實(shí)際分布
①把核心態(tài)虛擬空間地址空間的0~5頁(yè)裝在內(nèi)存0地址開(kāi)始的低地址處,常駐內(nèi)存;②把核心態(tài)虛擬空間地址空間的第7頁(yè)輸入輸出頁(yè)裝在內(nèi)存最高地址處的8K空間里,常駐內(nèi)存;③根據(jù)當(dāng)前存儲(chǔ)分配情況,以?xún)?nèi)存塊為單位把共享正文段放在一個(gè)連續(xù)區(qū)內(nèi);④根據(jù)當(dāng)前存儲(chǔ)分配情況,以?xún)?nèi)存塊為單位把核心態(tài)虛擬空間地址空間中的1024字節(jié)的內(nèi)容、用戶(hù)態(tài)虛擬空間地址空間中的數(shù)據(jù)區(qū)、以及用戶(hù)棧區(qū)放在一個(gè)連續(xù)區(qū)內(nèi),構(gòu)成進(jìn)程映像的數(shù)據(jù)段;⑤將進(jìn)程映像全部在內(nèi)存的進(jìn)程的共享正文段的起始?jí)K號(hào)送入內(nèi)存相應(yīng)共享正文段保存。
本發(fā)明具有的有益效果是本發(fā)明采用虛擬地址映射的辦法實(shí)現(xiàn)用戶(hù)地址到物理地址的轉(zhuǎn)換,并將虛擬地址分為內(nèi)核態(tài)與用戶(hù)態(tài),劃分保護(hù)級(jí)別,既保證了每個(gè)進(jìn)程的正確地址轉(zhuǎn)換,又抽取每個(gè)進(jìn)程的共享數(shù)據(jù),節(jié)約了存儲(chǔ)空間,不論是對(duì)操作系統(tǒng)的內(nèi)存管理,還是用戶(hù)程序的編寫(xiě)運(yùn)行,都提供了最大的方便、安全和高效。


圖1虛擬空間地址;圖2處理機(jī)狀態(tài)字;圖3頁(yè)地址寄存器;圖4也說(shuō)明寄存器;圖5虛物理地址轉(zhuǎn)換;圖6進(jìn)程映像在內(nèi)存中的實(shí)際分布。
具體實(shí)施例方式
在實(shí)施實(shí)時(shí)任務(wù)調(diào)度時(shí),采用c語(yǔ)言編寫(xiě),具體方式如下為每一個(gè)進(jìn)程提供兩個(gè)虛存,一個(gè)是核心態(tài)下的虛存,使用該態(tài)下的那組活動(dòng)頁(yè)寄存器來(lái)實(shí)現(xiàn)其虛、物理地址的映射;一個(gè)是用戶(hù)態(tài)下的虛存,使用該態(tài)下的那組活動(dòng)頁(yè)寄存器來(lái)實(shí)現(xiàn)其虛、物理地址的映射。這兩個(gè)狀態(tài)下的虛存,最大都是64K字節(jié)。
1)虛擬空間地址在存儲(chǔ)管理部件的支持下,16位的字節(jié)地址不再被直接解釋為物理地址,而被看作是一個(gè)虛擬空間地址,如圖1所示
把64K字節(jié)的虛擬空間地址空間分成8頁(yè),每頁(yè)分成128塊,每塊為64個(gè)字節(jié),于是每頁(yè)最多可達(dá)到8K字節(jié),為了充分利用內(nèi)存空間,系統(tǒng)是按虛頁(yè)實(shí)際的頁(yè)長(zhǎng)來(lái)分配內(nèi)存空間的。
2)活動(dòng)頁(yè)寄存器虛存頁(yè)在內(nèi)存中的實(shí)際位置,需要有一張映象表加以反映,這個(gè)映象表在由兩組活動(dòng)頁(yè)寄存器組成的,一組用于核心態(tài),一組用于用戶(hù)態(tài)。每組有8個(gè)32位長(zhǎng)的寄存器,每一個(gè)一分為二一個(gè)是頁(yè)地址寄存器,如圖3,一個(gè)是頁(yè)說(shuō)明寄存器,如圖4頁(yè)地址寄存器用來(lái)記錄虛擬空間地址空間相應(yīng)各頁(yè)在內(nèi)存的起始?jí)K號(hào)。把內(nèi)存按64個(gè)字節(jié)為單位劃分成塊,共有4096=212塊,編號(hào)為0~(212-1),內(nèi)存分配以塊為單位。每個(gè)頁(yè)地址寄存器只使用其低12位,用來(lái)記錄虛擬空間地址空間相應(yīng)各頁(yè)在內(nèi)存的起始?jí)K號(hào)。
頁(yè)說(shuō)明寄存器,記錄著虛擬空間地址空間相應(yīng)各頁(yè)的存取權(quán)限、擴(kuò)展方向以及該頁(yè)的長(zhǎng)度。寄存器的第1、2位表明對(duì)相應(yīng)頁(yè)的存取權(quán)限,第3位表明該頁(yè)的擴(kuò)展方向,寄存器的第8~14位為該虛頁(yè)的實(shí)際長(zhǎng)度,用含多少塊來(lái)表示。
3)虛——物理地址的轉(zhuǎn)換在得到虛存空間地址之后,按照如下過(guò)程實(shí)現(xiàn)從虛擬空間地址到物理地址的轉(zhuǎn)換,如圖5所示第一步,根據(jù)處理機(jī)狀態(tài)字(如圖2所示)的第14、15位,確定處理機(jī)現(xiàn)在所處的運(yùn)行狀態(tài),由此選擇相應(yīng)的活動(dòng)頁(yè)寄存器組;第二步,由虛擬空間地址中的頁(yè)號(hào)得到該組中相應(yīng)的頁(yè)地址寄存器主頁(yè)說(shuō)明寄存器;第三步,由頁(yè)地址寄存器中的“本頁(yè)在內(nèi)存起始?jí)K號(hào)”和虛擬空間地址中的“頁(yè)內(nèi)塊號(hào)”構(gòu)成內(nèi)存中的物理塊號(hào),并由頁(yè)說(shuō)明寄存器檢查該塊號(hào)的合法性;第四步,由物理塊號(hào)和虛擬空間地址中的“位移量”構(gòu)成這個(gè)虛擬空間地址所對(duì)應(yīng)的物理地址。
4)進(jìn)程在核心態(tài)下的虛擬空間地址空間在核心態(tài)下,進(jìn)程運(yùn)行的是操作系統(tǒng)程序,要使用核心棧區(qū),要用到該進(jìn)程的用戶(hù)結(jié)構(gòu),其中,0~5頁(yè)存放操作系統(tǒng)代碼,這里面包括常駐內(nèi)存的進(jìn)程結(jié)構(gòu);第7頁(yè)存放與系統(tǒng)輸入、輸出相關(guān)的內(nèi)容,稱(chēng)輸入、輸出頁(yè);第6頁(yè)放現(xiàn)運(yùn)行進(jìn)程的部分代碼區(qū),即用戶(hù)結(jié)構(gòu)和核心棧,實(shí)際只用1024個(gè)字節(jié)。對(duì)所有進(jìn)程來(lái)說(shuō),第0~5頁(yè)和第7頁(yè)共七頁(yè)的內(nèi)容都是相同的。
在用戶(hù)態(tài)下,進(jìn)程運(yùn)行時(shí)涉及共享正文段,數(shù)據(jù)區(qū),以及用戶(hù)棧區(qū)此態(tài)下的虛擬空間地址空間的安排原則為①由低往高安排先共享正文段,再數(shù)據(jù)區(qū);由高往低放置棧區(qū);②以頁(yè)為分配單位,不滿一頁(yè)按頁(yè)找齊。如圖14(a)所示,若共享正文段長(zhǎng)度為2.5頁(yè),則在虛擬空間地址空間中占據(jù)0~2頁(yè);數(shù)據(jù)區(qū)為2.25頁(yè),則在虛擬空間地址空間中緊接共享正文段占據(jù)3~5頁(yè);棧區(qū)為0.5頁(yè),則占據(jù)虛擬空間地址空間的第7頁(yè),且向低地址方向延伸。這時(shí)虛空間的第6頁(yè)為空白,未被占用。
5)進(jìn)程映像在內(nèi)存中的實(shí)際分布雖然每個(gè)進(jìn)程都有一個(gè)核心態(tài)的虛擬空間地址空間,但它們中的第0~5以及第7頁(yè)的內(nèi)容是完全一樣的。此外,即使是每個(gè)進(jìn)程的用戶(hù)態(tài)虛擬空間,也不能按其分配情況原封不動(dòng)地照搬到內(nèi)存中去,否則會(huì)造成內(nèi)存空間的巨大浪費(fèi)。因此,各個(gè)進(jìn)程映像在內(nèi)存的真實(shí)分布情況,如圖6所示①把核心態(tài)虛擬空間地址空間的0~5頁(yè)裝在內(nèi)存0地址開(kāi)始的低地址處,常駐內(nèi)存;②把核心態(tài)虛擬空間地址空間的第7頁(yè)輸入輸出頁(yè)裝在內(nèi)存最高地址處的8K空間里,常駐內(nèi)存;③根據(jù)當(dāng)前存儲(chǔ)分配情況,以?xún)?nèi)存塊為單位把共享正文段放在一個(gè)連續(xù)區(qū)內(nèi);④根據(jù)當(dāng)前存儲(chǔ)分配情況,以?xún)?nèi)存塊為單位把核心態(tài)虛擬空間地址空間中的1024字節(jié)的內(nèi)容、用戶(hù)態(tài)虛擬空間地址空間中的數(shù)據(jù)區(qū)、以及用戶(hù)棧區(qū)放在一個(gè)連續(xù)區(qū)內(nèi),構(gòu)成進(jìn)程映像的數(shù)據(jù)段;⑤將進(jìn)程映像全部在內(nèi)存的進(jìn)程的共享正文段的起始?jí)K號(hào)送入內(nèi)存相應(yīng)共享正文段保存。
權(quán)利要求
1.一種嵌入式操作系統(tǒng)中進(jìn)程映射實(shí)現(xiàn)方法,其特征在于為每一個(gè)進(jìn)程提供兩個(gè)虛存,一個(gè)是核心態(tài)下的虛存,使用該態(tài)下的那組活動(dòng)頁(yè)寄存器來(lái)實(shí)現(xiàn)其虛、物理地址的映射;一個(gè)是用戶(hù)態(tài)下的虛存,使用該態(tài)下的那組活動(dòng)頁(yè)寄存器來(lái)實(shí)現(xiàn)其虛、物理地址的映射,這兩個(gè)狀態(tài)下的虛存,最大都是64K字節(jié);1)虛擬空間地址在存儲(chǔ)管理部件的支持下,16位的字節(jié)地址不再被直接解釋為物理地址,而被看作是一個(gè)虛擬空間地址;把64K字節(jié)的虛擬空間地址空間分成8頁(yè),每頁(yè)分成128塊,每塊為64個(gè)字節(jié),于是每頁(yè)最多可達(dá)到8K字節(jié),為了充分利用內(nèi)存空間,系統(tǒng)是按虛頁(yè)實(shí)際的頁(yè)長(zhǎng)來(lái)分配內(nèi)存空間的;2)活動(dòng)頁(yè)寄存器虛存頁(yè)在內(nèi)存中的實(shí)際位置,需要有一張映象表加以反映,這個(gè)映象表在由兩組活動(dòng)頁(yè)寄存器組成的,一組用于核心態(tài),一組用于用戶(hù)態(tài),每組有8個(gè)32位長(zhǎng)的寄存器,每一個(gè)一分為二一個(gè)是頁(yè)地址寄存器,一個(gè)是頁(yè)說(shuō)明寄存器;頁(yè)地址寄存器用來(lái)記錄虛擬空間地址空間相應(yīng)各頁(yè)在內(nèi)存的起始?jí)K號(hào);頁(yè)說(shuō)明寄存器,記錄著虛擬空間地址空間相應(yīng)各頁(yè)的存取權(quán)限、擴(kuò)展方向以及該頁(yè)的長(zhǎng)度,寄存器的第1、2位表明對(duì)相應(yīng)頁(yè)的存取權(quán)限,第3位表明該頁(yè)的擴(kuò)展方向,寄存器的第8~14位為該虛頁(yè)的實(shí)際長(zhǎng)度,用含多少塊來(lái)表示;3)虛——物理地址的轉(zhuǎn)換在得到虛存空間地址之后,按照如下過(guò)程實(shí)現(xiàn)從虛擬空間地址到物理地址的轉(zhuǎn)換第一步,根據(jù)處理機(jī)狀態(tài)字的第14、15位,確定處理機(jī)現(xiàn)在所處的運(yùn)行狀態(tài),由此選擇相應(yīng)的活動(dòng)頁(yè)寄存器組;第二步,由虛擬空間地址中的頁(yè)號(hào)得到該組中相應(yīng)的頁(yè)地址寄存器頁(yè)說(shuō)明寄存器;第三步,由頁(yè)地址寄存器中的“本頁(yè)在內(nèi)存起始?jí)K號(hào)”和虛擬空間地址中的“頁(yè)內(nèi)塊號(hào)”構(gòu)成內(nèi)存中的物理塊號(hào),并由頁(yè)說(shuō)明寄存器檢查該塊號(hào)的合法性;第四步,由物理塊號(hào)和虛擬空間地址中的“位移量”構(gòu)成這個(gè)虛擬空間地址所對(duì)應(yīng)的物理地址;4)進(jìn)程在核心態(tài)下的虛擬空間地址空間;在核心態(tài)下,進(jìn)程運(yùn)行的是操作系統(tǒng)程序,要使用核心棧區(qū),要用到該進(jìn)程的用戶(hù)結(jié)構(gòu),此態(tài)下的虛擬空間地址空間的組成包括在用戶(hù)態(tài)下,進(jìn)程運(yùn)行時(shí)涉及共享正文段,數(shù)據(jù)區(qū),以及用戶(hù)棧區(qū);5)進(jìn)程映像在內(nèi)存中的實(shí)際分布①把核心態(tài)虛擬空間地址空間的0~5頁(yè)裝在內(nèi)存0地址開(kāi)始的低地址處,常駐內(nèi)存;②把核心態(tài)虛擬空間地址空間的第7頁(yè)輸入輸出頁(yè)裝在內(nèi)存最高地址處的8K空間里,常駐內(nèi)存;③根據(jù)當(dāng)前存儲(chǔ)分配情況,以?xún)?nèi)存塊為單位把共享正文段放在一個(gè)連續(xù)區(qū)內(nèi);④根據(jù)當(dāng)前存儲(chǔ)分配情況,以?xún)?nèi)存塊為單位把核心態(tài)虛擬空間地址空間中的1024字節(jié)的內(nèi)容、用戶(hù)態(tài)虛擬空間地址空間中的數(shù)據(jù)區(qū)、以及用戶(hù)棧區(qū)放在一個(gè)連續(xù)區(qū)內(nèi),構(gòu)成進(jìn)程映像的數(shù)據(jù)段;⑤將進(jìn)程映像全部在內(nèi)存的進(jìn)程的共享正文段的起始?jí)K號(hào)送入內(nèi)存相應(yīng)共享正文段保存。
全文摘要
本發(fā)明公開(kāi)了一種嵌入式操作系統(tǒng)中進(jìn)程映射實(shí)現(xiàn)方法。在嵌入式操作系統(tǒng)中,進(jìn)程管理是非常重要的。本發(fā)明采用虛擬地址映射的辦法實(shí)現(xiàn)用戶(hù)地址到物理地址的轉(zhuǎn)換,并將虛擬地址分為內(nèi)核態(tài)與用戶(hù)態(tài),劃分保護(hù)級(jí)別,既保證了每個(gè)進(jìn)程的正確地址轉(zhuǎn)換,又抽取每個(gè)進(jìn)程的共享數(shù)據(jù),節(jié)約了存儲(chǔ)空間,不論是對(duì)操作系統(tǒng)的內(nèi)存管理,還是用戶(hù)程序的編寫(xiě)運(yùn)行,都提供了最大的方便、安全和高效。本發(fā)明對(duì)嵌入式系統(tǒng)環(huán)境,尤其是面向嵌入式系統(tǒng)的嵌入式操作系統(tǒng)操作系統(tǒng),有重大意義。
文檔編號(hào)G06F9/46GK1828557SQ200610050258
公開(kāi)日2006年9月6日 申請(qǐng)日期2006年4月7日 優(yōu)先權(quán)日2006年4月7日
發(fā)明者陳天洲, 胡威, 蔣寧, 嚴(yán)力科 申請(qǐng)人:浙江大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
五原县| 拜城县| 当阳市| 隆化县| 嫩江县| 东阳市| 阿瓦提县| 得荣县| 茂名市| 呼和浩特市| 无棣县| 米泉市| 五华县| 营口市| 保康县| 达孜县| 得荣县| 哈密市| 漳浦县| 共和县| 泰和县| 石泉县| 秀山| 天长市| 蛟河市| 广昌县| 布拖县| 衡阳市| 茶陵县| 南昌县| 阿尔山市| 百色市| 常宁市| 西平县| 莆田市| 迭部县| 洱源县| 炉霍县| 镇康县| 海口市| 饶平县|