从零入门 FreeRTOS 操作系统之任务的概念
從零入門 FreeRTOS 操作系統之任務的概念
從系統的角度看,任務是競爭系統資源的最小運行單元。FreeRTOS 是一個支持多任務的操作系統。在 FreeRTOS 中,任務可以使用或等待 CPU、使用內存空間等系統資源,并獨立于其它任務運行。
簡而言之: FreeRTOS 的任務可認為是一系列獨立任務的集合,并且每個任務在自己的環境中運行。在任何時刻,只有一個任務得到運行,當前需要執行哪個任務,由FreeRTOS 調度器決定。調度器不斷的啟動、停止每一個任務,宏觀看上去所有的任務都在同時在執行。
調度器主要的職責是在任務切入切出時保存上下文環境(寄存器值、堆棧內容)。為了實現這點,每個 FreeRTOS 任務都需要有自己的棧空間,當任務切出時,它的執行環境會被保存在該任務的棧空間中,這樣當任務再次運行時,就能從堆棧中正確的恢復上次的運行環境,任務越多,需要的堆棧空間就越大,而一個系統能運行多少個任務,取決于系統的可用的 SRAM。
FreeRTOS 中的任務是搶占式調度機制,高優先級的任務可打斷低優先級任務,低優先級任務必須在高優先級任務阻塞或結束后才能得到調度。但是,FreeRTOS 同樣支持任何數量的任務可以共享同一個優先級,當宏 configUSE_TIME_SLICING 定義為 1 時,處于就緒態的多個相同優先級的任務將會以時間片輪轉調度的方式共享處理器,只不過時間片的調度是不允許搶占任務的CPU 使用權。
任務通常會運行在一個死循環中,也不會退出,如果一個任務不再需要,可以調用 FreeRTOS 中的任務刪除 API 函數接口顯式地將其刪除。
總結
以上是生活随笔為你收集整理的从零入门 FreeRTOS 操作系统之任务的概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何预测ChatGPT未来的发展趋势?
- 下一篇: 从零入门 FreeRTOS 操作系统之任