防止優(yōu)先級反轉(zhuǎn)
操作系統(tǒng)中最令人頭疼的錯誤是優(yōu)先級反轉(zhuǎn)。它是指低優(yōu)先級任務(wù)阻止高優(yōu)先級任務(wù)完成運(yùn)行的狀態(tài)。例如,在報警控制、數(shù)據(jù)記錄儀和數(shù)據(jù)聚合器共享資源的病人監(jiān)控系統(tǒng)里,優(yōu)先級高的任務(wù)(報警控制器)必須等待優(yōu)先級低的任務(wù)(數(shù)據(jù)記錄器)結(jié)束才能繼續(xù)運(yùn)行。第三項任務(wù)(數(shù)據(jù)聚合器)的優(yōu)先級比報警控制器的低,但比數(shù)據(jù)記錄器的高。數(shù)據(jù)聚合器會搶占數(shù)據(jù)記錄器的優(yōu)先級,進(jìn)而搶占報警控制器的優(yōu)先級,這就無法滿足實時提交的要求。
優(yōu)先級繼承
優(yōu)先級繼承是指將被阻止的高優(yōu)先級任務(wù)的優(yōu)先級分配給阻止任務(wù)的低優(yōu)先級線程,直至完成被阻止的任務(wù),以此防止優(yōu)先級反轉(zhuǎn)。例如,數(shù)據(jù)記錄器可繼承報警控制器的優(yōu)先級,這樣它就不會被數(shù)據(jù)聚合器搶占。當(dāng)任務(wù)結(jié)束后,它會恢復(fù)最初的優(yōu)先級,報警控制器會解除阻止并繼續(xù)運(yùn)行。

圖 4 優(yōu)先級繼承防止優(yōu)先級反轉(zhuǎn)
確??捎眯?/strong>
對許多系統(tǒng)來說,資源的可用性至關(guān)重要。假如某一子系統(tǒng)出現(xiàn)CPU周期匱乏,會導(dǎo)致十分嚴(yán)重的后果。例如,如果心臟監(jiān)護(hù)儀的連接中斷可能導(dǎo)致中心監(jiān)護(hù)系統(tǒng)誤認(rèn)為出現(xiàn)報警情況并派出急救人員,或當(dāng)病人真出現(xiàn)危急狀況時,系統(tǒng)卻無法發(fā)出報警信息。
根據(jù)以往經(jīng)驗,解決這一問題的途徑是更新硬件或重新設(shè)計軟件。雖然將新設(shè)計的軟件發(fā)送到聯(lián)網(wǎng)的醫(yī)療設(shè)備上是一個可行方案,但這不僅使成本高昂,而且還可能導(dǎo)致該設(shè)備已有的產(chǎn)品認(rèn)證失效。
分區(qū)分區(qū)技術(shù)通過執(zhí)行CPU預(yù)算并防止進(jìn)程獨(dú)占CPU周期,使資源匱乏的問題迎刃而解??蛇x擇兩種類型的分區(qū):固定式和自適應(yīng)式。
采用固定分區(qū),系統(tǒng)設(shè)計人員為每個任務(wù)指定分配的CPU時間。分區(qū)內(nèi)的任務(wù)消耗的CPU時間都不能超過分區(qū)時已分配的時間比例,以便于其他分區(qū)內(nèi)的進(jìn)程保持隨時可用,進(jìn)而保證所有關(guān)鍵進(jìn)程隨時可用。
遺憾的是,采用固定分區(qū)時,即使分配到其他地方的周期未被使用,另一個分區(qū)內(nèi)的進(jìn)程也無法使用,因為它不能使用超出其所在分區(qū)預(yù)先分配的CPU周期,固定分區(qū)雖然能防止系統(tǒng)出現(xiàn)資源匱乏,但它卻浪費(fèi)了CPU周期,而且削弱了系統(tǒng)應(yīng)對高峰需求的能力。
與固定分區(qū)類似,自適應(yīng)分區(qū)也能防止資源匱乏。然而,自適應(yīng)分區(qū)采用一種動態(tài)調(diào)度算法將一個分區(qū)內(nèi)閑置的CPU周期重新分配到另一個需要更多處理時間的分區(qū)內(nèi)。當(dāng)多個分區(qū)內(nèi)的進(jìn)程爭奪CPU周期時,自適應(yīng)分區(qū)會執(zhí)行資源分配。這樣,設(shè)計人員就能充分依賴系統(tǒng)資源保證,不必再為固定分區(qū)造成的處理能力降低而尋找良策了。
監(jiān)視、停止或重啟進(jìn)程
防止整個系統(tǒng)的進(jìn)程發(fā)生連鎖故障和自我修復(fù)功能對可信賴的操作系統(tǒng)至關(guān)重要。需確保系統(tǒng)可用性的設(shè)備可采用面向硬件的高可用性解決方案和軟件監(jiān)視程序。
監(jiān)視程序監(jiān)視系統(tǒng)并進(jìn)行多級恢復(fù)或按要求平穩(wěn)關(guān)機(jī)。根據(jù)執(zhí)行方式的不同,當(dāng)出現(xiàn)故障時它應(yīng):先終止然后重啟出現(xiàn)故障的進(jìn)程而無需重啟系統(tǒng),或者,終止故障進(jìn)程和相關(guān)進(jìn)程,初始化硬件使其進(jìn)入“安全”狀態(tài),然后以協(xié)調(diào)方式重啟終止的進(jìn)程,或者,如故障比較嚴(yán)重或危及安全,能以受控方式關(guān)機(jī)或使整個系統(tǒng)復(fù)位,并向系統(tǒng)操作員發(fā)出報警。
在所有情況下,監(jiān)視程序都必須能自我監(jiān)控并靈活響應(yīng)內(nèi)部故障。如果監(jiān)視程序意外停止,它必須通過一個鏡像進(jìn)程復(fù)制本身的狀態(tài)。
最后,軟件監(jiān)視程序能監(jiān)視傳統(tǒng)硬件監(jiān)視程序看不到的系統(tǒng)事件。例如,硬件監(jiān)視程序能確保驅(qū)動程序為硬件服務(wù),但卻很難檢測到其他程序是否正與該驅(qū)動程序正確通話。軟件監(jiān)視程序能彌補(bǔ)這一不足,它會在驅(qū)動程序本身出現(xiàn)問題前采取行動。
結(jié)論
發(fā)達(dá)國家的人口老齡化趨勢和健康預(yù)算緊縮都促使醫(yī)療服務(wù)方式由常規(guī)醫(yī)院模式向遠(yuǎn)程醫(yī)療和家庭自助模式轉(zhuǎn)變。這些變化和最新技術(shù)推動遠(yuǎn)程醫(yī)療設(shè)備的市場不斷擴(kuò)大,其發(fā)展速度之快在十年前是難以想象的。
設(shè)備制造商通過認(rèn)真分析所選操作系統(tǒng)的性能特征,從而降低成本并提升其產(chǎn)品順利通過行業(yè)認(rèn)證而在市場上大獲成功的機(jī)會。采用曾多次成功通過產(chǎn)品安全認(rèn)證(有據(jù)可查)的供應(yīng)商提供的微內(nèi)核實時操作系統(tǒng),能幫助客戶減少順利獲得FDA、MDD和其他標(biāo)準(zhǔn)認(rèn)證所需的費(fèi)用。
電子發(fā)燒友App
















評論