国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

搶占式內核和非搶占式內核的內容

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

掃碼添加小助手

加入工程師交流群

操作系統分為搶占式內核和非搶占式內核,通常RTOS都是搶占式內核。

下面就來講講搶占式內核和非搶占式內核的內容。

非搶占式內核

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

非搶占式調度也稱為協作多任務,任務相互協作以共享 CPU,異步事件仍然由 ISR 處理。ISR 可以使更高優先級的任務準備好運行,但 ISR 總是返回到被中斷的任務。

只有當當前任務放棄 CPU 時,新的更高優先級任務才會獲得對 CPU 的控制。

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

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

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

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

搶占式內核

μC/OS、RTT等大多數實時內核都是搶占式的,準備運行的最高優先級任務始終被賦予 CPU 控制權。

當一個任務使更高優先級的任務準備好運行時,當前任務被搶占(掛起)并且更高優先級的任務立即獲得 CPU 的控制權。

如果 ISR 使更高優先級的任務準備就緒,當 ISR 完成時,被中斷的任務被掛起并恢復新的更高優先級任務。

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

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

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

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    4

    文章

    1467

    瀏覽量

    42870
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11277

    瀏覽量

    224946
  • 操作系統
    +關注

    關注

    37

    文章

    7401

    瀏覽量

    129279

原文標題:操作系統搶占、非搶占式內核的區別

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    內核.config文件:嵌入開發的“底層配置密碼”,90%的開發者都在靠它掌控系統核心

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

    深入理解設備樹chosen節點:固件與內核的“配置橋梁”

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

    內核配置項引發網絡性能下降的深度剖析

    在嵌入系統開發中,內核配置對系統性能起著關鍵作用。近期在對基于 Rockchip 平臺的 Linux 內核配置調試時,發現三個內核跟蹤器配置項(CONFIG_IRQSOFF_TRAC
    的頭像 發表于 02-01 16:48 ?1662次閱讀
    <b class='flag-5'>內核</b>配置項引發網絡性能下降的深度剖析

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

    POWERBUS二總線是一種可供電現場總線,不同于4根線的485通信,可實現無極性二總線自由拓撲,如下圖: 早些年,我們與RS485一樣只能輪詢通訊,低效! 但PB332與EV621一系列產品的面試,可以保留以往優點的同時,實現搶占通訊!手冊已發,歡迎各位與我交流疑惑
    發表于 01-30 12:59

    【「Linux 設備驅動開發(第 2 版)」閱讀體驗】Linux內核開發基礎

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

    【「Linux 設備驅動開發(第 2 版)」閱讀體驗】+讀內核處理的核心輔助函數

    ,Linux內核平臺抽象和設備驅動程序;第3篇,充分發揮硬件的潛力;第4篇,嵌入領域內的多種內核子系統。總共17章節,內容豐富,圍繞Linux內核
    發表于 01-10 22:08

    搶占優先級和子優先級

    關于搶占優先級和子優先級: 1)具有高搶占優先級的中斷可以在具有低搶占優先級的中斷服務程序執行過程中被響應,即中斷嵌套,或者說高
    發表于 12-03 07:11

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

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

    Linux內核printk日志級別全解析:從參數解讀到實操配置

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

    RT-Thread v5.2.2 正式發布:內核穩健性增強,驅動組件全面升級 | 技術集結

    親愛的開發者們:親愛的開發者們,我們很高興地宣布RT-Threadv5.2.2版本正式發布!本次更新在系統內核、設備驅動、網絡協議棧、libcpu支持等多個關鍵領域進行了重要優化和修復,為嵌入
    的頭像 發表于 11-16 10:05 ?1246次閱讀
    RT-Thread v5.2.2 正式發布:<b class='flag-5'>內核</b>穩健性增強,驅動組件全面升級 | 技術集結

    單片機的操作系統

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

    國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—Linux-RT應用開發案例

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

    一文讀懂:嵌入Linux實時性進階

    能夠在限定的時間內對外部時間做出相應的特性。 Linux可以通過任務調度與相應時間,中斷延遲與搶占延遲,內核搶占性與實時補丁,實時調度策略,硬件支持來提高其實時性,但它本身并不是一個硬實時操作系統
    發表于 07-10 15:26

    強實時運動控制內核MotionRT750(一):驅動安裝、內核配置與使用

    強實時運動控制內核MotionRT750的驅動安裝與內核配置
    的頭像 發表于 07-03 15:48 ?3676次閱讀
    強實時運動控制<b class='flag-5'>內核</b>MotionRT750(一):驅動安裝、<b class='flag-5'>內核</b>配置與使用

    基于RISC-V內核的嵌入系統在機器人關節控制中的應用研究

    控制提供了新的選擇。本文結合多個基于RISC-V內核的芯片案例,詳細探討了基于RISC-V內核的嵌入系統在機器人關節控制中的應用研究,分析了其優勢、關鍵技術以及未來應用前景。 一、引言 機器人關節控制是機器人技術中的核心部分,
    的頭像 發表于 04-13 00:00 ?1619次閱讀