美文网首页
cfs调度之优先级,虚拟时间,权重

cfs调度之优先级,虚拟时间,权重

作者: 4528283108ee | 来源:发表于2018-02-08 13:15 被阅读53次

cfs调度算法有两部分组成.
1 虚拟时间(Vruntime)
2 平均负载 (内核3.8开始加入)

虚拟时间主要是根据优先级调度算法的优先级确定进程可分配的时间片资源.而平均负载则考虑了进程的行为(主要着眼于进程过去对cpu的使用)

首先介绍Vruntime
1 静态优先级, 进程的nice值是由应用程序自己指定的,默认是0 , 内核会转化为静态优先级,nice越大静态优先级越低,范围是-20-19
2 权重越大则能获取的cpu资源越多,系统中维护一张nice值对应的权重的表,通过查表的方式计算进程的权重,权重只与nice值有关

公式:

                             delta_exec*nice_0_weight

vruntime= -------------------------------------
weight
vruntime表示虚拟运行时间, nice_0_weight表示nice值为0时候的权重,delta_exec表示实际运行时间.weight表示进程的权重

可见虚拟时钟只与权重有关,当实际运行时间相同时,权重越大则花费的虚拟时钟越少.
cfs调度器抛弃了以前固定时间片和固定调度周期的算法, 而是采用进程权重的比来重新量化和计算实际运行的时间. 另外引入虚拟时钟概念,每个进程的虚拟时间是实际运行时间相对于NICE值为0的权重比例值. 进程格子按照不同的速率比在物理时钟节拍内前进 . NICE值越小的进程优先级高权重大,齐虚拟时间跑的越慢,反之 NICE值越大,虚拟时间跑的越快.

相关文章

  • cfs调度之优先级,虚拟时间,权重

    cfs调度算法有两部分组成.1 虚拟时间(Vruntime)2 平均负载 (内核3.8开始加入) 虚拟时间主要是根...

  • [校招面试]CPU调度系列二

    完全公平调度CFS CFS(Completely Fair Scheduler)试图按照对 CPU 时间的 “最大...

  • Linux进程调度原理

    极简联盟 假设我的系统只有一种调度算法cfs 那么有个调度的队列 cfs_rq ...

  • Linux的公平调度(CFS)原理 - kummer话你知

    1、CFS的基本思路 在CFS算法引入之前,Linux使用过几种不同的调度算法,一开始的调度器是复杂度为O(n)的...

  • java多线程

    Java线程调度和优先级 在各种线程中,Java虚拟机必须实现一个有优先权的,基于优先级的调度程序。每一个线程都会...

  • 普通进程调度器CFS

    强调一下,目前内核普遍使用CFS作为普通进程的调度器。O(n)、O(1)调度器已经过时,时间片也已过时,不要参考这...

  • 常见调度算法

    先来先服务(FCFS)调度算法短作业优先(SJF)调度算法优先级调度算法高响应比优先调度算法时间片轮转调度算法多级...

  • CSS常见问题

    CSS优先级算法如何计算? 样式优先级规则: 优先级顺序为:!important>style>权重值权重规则:第一...

  • Linux 进度调度测试

    调度器的参数 参数简介: sched_min_granularity_ns:CFS 设定了进程占用 CPU 的最小...

  • day3-CSS核心属性

    一.选择器的优先级 优先级每种选择器都有一个权重值,权重值越大,优先级越高;权重值一样的时候谁后写,谁的优先级高标...

网友评论

      本文标题:cfs调度之优先级,虚拟时间,权重

      本文链接:https://www.haomeiwen.com/subject/pzhttftx.html