一種分區(qū)操作系統(tǒng)的存儲管理方法
【專利摘要】本發(fā)明屬于計算機軟件設(shè)計領(lǐng)域,具體涉及一種分區(qū)操作系統(tǒng)的存儲管理方法。本方法針對現(xiàn)有的分區(qū)操作系統(tǒng)存儲管理技術(shù),采用統(tǒng)一頁表的方法解決了分區(qū)操作系統(tǒng)存儲管理單元資源浪費的問題,通過軟硬件結(jié)合的域切換方式提升了域切換性能,并提出一種基于存儲池的存儲管理辦法。在嵌入式設(shè)備硬件資源緊張的客觀條件下,應(yīng)用此方法,資源消耗小,可以實現(xiàn)存儲資源的高效管理。
【專利說明】—種分區(qū)操作系統(tǒng)的存儲管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機軟件設(shè)計領(lǐng)域,涉及一種存儲管理方法,具體涉及一種用于嵌入式領(lǐng)域分區(qū)操作系統(tǒng)的存儲管理方法。
【背景技術(shù)】
[0002]嵌入式分區(qū)操作系統(tǒng)是一種符合ARINC653標準,具有分區(qū)機制的操作系統(tǒng)。該操作系統(tǒng)將空間資源與時間資源劃分到每個分區(qū),使分區(qū)按照確定的時間順序進行調(diào)度;在分區(qū)內(nèi)部創(chuàng)建各應(yīng)用任務(wù),任務(wù)間采用優(yōu)先級搶占方式分配分區(qū)的時間資源。分區(qū)操作系統(tǒng)結(jié)合處理器硬件提供的MMU機制,進行虛擬地址和物理地址的映射,所有分區(qū)采用同樣的虛擬地址空間,但映射到不同物理地址空間,核心實現(xiàn)對所有存儲空間的映射,因而能夠訪問所有地址。
[0003]分區(qū)操作系統(tǒng)通常維護N+1張頁表實現(xiàn)存儲管理。其中N指所支持的分區(qū)個數(shù),I則為核心所使用的頁表。分區(qū)內(nèi)調(diào)用系統(tǒng)服務(wù)采用系統(tǒng)調(diào)用實現(xiàn),為使系統(tǒng)調(diào)用時能夠訪問更多存儲資源,需要在每個分區(qū)頁表中拷貝一份核心頁表(當系統(tǒng)切換為特權(quán)模式可訪問)。分區(qū)切換時通過切換上下文切換所使用的頁表,達到分區(qū)間空間隔離的效果。采用該方法具有以下缺陷:
[0004]1、浪費存儲資源:為保證分區(qū)的系統(tǒng)調(diào)用正確執(zhí)行,每個分區(qū)的頁表均拷貝了一份核心頁表的數(shù)據(jù),浪費了資源。
[0005]2、域切換效率不高:域切換時軟硬件沒有很好的結(jié)合起來,導致運行效率不高。
【發(fā)明內(nèi)容】
[0006]為了解決【背景技術(shù)】中的問題,本發(fā)明提出了一種具有效率高、資源浪費少的分區(qū)操作系統(tǒng)存儲管理的方法。
[0007]本發(fā)明的具體技術(shù)方案是:
[0008]I)劃分存儲空間
[0009]將存儲空間按照配置數(shù)據(jù)拆分為多個存儲池;所述配置數(shù)據(jù)包括起始地址、大小、Cache屬性和存儲池類型;所述Cache屬性包括Cache的使能/禁止屬性、寫穿/寫回屬性;所述存儲池類型包括共享存儲池和私有存儲池;每個存儲池都擁有一個唯一的上下文標識符作為標識;
[0010]2)建立統(tǒng)一頁表
[0011]建立統(tǒng)一頁表對存儲池進行存儲管理;所述建立統(tǒng)一頁表包括將步驟I)中的配置數(shù)據(jù)及上下文標識符寫入頁表并根據(jù)存儲池的不同在頁表中設(shè)置不同的訪問權(quán)限;所述訪問權(quán)限包括用戶讀、用戶寫、用戶執(zhí)行權(quán)限及特權(quán)讀、特權(quán)寫、特權(quán)執(zhí)行權(quán)限;
[0012]3)建立核心域和分區(qū)域;
[0013]建立域包括建立域空間及其上下文;域是代碼運行的實例(類似于經(jīng)典操作系統(tǒng)中進程的概念);域擁有獨立的域空間、唯一的上下文標識符及域擁有的權(quán)限;
[0014]其中,建立核心域是選擇一個共享存儲池并從中劃分一部分空間作為核心域空間;核心域空間的Cache屬性、存儲池類型和上下文標識符繼承于所屬的存儲池;核心域權(quán)限為特權(quán)模式;核心域有且僅有一個;
[0015]其中,建立分區(qū)域是選擇一個私有存儲池并從中劃分一部分空間作為分區(qū)域空間;分區(qū)域空間的Cache屬性、存儲池類型和上下文標識符繼承于所屬的存儲池;分區(qū)域權(quán)限為用戶模式;分區(qū)域可有多個;
[0016]4)分區(qū)域調(diào)度,對存儲池進行訪問;
[0017]分區(qū)操作系統(tǒng)進行分區(qū)域調(diào)度時會發(fā)生域切換;分區(qū)操作系統(tǒng)會進行存儲池訪問;
[0018]4.1)域切換時,將待切換域的上下文標識符寫入上下文切換寄存器作為系統(tǒng)上下文標識符;
[0019]4.2)訪問存儲池,分為以下兩種方式:
[0020]A:當訪問私有存儲池時,進行上下文標識符的比較和訪問權(quán)限的比較,若均匹配,則訪問成功;否則訪問失敗;
[0021]B:訪問共享存儲池地址時,不進行上下文標識符的比較但會進行訪問權(quán)限的比較,若匹配,則訪問成功;否則訪問失敗;
[0022]所述上下文標識符的比較指將當前系統(tǒng)上下文標識符和待訪問存儲池的上下文標識符進行比較;所述訪問權(quán)限的比較指將當前所處權(quán)限與待訪問存儲池的訪問權(quán)限進行比較。
[0023]本發(fā)明具有的優(yōu)點:
[0024]1、本發(fā)明將原有的N+1張頁表合并為I張頁表,并減少頁表中的相同信息,消除冗余;簡化域切換的工作,提聞執(zhí)行效率;提聞了頁表的Cache命中率,進而提聞?wù)麄€系統(tǒng)的運行性能。
[0025]2、本發(fā)明采用上下文切換寄存器對上下文標識符進行存儲,使得域間切換訪問時,更加的簡單、快捷,大大提高了執(zhí)行效率。
【專利附圖】
【附圖說明】
[0026]圖1分區(qū)存儲管理方法步驟。
[0027]圖2存儲空間劃分存儲池及存儲池劃分域空間。
[0028]圖3存儲池訪問流程
【具體實施方式】
[0029]本發(fā)明提出了一種分區(qū)操作系統(tǒng)的存儲管理方法,以下結(jié)合本發(fā)明的工作流程圖(圖1、圖2和圖3)對該方法進行描述:
[0030]步驟I)劃分存儲空間
[0031]將存儲空間按照配置數(shù)據(jù)拆分為多個存儲池;所述配置數(shù)據(jù)包括起始地址、大小、Cache屬性和存儲池類型;
[0032]具體地說,Cache屬性包括Cache的使能/禁止屬性、寫穿/寫回屬性;具體地說,存儲池類型包括共享存儲池和私有存儲池;每個存儲池都擁有一個唯一的上下文標識符作為標識;
[0033]步驟2)建立統(tǒng)一頁表
[0034]建立統(tǒng)一頁表對存儲池進行存儲管理;
[0035]具體地說,建立統(tǒng)一頁表包括將步驟I)中的配置數(shù)據(jù)及上下文標識符寫入頁表并根據(jù)存儲池的不同在頁表中設(shè)置不同的訪問權(quán)限;
[0036]其中,訪問權(quán)限包括用戶讀、用戶寫、用戶執(zhí)行權(quán)限及特權(quán)讀、特權(quán)寫、特權(quán)執(zhí)行權(quán)限;
[0037]步驟3)建立核心域和分區(qū)域;
[0038]建立域包括建立域空間及其上下文;域是代碼運行的實例(類似于經(jīng)典操作系統(tǒng)中進程的概念);域擁有獨立的域空間、唯一的上下文標識符及域擁有的權(quán)限;
[0039]其中,建立核心域是選擇一個共享存儲池并從中劃分一部分空間作為核心域空間;核心域空間的Cache屬性、存儲池類型和上下文標識符繼承于所屬的存儲池;核心域權(quán)限為特權(quán)模式;核心域有且僅有一個;
[0040]其中,建立分區(qū)域是選擇一個私有存儲池并從中劃分一部分空間作為分區(qū)域空間;分區(qū)域空間的Cache屬性、存儲池類型和上下文標識符繼承于所屬的存儲池;分區(qū)域權(quán)限為用戶模式;分區(qū)域可有多個;
[0041]步驟4)分區(qū)域調(diào)度,對存儲池進行訪問;如圖3所示:
[0042]分區(qū)操作系統(tǒng)進行分區(qū)域調(diào)度時會發(fā)生域切換;分區(qū)操作系統(tǒng)會進行存儲池訪問;
[0043]步驟4.1)域切換時,將待切換域的上下文標識符寫入上下文切換寄存器作為系統(tǒng)上下文標識符;
[0044]步驟4.2)訪問存儲池,分為以下兩種方式:
[0045]A:當訪問私有存儲池時,進行上下文標識符的比較和訪問權(quán)限的比較,若均匹配,則訪問成功;否則訪問失??;
[0046]B:訪問共享存儲池地址時,不進行上下文標識符的比較但會進行訪問權(quán)限的比較,若匹配,則訪問成功;否則訪問失敗;
[0047]其中,上下文標識符的比較指將當前系統(tǒng)上下文標識符和待訪問存儲池的上下文標識符進行比較;
[0048]其中,訪問權(quán)限的比較指將當前所處權(quán)限與待訪問存儲池的訪問權(quán)限進行比較。
[0049]此處需要重點說明的是:
[0050]存儲池的訪問權(quán)限包括特權(quán)讀、特權(quán)寫、特權(quán)執(zhí)行及用戶讀、用戶寫、用戶執(zhí)行,可以根據(jù)需求進行設(shè)置。核心域始終運行在特權(quán)模式下,分區(qū)域始終運行在用戶模式下。核心域具有所有存儲池的訪問權(quán)限,也就是說所有存儲池都是在特權(quán)模式下可寫、可讀、可執(zhí)行的;分區(qū)域僅具有指定存儲池的指定訪問權(quán)限,也就是說指定存儲池在用戶模式下的訪問權(quán)限是按需設(shè)置而非全部開放的。
[0051]在域切換時方法采用軟硬件結(jié)合的方式實現(xiàn)快速切換,依據(jù)處理器硬件特性,當發(fā)生域切換時,為上下文切換寄存器配置不同的上下文標識符;以PowerPC系列處理器為例,方法采用段寄存器組(SRs)或進程ID寄存器(PID)作為上下文切換寄存器,有效地址與上下文切換寄存器聯(lián)合確定唯一的頁表入口。域通過切換上下文切換寄存器的值即切換上下文標識符的方式進行分區(qū)域切換,相較于軟件的切換方法有更快的執(zhí)行效率。
【權(quán)利要求】
1.一種分區(qū)操作系統(tǒng)的存儲管理方法,其特征在于,包括以下步驟: 1)劃分存儲空間 將存儲空間按照配置數(shù)據(jù)拆分為多個存儲池;所述配置數(shù)據(jù)包括起始地址、大小、Cache屬性和存儲池類型; 所述Cache屬性包括Cache的使能/禁止屬性、寫穿/寫回屬性; 所述存儲池類型包括共享存儲池和私有存儲池;每個存儲池都擁有一個唯一的上下文標識符作為標識; 2)建立統(tǒng)一頁表 建立統(tǒng)一頁表對存儲池進行存儲管理;所述統(tǒng)一頁表包括步驟I)中的配置數(shù)據(jù)、上下文標識符以及存儲池的訪問權(quán)限; 3)建立核心域和分區(qū)域; 所述核心域是選擇一個共享存儲池并從中劃分一部分空間作為核心域空間;核心域空間的Cache屬性、存儲池類型和上下文標識符繼承于所屬的存儲池;核心域權(quán)限為特權(quán)模式; 所述分區(qū)域是選擇一個私有存儲池并從中劃分一部分空間作為分區(qū)域空間;分區(qū)域空間的Cache屬性、存儲池類型和上下文標識符繼承于所屬的存儲池;分區(qū)域權(quán)限為用戶模式; 4)分區(qū)域調(diào)度,對存儲池進行訪問; 4.1)域切換;將待切換域的上下文標識符寫入上下文切換寄存器作為系統(tǒng)上下文標識符; 4.2)訪問存儲池,分為以下兩種方式: A:當訪問私有存儲池時,進行上下文標識符的比較和訪問權(quán)限的比較,若均匹配,則訪問成功;否則訪問失??; B:訪問共享存儲池地址時,不進行上下文標識符的比較但會進行訪問權(quán)限的比較,若匹配,則訪問成功;否則訪問失??; 所述上下文標識符的比較指將當前系統(tǒng)上下文標識符和待訪問存儲池的上下文標識符進行比較;所述訪問權(quán)限的比較指將當前所處權(quán)限與待訪問存儲池的訪問權(quán)限進行比較。
2.根據(jù)權(quán)利要求1所述的分區(qū)操作系統(tǒng)的存儲管理方法,其特征在于,所述訪問權(quán)限包括用戶讀、用戶寫、用戶執(zhí)行權(quán)限及特權(quán)讀、特權(quán)寫、特權(quán)執(zhí)行權(quán)限。
3.根據(jù)權(quán)利要求1或2所述的分區(qū)操作系統(tǒng)的存儲管理方法,其特征在于:所述核心域有且僅有一個;所述分區(qū)域有一個或者多個。
【文檔編號】G06F12/08GK104391803SQ201410714111
【公開日】2015年3月4日 申請日期:2014年11月29日 優(yōu)先權(quán)日:2014年11月29日
【發(fā)明者】田博巖, 黃保壘, 時磊, 韓煒, 葉宏, 李運喜 申請人:中國航空工業(yè)集團公司第六三一研究所