溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VxWorks中RTP如何實現(xiàn)調度策略

發(fā)布時間:2021-12-22 11:09:20 來源:億速云 閱讀:139 作者:小新 欄目:互聯(lián)網科技

這篇文章給大家分享的是有關VxWorks中RTP如何實現(xiàn)調度策略的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

VxWorks有了RTP之后,系統(tǒng)又是如何調度的呢?其實非常非常簡單:RTP不參與調度,VxWorks還是使用之前的調度策略,即所有Task基于優(yōu)先級搶占,以及默認關閉的時間片輪轉。這確保在任何給定的時刻,系統(tǒng)中準備運行的最高優(yōu)先級Task都將執(zhí)行,而不管該Task是在內核中還是在任何進程中。相比之下,非實時系統(tǒng)主要使用分時調度策略,以及動態(tài)調整進程優(yōu)先級,以確保沒有進程會長期無法使用CPU,并且沒有進程獨占CPU。VxWorks的時間片輪轉也是一種分時策略,但它不會干擾優(yōu)先級的搶占,因此它具有確定性,保證了實時性。

如果你不打算使用pthread,現(xiàn)在就可以跳到文末點贊了

----------分割線---------

不過,為了更好的支持POSIX標準,VxWorks在RTP里引入了POSIX的Thread調度策略。事實上,要想在RTP里使用POSIX的Thread,必須要包含這種調度策略:INCLUDE_POSIX_PTHREAD_SCHEDULER

VxWorks中RTP如何實現(xiàn)調度策略

從名字上就可以看出來,這種策略只對RTP里的Thread有效。而Kernel里的Task和Thread,以及RTP里的Task,用的都是VxWorks的傳統(tǒng)策略

VxWorks中RTP如何實現(xiàn)調度策略

  • Thread的調度策略不能動態(tài)切換到SCHED_SPORADIC,但是可以從SCHED_SPORADIC動態(tài)切換到其它策略

  • 如果已經使能了時間片輪轉策略,再使用kernelTimeSlice()改變時間片大小的時候,不會影響到之前使用SCHED_RR策略創(chuàng)建的Thread的時間片。

  • 使用pthread_setschedprio()降低Thread的優(yōu)先級后,該Thread會排到同優(yōu)先級隊列的部;而使用taskPrioritySet()降低Task的優(yōu)先級后,該Task會排到同優(yōu)先級隊列的

感謝各位的閱讀!關于“VxWorks中RTP如何實現(xiàn)調度策略”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI