本發(fā)明涉及軟件技術(shù),更具體的說,是一種系統(tǒng)測試模式和運(yùn)行模式兼容方法。
技術(shù)背景
系統(tǒng)運(yùn)行模式,是指系統(tǒng)處于將本身所有的資源合理管理以響應(yīng)外部承載業(yè)務(wù)為目的模式下,在該模式下系統(tǒng)處于業(yè)務(wù)環(huán)境復(fù)雜度高、并發(fā)進(jìn)程數(shù)目多,系統(tǒng)資源緊張的場景下,同時(shí)需要滿足系統(tǒng)高穩(wěn)定性、高可靠性的性能要求。而系統(tǒng)測試模式,是指系統(tǒng)以檢測自身的軟硬件環(huán)境為目的,通過高頻率、高覆蓋、高壓力的模式暴露出軟硬件系統(tǒng)問題。兩種模式的應(yīng)用目的和應(yīng)用場景都有著極為現(xiàn)實(shí)的需求,運(yùn)行模式下系統(tǒng)響應(yīng)客戶的業(yè)務(wù)需求,完成規(guī)定的業(yè)務(wù)功能和性能參數(shù),測試模式則為運(yùn)行模式提供必備的保障,完成相應(yīng)的軟硬件檢測,確保運(yùn)行模式所需的軟硬件資源正確可靠,在運(yùn)行模式出現(xiàn)不可靠的情況下,能及時(shí)準(zhǔn)確診斷定位軟硬件系統(tǒng)中存在的問題。因而作為系統(tǒng)軟件必不可少的兩個(gè)功能,兩種模式缺一不可,兩種模式的兼容技術(shù)也是系統(tǒng)軟件中很重要的技術(shù)。
兩種模式的兼容不僅為系統(tǒng)的可靠運(yùn)行和系統(tǒng)診斷帶來便捷,更為軟硬件相互依存度高、軟硬件系統(tǒng)作為一個(gè)整體解決方案的場景提供了有力的支撐。
兩種模式兼容有如下優(yōu)點(diǎn):
1、確保運(yùn)行模式的可靠。相對于不具有測試模式的系統(tǒng)軟件,或兩種模式不兼容的系統(tǒng)軟件,兼容模式下,運(yùn)行模式啟動(dòng)前可對必要資源在測試模式下進(jìn)行充分測試,保證資源的有效,確保系統(tǒng)進(jìn)入運(yùn)行模式下的可靠運(yùn)行。
2、便于運(yùn)行模式下問題的診斷。針對系統(tǒng)運(yùn)行模式下出現(xiàn)的問題,兼容測試模式的系統(tǒng)軟件,可進(jìn)入測試模式對軟件系統(tǒng)進(jìn)行診斷,快速定位。
3、便于系統(tǒng)軟件的部署。兩種模式不兼容的系統(tǒng)軟件,當(dāng)系統(tǒng)由一種模式進(jìn)入另一種模式時(shí),需要重新下載更新系統(tǒng)軟件,極為不便。尤其是對于系統(tǒng)軟件固化在硬件設(shè)備上的場景,往往只能根據(jù)需求選擇一種模式進(jìn)行固化,更加不便。
兩種模式兼容的常用方式主要有以下兩種:
1、守候駐留動(dòng)態(tài)式兼容
測試模式以守候進(jìn)程或守候線程的方式駐留在系統(tǒng)運(yùn)行模式下。根據(jù)特殊的指令完成兩種模式的切換。
2、備份替代靜態(tài)式兼容
測試模式可執(zhí)行文件與運(yùn)行模式可執(zhí)行文件分別存儲在系統(tǒng)存儲介質(zhì)的不同位置,根據(jù)特殊指令完成兩種模式的切換。
當(dāng)前兼容方式在某些場景使用下存在問題。如圖1所示,路由設(shè)備系統(tǒng)軟件采用的是固化的方式燒錄在設(shè)備的非易失性存儲介質(zhì)上,同時(shí)承載的是高業(yè)務(wù)量、高性能的通訊需求。若采用守候駐留動(dòng)態(tài)式兼容方式,測試模式進(jìn)程守候在系統(tǒng)模式下,占用了本已緊張的系統(tǒng)資源,導(dǎo)致運(yùn)行模式性能降低。而當(dāng)系統(tǒng)切換成測試模式時(shí),由于運(yùn)行模式處于守候狀態(tài),其資源并未釋放,導(dǎo)致測試模式測試不能充分。兩種模式同時(shí)動(dòng)態(tài)運(yùn)行,也極大的帶來了軟件系統(tǒng)的不可靠性。采用備份替代式兼容,測試模式可執(zhí)行文件與運(yùn)行模式可執(zhí)行文件分開存儲,對于采用固化方式將系統(tǒng)軟件燒錄在非易失性存儲介質(zhì)上的路由設(shè)備來說,無法將系統(tǒng)版本做一次性燒錄,不具有可操作性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種系統(tǒng)測試模式和運(yùn)行模式兼容方法。本發(fā)明采用以下技術(shù)方案,一種系統(tǒng)軟件兼容測試和運(yùn)行模式的方法包括以下步驟:
步驟1 :系統(tǒng)上電,初始進(jìn)程啟動(dòng);
步驟2:初始進(jìn)程轉(zhuǎn)交系統(tǒng)控制權(quán)至首個(gè)系統(tǒng)業(yè)務(wù)進(jìn)程即轉(zhuǎn)交至測試模式進(jìn)程系統(tǒng);
步驟3:測試模式進(jìn)程系統(tǒng)偵測存儲在非易失性存儲介質(zhì)上的模式標(biāo)記位 ;
步驟4:判斷當(dāng)前系統(tǒng)環(huán)境繼續(xù)停留在測試模式或切換運(yùn)行模式 ;
步驟5:如果是測試模式,則初始化測試模式環(huán)境參數(shù),響應(yīng)測試模式指令;
步驟6:測試模式下,設(shè)定系統(tǒng)模式 ;
步驟7:否則退出首個(gè)系統(tǒng)業(yè)務(wù)進(jìn)程即退出測試模式進(jìn)程,釋放資源,進(jìn)入系統(tǒng)運(yùn)行模式 ;
步驟8:運(yùn)行模式下,設(shè)定系統(tǒng)模式;
步驟9:進(jìn)入下一個(gè)啟動(dòng)周期,重復(fù)上面步驟。
在本發(fā)明所提供的方法中,設(shè)置并生成的測試模式可執(zhí)行文件與運(yùn)行模式可執(zhí)行文件為一個(gè)版本集的文件,存儲在系統(tǒng)的非易失性存儲介質(zhì)上,可通過配置命令進(jìn)行配置。
設(shè)置并存儲系統(tǒng)模式標(biāo)記,并存儲在非易失性存儲介質(zhì)上,可通過配置命令進(jìn)行配置。
系統(tǒng)初始化進(jìn)程啟動(dòng)完畢,首先啟動(dòng)測試模式進(jìn)程,將系統(tǒng)控制權(quán)轉(zhuǎn)交測試模式進(jìn)程,測試模式進(jìn)程檢測系統(tǒng)模式標(biāo)記。
測試模式進(jìn)程根據(jù)系統(tǒng)模式標(biāo)記,判斷當(dāng)前系統(tǒng)環(huán)境繼續(xù)停留在測試模式或切換成運(yùn)行模式。
系統(tǒng)環(huán)境根據(jù)系統(tǒng)模式標(biāo)記進(jìn)入相應(yīng)模式后,響應(yīng)相應(yīng)指令,完成相關(guān)業(yè)務(wù)動(dòng)作。
系統(tǒng)響應(yīng)設(shè)置模式命令,設(shè)置系統(tǒng)模式,進(jìn)入下個(gè)啟動(dòng)周期。
與現(xiàn)有技術(shù)相比較,本發(fā)明提供的一種系統(tǒng)軟件兼容測試模式和運(yùn)行模式的方法可以解決當(dāng)前測試模式和運(yùn)行模式可執(zhí)行文件分開存儲、不能一次性固化的問題,以及測試模式和運(yùn)行模式相互守候駐留導(dǎo)致的運(yùn)行模式下系統(tǒng)性能下降、系統(tǒng)不可靠性增加、測試模式下測試不充分的問題,從而充分利用測試模式的優(yōu)點(diǎn)增強(qiáng)系統(tǒng)的可靠性,并為系統(tǒng)診斷帶來便捷。
附圖說明:
圖1是本發(fā)明中使用場景的介紹;
圖2是本發(fā)明中測試模式可執(zhí)行文件與運(yùn)行模式可執(zhí)行文件為一個(gè)版本集流程;
圖3是本發(fā)明中測試模式和運(yùn)行模式兼容啟動(dòng)流程。
具體實(shí)施方式:
下面結(jié)合附圖對本發(fā)明所提供的一種系統(tǒng)軟件兼容測試模式和運(yùn)行模式的方法進(jìn)行說明。
如圖2所示,本發(fā)明中生成測試模式可執(zhí)行文件與運(yùn)行模式可執(zhí)行文件為一個(gè)版本集流程包括:
(1)配置打包配置文件XML;
(2)生成測試模式進(jìn)程DEBUG;
(3)生成運(yùn)行模式下其他業(yè)務(wù)進(jìn)程;
(4)運(yùn)行打包命令生成測試模式可執(zhí)行文件與運(yùn)行模式可執(zhí)行文件合一的版本集。
如圖3所示,測試模式和運(yùn)行模式兼容啟動(dòng)流程包括:
(1)系統(tǒng)依次啟動(dòng)BOOT、小系統(tǒng)
(2)初始化進(jìn)程將系統(tǒng)控制權(quán)轉(zhuǎn)交測試模式進(jìn)程
(3)判斷當(dāng)前系統(tǒng)模式標(biāo)記
(4)如果是測試模式標(biāo)記,響應(yīng)測試模式命令
(5)否則進(jìn)入運(yùn)行模式,響應(yīng)運(yùn)行模式命令
(6)進(jìn)行下一個(gè)啟動(dòng)周期,重復(fù)上面步驟
下面結(jié)合本發(fā)明的一個(gè)實(shí)施例進(jìn)行描述:
(1)用于生成測試模式可執(zhí)行文件與運(yùn)行模式可執(zhí)行文件為一個(gè)版本集的XML配置:
$(ECHO) /usr/sbin/$(notdir $(_PT_FULL_VERSION)) >> $(BSP_VERSIONPACKER_PATH)/admin.sh
(2)測試模式標(biāo)記為0,1為運(yùn)行模式;
(3)系統(tǒng)初始化進(jìn)程完畢后,轉(zhuǎn)交系統(tǒng)控制權(quán)致測試模式進(jìn)程;
(4)測試模式進(jìn)程檢測系統(tǒng)模式標(biāo)記;
(5)若標(biāo)記為0則進(jìn)入測試模式完成系統(tǒng)軟硬件檢測,檢測完成設(shè)置系統(tǒng)模式標(biāo)記為1;
(6)系統(tǒng)下個(gè)啟動(dòng)周期進(jìn)入運(yùn)行模式。