實踐分享丨物聯網作業系統中的任務管理

2022-01-10 17:38:08 字數 2609 閱讀 9226

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

1.程序和執行緒,你是否了解其區別與聯絡?

2.什麼是任務?

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

如果你認真的思考了上面的問題,那麼請你閱讀下面的分享,也希望你能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:刪除指定的任務

任務之間通過訊息佇列進行資訊傳輸,實現任務間的通訊

用於任務間通訊的資料結構

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

可根據不同的介面選擇訊息是否存放在自己的空間中

點選關注,第一時間了解華為雲新鮮技術~

華為物聯網作業系統 LiteOS

2015 年 5 月 20 日,在 2015 華為網路大會上,華為發布最輕量級的物聯網作業系統 liteos。huawei liteos 是華為面向 iot 領域,構建的輕量級物聯網作業系統,遵循 bsd 3 開源許可協議,可廣泛應用於智慧型家居 個人穿戴 車聯網 城市公共服務 製造業等領域,大幅降...

什麼是物聯網作業系統?

物聯網 iot 是目前最新最熱的技術熱點之一,也是這個資訊化時代的重要發展節點。相對於網際網路而言,物聯網的本質在於 萬物相連 物聯網的核心和基礎仍然是網際網路,是在網際網路基礎上延伸和擴充套件的網路 其使用者端延伸和擴充套件到了任何物品與物品之間,進行資訊交換和通訊,也就是物物相息。在網際網路 人...

LiteOS 華為物聯網作業系統簡介

huawei liteos 是華為面向iot領域,構建的 統一物聯網作業系統和中介軟體軟體平台 以輕量級 核心小於10k 低功耗 1節5號電池最多可以工作5年 快速啟動,互聯互通,安全等關鍵能力,為開發者提供 一站式 完整軟體平台,有效降低開發門檻 縮短開發周期。huawei liteos 目前主要...