日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 线程优先级算法,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是...

發(fā)布時間:2024/9/27 linux 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 线程优先级算法,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓

圖?1?RT-Linux結(jié)構(gòu)

RT?-Linux的關(guān)鍵技術(shù)是通過軟件來模擬硬件的中斷控制器。當Linux系統(tǒng)要封鎖CPU的中斷時時,RT-Linux中的實時子系統(tǒng)會截取到這個請求,把它記錄下來,而實際上并不真正封鎖硬件中斷,這樣就避免了由于封中斷所造成的系統(tǒng)在一段時間沒有響應(yīng)的情況,從而提高了實時性。當有硬件中斷到來時,?RT-Linux截取該中斷,并判斷是否有實時子系統(tǒng)中的中斷例程來處理還是傳遞給普通的Linux內(nèi)核進行處理。另外,普通Linux系統(tǒng)中的最小定時精度由系統(tǒng)中的實時時鐘的頻率決定,一般Linux系統(tǒng)將該時鐘設(shè)置為每秒來100個時鐘中斷,所以Linux系統(tǒng)中一般的定時精度為?10ms,即時鐘周期是10ms,而RT-Linux通過將系統(tǒng)的實時時鐘設(shè)置為單次觸發(fā)狀態(tài),可以提供十幾個微秒級的調(diào)度粒度。

RT-Linux實時子系統(tǒng)中的任務(wù)調(diào)度可以采用RM、EDF等優(yōu)先級驅(qū)動的算法,也可以采用其他調(diào)度算法。

RT?-Linux對于那些在重負荷下工作的專有系統(tǒng)來說,確實是一個不錯的選擇,但他僅僅提供了對于CPU資源的調(diào)度;并且實時系統(tǒng)和普通Linux系統(tǒng)關(guān)系不是十分密切,這樣的話,開發(fā)人員不能充分利用Linux系統(tǒng)中已經(jīng)實現(xiàn)的功能,如協(xié)議棧等。所以RT-Linux適合與工業(yè)控制等實時任務(wù)功能簡單,并且有硬實時要求的環(huán)境中,但如果要應(yīng)用與多媒體處理中還需要做大量的工作。

意大利的RTAI(?Real-Time?Application?Interface?)源于RT-Linux,它在設(shè)計思想上和RT-Linux完全相同。它當初設(shè)計目的是為了解決RT-Linux難于在不同Linux版本之間難于移植的問題,為此,RTAI在?Linux?上定義了一個實時硬件抽象層,實時任務(wù)通過這個抽象層提供的接口和Linux系統(tǒng)進行交互,這樣在給Linux內(nèi)核中增加實時支持時可以盡可能少地修改?Linux的內(nèi)核源代碼。

3.2.?Kurt-Linux

Kurt?-Linux由Kansas大學(xué)開發(fā),它可以提供微秒級的實時精度[KurtWeb]?[Srinivasan]。不同于RT-Linux單獨實現(xiàn)一個實時內(nèi)核的做法,Kurt?-Linux是在通用Linux系統(tǒng)的基礎(chǔ)上實現(xiàn)的,它也是第一個可以使用普通Linux系統(tǒng)調(diào)用的基于Linux的實時系統(tǒng)。

Kurt-Linux將系統(tǒng)分為三種狀態(tài):正常態(tài)、實時態(tài)和混合態(tài),在正常態(tài)時它采用普通的Linux的調(diào)度策略,在實時態(tài)只運行實時任務(wù),在混合態(tài)實時和非實時任務(wù)都可以執(zhí)行;實時態(tài)可以用于對于實時性要求比較嚴格的情況。

為了提高Linux系統(tǒng)的實時特性,必須提高系統(tǒng)所支持的時鐘精度。但如果僅僅簡單地提高時鐘頻率,會引起調(diào)度負載的增加,從而嚴重降低系統(tǒng)的性能。為了解決這個矛盾,?Kurt-Linux采用UTIME所使用的提高Linux系統(tǒng)中的時鐘精度的方法[UTIMEWeb]:它將時鐘芯片設(shè)置為單次觸發(fā)狀態(tài)(One?shot?mode),即每次給時鐘芯片設(shè)置一個超時時間,然后到該超時事件發(fā)生時在時鐘中斷處理程序中再次根據(jù)需要給時鐘芯片設(shè)置一個超時時間。它的基本思想是一個精確的定時意味著我們需要時鐘中斷在我們需要的一個比較精確的時間發(fā)生,但并非一定需要系統(tǒng)時鐘頻率達到此精度。它利用CPU的時鐘計數(shù)器TSC?(Time?Stamp?Counter)來提供精度可達CPU主頻的時間精度。

對于實時任務(wù)的調(diào)度,Kurt-Linux采用基于時間(TD)的靜態(tài)的實時CPU調(diào)度算法。實時任務(wù)在設(shè)計階段就需要明確地說明它們實時事件要發(fā)生的時間。這種調(diào)度算法對于那些循環(huán)執(zhí)行的任務(wù)能夠取得較好的調(diào)度效果。

Kurt?-Linux相對于RT-Linux的一個優(yōu)點就是可以使用Linux系統(tǒng)自身的系統(tǒng)調(diào)用,它本來被設(shè)計用于提供對硬實時的支持,但由于它在實現(xiàn)上只是簡單的將Linux調(diào)度器用一個簡單的時間驅(qū)動的調(diào)度器所取代,所以它的實時進程的調(diào)度很容易受到其它非實時任務(wù)的影響,從而在有的情況下會發(fā)生實時任務(wù)的截止期限不能滿足的情況,所以也被稱作嚴格實時系統(tǒng)(Firm?Real-time)。目前基于Kurt-Linux的應(yīng)用有:ARTS(ATM?Reference?Traffic?System)、多媒體播放軟件等。另外Kurt-Linux所采用的這種方法需要頻繁地對時鐘芯片進行編程設(shè)置。

3.3.?RED-Linux

RED?-Linux是加州大學(xué)Irvine分校開發(fā)的實時Linux系統(tǒng)[REDWeb][?Wang99],它將對實時調(diào)度的支持和Linux很好地實現(xiàn)在同一個操作系統(tǒng)內(nèi)核中。它同時支持三種類型的調(diào)度算法,即:Time-Driven、?Priority-Dirven、Share-Driven。

為了提高系統(tǒng)的調(diào)度粒度,RED-Linux從RT-Linux那兒借鑒了軟件模擬中斷管理器的機制,并且提高了時鐘中斷頻率。當有硬件中斷到來時,RED-Linux的中斷模擬程序僅僅是簡單地將到來的中斷放到一個隊列中進行排隊,并不執(zhí)行真正的中斷處理程序。

另外為了解決Linux進程在內(nèi)核態(tài)不能被搶占的問題,?RED-Linux在Linux內(nèi)核的很多函數(shù)中插入了搶占點原語,使得進程在內(nèi)核態(tài)時,也可以在一定程度上被搶占。通過這種方法提高了內(nèi)核的實時特性。

RED-Linux的設(shè)計目標就是提供一個可以支持各種調(diào)度算法的通用的調(diào)度框架,該系統(tǒng)給每個任務(wù)增加了如下幾項屬性,并將它們作為進程調(diào)度的依據(jù):

Priority:作業(yè)的優(yōu)先級;

Start-Time:作業(yè)的開始時間;

Finish-Time:作業(yè)的結(jié)束時間;

Budget:作業(yè)在運行期間所要使用的資源的多少;

通過調(diào)整這些屬性的取值及調(diào)度程序按照什么樣的優(yōu)先順序來使用這些屬性值,幾乎可以實現(xiàn)所有的調(diào)度算法。這樣的話,可以將三種不同的調(diào)度算法無縫、統(tǒng)一地結(jié)合到了一起�

總結(jié)

以上是生活随笔為你收集整理的linux 线程优先级算法,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。