前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux 内核】CFS 调度器 ② ( CFS 调度器 “ 权重 “ 概念 | CFS 调度器调度实例 | 计算进程 “ 实际运行时间 “ )

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

作者头像
韩曙亮
发布2023-03-30 13:58:41
1.7K0
发布2023-03-30 13:58:41
举报

文章目录

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


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

实际运行过程中 ,

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

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

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

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

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


2

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

A 进程的 权重 为

512

,

B 进程的 权重 为

1024

;

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

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

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

\rm A 进程获取的CPU 时间比例 = \cfrac{A 进程权重}{所有进程的权重之和}
\rm A 进程获取的CPU 时间比例 = \cfrac{512}{512 + 1024} = \cfrac{1}{3}

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

\rm B 进程获取的CPU 时间比例 = \cfrac{B 进程权重}{所有进程的权重之和}
\rm B 进程获取的CPU 时间比例 = \cfrac{1024}{512 + 1024} = \cfrac{2}{3}

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

\rm 进程获取的CPU 时间 = 调度区 \times \cfrac{进程权重}{所有进程的权重之和}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、CFS 调度器 " 权重 " 概念
  • 二、CFS 调度器调度实例 ( 计算进程 " 实际运行时间 " )
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档