加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

一個基于優(yōu)先級協(xié)作式調度的嵌入式操作系統(tǒng)

12/02 15:29
646
閱讀需 6 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

一、QuarkTS簡介

github鏈接:https://github.com/kmilo17pet/QuarkTS

開源協(xié)議:MIT license

QuarkTS是一款開源的嵌入式操作系統(tǒng),旨在為小型嵌入式應用程序提供現(xiàn)代化的開發(fā)環(huán)境,幫助開發(fā)者構建穩(wěn)定、可預測的事件驅動型多任務軟件。其特點包括:

??優(yōu)先級協(xié)作式調度:任務自行管理生命周期,避免了搶占帶來的復雜性,減少了重入問題。

??時間控制:提供定時任務和軟件定時器,方便實現(xiàn)時間相關的操作。

??任務間通信機制:提供隊列、通知、事件標志等機制,實現(xiàn)不同任務之間的有效通信。

??狀態(tài)機支持:提供分層狀態(tài)機支持,簡化復雜邏輯的實現(xiàn)。

??協(xié)程:支持協(xié)程,提升代碼效率,簡化并發(fā)編程。

??AT命令行接口:提供簡潔的命令行接口,方便調試和交互。

??安全可靠:遵循MISRA C 2012和CERT編碼標準,并進行多項靜態(tài)分析檢查,確保代碼安全可靠。

二、優(yōu)先級協(xié)作式調度

優(yōu)先級協(xié)作式調度是一種任務調度策略,其中任務自行管理其生命周期,并在程序員指定的點進行任務切換。這種調度方式避免了搶占式調度中常見的復雜性,如資源競爭、死鎖和優(yōu)先級反轉等問題。

在優(yōu)先級協(xié)作式調度中,每個任務都有一個優(yōu)先級,但任務不會因外部事件或時間片到期而被強制中斷。

相反,任務會在完成其當前操作或到達程序員指定的切換點時主動放棄CPU,并將控制權交給其他任務。這種方式使得任務間的切換更加可控和可預測。

特點

??減少重入問題:由于任務不會被其他任務隨意中斷,只在程序員允許的位置進行切換,因此降低了并發(fā)編程中常見的重入問題。

??簡化資源共享:任務間的資源競爭問題更容易管理,因為任務切換是可控的。

??避免死鎖:協(xié)作式調度避免了搶占式調度中常見的死鎖問題,因為任務間的切換是確定的。

其它常見任務調度策略還有:

搶占式調度

搶占式調度是一種任務調度策略,其中任務可以因外部事件(如中斷)或時間片到期而被強制中斷,并由更高優(yōu)先級的任務接管CPU。

特點

??響應速度快:高優(yōu)先級任務可以立即搶占CPU,從而確保系統(tǒng)對緊急事件的快速響應。

??資源競爭:由于任務可以被搶占,因此需要額外的同步機制來管理資源競爭。

??復雜性高:搶占式調度增加了系統(tǒng)的復雜性,因為需要考慮任務切換的上下文保存和恢復、優(yōu)先級反轉等問題。

時間片調度

時間片調度是一種特殊的搶占式調度策略,其中每個任務被分配一個固定長度的時間片。當任務運行完其時間片后,無論其是否完成,都會被強制中斷,并將控制權交給下一個就緒的任務。

特點

??公平性:通過為每個任務分配時間片,可以確保所有任務都有機會獲得CPU資源。

??上下文切換開銷:由于任務頻繁切換,因此需要額外的上下文保存和恢復開銷。

??適合多任務環(huán)境:時間片調度特別適用于需要同時處理多個任務的多用戶系統(tǒng)。

對比

優(yōu)先級協(xié)作式調度 搶占式調度 時間片調度
任務切換 程序員控制 外部事件或時間片到期 時間片到期
重入問題 減少 增加 增加
資源共享 簡化 復雜 復雜
死鎖 避免 可能發(fā)生 可能發(fā)生
響應速度 中等(取決于程序員的設計) 快(但受限于時間片長度)
系統(tǒng)復雜性 中等(需要管理時間片和上下文切換)
公平性 不確定(取決于程序員的設計) 不確定(取決于優(yōu)先級分配)

優(yōu)先級協(xié)作式調度、搶占式調度和時間片調度各有優(yōu)缺點。

優(yōu)先級協(xié)作式調度適用于需要簡化資源共享和避免死鎖的系統(tǒng),但響應速度可能不如搶占式調度快。

搶占式調度適用于需要快速響應緊急事件的系統(tǒng),但增加了系統(tǒng)的復雜性和資源競爭問題。

時間片調度則提供了一種公平的CPU資源分配方式,適用于多任務環(huán)境,但會引入額外的上下文切換開銷。

三、QuarkTS應用場景

QuarkTS 的設計目標在于利用小巧、簡單而又最重要的穩(wěn)健實現(xiàn)實現(xiàn)其聲明功能,使其適合資源受限的微控制器,在此全搶先實時操作系統(tǒng)顯得過度,且加入它們會為固件開發(fā)添加不必要的復雜度。

此外,借助狀態(tài)機支持、協(xié)程、時間控制以及進程間通信原語,QuarkTS 提供了現(xiàn)代化環(huán)境,用于構建穩(wěn)定、可預測的事件驅動型多任務嵌入式軟件。

它們的模塊化和可靠性使這款操作系統(tǒng)成為低功耗設備上一系列應用高效開發(fā)的理想選擇,包括汽車控制系統(tǒng)、監(jiān)控及物聯(lián)網(wǎng)領域。

相關推薦

電子產(chǎn)業(yè)圖譜

本公眾號專注于嵌入式技術,包括但不限于C/C++、嵌入式、物聯(lián)網(wǎng)、Linux等編程學習筆記,同時,公眾號內包含大量的學習資源。歡迎關注,一同交流學習,共同進步!