色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取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 后,內核將繼續執行準備運行的最高優先級任務(而不是被中斷的任務)。任務級別的響應是最佳的和確定性的,當系統響應性很重要時,建議使用搶占式內核。

審核編輯 :李倩

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

    關注

    3

    文章

    1416

    瀏覽量

    41470
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11084

    瀏覽量

    217228
  • 操作系統
    +關注

    關注

    37

    文章

    7158

    瀏覽量

    125669

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

    嵌入學習-飛凌嵌入ElfBoard ELF 1板卡-Linux內核移植之內核啟動流程

    關于內核啟動流程涉及內容較多而且復雜,過度的分析意義不大,因此,這里不做詳細講解,只做一個大概的介紹。初學者只做了解,有一定基礎的可以深入理解。內核鏡像被uboot加載到內存空間之后,獲得控制權
    發表于 01-07 09:20

    飛凌嵌入ElfBoard ELF 1板卡-Linux內核移植之內核啟動流程

    關于內核啟動流程涉及內容較多而且復雜,過度的分析意義不大,因此,這里不做詳細講解,只做一個大概的介紹。初學者只做了解,有一定基礎的可以深入理解。 內核鏡像被uboot加載到內存空間之后,獲得控制權
    發表于 01-06 09:51

    嵌入學習-飛凌嵌入ElfBoard ELF 1板卡-內核編譯之初次編譯

    接下來我們就進行內核代碼的初次編譯,直接使用我們適配好的Linux內核源碼進行編譯。為了使編譯操作更加簡單,我們提供了編譯腳本,將編譯操作命令放進了腳本中執行,直接執行編譯腳本文件build.sh
    發表于 12-18 08:55

    嵌入學習-飛凌嵌入ElfBoard ELF 1板卡-Linux內核移植之內核簡介

    學到本章節,大家應該對Linux操作系統都有了一定的了解,但可能還不知道我們拿到手的內核源碼都經歷了什么。linux有一個龐大的開源社區,每個人都可以向開源社區提交代碼。由于linux內核十分龐大
    發表于 12-16 13:08

    飛凌嵌入ElfBoard ELF 1板卡-Linux內核移植之內核簡介

    學到本章節,大家應該對Linux操作系統都有了一定的了解,但可能還不知道我們拿到手的內核源碼都經歷了什么。linux有一個龐大的開源社區,每個人都可以向開源社區提交代碼。由于linux內核十分龐大
    發表于 12-13 09:03

    嵌入工程師都在找的【Linux內核調試技術】建議收藏!

    在嵌入系統的開發中,Linux內核調試是一個至關重要的環節。 隨著處理器技術的不斷進步和嵌入領域的蓬勃發展,掌握有效的內核調試技術成為了開發者們的一項必備技能。本文將介紹幾種常見
    發表于 11-28 15:37

    嵌入Hypervisor:架構、原理與應用 閱讀體驗 +分離內核的嵌入Hyperviso

    讀后感:分離內核與SKH架構的深刻洞察 在閱讀了關于分離內核和SKH(分離內核Hypervisor)的詳細闡述后,我深感這一技術在現代計算機系統,尤其是嵌入系統和安全關鍵系統中的重要
    的頭像 發表于 10-12 17:06 ?791次閱讀
    嵌入<b class='flag-5'>式</b>Hypervisor:架構、原理與應用 閱讀體驗 +分離<b class='flag-5'>內核</b>的嵌入<b class='flag-5'>式</b>Hyperviso

    rtthread是搶占的rtos,那么線程的timeout參數具體的作用是什么呢?

    查閱相關說明,rtthread是搶占的rtos,那么線程的timeout參數具體的作用是什么呢, 假如線程A,B的優先級分別是1和2,timeout是10ms。當線程B 在運行中,還未到timeout,此刻掛起的線程A被觸發,是直接
    發表于 09-27 08:39

    新書發布——《RT-Thread嵌入實時操作系統內核、驅動和應用開發技術》

    我們非常高興地宣布,由鄭苗秀、沈鴻飛和廖建尚編著的《RT-Thread嵌入實時操作系統內核、驅動和應用開發技術》一書正式發布。本書的編寫團隊由多位在嵌入和實時操作系統領域有著豐富經驗的專家組
    的頭像 發表于 09-03 08:06 ?1388次閱讀
    新書發布——《RT-Thread嵌入<b class='flag-5'>式</b>實時操作系統<b class='flag-5'>內核</b>、驅動和應用開發技術》

    linux驅動程序如何加載進內核

    在Linux系統中,驅動程序是內核與硬件設備之間的橋梁。它們允許內核與硬件設備進行通信,從而實現對硬件設備的控制和管理。 驅動程序的編寫 驅動程序的編寫是Linux驅動開發的基礎。在編寫驅動程序之前
    的頭像 發表于 08-30 15:02 ?1125次閱讀

    學習hypervisor嵌入產品安全設計

    第一部分(第1~2章)介紹Hypervisor基礎,涵蓋虛擬化技術與實現、主流的嵌入Hypervisor產品,以及基于分離內核的嵌入Hypervisor等內容。第二部分(第3~12
    發表于 08-25 09:11

    Linux內核測試技術

    Linux 內核是Linux操作系統的核心部分,負責管理硬件資源和提供系統調用接口。隨著 Linux 內核的不斷發展和更新,其復雜性和代碼規模也在不斷增加。因此,確保內核的穩定性和可靠性變得尤為重要
    的頭像 發表于 08-13 13:42 ?1362次閱讀
    Linux<b class='flag-5'>內核</b>測試技術

    內核程序漏洞介紹

    電子發燒友網站提供《內核程序漏洞介紹.pdf》資料免費下載
    發表于 08-12 09:38 ?0次下載
    主站蜘蛛池模板: 国产一区二区高清 | 免费韩伦影院在线观看 | 欧美亚洲日韩欧洲不卡 | 久久久久久久久久综合情日本 | 精品久久免费视频 | 永久精品免费影院在线观看网站 | 日本日本熟妇中文在线视频 | 精品麻豆一卡2卡三卡4卡乱码 | 亚洲国产在线观看免费视频 | 国产精品久久久精品a级小说 | 青青青草国产 | 丫鬟粗大狠狠贯穿h | 成人毛片大全 | 99国产精品白浆在线观看免费 | 中国女人内谢69xxxxxx直播 | 国产欧美精品国产国产专区 | 色AV色婷婷96人妻久久久 | 亚洲日本一区二区三区在线不卡 | 日本无修肉动漫在线观看 | 夜里18款禁用的免费B站动漫 | 亚洲精品国产高清嫩草影院 | 欧美写真视频一区 | 樱花草动漫www | 精品一产品大全 | 在线精彩视频在线观看免费 | 成3d漫二区三区四区 | 久久国产av偷拍在线 | 天天操人人射 | 99精品热视频30在线热视频 | 亚洲欧美激情精品一区二区 | 国产在线精品一区二区网站免费 | 97免费视频在线观看 | 打开双腿狠狠蹂躏蜜桃臀 | metart中国撒尿人体欣赏 | 无套内射CHINESEHD熟女 | 99精品在线免费 | 成人免费视频在线观看 | 国内卡一卡二卡三免费网站 | 精品国产乱码久久久久久人妻 | 午夜国产精品影院在线观看 | 久久视频精品38线视频在线观看 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品