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