由於空閒任務通常用於安全消耗其他軟件不需要的CPU時間,因此如果沒有空閒任務會發生什麼? RTOS會自動創建一個嗎?此外,空閒任務除了耗費時間還有其他目的嗎?RTOS中的空閒時間
回答
如果沒有空閒任務會發生什麼? RTOS會自動創建一個嗎?
我懷疑是否有RTOS可以做到這一點。如果不存在空閒任務,則可運行任務的列表將爲空,並且調度程序可能會崩潰。通常,空閒線程存在的唯一最重要的原因是使可運行任務列表「永不空」。這簡化了調度程序的代碼。
此外,閒置任務除了耗費時間還有其他用途嗎?
在一些系統中,空閒任務可以執行一些低優先級活動(例如某些垃圾收集)。它還可以將內核切換到低功耗模式,特別是在嵌入式設備上。在這種情況下,當空閒任務運行時,意味着沒有更多的事情要做,所以核心可以停止並等待下一個事件(硬件中斷或超時)而不需要使用太多的功率。當下一個事件到達時,內核被硬件喚醒並處理事件。一些「正常」線程將開始運行,或者 - 如果還有其他事情沒有更多的事情 - 空閒線程將恢復並再次切換到低功耗模式。
如果CPU時鐘正在運行,則必須執行指令;如果沒有閒置的任務,那麼你的操作系統壞了。空閒循環是RTOS的固有部分,而不是用戶任務,所以RTOS不需要「自動創建一個」。
永不退縮的低優先級用戶任務將阻止空閒循環運行;這不一定是件好事。這樣的任務與空閒循環不同。對於任何CPU使用工具,RTOS支持的任何CPU使用工具都會報告100%的使用情況,如果這樣的任務被觸發 - 空閒循環的執行不包括CPU使用率,因爲CPU總是準備好在空閒時響應任何中斷事件 - 循環不會導致任何準備好的任務被延遲。
空閒任務或「空閒循環」通常就是這樣,並且當沒有別的事情時程序計數器被設置爲空循環。在某些體系結構中,循環可能包含一個「等待中斷」指令,停止內核執行(停止內核時鐘)以降低功耗。由於任何上下文切換都需要發生中斷,如果支持WFI,處理器可以在此循環中停止。
一些RTOS支持空閒循環的用戶掛鉤;低優先級的運行至完成功能,可在空閒循環上下文中在後臺運行。
空閒任務的其他用途除了消耗時間之外還有其他用途嗎?
最常見的,它做了兩兩件事:
1.垃圾(資源)收集或清理
2.啓動步驟,以降低功耗
- 1. Cant Get PC空閒時間
- 2. MediaWIki會話空閒時間
- 3. VB檢測空閒時間
- 4. Linux中進程的空閒時間
- 5. PHP執行時間vs空閒時間
- 6. 通過時間表中的空閒時間匹配人
- 7. 的Emacs + ESS空閒時間打印
- 8. Arduino上的空閒時間函數
- 9. 應用程序的空閒時間
- 10. 如何獲得Android的空閒時間?
- 11. 未定義的變量:空閒時間
- 12. 查詢員工的空閒時間
- 13. 可用EBS卷的空閒時間
- 14. 空閒時間不活動檢測
- 15. 如何檢查空閒時間
- 16. 獲取Mac空閒時間C或Python
- 17. 如何檢測網絡空閒時間?
- 18. proc/stat空閒時間減少
- 19. 遠程桌面空閒時間
- 20. 監視用戶空閒時間
- 21. Google Apps腳本空閒時間
- 22. 系統空閒時間 - Windows服務
- 23. 使用python檢測空閒時間
- 24. 檢測空閒時間有關iframe
- 25. 註冊計算系統空閒時間
- 26. 如何創建空閒時間?
- 27. WPF:應用程序空閒時間
- 28. 控制空閒時間外部頁面
- 29. 在iPhone空閒時間保存圖像
- 30. SQL Server將「表空閒空間」移動到「數據庫空閒空間」
謝謝你的詳細解答! – guddu