精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

操作系統中搶占式和非搶占式內核的區別

strongerHuang ? 來源:嵌入式專欄 ? 2023-05-29 10:47 ? 次閱讀

操作系統一般分為搶占式內核和非搶占式內核,通常RTOS都是搶占式內核。你知道搶占式內核和非搶占式內核的區別嗎?

非搶占式內核

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

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

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

非搶占式內核的優點之一是中斷延遲更低,在任務級別,非搶占內核也可以使用不可重入函數。每個任務都可以使用不可重入函數,而不必擔心被另一個任務破壞。這是因為每個任務都可以在放棄 CPU 之前運行到完成。但是,不應允許不可重入函數放棄對 CPU 的控制。

使用非搶占式內核的任務級響應可能比前臺/后臺系統低得多,因為任務級響應現在由最長任務的時間給出。

非搶占式內核的另一個優點是較少需要通過使用信號量來保護共享數據。每個任務都擁有 CPU,你不必擔心任務會被搶占。當然,這不是絕對的,在某些情況下,仍應使用信號量。共享 I/O 設備可能仍需要使用互斥信號量;例如,任務可能仍需要對打印機的獨占訪問。

wKgaomR0E86Ac-pdAATy3svZYXE638.png

(1) 任務正在執行但被中斷。

(2) 如果中斷被使能,CPU 向量(跳轉)到 ISR。

(3) ISR 處理事件并使更高優先級的任務準備好運行。

(4) ISR完成后,執行返回指令,CPU返回被中斷的任務。

(5) 任務代碼在中斷指令之后的指令處恢復。

(6) 當任務代碼完成時,它調用內核提供的服務,將 CPU 交給另一個任務。

(7) 內核看到更高優先級的任務已經準備好運行,因此,內核執行上下文切換,以便它可以運行(即執行)更高優先級的任務來處理由 ISR 發出信號的事件。

非搶占式內核最重要的缺點是響應性:已準備好運行的較高優先級任務可能需要等待很長時間才能運行,因為當前任務應該及時放棄CPU使用權。

與前臺/后臺系統中的后臺執行一樣,非搶占式內核中的任務級響應時間是不確定的;你永遠不知道最高優先級的任務何時才能獲得 CPU 的控制權。這個操作由你的應用程序來決定怎么時候放棄對 CPU 的控制。

總而言之,非搶占式內核允許每個任務運行,直到它自愿放棄對 CPU 的控制。中斷搶占任務,ISR 完成后,ISR 返回到被中斷的任務。任務級響應比前臺/后臺系統要好得多,但仍然是不確定的,因此,很少有商業內核是非搶占式的。

搶占式內核

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

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

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

wKgZomR0E86APuE6AAFq7z7Ua_4626.png

(1) 任務正在執行但被中斷。

(2) 如果中斷被使能,CPU 向量(跳轉)到 ISR。

(3) ISR 處理事件并使更高優先級的任務準備好運行。ISR 完成后,調用內核提供的服務(即調用內核提供的函數)。

(4) & (5) 該函數知道一個更重要的任務已經準備好運行,因此內核將執行上下文切換并執行更重要的代碼而不是返回到被中斷的任務任務。當更重要的任務完成時,內核提供的另一個函數被調用,讓任務進入休眠狀態,等待事件(即 ISR)發生。

(6) & (7) 然后內核“看到”需要執行一個較低優先級的任務,并完成另一個上下文切換以恢復被中斷任務的執行。

使用搶占式內核,最高優先級任務的執行是確定性的; 你可以確定它何時可以控制 CPU。 因此,通過使用搶占式內核可以最大限度地減少任務級響應時間。

使用搶占式內核的應用程序代碼不應使用不可重入函數,除非通過使用互斥信號量確保對這些函數的獨占訪問,因為低優先級和高優先級任務都可以使用公共函數。 如果較高優先級的任務搶占正在使用該功能的較低優先級的任務,則可能會發生數據損壞。

總而言之,搶占式內核始終執行準備運行的最高優先級任務。 中斷搶占任務,完成 ISR 后,內核將繼續執行準備運行的最高優先級任務(而不是被中斷的任務)。 任務級別的響應是最佳的和確定性的,當系統響應性很重要時,建議使用搶占式內核。

審核編輯:湯梓紅

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

    關注

    3

    文章

    1337

    瀏覽量

    40085
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10702

    瀏覽量

    209450
  • 操作系統
    +關注

    關注

    37

    文章

    6547

    瀏覽量

    122759
  • 中斷
    +關注

    關注

    5

    文章

    889

    瀏覽量

    41220
  • ISR
    ISR
    +關注

    關注

    0

    文章

    38

    瀏覽量

    14360

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

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

收藏 人收藏

    評論

    相關推薦

    搶占內核工作過程

    搶占內核 搶占
    的頭像 發表于 09-29 18:38 ?1138次閱讀
    <b class='flag-5'>非</b><b class='flag-5'>搶占</b><b class='flag-5'>式</b><b class='flag-5'>內核</b>工作過程

    一種基于單片機的搶占實時嵌入操作系統設計

    一種基于單片機的搶占實時嵌入操作系統設計
    發表于 04-22 12:59

    關于實時嵌入操作系統的一些概念討論(一)

    與帶實時操作系統的程序的實時性沒有區別, 當然要去掉DELAY函數; 6\LINUX與UCOS都是非常優秀的操作系統, 他們只是適用的場合不同, 因此, 國產的嵌入
    發表于 02-07 00:05

    【安富萊】【RTX操作系統教程】第10章 任務調度-搶占,時間片和合作

    第10章 任務調度-搶占,時間片和合作 本章教程為大家將介紹RTX操作系統支持的任務調度方式,搶占
    發表于 01-25 13:57

    轉:第14章 任務調度—搶占,時間片和合作

    本章教程為大家將介紹FreeRTOS操作系統支持的任務調度方式:搶占,時間片和合作,這部分算是FreeRTOS操作系統的核心了。對于初學
    發表于 08-30 09:55

    第10章 任務調度-搶占,時間片和合作

    轉rtx操作系統本章教程為大家將介紹RTX操作系統支持的任務調度方式,搶占,時間片和合作,這部分算是RTX
    發表于 10-04 18:11

    實時操作系統概念

    對很多嵌入系統來說,一個設計良好的實時操作系統可以讓開發工程師把握系統執行任何任務或響應任何關鍵事件的時間,滿足系統實時性要求。為了理解R
    發表于 07-19 06:18

    Linux內核搶占和用戶搶占的概念和區別

    本文詳解了Linux內核搶占實現機制。首先介紹了內核搶占和用戶搶占的概念和區別,接著分析了不可
    發表于 08-05 08:18

    詳解Linux內核搶占實現機制

    本文詳解了Linux內核搶占實現機制。首先介紹了內核搶占和用戶搶占的概念和區別,接著分析了不可
    發表于 08-06 06:16

    嵌入操作系統搶占調度策略是什么

    嵌入操作系統搶占調度策略是什么
    發表于 04-28 06:23

    請問一下RTThread是屬于搶占還是合作

    一般的PC都是搶占的,是中斷實現的,rtthread有中斷;合作的不會切換任務直到顯地yield,個人在使用rtthread時,遇到過沒加rt_thread_mdelay就卡住的
    發表于 08-26 11:38

    嵌入實時操作系統VxWorks內核調度機制分析

    本文簡要介紹了多任務內核,重點分析了嵌入實時操作系統VxWorks的內核調度機制——優先級搶占調度和時間片輪轉調度算法。
    發表于 12-11 16:15 ?14次下載

    單片機搶占嵌入操作系統

    搶占實時嵌入操作系統能夠在任務得到CPU時間時第一時間進行CPU的完全霸占,能夠更好的把握系統控制權,從而使任務得到迅速完成。所以相較于
    發表于 01-31 17:03 ?1次下載

    Linux內核搶占相關的基礎知識

    可以支持搶占,多任務操作系統 (multitasking operating system) 分為 2 類: 1、cooperative multitasking os 這種 os,進程會一直運行直到它自愿停下來。這種自
    的頭像 發表于 11-09 16:48 ?1938次閱讀

    搶占內核搶占內核的內容

    搶占內核的優點之一是中斷延遲更低,在任務級別,搶占內核
    的頭像 發表于 06-02 14:35 ?1274次閱讀