0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

非搶占式內(nèi)核工作過(guò)程

嵌入式應(yīng)用開(kāi)發(fā) ? 來(lái)源:嵌入式應(yīng)用開(kāi)發(fā) ? 作者:嵌入式應(yīng)用開(kāi)發(fā) ? 2022-09-29 18:38 ? 次閱讀

非搶占式內(nèi)核

非搶占式內(nèi)核要求每個(gè)任務(wù)(線程)都做一些事情來(lái)明確放棄對(duì) CPU 的控制,為了保持多任務(wù)并發(fā)的錯(cuò)覺(jué),必須要有這一步操作。

非搶占式調(diào)度也稱為協(xié)作多任務(wù),任務(wù)相互協(xié)作以共享 CPU,異步事件仍然由 ISR 處理。ISR 可以使更高優(yōu)先級(jí)的任務(wù)準(zhǔn)備好運(yùn)行,但 ISR 總是返回到被中斷的任務(wù)。

只有當(dāng)當(dāng)前任務(wù)放棄 CPU 時(shí),新的更高優(yōu)先級(jí)任務(wù)才會(huì)獲得對(duì) CPU 的控制。

非搶占式內(nèi)核的優(yōu)點(diǎn)之一是中斷延遲更低,在任務(wù)級(jí)別,非搶占內(nèi)核也可以使用不可重入函數(shù)。每個(gè)任務(wù)都可以使用不可重入函數(shù),而不必?fù)?dān)心被另一個(gè)任務(wù)破壞。這是因?yàn)槊總€(gè)任務(wù)都可以在放棄 CPU 之前運(yùn)行到完成。但是,不應(yīng)允許不可重入函數(shù)放棄對(duì) CPU 的控制。

使用非搶占式內(nèi)核的任務(wù)級(jí)響應(yīng)可能比前臺(tái)/后臺(tái)系統(tǒng)低得多,因?yàn)槿蝿?wù)級(jí)響應(yīng)現(xiàn)在由最長(zhǎng)任務(wù)的時(shí)間給出。

非搶占式內(nèi)核的另一個(gè)優(yōu)點(diǎn)是較少需要通過(guò)使用信號(hào)量來(lái)保護(hù)共享數(shù)據(jù)。每個(gè)任務(wù)都擁有 CPU,你不必?fù)?dān)心任務(wù)會(huì)被搶占。當(dāng)然,這不是絕對(duì)的,在某些情況下,仍應(yīng)使用信號(hào)量。共享 I/O 設(shè)備可能仍需要使用互斥信號(hào)量;例如,任務(wù)可能仍需要對(duì)打印機(jī)的獨(dú)占訪問(wèn)。

pYYBAGM1dZaAC4xNAAIu44hGUvU762.png

(1) 任務(wù)正在執(zhí)行但被中斷。(2) 如果中斷被使能,CPU 向量(跳轉(zhuǎn))到 ISR。(3) ISR 處理事件并使更高優(yōu)先級(jí)的任務(wù)準(zhǔn)備好運(yùn)行。(4) ISR完成后,執(zhí)行返回指令,CPU返回被中斷的任務(wù)。(5) 任務(wù)代碼在中斷指令之后的指令處恢復(fù)。(6) 當(dāng)任務(wù)代碼完成時(shí),它調(diào)用內(nèi)核提供的服務(wù),將 CPU 交給另一個(gè)任務(wù)。(7) 內(nèi)核看到更高優(yōu)先級(jí)的任務(wù)已經(jīng)準(zhǔn)備好運(yùn)行,因此,內(nèi)核執(zhí)行上下文切換,以便它可以運(yùn)行(即執(zhí)行)更高優(yōu)先級(jí)的任務(wù)來(lái)處理由 ISR 發(fā)出信號(hào)的事件。

非搶占式內(nèi)核最重要的缺點(diǎn)是響應(yīng)性:已準(zhǔn)備好運(yùn)行的較高優(yōu)先級(jí)任務(wù)可能需要等待很長(zhǎng)時(shí)間才能運(yùn)行,因?yàn)楫?dāng)前任務(wù)應(yīng)該及時(shí)放棄CPU使用權(quán)。

與前臺(tái)/后臺(tái)系統(tǒng)中的后臺(tái)執(zhí)行一樣,非搶占式內(nèi)核中的任務(wù)級(jí)響應(yīng)時(shí)間是不確定的;你永遠(yuǎn)不知道最高優(yōu)先級(jí)的任務(wù)何時(shí)才能獲得 CPU 的控制權(quán)。這個(gè)操作由你的應(yīng)用程序來(lái)決定怎么時(shí)候放棄對(duì) CPU 的控制。

總而言之,非搶占式內(nèi)核允許每個(gè)任務(wù)運(yùn)行,直到它自愿放棄對(duì) CPU 的控制。中斷搶占任務(wù),ISR 完成后,ISR 返回到被中斷的任務(wù)。任務(wù)級(jí)響應(yīng)比前臺(tái)/后臺(tái)系統(tǒng)要好得多,但仍然是不確定的,因此,很少有商業(yè)內(nèi)核是非搶占式的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1337

    瀏覽量

    40085
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10702

    瀏覽量

    209448
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    889

    瀏覽量

    41220
  • 嵌入式開(kāi)發(fā)

    關(guān)注

    18

    文章

    1007

    瀏覽量

    47360
  • ISR
    ISR
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    14360
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    501

    瀏覽量

    19580
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    物位儀表DOB-0DLP1H/L阻旋料位開(kāi)關(guān)工作過(guò)程

    ?阻旋料位開(kāi)關(guān)?的工作過(guò)程主要依賴于微型馬達(dá)驅(qū)動(dòng)監(jiān)測(cè)葉片進(jìn)行轉(zhuǎn)動(dòng)。當(dāng)物料未接觸到葉片時(shí),馬達(dá)正常運(yùn)轉(zhuǎn),葉片持續(xù)旋轉(zhuǎn)。然而,一旦物料上升至葉片位置并與其接觸,葉片的轉(zhuǎn)動(dòng)會(huì)受到阻擋。
    的頭像 發(fā)表于 09-14 16:31 ?118次閱讀

    只讀存儲(chǔ)器的基本結(jié)構(gòu)和工作過(guò)程

    只讀存儲(chǔ)器(Read-Only Memory,ROM)是一種重要的計(jì)算機(jī)存儲(chǔ)設(shè)備,它以破壞性讀出方式工作,即只能讀出存儲(chǔ)的信息而無(wú)法直接寫(xiě)入新的信息。這種特性使得ROM在存儲(chǔ)固定程序和數(shù)據(jù)方面具有獨(dú)特的優(yōu)勢(shì)。下面將詳細(xì)闡述只讀存儲(chǔ)器的基本結(jié)構(gòu)、
    的頭像 發(fā)表于 09-05 10:43 ?332次閱讀

    簡(jiǎn)述DMA控制器的工作過(guò)程

    DMA(Direct Memory Access)控制器的工作過(guò)程是一個(gè)復(fù)雜但高效的硬件執(zhí)行過(guò)程,它實(shí)現(xiàn)了內(nèi)存與外設(shè)之間直接的數(shù)據(jù)傳輸,顯著減輕了CPU的負(fù)擔(dān),提高了數(shù)據(jù)處理的效率。
    的頭像 發(fā)表于 08-20 10:35 ?202次閱讀

    反饋控制的工作過(guò)程和特點(diǎn)

    對(duì)被控對(duì)象的精確控制。本文將詳細(xì)闡述反饋控制的基本原理,包括其定義、特點(diǎn)、工作過(guò)程、類型以及在工業(yè)自動(dòng)化中的應(yīng)用等方面。
    的頭像 發(fā)表于 06-17 11:48 ?586次閱讀

    PLC移位寄存器指令的工作過(guò)程

    指令系統(tǒng)中非常重要的一類,它在順序控制、物流及數(shù)據(jù)流控制等場(chǎng)合應(yīng)用廣泛。本文將詳細(xì)講解PLC移位寄存器指令的工作原理、指令格式、工作過(guò)程以及應(yīng)用場(chǎng)景,以期為工程師和技術(shù)人員提供參考。
    的頭像 發(fā)表于 06-15 17:37 ?970次閱讀

    ADC的SNR指標(biāo) ADC的工作過(guò)程介紹

    以前的文章有講過(guò)有講到,ADC的工作過(guò)程,可以看成采樣和量化兩個(gè)步驟。
    的頭像 發(fā)表于 05-28 18:18 ?1040次閱讀
    ADC的SNR指標(biāo) ADC的<b class='flag-5'>工作過(guò)程</b>介紹

    音箱制作過(guò)程圖解

    電子發(fā)燒友網(wǎng)站提供《音箱制作過(guò)程圖解.doc》資料免費(fèi)下載
    發(fā)表于 04-28 09:27 ?9次下載

    電路板pcb制作過(guò)程

    電路板pcb制作過(guò)程
    的頭像 發(fā)表于 03-05 10:26 ?966次閱讀

    光纖傳輸信息時(shí)的工作過(guò)程

    光電轉(zhuǎn)換工作過(guò)程如下: 變頻器主控芯片將驅(qū)動(dòng)IGBT開(kāi)關(guān)的信息由電信號(hào)信號(hào)轉(zhuǎn)換成光信號(hào),請(qǐng)問(wèn)這個(gè)轉(zhuǎn)換過(guò)程是通過(guò)什么電路完成的,而且傳輸驅(qū)動(dòng)信息時(shí)是同一相的上下橋臂同時(shí)發(fā)送的,在發(fā)送端是怎么組合驅(qū)動(dòng)
    發(fā)表于 02-03 11:33

    詳解開(kāi)關(guān)電源RCD鉗位電路工作過(guò)程,為什么它能夠吸收能量?

    詳解開(kāi)關(guān)電源RCD鉗位電路工作過(guò)程,為什么它能夠吸收能量?
    的頭像 發(fā)表于 12-06 16:14 ?1040次閱讀
    詳解開(kāi)關(guān)電源RCD鉗位電路<b class='flag-5'>工作過(guò)程</b>,為什么它能夠吸收能量?

    BUCK-BOOST 拓?fù)潆娫丛砑?b class='flag-5'>工作過(guò)程解析

    BUCK-BOOST 拓?fù)潆娫丛砑?b class='flag-5'>工作過(guò)程解析
    的頭像 發(fā)表于 11-24 17:47 ?3967次閱讀
    BUCK-BOOST 拓?fù)潆娫丛砑?b class='flag-5'>工作過(guò)程</b>解析

    Cuk 拓?fù)潆娫丛砑?b class='flag-5'>工作過(guò)程解析

    Cuk 拓?fù)潆娫丛砑?b class='flag-5'>工作過(guò)程解析
    的頭像 發(fā)表于 11-24 17:32 ?810次閱讀
    Cuk 拓?fù)潆娫丛砑?b class='flag-5'>工作過(guò)程</b>解析

    Zeta拓?fù)潆娫丛砑?b class='flag-5'>工作過(guò)程解析

    Zeta拓?fù)潆娫丛砑?b class='flag-5'>工作過(guò)程解析
    的頭像 發(fā)表于 11-24 17:18 ?3536次閱讀
    Zeta拓?fù)潆娫丛砑?b class='flag-5'>工作過(guò)程</b>解析

    反離激隔開(kāi)關(guān)電源的工作過(guò)程

    反激隔離開(kāi)關(guān)電源的工作過(guò)程
    的頭像 發(fā)表于 11-23 17:28 ?552次閱讀
    反離激隔<b class='flag-5'>式</b>開(kāi)關(guān)電源的<b class='flag-5'>工作過(guò)程</b>

    寫(xiě)字機(jī)的制作過(guò)程

    寫(xiě)字機(jī)的制作過(guò)程,圖解,利用了core——XY的結(jié)構(gòu),詳細(xì)制作圖解,需要有一定制作基礎(chǔ)的DIY同學(xué)。
    發(fā)表于 09-27 07:41