開發與維運

liteos kernel任務管理

任務管理

基本概念

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

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

3、HuaweiLiteOS是一個支持多任務的操作系統。在HuaweiLiteOS中,一個任務表示一個線程。

4、HuaweiLiteOS中的任務是搶佔式調度機制,同時支持時間片輪轉調度方式。

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

6、HuaweiLiteOS的任務一共有32個優先級(0-31),最高優先級為0,最低優先級為31。

任務狀態

任務狀態通常分為以下四種:

就緒(Ready):該任務在就緒列表中,只等待CPU。

運行(Running):該任務正在執行。

阻塞(Blocked):該任務不在就緒列表中。包含任務被掛起、任務被延時、任務正在等待信號量、讀寫隊列或者等待讀寫事件等。

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

為了讓SDK能夠更廣泛的應用,所以提出了OSAL。

SDK內部集成的組件以及SDK本身使用的OS功能,都調用的是OSAL接口,因為SDK要運行起來,必須註冊相關的OS進OSAL才行。

osal的api接口聲明在<osal.h>中,使用相關的接口需要包含該頭文件,關於函數的詳細參數請參考該頭文件的聲明。

目前已經適配了LiteOS/LINUX/MACOS等,SDK可以在這些系統下運行。如果你需要在非上述系統下運行SDK,您需要將新系統適配進OSAL,保障SDK需要的OS功能正常。

適配OSAL您需要在您的系統初始化完畢之後,調用osal_install接口將您的系統註冊進SDK即可。使用該接口需要包含<osal_imp.h>,相關的宏定義在<osal_type.h>中。詳情參考該頭文件。


Leave a Reply

Your email address will not be published. Required fields are marked *