虚拟运行时间的计算
关于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文章
11219浏览量
208879 -
时钟
+关注
关注
10文章
1720浏览量
131340
发布评论请先 登录
相关推荐
如何检查Linux服务器的运行时间
Linux 中的 uptime 用于查看系统启动后的运行时间。它是一个比较简单的 Linux 命令,可以不带参数直接运行。
发表于 11-25 15:25
•1.5w次阅读
labview中计算程序的运行时间
可能这个对大家来说不是什么大问题,也有很多人有很多方法来实现程序的运行时间的计算,要么两个计时器,要么用到事件结构。我这里用移位寄存器实现。 希望大家不要吐槽,如果大家有更好的,希望共享啊。
发表于 05-23 21:52
freertos的任务运行时间怎么设置
对于相同优先级的任务采用时间片轮询的方式运行,那比如说有两个优先级都为5的任务,那这两个任务的运行时间如何设置呢?在rt-thread中创建任务时就可以设置任务的运行时间,在freer
发表于 07-19 08:03
电机运行时间进行排列 是分为两个部分来完成这个程序的设计的
前几天有个学员咨询一个程序设计的问题,程序的控制要求如下:需要控制5台电机的运行,每台电机运行时需要记录运行时间,电机启动运行时,根据记录的运行时间
如何高效测量ECU的运行时间
,最终可能会引起运行时间方面的问题。这在项目后期需要大量的时间和金钱来解决。如果不能掌握系统的运行状态,则很难发现系统内缺陷的根源。 解决方案 将TA软件工具套件与VX1000测量标定硬件相结合,可同步分析 ECU内部
浅析STM32代码运行时间的技巧
前言 测试代码的运行时间的两种方法: 使用单片机内部定时器,在待测程序段的开始启动定时器,在待测程序段的结尾关闭定时器。为了测量的准确性,要进行多次测量,并进行平均取值。 借助示波器的方法
ch32v307记录程序运行时间
ch32v307记录程序运行时间 在程序开发中,很重要的一项任务就是对程序的运行时间进行评估。对于大型的程序系统来说,它们通常需要处理大量的数据或进行复杂的计算操作。因此,如果程序的运行时间
西门子SCL编程50台电机运行时间累计方法
当RUN信号为TRUE时,开始计时,为FALSE时停止计时,单次运行时间清零,长按RESET为5秒时,单次和总运行时间都清零。
发表于 11-27 09:59
•1751次阅读
jvm运行时内存区域划分
JVM是Java Virtual Machine(Java虚拟机)的缩写,它是Java编程语言的运行环境。JVM的主要功能是将Java源代码转换为机器代码,并且在运行时管理Java程序的内存。JVM
三菱plc累计运行时间怎么编程
具有重要意义。本文将详细介绍如何使用三菱PLC编程实现累计运行时间的统计功能。 一、概述 累计运行时间是指设备或系统在一定时间内的总运行时间。在工业生产中,对设备的累计
评论