【IoT美學】《物聯網操作系統原理(LiteOS)》——任務管理

      網友投稿 849 2025-04-02

      今天,我們分享的內容主要是物聯網操作系統中的任務管理。


      在開始正式的閱讀分享帖之前,按慣例,我們需要思考幾個問題:

      進程和線程,你是否了解其區別與聯系?

      什么是任務?

      物聯網操作系統中的任務管理主要包含那幾個方面?

      如果你認真的思考了上面的問題,那么請你閱讀下面的分享,也希望你能Get到屬于自己的盲點知識!

      一、任務管理基本概念

      進程:正在運行程序的一個實例

      線程:進程中的一個實體,是被系**立調度和分派的基本單位

      進程與線程的區別

      線程是程序執行的最小單位,進程是操作系統分配資源的最小單位

      一個進程由一個或多個線程組成,線程是一個進程中代碼的不同執行路線

      進程之間相互獨立,同一進程下的各個線程共享程序的內存空間

      任務概念

      從系統的角度看,任務是競爭系統資源的最小運行單元;任務可以使用或等待CPU、使用內存空間等系統資源,并獨立于其它任務運行

      Huawei LiteOS的任務模塊可以給用戶提供多個任務,實現了任務之間的切換和通信,幫助用戶管理業務程序流程

      Huawei LiteOS是一個支持多任務的操作系統,在LiteOS中一個任務表示一個線程

      Huawei LiteOS中的任務是搶占式調度機制,同時支持時間片輪轉調度方式

      二、任務管理原理

      任務:由一組元素組成的實體

      元素(用于管理每一個任務)

      標識符:和任務相關的唯一標識符

      任務名:任務名稱

      任務狀態:用于表示當前任務正在執行或等待

      優先級:代表任務執行的優先順序

      上下文棧指針:任務即將被執行的下一條指令地址

      任務控制塊(TCB:Task Control Block)

      任務狀態

      用于描述任務所表現出的行為

      就緒態(Ready):該任務在就緒列表中,就緒的任務已經具備執行的能力,只等待調度器進行調度,新創建的任務會初始化為就緒態

      運行態(Running):該狀態表明任務正在執行,此時它占用處理器,LiteOS調度器選擇運行的永遠是處于最高優先級的就緒態任務,當任務被運行的一刻,它的任務狀態就變成了運行態

      阻塞態(Blocked):如果任務當前正在等待某個時序或外部中斷,我們就說這個任務處于阻塞狀態,該任務不在就緒列表中。包含任務被掛起、任務被延時、任務正在等待信號量、讀寫隊列或者等待讀寫事件等

      退出態(Dead):該任務運行結束,等待系統回收資源

      任務狀態間的遷移

      就緒—>運行態

      任務創建后進入就緒態,發生任務切換時,就緒列表中最高優先級的任務被執行,從而進入運行態,但此刻該任務依舊在就緒列表中

      運行—>阻塞態

      正在運行的任務發生阻塞(掛起、延時、獲取互斥鎖、讀消息、讀信號量等待等)時,該任務會從就緒列表中刪除,任務狀態由運行態變成阻塞態,然后發生任務切換,運行就緒列表中剩余最高優先級任務

      阻塞—>就緒態

      阻塞的任務被恢復后(任務恢復、延時時間超時、讀信號量超時或讀到信號量等),被恢復的任務會被加入就緒列表,從而由阻塞態變成就緒態;如果被恢復任務的優先級高于正在運行任務的優先級,則會發生任務切換,將該任務由就緒態變成運行態

      就緒—>阻塞態

      任務也有可能在就緒態時被阻塞(掛起),此時任務狀態會由就緒態轉變為阻塞態,該任務從就緒列表中刪除,不會參與任務調度,直到該任務被恢復

      運行—>就緒態

      有更高優先級任務創建或者恢復后,會發生任務調度,此刻就緒列表中最高優先級任務變為運行態,那么原先運行的任務由運行態變為就緒態,依然在就緒列表中

      運行—>退出態

      運行中的任務運行結束,內核自動將此任務刪除,任務狀態由運行態變為退出態

      阻塞—>退出態

      阻塞的任務調用刪除接口,任務狀態由阻塞態變為退出態

      任務棧

      任務棧的大小按8字節對齊

      作用

      任務切斷或響應中斷時,任務棧用于保存CPU寄存器的內容

      任務運行時,任務棧用于保存一些局部變量、函數參數等

      任務優先級

      優先級表示任務執行的優先順序

      任務的優先級決定了在發生任務切換時即將要執行的任務

      在就緒列表中的最高優先級的任務將得到執行

      高優先級的任務可打斷低優先級任務,低優先級任務必須在高優先級任務阻塞或結束后才能得到調度

      Huawei LiteOS的任務一共有32個優先級(0-31),最高優先級為0,最低優先級為31

      三、任務調度

      任務上下文

      Huawei LiteOS在任務掛起的時候會將本任務的任務上下文信息,保存在自己的任務棧里面,以便任務恢復后,從棧空間中恢復掛起時的上下文信息,從而繼續執行被掛起時被打斷的代碼

      任務切換

      任務切換包含獲取就緒列表中最高優先級任務、切出任務上下文保存、切入任務上下文恢復等動作

      調度算法

      搶占式調度機制

      時間片輪轉調度機制

      四、任務運行

      創建任務

      LOS_TaskCreateOnly:創建任務進入suspend態,不進行任務調度

      LOS_TaskCreate:創建任務進入就緒態,進行任務調度

      終止任務

      LOS_TaskDelete:刪除指定的任務

      五、任務間通信

      任務之間通過消息隊列進行信息傳輸,實現任務間的通信

      消息隊列

      用于任務間通信的數據結構

      用于接收來自任務或中斷的非固定長度消息

      可根據不同的接口選擇消息是否存放在自己的空間中

      【IoT美學】《物聯網操作系統原理(LiteOS)》——任務管理

      輕量級操作系統 LiteOS IoT

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎樣分享出去
      下一篇:【云享新鮮】社區周刊·Vol.38-認識云網絡的主動鏈路監控;體驗應用魔方做個抽獎小程序;一文讀懂工業物聯網關…
      相關文章
      亚洲小说区图片区| 亚洲国产精品白丝在线观看| 亚洲乱亚洲乱妇无码麻豆| 亚洲国产成人无码AV在线影院| 亚洲成A人片777777| 久久亚洲欧洲国产综合| 久久水蜜桃亚洲AV无码精品| 亚洲久热无码av中文字幕| 亚洲国产精品综合福利专区| 亚洲乱码一区av春药高潮| 亚洲成人福利在线| 亚洲天堂福利视频| 91亚洲自偷在线观看国产馆| 2022年亚洲午夜一区二区福利 | AV激情亚洲男人的天堂国语| 亚洲成a人片在线不卡一二三区 | 亚洲A∨精品一区二区三区下载 | 久久亚洲精品国产精品黑人| 国产亚洲精品a在线无码| 亚洲中文字幕在线观看| 亚洲国产日韩在线视频| 亚洲va在线va天堂va888www| 亚洲视频精品在线观看| 亚洲国产成人精品无码一区二区 | 久久精品国产亚洲一区二区| 亚洲AV无码一区东京热久久 | 亚洲最新永久在线观看| 亚洲区视频在线观看| 亚洲av一本岛在线播放| 亚洲欧洲av综合色无码| 国产精品亚洲专区无码WEB| 亚洲国产成人五月综合网| 亚洲中文字幕日产乱码高清app| 九月丁香婷婷亚洲综合色| 在线免费观看亚洲| 亚洲国产人成在线观看| 2017亚洲男人天堂一| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲国产专区一区| 亚洲春色在线视频| 78成人精品电影在线播放日韩精品电影一区亚洲 |