虛擬運行時間的計算
關(guān)于tick:
tick是周期性的時鐘中斷,時鐘中斷驅(qū)動調(diào)度器runing,其周期間隔根據(jù)硬件頻率的設(shè)定相關(guān)(T=1/f),如下:
T=1/250 = 4ms,也就說時鐘中斷以4ms為周期【tips:每發(fā)生一次時鐘中斷,jiffies的數(shù)值就加上1】,每一個進程的虛擬時間在時鐘中斷里面被維護,每次時鐘中斷都要更新當(dāng)前進程的虛擬時間。更新調(diào)用的主要函數(shù)如下:
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);
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
Linux
+關(guān)注
關(guān)注
87文章
11469瀏覽量
212893 -
時鐘
+關(guān)注
關(guān)注
11文章
1886瀏覽量
132887
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
如何縮短Vivado的運行時間
在Vivado Implementation階段,有時是有必要分析一下什么原因?qū)е?b class='flag-5'>運行時間(runtime)過長,從而找到一些方法來縮短運行時間。

如何檢查Linux服務(wù)器的運行時間
Linux 中的 uptime 用于查看系統(tǒng)啟動后的運行時間。它是一個比較簡單的 Linux 命令,可以不帶參數(shù)直接運行。
發(fā)表于 11-25 15:25
?1.5w次閱讀

labview中計算程序的運行時間
可能這個對大家來說不是什么大問題,也有很多人有很多方法來實現(xiàn)程序的運行時間的計算,要么兩個計時器,要么用到事件結(jié)構(gòu)。我這里用移位寄存器實現(xiàn)。 希望大家不要吐槽,如果大家有更好的,希望共享啊。
發(fā)表于 05-23 21:52
如何用SysTick實現(xiàn)測量程序運行時間
在實際的項目開發(fā)過程中,常常遇到需要得到一段代碼的運行時間,通常的方法是用示波器來測量,這篇博文將用 SysTick 來實現(xiàn) 精確測量 程序運行 的時間。 STM32F4 的內(nèi)核定時器SysTick是一個24位的定時器,需要注

電機運行時間進行排列 是分為兩個部分來完成這個程序的設(shè)計的
前幾天有個學(xué)員咨詢一個程序設(shè)計的問題,程序的控制要求如下:需要控制5臺電機的運行,每臺電機運行時需要記錄運行時間,電機啟動運行時,根據(jù)記錄的運行時間

如何高效測量ECU的運行時間
,最終可能會引起運行時間方面的問題。這在項目后期需要大量的時間和金錢來解決。如果不能掌握系統(tǒng)的運行狀態(tài),則很難發(fā)現(xiàn)系統(tǒng)內(nèi)缺陷的根源。 解決方案 將TA軟件工具套件與VX1000測量標(biāo)定硬件相結(jié)合,可同步分析 ECU內(nèi)部
淺析STM32代碼運行時間的技巧
前言 ????測試代碼的運行時間的兩種方法: 使用單片機內(nèi)部定時器,在待測程序段的開始啟動定時器,在待測程序段的結(jié)尾關(guān)閉定時器。為了測量的準(zhǔn)確性,要進行多次測量,并進行平均取值。 借助示波器的方法

ch32v307記錄程序運行時間
ch32v307記錄程序運行時間 在程序開發(fā)中,很重要的一項任務(wù)就是對程序的運行時間進行評估。對于大型的程序系統(tǒng)來說,它們通常需要處理大量的數(shù)據(jù)或進行復(fù)雜的計算操作。因此,如果程序的運行時間
西門子SCL編程50臺電機運行時間累計方法
當(dāng)RUN信號為TRUE時,開始計時,為FALSE時停止計時,單次運行時間清零,長按RESET為5秒時,單次和總運行時間都清零。
發(fā)表于 11-27 09:59
?2544次閱讀

jvm運行時內(nèi)存區(qū)域劃分
JVM是Java Virtual Machine(Java虛擬機)的縮寫,它是Java編程語言的運行環(huán)境。JVM的主要功能是將Java源代碼轉(zhuǎn)換為機器代碼,并且在運行時管理Java程序的內(nèi)存。JVM
三菱plc累計運行時間怎么編程
具有重要意義。本文將詳細介紹如何使用三菱PLC編程實現(xiàn)累計運行時間的統(tǒng)計功能。 一、概述 累計運行時間是指設(shè)備或系統(tǒng)在一定時間內(nèi)的總運行時間。在工業(yè)生產(chǎn)中,對設(shè)備的累計
評論