1 基本介紹
自適應分割槽是qnx嵌入式作業系統的乙個特色功能,應從兩方面理解:自適應和分割槽。
分割槽是指作業系統採用「虛擬牆」將共享資源(例如cpu執行時間、記憶體、儲存空間等)以一定的比例劃分,以確保每個分割槽都有一組經過工程設計的資源。每個分區內可以執行乙個或多個執行緒/程序。
自適應是指作業系統核心可以根據各分割槽的實際資源使用情況,對每個分割槽的資源進行動態調整,優化cpu資源和共享資源的利用率。
2 作用與優點
自適應分割槽可以保護乙個或一組應用程式不被其他有缺陷的或惡意的應用程式破壞而造成系統崩潰。主要作用有以下幾點:提供記憶體保護,即每個分割槽是離散的,由記憶體管理單元控制 ;
提供過載保護,即根據系統設計人員的指定,每個分割槽都有一段執行時間;
避免單個錯誤引起整個系統的崩潰(如果沒有分割槽保護,有可能會有乙個程序因為某個未知錯誤而獨佔所有資源而造成系統宕機);
自適應分割槽的優點:優化系統資源的利用率,提高產品效能;
降低bsp設計的複雜度;
為作業系統提供安全保護,避免被惡意程式攻擊;
為除錯和新增系統診斷程式提供便利;
3 原理介紹
自適應分割槽是指分割槽排程器可以動態的調整每個分割槽的資源預算,具體以cpu執行舉例說明。
假設目前乙個qnx作業系統中有三個分割槽,主分割槽,分割槽a和分割槽b。在系統初始階段,設定每個分割槽的cpu資源預算:主分割槽為70%,分割槽a為20%,分割槽b為10%。
例1:當每個分區內的程式使用cpu資源都低於預算值,則分區內的資源使用情況如下所示。
例2:主分區內沒有執行任何程式,分割槽b內的執行緒優先順序大於分割槽a,則分區內的cpu資源使用情況如下圖所示。
例3:主分區內沒有執行任何程式,分割槽b內的執行緒優先順序大於分割槽a,但是設定按比例分配空閒cpu時間,則分區內的cpu資源使用情況如下圖所示。
例4:分割槽全負荷,分區內的cpu資源使用情況如下圖所示。
4 配置方法(以通用的cpu執行時間為例)
1、修改bsp目錄中的build檔案,如下所示:
[module=aps] path=/proc/boot:/bin:/usr/bin:/opt/bin \
ld_library_path=/proc/boot:/lib:/usr/lib:/lib/dll:/opt/lib \
procnto-instr
將[module=aps]屬性新增到在os映像的構建檔案中啟動procnto命令
2、重新編譯bsp,將生成的映象燒錄到目標裝置;
在script段中新增如下命令
sched_apspa20
apsmodify -s recommended在終端命令列建立,例如建立乙個名稱為pb,cpu資源預算為20%的分割槽,如下所示
aps create -b20 pb通過程式建立,如下**段所示
4、在分割槽中啟動乙個程序,有三種方法:在build檔案的scrit段中,例如在pa分區內啟動ksh程序,如下所示
[+session pri=35 sched_aps=pa] ksh &在終端命令列中,例如在pb分區內啟動ksh程序,如下所示
on -xaps=debugreserve ksh通過程式啟動,如下**段所示
5、檢視分割槽應用檢視
qnx 映象檔案 QNX OS映象
1.介紹 可引導映象指包含了startup和procnto的映象,ipl,boot rom或bios x86 可以將控制權傳遞給它。一般的可引導映象如下所示 對於有些系統,可能需要與配置相關的設定,通常將提供不可引導的映象。將這個映象看作是第二個 檔案系統 包含一些額外的檔案。由於是不可引導的,所以...
QNX作業系統
說到作業系統,先來列舉一些 unix 和 類unix 作業系統 分類作業系統 unix system v家族 a ux aix hp ux irix lynxos sco openserver tru64 xenix solaris os 2 bsd unix 386bsd家族 bsd os fre...
QNX作業系統簡介
說到作業系統,先來列舉一些 unix 和 類unix 作業系統 分類作業系統 unix system v家族 a ux aix hp ux irix lynxos sco openserver tru64 xenix solaris os 2 bsd unix 386bsd家族 bsd os fre...