任務管理
基本概念
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>中。詳情參考該頭文件。