您当前的位置: 首页 >  linux

韩曙亮

暂无认证

  • 0浏览

    0关注

    1068博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Linux 内核】CFS 调度器 ② ( CFS 调度器 “ 权重 “ 概念 | CFS 调度器调度实例 | 计算进程 “ 实际运行时间 “ )

韩曙亮 发布时间:2022-03-30 11:36:59 ,浏览量:0

文章目录
  • 一、CFS 调度器 " 权重 " 概念
  • 二、CFS 调度器调度实例 ( 计算进程 " 实际运行时间 " )

一、CFS 调度器 " 权重 " 概念

CFS 调度器 ( Completely Fair Scheduler ) " 完全公平调度器 " ,

实际运行过程中 ,

会涉及到 具有 不同 " 进程优先级 " 的 进程 之间的调度 , 有些进程 优先级高 , 有些进程 优先级低 ,

为了避免 优先级低 的进程 始终无法得到 CPU 时间 执行 , 向每个进程提供 公平 调度 ,

CFS 调度器 引入了 " 权重 " 概念 ,

CFS 使用 " 权重 " 值 , 替代 进程的 优先级 , 不同 " 进程优先级 " 的进程 会按照 权重比例 , 分配 CPU 的执行时间 ;

二、CFS 调度器调度实例 ( 计算进程 " 实际运行时间 " )

有 2 2 2 个进程 A 和 B , 在 CPU 上执行 ;

A 进程的 权重 为 512 512 512 ,

B 进程的 权重 为 1024 1024 1024 ;

在 CPU 上执行的进程 可获取到的 CPU 时间比例 计算公式如下 :

A 进 程 获 取 的 C P U 时 间 比 例 = A 进 程 权 重 所 有 进 程 的 权 重 之 和 \rm A 进程获取的CPU 时间比例 = \cfrac{A 进程权重}{所有进程的权重之和} A进程获取的CPU时间比例=所有进程的权重之和A进程权重​

A 进程可获取的 CPU 时间比例为 :

A 进 程 获 取 的 C P U 时 间 比 例 = A 进 程 权 重 所 有 进 程 的 权 重 之 和 \rm A 进程获取的CPU 时间比例 = \cfrac{A 进程权重}{所有进程的权重之和} A进程获取的CPU时间比例=所有进程的权重之和A进程权重​

A 进 程 获 取 的 C P U 时 间 比 例 = 512 512 + 1024 = 1 3 \rm A 进程获取的CPU 时间比例 = \cfrac{512}{512 + 1024} = \cfrac{1}{3} A进程获取的CPU时间比例=512+1024512​=31​

B 进程可获取的 CPU 时间比例为 :

B 进 程 获 取 的 C P U 时 间 比 例 = B 进 程 权 重 所 有 进 程 的 权 重 之 和 \rm B 进程获取的CPU 时间比例 = \cfrac{B 进程权重}{所有进程的权重之和} B进程获取的CPU时间比例=所有进程的权重之和B进程权重​

B 进 程 获 取 的 C P U 时 间 比 例 = 1024 512 + 1024 = 2 3 \rm B 进程获取的CPU 时间比例 = \cfrac{1024}{512 + 1024} = \cfrac{2}{3} B进程获取的CPU时间比例=512+10241024​=32​

CPU 的总时间是 CPU 的调度区 大小 , 则 进程 在 CPU 上执行的进程 可获取到的 CPU 时间 计算公式如下 :

进 程 获 取 的 C P U 时 间 = 调 度 区 × 进 程 权 重 所 有 进 程 的 权 重 之 和 \rm 进程获取的CPU 时间 = 调度区 \times \cfrac{进程权重}{所有进程的权重之和} 进程获取的CPU时间=调度区×所有进程的权重之和进程权重​

关注
打赏
1663594092
查看更多评论
立即登录/注册

微信扫码登录

0.0476s