虚拟运行时间的计算
关于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 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);}
半导体逻辑器件工艺流程简介 MOSFET及相关器件介绍
三亚将设立四个24小时RFID自助图书馆
解密OPPO屏下摄像头的幕后故事
流量开关选型
开关电源模组的设计重点
Linux虚拟运行时间的计算
荣誉荟萃・见证镭神智能的高光时刻
工控机该如何选择,有何选购技巧
我国开启卫星互联网建设元年,海能达提前布局
华为首款无线耳机FreeBuds正式发售,售价799元
使用气压传感器MS5611获取温度数据和气压数据
哈工大人工智能研究院揭牌_四大AI企业领军人物担任委员
未拆封初代iPhone拍出6.3万美元 历史最高拍卖价
如何实现自定义的应用层协议呢?
高速电路的定义
MAX14805, MAX14806 利用16通道、高压开关
绿色城市智慧管理:数字孪生地下综合管廊平台
制造企业的痛点应该怎么用APS自动排产进行解决?
单目视觉识别的无限市场潜力
在恶劣的电机驱动环境中使用鲁棒的数字隔离器