精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux CFS虛擬時間

麥辣雞腿堡 ? 來源:技術簡說 ? 作者:董旭 ? 2023-07-31 11:11 ? 次閱讀

**CFS調度算法:**摒棄固定時間片,采用進程權重值的比重來量化計算實際運行時間,并引入虛擬時間和真實時間的概念,真實時間就是在物理時鐘下實際運行的時間,虛擬時間是實際運行時間與nice值為0對應的權值的比值。

**虛擬時間片引入:**假設進程不存在優(yōu)先級區(qū)分,那么只要保證每個進程的實際運行時間相同即可,能做到絕對公平。調度時,調度器只需要記錄每個進程的實際時間,每次調度時挑出【已經運行時間最短的進程】。

然而事實上每個進程會涉及不同的優(yōu)先級,此時不同的進程應該由于優(yōu)先級的原因導致【真實運行時間的所占權重】不同才行,那么如何評估進程運行時間的長短?如何選擇下一個進程進行調度?

由此引入虛擬運行時間【希望不同的進程根據(jù)優(yōu)先級在一個調度延遲【調度延遲就是保證每一個可運行進程都至少運行一次的時間間隔】內分配的物理時間通過一個公式計算得到一個相同的值,稱這個值為虛擬時間】,當選擇下一個進程執(zhí)行的時候,找出虛擬時間最小的進程即可。虛擬時間要保證優(yōu)先級高的進程的虛擬時間過得慢一些,優(yōu)先級低的進程的虛擬時間快一些。

引入虛擬運行時間,CFS中就緒隊列使用一棵以虛擬時間為鍵的紅黑樹將調度實體組織起來,利用紅黑樹的特性,虛擬時間最短的進程在紅黑樹的最左端,調度器每次選擇位于紅黑樹最左端的虛擬時間對應的調度實體參與調度。

如下所示,通過cat/proc/$pid/sched查看某個進程調度信息,第二行se.vruntime就是虛擬運行時間:

圖片

由上面的展示也可以看出來調度相關的這些信息是存儲在調度實體se中,【每個進程描述符中都有每種調度類對應的調度實體,調度實體存放與該調度類相關的調度信息,并參與調度,CFS調度器對應的調度實體為struct sched_entity se,例如實時調度器對應的調度實體為struct sched_rt_entity rt】,CFS調度器的調度實體如下:

struct sched_entity
{
    struct load_weight      load;           /* for load-balancing負荷權重,這個決定了進程在CPU上的運行時間和被調度次數(shù) */
    struct rb_node          run_node;
    unsigned int            on_rq;          /*  是否在就緒隊列上  */

    u64                     exec_start;         /*  上次啟動的時間*/

    u64                     sum_exec_runtime;
    u64                     vruntime;        /* 虛擬運行時間*/
    u64                     prev_sum_exec_runtime;
    /* rq on which this entity is (to be) queued: */
    struct cfs_rq           *cfs_rq;
    ...
};
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11230

    瀏覽量

    208937
  • CFS
    CFS
    +關注

    關注

    0

    文章

    7

    瀏覽量

    9047
收藏 人收藏

    評論

    相關推薦

    嵌入式工程師必會的 Linux 進程調度所有知識點

    vriture_runtime 最小的任務來調度。 為了能夠快速找到虛擬運行時間最小的進程,Linux 內核使用紅黑樹來保存可運行的進程。CFS跟蹤調度實體sched_entity的
    發(fā)表于 08-01 07:00

    基于RFID技術CFS智能倉庫系統(tǒng)的解決方案

    系統(tǒng)簡介集裝箱貨運站(簡稱CFS)是以裝箱、拆箱和集拼、分撥為主要業(yè)務的運輸服務機構,同時提供集裝箱公路運輸、箱務管理、報關報驗、洗箱修箱等其他集裝箱運輸?shù)南嚓P服務?;赗FID的CFS智能倉庫管理
    發(fā)表于 09-19 08:20

    基于Linux虛擬網卡的測試系統(tǒng)

    為了實現(xiàn)網絡通信算法能夠在單主機平臺獲得驗證分析,提出基于Linux虛擬網卡的測試系統(tǒng)設計方案。并完成了系統(tǒng)軟件設計.分析了Linux網絡驅動框架原理,完成Linux
    發(fā)表于 11-13 11:23 ?2次下載
    基于<b class='flag-5'>Linux</b><b class='flag-5'>虛擬</b>網卡的測試系統(tǒng)

    Linux容器和虛擬機之間的區(qū)別差異分析

    自從Linux上的容器變得流行以來,了解Linux容器和虛擬機之間的區(qū)別變得更加棘手。本文將向您提供詳細信息,以了解Linux容器和虛擬機之
    的頭像 發(fā)表于 12-27 13:52 ?9018次閱讀

    Linux負載均衡算法的瑕疵將修復

    Linux 內核開發(fā)者 Vincent Guittot 發(fā)現(xiàn)Linux 完全調度算法 CFS 存在瑕疵,修復之后將進一步提升調度性能。
    的頭像 發(fā)表于 03-14 09:23 ?1902次閱讀

    linux虛擬機的聯(lián)網方法

    虛擬機安裝linux系統(tǒng)無法上網的解決方法。
    發(fā)表于 05-31 09:27 ?1516次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>虛擬</b>機的聯(lián)網方法

    linux虛擬機怎么聯(lián)網

    虛擬機安裝linux系統(tǒng)無法上網的解決方法。
    發(fā)表于 06-03 09:29 ?2370次閱讀

    虛擬機:Linux如何測試 DBUS Daemon

    虛擬機:Linux如何測試 DBUS Daemon
    的頭像 發(fā)表于 06-22 16:35 ?4297次閱讀
    <b class='flag-5'>虛擬</b>機:<b class='flag-5'>Linux</b>如何測試 DBUS Daemon

    Linux虛擬網絡技術的資料講解

    Linux虛擬化技術中,網絡級別上最重要的三項技術是網絡名稱空間、線對和Veth橋接器或虛擬交換機技術。 今天,我們將指導您學習Linux網絡虛擬
    的頭像 發(fā)表于 06-27 09:35 ?3630次閱讀

    Linux虛擬內存究竟是什么?

    前不久組內又有一次我比較期待的分享:”Linux虛擬內存”。
    的頭像 發(fā)表于 06-21 16:41 ?1979次閱讀
    <b class='flag-5'>Linux</b>的<b class='flag-5'>虛擬</b>內存究竟是什么?

    Linux虛擬運行時間的計算

    虛擬運行時間的計算 關于tick: tick是周期性的時鐘中斷,時鐘中斷驅動調度器runing,其周期間隔根據(jù)硬件頻率的設定相關(T=1/f),如下: T=1/250 = 4ms,也就說時鐘中斷以
    的頭像 發(fā)表于 07-31 11:15 ?709次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>虛擬</b>運行<b class='flag-5'>時間</b>的計算

    linux虛擬機使用教程

    引言:Linux虛擬機是一種方便且常用的技術,它允許用戶在現(xiàn)有操作系統(tǒng)的基礎上創(chuàng)建和運行另一個獨立的操作系統(tǒng)。在本篇文章中,我們將提供一份詳盡的教程,幫助你了解如何安裝、配置和使用Linux
    的頭像 發(fā)表于 11-17 10:06 ?1236次閱讀

    虛擬linux怎么編寫程序

    虛擬Linux上編寫程序是一項非常常見且有用的任務。無論是開發(fā)一個簡單的腳本、一個Web應用程序還是一個復雜的軟件項目,Linux提供了強大的工具和環(huán)境來幫助你進行編程。本文將詳細介紹如何在
    的頭像 發(fā)表于 11-17 10:08 ?1693次閱讀

    linux虛擬機怎么運行代碼

    運行代碼是Linux虛擬機中的常見操作,本文將詳細介紹如何運行代碼。 首先,要運行代碼,你需要先安裝好Linux虛擬機,并確保能夠順利運行。接下來,你需要打開
    的頭像 發(fā)表于 11-17 10:12 ?4971次閱讀

    怎么安裝linux虛擬

    在計算機領域,虛擬機是一種軟件程序,它允許在主操作系統(tǒng)上運行多個虛擬操作系統(tǒng)。Linux虛擬機在開發(fā)、測試和學習等環(huán)境中得到廣泛應用。本文將詳細介紹如何安裝
    的頭像 發(fā)表于 11-23 10:50 ?1066次閱讀