chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

搶占式內(nèi)核和非搶占式內(nèi)核的內(nèi)容

strongerHuang ? 來源:嵌入式專欄 ? 作者:嵌入式專欄 ? 2022-06-02 14:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

操作系統(tǒng)分為搶占式內(nèi)核和非搶占式內(nèi)核,通常RTOS都是搶占式內(nèi)核。

下面就來講講搶占式內(nèi)核和非搶占式內(nèi)核的內(nèi)容。

非搶占式內(nèi)核

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

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

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

非搶占式內(nèi)核的優(yōu)點(diǎn)之一是中斷延遲更低,在任務(wù)級別,非搶占內(nèi)核也可以使用不可重入函數(shù)。每個任務(wù)都可以使用不可重入函數(shù),而不必?fù)?dān)心被另一個任務(wù)破壞。這是因為每個任務(wù)都可以在放棄 CPU 之前運(yùn)行到完成。但是,不應(yīng)允許不可重入函數(shù)放棄對 CPU 的控制。 使用非搶占式內(nèi)核的任務(wù)級響應(yīng)可能比前臺/后臺系統(tǒng)低得多,因為任務(wù)級響應(yīng)現(xiàn)在由最長任務(wù)的時間給出。 非搶占式內(nèi)核的另一個優(yōu)點(diǎn)是較少需要通過使用信號量來保護(hù)共享數(shù)據(jù)。每個任務(wù)都擁有 CPU,你不必?fù)?dān)心任務(wù)會被搶占。當(dāng)然,這不是絕對的,在某些情況下,仍應(yīng)使用信號量。共享 I/O 設(shè)備可能仍需要使用互斥信號量;例如,任務(wù)可能仍需要對打印機(jī)的獨(dú)占訪問。

989ab51a-e22c-11ec-ba43-dac502259ad0.png

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

非搶占式內(nèi)核最重要的缺點(diǎn)是響應(yīng)性:已準(zhǔn)備好運(yùn)行的較高優(yōu)先級任務(wù)可能需要等待很長時間才能運(yùn)行,因為當(dāng)前任務(wù)應(yīng)該及時放棄CPU使用權(quán)。 與前臺/后臺系統(tǒng)中的后臺執(zhí)行一樣,非搶占式內(nèi)核中的任務(wù)級響應(yīng)時間是不確定的;你永遠(yuǎn)不知道最高優(yōu)先級的任務(wù)何時才能獲得 CPU 的控制權(quán)。這個操作由你的應(yīng)用程序來決定怎么時候放棄對 CPU 的控制。 總而言之,非搶占式內(nèi)核允許每個任務(wù)運(yùn)行,直到它自愿放棄對 CPU 的控制。中斷搶占任務(wù),ISR 完成后,ISR 返回到被中斷的任務(wù)。任務(wù)級響應(yīng)比前臺/后臺系統(tǒng)要好得多,但仍然是不確定的,因此,很少有商業(yè)內(nèi)核是非搶占式的。

搶占式內(nèi)核

μC/OS、RTT等大多數(shù)實時內(nèi)核都是搶占式的,準(zhǔn)備運(yùn)行的最高優(yōu)先級任務(wù)始終被賦予 CPU 控制權(quán)。

當(dāng)一個任務(wù)使更高優(yōu)先級的任務(wù)準(zhǔn)備好運(yùn)行時,當(dāng)前任務(wù)被搶占(掛起)并且更高優(yōu)先級的任務(wù)立即獲得 CPU 的控制權(quán)。

如果 ISR 使更高優(yōu)先級的任務(wù)準(zhǔn)備就緒,當(dāng) ISR 完成時,被中斷的任務(wù)被掛起并恢復(fù)新的更高優(yōu)先級任務(wù)。

98d6bc7c-e22c-11ec-ba43-dac502259ad0.png

(1) 任務(wù)正在執(zhí)行但被中斷。 (2) 如果中斷被使能,CPU 向量(跳轉(zhuǎn))到 ISR。 (3) ISR 處理事件并使更高優(yōu)先級的任務(wù)準(zhǔn)備好運(yùn)行。ISR 完成后,調(diào)用內(nèi)核提供的服務(wù)(即調(diào)用內(nèi)核提供的函數(shù))。 (4) & (5) 該函數(shù)知道一個更重要的任務(wù)已經(jīng)準(zhǔn)備好運(yùn)行,因此內(nèi)核將執(zhí)行上下文切換并執(zhí)行更重要的代碼而不是返回到被中斷的任務(wù)任務(wù)。當(dāng)更重要的任務(wù)完成時,內(nèi)核提供的另一個函數(shù)被調(diào)用,讓任務(wù)進(jìn)入休眠狀態(tài),等待事件(即 ISR)發(fā)生。 (6) & (7) 然后內(nèi)核“看到”需要執(zhí)行一個較低優(yōu)先級的任務(wù),并完成另一個上下文切換以恢復(fù)被中斷任務(wù)的執(zhí)行。

使用搶占式內(nèi)核,最高優(yōu)先級任務(wù)的執(zhí)行是確定性的;你可以確定它何時可以控制 CPU。因此,通過使用搶占式內(nèi)核可以最大限度地減少任務(wù)級響應(yīng)時間。 使用搶占式內(nèi)核的應(yīng)用程序代碼不應(yīng)使用不可重入函數(shù),除非通過使用互斥信號量確保對這些函數(shù)的獨(dú)占訪問,因為低優(yōu)先級和高優(yōu)先級任務(wù)都可以使用公共函數(shù)。如果較高優(yōu)先級的任務(wù)搶占正在使用該功能的較低優(yōu)先級的任務(wù),則可能會發(fā)生數(shù)據(jù)損壞。 總而言之,搶占式內(nèi)核始終執(zhí)行準(zhǔn)備運(yùn)行的最高優(yōu)先級任務(wù)。中斷搶占任務(wù),完成 ISR 后,內(nèi)核將繼續(xù)執(zhí)行準(zhǔn)備運(yùn)行的最高優(yōu)先級任務(wù)(而不是被中斷的任務(wù))。任務(wù)級別的響應(yīng)是最佳的和確定性的,當(dāng)系統(tǒng)響應(yīng)性很重要時,建議使用搶占式內(nèi)核。

審核編輯 :李倩

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

    關(guān)注

    4

    文章

    1468

    瀏覽量

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

    關(guān)注

    68

    文章

    11279

    瀏覽量

    225032
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7402

    瀏覽量

    129325

原文標(biāo)題:操作系統(tǒng)搶占、非搶占式內(nèi)核的區(qū)別

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    內(nèi)核.config文件:嵌入開發(fā)的“底層配置密碼”,90%的開發(fā)者都在靠它掌控系統(tǒng)核心

    在嵌入 Linux 開發(fā)中,尤其是瑞芯微 RK3588 這類高性能平臺的底層開發(fā),內(nèi)核編譯是繞不開的核心環(huán)節(jié)。
    的頭像 發(fā)表于 02-09 17:07 ?1125次閱讀
    <b class='flag-5'>內(nèi)核</b>.config文件:嵌入<b class='flag-5'>式</b>開發(fā)的“底層配置密碼”,90%的開發(fā)者都在靠它掌控系統(tǒng)核心

    深入理解設(shè)備樹chosen節(jié)點(diǎn):固件與內(nèi)核的“配置橋梁”

    在嵌入 Linux 開發(fā)中,設(shè)備樹(Device Tree)是連接硬件與內(nèi)核的關(guān)鍵紐帶。但有一個節(jié)點(diǎn)很特殊 —— 它不描述任何硬件模塊,卻直接決定內(nèi)核能否正常啟動,這就是chosen節(jié)點(diǎn)。
    的頭像 發(fā)表于 02-09 16:36 ?140次閱讀
    深入理解設(shè)備樹chosen節(jié)點(diǎn):固件與<b class='flag-5'>內(nèi)核</b>的“配置橋梁”

    內(nèi)核配置項引發(fā)網(wǎng)絡(luò)性能下降的深度剖析

    在嵌入系統(tǒng)開發(fā)中,內(nèi)核配置對系統(tǒng)性能起著關(guān)鍵作用。近期在對基于 Rockchip 平臺的 Linux 內(nèi)核配置調(diào)試時,發(fā)現(xiàn)三個內(nèi)核跟蹤器配置項(CONFIG_IRQSOFF_TRAC
    的頭像 發(fā)表于 02-01 16:48 ?1680次閱讀
    <b class='flag-5'>內(nèi)核</b>配置項引發(fā)網(wǎng)絡(luò)性能下降的深度剖析

    一種新型直流二總線供電+通訊=搶占通訊方式

    POWERBUS二總線是一種可供電現(xiàn)場總線,不同于4根線的485通信,可實現(xiàn)無極性二總線自由拓?fù)洌缦聢D: 早些年,我們與RS485一樣只能輪詢通訊,低效! 但PB332與EV621一系列產(chǎn)品的面試,可以保留以往優(yōu)點(diǎn)的同時,實現(xiàn)搶占通訊!手冊已發(fā),歡迎各位與我交流疑惑
    發(fā)表于 01-30 12:59

    【「Linux 設(shè)備驅(qū)動開發(fā)(第 2 版)」閱讀體驗】Linux內(nèi)核開發(fā)基礎(chǔ)

    感謝電子發(fā)燒友論壇提供的《Linux設(shè)備驅(qū)動開發(fā)(第2版)》閱讀機(jī)會,測評將從Linux內(nèi)核開發(fā)基礎(chǔ)、Linux內(nèi)核平臺抽象和設(shè)備驅(qū)動程序、發(fā)揮硬件潛力以及嵌入領(lǐng)域內(nèi)的多種內(nèi)核子系統(tǒng)
    發(fā)表于 01-12 22:45

    【「Linux 設(shè)備驅(qū)動開發(fā)(第 2 版)」閱讀體驗】+讀內(nèi)核處理的核心輔助函數(shù)

    ,Linux內(nèi)核平臺抽象和設(shè)備驅(qū)動程序;第3篇,充分發(fā)揮硬件的潛力;第4篇,嵌入領(lǐng)域內(nèi)的多種內(nèi)核子系統(tǒng)??偣?7章節(jié),內(nèi)容豐富,圍繞Linux內(nèi)核
    發(fā)表于 01-10 22:08

    搶占優(yōu)先級和子優(yōu)先級

    關(guān)于搶占優(yōu)先級和子優(yōu)先級: 1)具有高搶占優(yōu)先級的中斷可以在具有低搶占優(yōu)先級的中斷服務(wù)程序執(zhí)行過程中被響應(yīng),即中斷嵌套,或者說高
    發(fā)表于 12-03 07:11

    企鵝寶寶帶你看接觸水位檢測方案

    接觸
    ICman
    發(fā)布于 :2025年11月26日 13:44:49

    Linux內(nèi)核printk日志級別全解析:從參數(shù)解讀到實操配置

    ”——?它直接決定了?printk(內(nèi)核打印函數(shù))的日志輸出行為。如果你是嵌入開發(fā)者、內(nèi)核調(diào)試工程師,或經(jīng)常需要排查驅(qū)動?/?系統(tǒng)問題,理解這串?dāng)?shù)字和?printk?輸出等級,能讓你高效篩選關(guān)鍵日志
    的頭像 發(fā)表于 11-20 15:54 ?1707次閱讀
    Linux<b class='flag-5'>內(nèi)核</b>printk日志級別全解析:從參數(shù)解讀到實操配置

    RT-Thread v5.2.2 正式發(fā)布:內(nèi)核穩(wěn)健性增強(qiáng),驅(qū)動組件全面升級 | 技術(shù)集結(jié)

    親愛的開發(fā)者們:親愛的開發(fā)者們,我們很高興地宣布RT-Threadv5.2.2版本正式發(fā)布!本次更新在系統(tǒng)內(nèi)核、設(shè)備驅(qū)動、網(wǎng)絡(luò)協(xié)議棧、libcpu支持等多個關(guān)鍵領(lǐng)域進(jìn)行了重要優(yōu)化和修復(fù),為嵌入
    的頭像 發(fā)表于 11-16 10:05 ?1250次閱讀
    RT-Thread v5.2.2 正式發(fā)布:<b class='flag-5'>內(nèi)核</b>穩(wěn)健性增強(qiáng),驅(qū)動組件全面升級 | 技術(shù)集結(jié)

    單片機(jī)的操作系統(tǒng)

    搶占和輪轉(zhuǎn)調(diào)度,適用于低資源消耗場景(如STM32F0系列)。 ? ? μC/OS-II ?:搶占多任務(wù)內(nèi)核,支持64個任務(wù),內(nèi)存分區(qū)管理避免碎片,中斷嵌套深度達(dá)255層,適合工業(yè)
    發(fā)表于 11-14 06:18

    國產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—Linux-RT應(yīng)用開發(fā)案例

    PREEMPT機(jī)制進(jìn)行補(bǔ)丁。PREEMPT_RT補(bǔ)丁的關(guān)鍵是最小化不可搶占內(nèi)核代碼量,同時最小化必須更改的代碼量,以便提供這種附加的可搶占性。PREEMPT_RT補(bǔ)丁利用Linux內(nèi)核
    的頭像 發(fā)表于 07-30 10:33 ?819次閱讀
    國產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—Linux-RT應(yīng)用開發(fā)案例

    一文讀懂:嵌入Linux實時性進(jìn)階

    能夠在限定的時間內(nèi)對外部時間做出相應(yīng)的特性。 Linux可以通過任務(wù)調(diào)度與相應(yīng)時間,中斷延遲與搶占延遲,內(nèi)核搶占性與實時補(bǔ)丁,實時調(diào)度策略,硬件支持來提高其實時性,但它本身并不是一個硬實時操作系統(tǒng)
    發(fā)表于 07-10 15:26

    強(qiáng)實時運(yùn)動控制內(nèi)核MotionRT750(一):驅(qū)動安裝、內(nèi)核配置與使用

    強(qiáng)實時運(yùn)動控制內(nèi)核MotionRT750的驅(qū)動安裝與內(nèi)核配置
    的頭像 發(fā)表于 07-03 15:48 ?3684次閱讀
    強(qiáng)實時運(yùn)動控制<b class='flag-5'>內(nèi)核</b>MotionRT750(一):驅(qū)動安裝、<b class='flag-5'>內(nèi)核</b>配置與使用

    基于RISC-V內(nèi)核的嵌入系統(tǒng)在機(jī)器人關(guān)節(jié)控制中的應(yīng)用研究

    控制提供了新的選擇。本文結(jié)合多個基于RISC-V內(nèi)核的芯片案例,詳細(xì)探討了基于RISC-V內(nèi)核的嵌入系統(tǒng)在機(jī)器人關(guān)節(jié)控制中的應(yīng)用研究,分析了其優(yōu)勢、關(guān)鍵技術(shù)以及未來應(yīng)用前景。 一、引言 機(jī)器人關(guān)節(jié)控制是機(jī)器人技術(shù)中的核心部分,
    的頭像 發(fā)表于 04-13 00:00 ?1637次閱讀