自適應(yīng)分區(qū)

在很多計(jì)算機(jī)系統(tǒng)中,保護(hù)不同的程序或者一組程序不受其他程序的影響很重要粥烁。當(dāng)然你也不希望一個(gè)應(yīng)用去(不管是有意還是程序缺陷)打斷或阻止其他程序的運(yùn)行棚瘟。
為了解決這個(gè)問(wèn)題,有些系統(tǒng)提供了”虛擬墻“(稱為分區(qū))府树,來(lái)確保為每個(gè)分區(qū)提供一組經(jīng)過(guò)工程設(shè)計(jì)的資源俐末。主要的資源就是CPU時(shí)間,也可以包括其他的共享資源奄侠,例如內(nèi)存和磁盤空間等卓箫。

分區(qū)提供:
(1)內(nèi)存保護(hù):每個(gè)分區(qū)都是獨(dú)立的,由內(nèi)存管理單元控制(MMU )
(2)過(guò)載保護(hù):每個(gè)分區(qū)都有一個(gè)執(zhí)行時(shí)間片遭铺,由系統(tǒng)設(shè)計(jì)者指定丽柿。

通過(guò)使用多個(gè)分區(qū),可以避免單點(diǎn)故障魂挂。例如甫题,失控進(jìn)程不能占用整個(gè)系統(tǒng)資源,其他分區(qū)的進(jìn)程仍然可以獲得他們分配的系統(tǒng)資源涂召。

當(dāng)然坠非,即使沒有自適應(yīng)分區(qū),QNX微內(nèi)核進(jìn)程模型也提供了比其他OS更多的保護(hù)措施果正,例如:

  1. 進(jìn)程間的全內(nèi)存保護(hù)
  2. 消息傳遞炎码,提供了統(tǒng)一和可控的IPC
  3. 客戶端/服務(wù)器模型的優(yōu)先級(jí)繼承
    4.硬實(shí)時(shí)確定性調(diào)度
    5.細(xì)致權(quán)限模型(設(shè)備,文件秋泳,內(nèi)存)
    6.內(nèi)存潦闲,文件描述符,CPU等優(yōu)先級(jí)限制(使用Posix setrlimt() 函數(shù)來(lái)約束進(jìn)程失控)

通常迫皱,在其他系統(tǒng)上進(jìn)行資源分區(qū)的主要目標(biāo)就是將一個(gè)計(jì)算機(jī)劃分成若干個(gè)交互較少的小計(jì)算機(jī)集歉闰。然而,這種方法不是很靈活。QNX自適應(yīng)分區(qū)則采取了更靈活的方式:

  1. 可以在運(yùn)行時(shí)更改配置
  2. 通常在一次配置時(shí)時(shí)固定的
  3. 分區(qū)行為在運(yùn)行時(shí)自動(dòng)適應(yīng)條件(例如:空閑時(shí)間可以被重新分配給其他調(diào)度器分區(qū)和敬;文件系統(tǒng)可以通過(guò)在時(shí)間分區(qū)之間移動(dòng)線程的機(jī)制來(lái)向客戶端記錄時(shí)間)

為什么引入自適應(yīng)分區(qū)

為了提供實(shí)時(shí)性能凹炸,并保證不會(huì)過(guò)載,QNX引入了自適應(yīng)分區(qū)昼弟。精準(zhǔn)分區(qū)在靜態(tài)系統(tǒng)(很少或者沒有動(dòng)態(tài)部署軟件)中工作的最好啤它。在動(dòng)態(tài)系統(tǒng)中,靜態(tài)分區(qū)可能效率就十分低下舱痘。例如变骡,在分區(qū)間靜態(tài)劃分執(zhí)行時(shí)間可能會(huì)浪費(fèi)CPU,并導(dǎo)致延遲衰粹。

如果大部分分區(qū)時(shí)空閑的锣光,只有其中一個(gè)是忙的。那么這個(gè)比較忙的分區(qū)不會(huì)收到任何額外的執(zhí)行時(shí)間铝耻,而其他的分區(qū)中的后臺(tái)線程則浪費(fèi)了大量的CPU時(shí)間誊爹。

如果一個(gè)中斷被安排到一個(gè)分區(qū),那么這個(gè)中斷有可能就必須要的等待瓢捉,直到改分區(qū)運(yùn)行频丘。這就好導(dǎo)致不可接受的延遲,特別是在中斷爆發(fā)的情況下泡态。

自適應(yīng)分區(qū)是一組處理共通或者相關(guān)目標(biāo)或活動(dòng)的線程搂漠。與靜態(tài)分區(qū)一樣,自適應(yīng)分區(qū)也需要給他提供分配一個(gè)預(yù)算(CPU資源)某弦。

與靜態(tài)分區(qū)不同的是桐汤,自適應(yīng)分區(qū)不會(huì)鎖定在靜態(tài)分區(qū)中的一組固定代碼上“凶常可以根據(jù)需要?jiǎng)討B(tài)添加和配置自適應(yīng)分區(qū)怔毛,在正常的負(fù)載下,作為全局性的硬實(shí)時(shí)線程調(diào)度器不僅能夠滿足需求腾降,而且還可以提供最小化的中斷延遲拣度,甚至在超載的情況下,最大化使用CPU資源螃壤。

引入自適應(yīng)分區(qū)抗果,不需要更改(甚至不需要重新編譯)應(yīng)用程序代碼,但必須重新構(gòu)建操作系統(tǒng)鏡像奸晴。

QNX系統(tǒng)中冤馏,最多可以有32個(gè)分區(qū),當(dāng)然調(diào)度的是線程寄啼,不是分區(qū)宿接。

自適應(yīng)分區(qū)的好處
1. 設(shè)計(jì)系統(tǒng)并優(yōu)化其性能
分區(qū)劃分資源赘淮,以便它們可以被一組程序使用。一個(gè)分區(qū)表示資源的一部分睦霎,并包含一些定義了這些資源使用的規(guī)則。這些資源包括基本對(duì)象走诞,如處理器周期副女、程序存儲(chǔ)或高級(jí)對(duì)象,如緩沖區(qū)蚣旱、頁(yè)表或文件描述符碑幅。
自適應(yīng)分區(qū)確保系統(tǒng)中任何可用的空閑時(shí)間(即分區(qū)預(yù)算中該分區(qū)不需要的CPU時(shí)間)可供其他分區(qū)使用。這使得系統(tǒng)能夠處理在正常系統(tǒng)運(yùn)行期間突然發(fā)生的處理需求
2. 處理解決系統(tǒng)的復(fù)雜性
設(shè)計(jì)大規(guī)模的分布式系統(tǒng)本質(zhì)上是復(fù)雜的塞绿。典型的系統(tǒng)有大量相互隔離開發(fā)的子系統(tǒng)沟涨、進(jìn)程和線程。設(shè)計(jì)被劃分為具有不同系統(tǒng)性能目標(biāo)异吻、不同的確定優(yōu)先級(jí)的方案和不同的運(yùn)行時(shí)優(yōu)化方法的組裹赴。
在不同的地理位置和時(shí)區(qū)進(jìn)行產(chǎn)品開發(fā)會(huì)進(jìn)一步加劇這種情況。一旦所有這些完全不同的子系統(tǒng)集成到一個(gè)公共運(yùn)行時(shí)環(huán)境中诀浪,系統(tǒng)的所有部分都需要在所有操作場(chǎng)景下提供足夠的響應(yīng)棋返,例如:
正常的系統(tǒng)加載
高峰時(shí)期
失敗條件
自適應(yīng)分區(qū)使用線程調(diào)度程序,允許架構(gòu)師保持儲(chǔ)備應(yīng)急資源的目的,比如一個(gè)災(zāi)難恢復(fù)系統(tǒng),或field-debugging shell,并定義高級(jí)CPU預(yù)算/子系統(tǒng),允許開發(fā)團(tuán)隊(duì)實(shí)現(xiàn)自己的優(yōu)先級(jí)計(jì)劃雷猪,優(yōu)先考慮預(yù)算睛竣。這種方法允許設(shè)計(jì)組獨(dú)立地開發(fā)子系統(tǒng),并簡(jiǎn)化集成工作求摇。最終的效果是提高產(chǎn)品上市時(shí)間和促進(jìn)產(chǎn)品擴(kuò)展射沟。
3. 提供安全保障
一些系統(tǒng)試圖通過(guò)實(shí)現(xiàn)一個(gè)監(jiān)控進(jìn)程來(lái)克服這個(gè)問(wèn)題,該進(jìn)程檢測(cè)CPU使用率与境,并在它認(rèn)為某個(gè)進(jìn)程使用過(guò)多CPU時(shí)調(diào)用糾正措施验夯。這種方法有許多缺點(diǎn),包括:響應(yīng)時(shí)間通常很慢嚷辅。
這種方法在需要合法處理時(shí)簿姨,限制CPU的使用。它不是絕對(duì)可靠的;它依賴于適當(dāng)?shù)木€程優(yōu)先級(jí)來(lái)確保monitor進(jìn)程獲得足夠的CPU時(shí)間簸搞。
自適應(yīng)分區(qū)可以通過(guò)為系統(tǒng)的不同功能提供單獨(dú)的預(yù)算來(lái)解決這個(gè)問(wèn)題扁位。這確保系統(tǒng)總是有一些CPU容量用于重要的任務(wù)。線程可以更改它們自己的優(yōu)先級(jí)趁俊,這可能是一個(gè)安全漏洞域仇,但您可以配置線程調(diào)度程序,以防止在分區(qū)中運(yùn)行的代碼更改其自己的預(yù)算
4. 簡(jiǎn)化調(diào)試
通過(guò)在系統(tǒng)中提供一個(gè)“應(yīng)急門”寺擂,自適應(yīng)分區(qū)甚至可以簡(jiǎn)化嵌入式系統(tǒng)的調(diào)試(在開發(fā)或部署期間)暇务。
簡(jiǎn)單地創(chuàng)建一個(gè)可以運(yùn)行診斷工具的分區(qū);如果不需要使用分區(qū)泼掠,線程調(diào)度程序?qū)⒃谄渌謪^(qū)之間分配它的預(yù)算。這為您提供了對(duì)系統(tǒng)的訪問(wèn)垦细,而不會(huì)影響系統(tǒng)的性能

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末择镇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子括改,更是在濱河造成了極大的恐慌腻豌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘱能,死亡現(xiàn)場(chǎng)離奇詭異吝梅,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)惹骂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門苏携,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人对粪,你說(shuō)我怎么就攤上這事右冻。” “怎么了衩侥?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵国旷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我茫死,道長(zhǎng)跪但,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任峦萎,我火速辦了婚禮屡久,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘爱榔。我一直安慰自己被环,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布详幽。 她就那樣靜靜地躺著筛欢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唇聘。 梳的紋絲不亂的頭發(fā)上版姑,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音迟郎,去河邊找鬼剥险。 笑死,一個(gè)胖子當(dāng)著我的面吹牛宪肖,可吹牛的內(nèi)容都是我干的表制。 我是一名探鬼主播健爬,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼么介!你這毒婦竟也來(lái)了娜遵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤夭拌,失蹤者是張志新(化名)和其女友劉穎魔熏,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸽扁,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年镶骗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了桶现。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鼎姊,死狀恐怖骡和,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情相寇,我是刑警寧澤慰于,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站唤衫,受9級(jí)特大地震影響婆赠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜佳励,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一休里、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赃承,春花似錦妙黍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至抓于,卻和暖如春做粤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背毡咏。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工驮宴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人呕缭。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓堵泽,卻偏偏與公主長(zhǎng)得像修己,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子迎罗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容