curr ; u64 now = rq_clock_task( rq_of ( cfs_rq )) ; u64" />

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

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

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

3天內不再提示

Linux虛擬運行時間的計算

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

虛擬運行時間的計算

關于tick:

tick是周期性的時鐘中斷,時鐘中斷驅動調度器runing,其周期間隔根據硬件頻率的設定相關(T=1/f),如下:

圖片

T=1/250 = 4ms,也就說時鐘中斷以4ms為周期【tips:每發生一次時鐘中斷,jiffies的數值就加上1】,每一個進程的虛擬時間在時鐘中斷里面被維護,每次時鐘中斷都要更新當前進程的虛擬時間。更新調用的主要函數如下:

static void update_curr(struct cfs_rq *cfs_rq)
{
 struct sched_entity *curr = cfs_rq- >curr;
 u64 now = rq_clock_task(rq_of(cfs_rq));
 u64 delta_exec;

 if (unlikely(!curr))
  return;

 delta_exec = now - curr- >exec_start;
 if (unlikely((s64)delta_exec <= 0))
  return;

 curr- >exec_start = now;

 schedstat_set(curr- >statistics.exec_max,
        max(delta_exec, curr- >statistics.exec_max));

 curr- >sum_exec_runtime += delta_exec;
 schedstat_add(cfs_rq- >exec_clock, delta_exec);

 curr- >vruntime += calc_delta_fair(delta_exec, curr);
 update_min_vruntime(cfs_rq);

 if (entity_is_task(curr)) {
  struct task_struct *curtask = task_of(curr);

  trace_sched_stat_runtime(curtask, delta_exec, curr- >vruntime);
  cgroup_account_cputime(curtask, delta_exec);
  account_group_exec_runtime(curtask, delta_exec);
 }

 account_cfs_rq_runtime(cfs_rq, delta_exec);
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11232

    瀏覽量

    208961
  • 時鐘
    +關注

    關注

    10

    文章

    1721

    瀏覽量

    131378
收藏 人收藏

    評論

    相關推薦

    如何縮短Vivado的運行時間

    在Vivado Implementation階段,有時是有必要分析一下什么原因導致運行時間(runtime)過長,從而找到一些方法來縮短運行時間
    的頭像 發表于 05-29 14:37 ?1.4w次閱讀
    如何縮短Vivado的<b class='flag-5'>運行時間</b>

    如何檢查Linux服務器的運行時間

    Linux 中的 uptime 用于查看系統啟動后的運行時間。它是一個比較簡單的 Linux 命令,可以不帶參數直接運行
    發表于 11-25 15:25 ?1.5w次閱讀
    如何檢查<b class='flag-5'>Linux</b>服務器的<b class='flag-5'>運行時間</b>

    labview中計算程序的運行時間

    可能這個對大家來說不是什么大問題,也有很多人有很多方法來實現程序的運行時間計算,要么兩個計時器,要么用到事件結構。我這里用移位寄存器實現。 希望大家不要吐槽,如果大家有更好的,希望共享啊。
    發表于 05-23 21:52

    freertos的任務運行時間怎么設置

    對于相同優先級的任務采用時間片輪詢的方式運行,那比如說有兩個優先級都為5的任務,那這兩個任務的運行時間如何設置呢?在rt-thread中創建任務時就可以設置任務的運行時間,在freer
    發表于 07-19 08:03

    C語言教程之顯示程序運行時間

    C語言教程之顯示程序運行時間,很好的C語言資料,快來學習吧。
    發表于 04-25 16:09 ?0次下載

    電機運行時間進行排列 是分為兩個部分來完成這個程序的設計的

    前幾天有個學員咨詢一個程序設計的問題,程序的控制要求如下:需要控制5臺電機的運行,每臺電機運行時需要記錄運行時間,電機啟動運行時,根據記錄的運行時間
    的頭像 發表于 07-19 08:57 ?7123次閱讀
    電機<b class='flag-5'>運行時間</b>進行排列 是分為兩個部分來完成這個程序的設計的

    高效的雙向主動平衡器可延長電池運行時間

    高效的雙向主動平衡器可延長電池運行時間
    發表于 03-19 09:06 ?3次下載
    高效的雙向主動平衡器可延長電池<b class='flag-5'>運行時間</b>

    最大化延長即使具有老化電池的汽車電池組運行時間

    最大化延長即使具有老化電池的汽車電池組運行時間
    發表于 03-20 12:44 ?9次下載
    最大化延長即使具有老化電池的汽車電池組<b class='flag-5'>運行時間</b>

    如何高效測量ECU的運行時間

    ,最終可能會引起運行時間方面的問題。這在項目后期需要大量的時間和金錢來解決。如果不能掌握系統的運行狀態,則很難發現系統內缺陷的根源。 解決方案 將TA軟件工具套件與VX1000測量標定硬件相結合,可同步分析 ECU內部
    的頭像 發表于 10-28 11:05 ?2175次閱讀

    淺析STM32代碼運行時間的技巧

    前言 ????測試代碼的運行時間的兩種方法: 使用單片機內部定時器,在待測程序段的開始啟動定時器,在待測程序段的結尾關閉定時器。為了測量的準確性,要進行多次測量,并進行平均取值。 借助示波器的方法
    的頭像 發表于 11-09 09:52 ?3833次閱讀
    淺析STM32代碼<b class='flag-5'>運行時間</b>的技巧

    Linux CFS虛擬時間

    **CFS調度算法:**摒棄固定時間片,采用進程權重值的比重來量化計算實際運行時間,并引入虛擬時間和真實
    的頭像 發表于 07-31 11:11 ?664次閱讀
    <b class='flag-5'>Linux</b> CFS<b class='flag-5'>虛擬</b><b class='flag-5'>時間</b>

    ch32v307記錄程序運行時間

    ch32v307記錄程序運行時間 在程序開發中,很重要的一項任務就是對程序的運行時間進行評估。對于大型的程序系統來說,它們通常需要處理大量的數據或進行復雜的計算操作。因此,如果程序的運行時間
    的頭像 發表于 08-22 15:53 ?863次閱讀

    西門子SCL編程50臺電機運行時間累計方法

    當RUN信號為TRUE時,開始計時,為FALSE時停止計時,單次運行時間清零,長按RESET為5秒時,單次和總運行時間都清零。
    發表于 11-27 09:59 ?1768次閱讀
    西門子SCL編程50臺電機<b class='flag-5'>運行時間</b>累計方法

    jvm運行時內存區域劃分

    JVM是Java Virtual Machine(Java虛擬機)的縮寫,它是Java編程語言的運行環境。JVM的主要功能是將Java源代碼轉換為機器代碼,并且在運行時管理Java程序的內存。JVM
    的頭像 發表于 12-05 14:08 ?510次閱讀

    三菱plc累計運行時間怎么編程

    具有重要意義。本文將詳細介紹如何使用三菱PLC編程實現累計運行時間的統計功能。 一、概述 累計運行時間是指設備或系統在一定時間內的總運行時間。在工業生產中,對設備的累計
    的頭像 發表于 06-20 11:31 ?2149次閱讀