至今不敢写一篇关于cfs的文章

linux内核CFS进程调度策略 一、概述 首先简单介绍一下基本的设计思路, CFS思路很简单,就是根据各个进程的权重分配运行时间(权重怎么来的后面再说)。 进程的运行时间计算公式为: 分配给进程的运行时间 = 调度周期 * 进程权重 / 所有进程权重之和   (公式1) 调度周期很好理解,就是将所有处于TASK_RUNNING态进程都调度一遍的时间, 差不多相当于O(1)调度算法中运行队列和过期队列切换一次的时间 阅读详情

  linux 内核在 2.6.23 种引入了一种完全公平的进程调度方式,就是 cfs 调度算法,该算法比起原来的 O(1) 算法来说确实简便了不少,但是却高效了很多,合理了很多。

       我研究这个 cfs 算法已经快一年了,但是至今也不敢写一篇关于它的文章,因为它太神圣了,太美妙了,像我这样的文笔,我这样糟糕的表达方式能做的仅仅是亵 渎 cfs 算法。 cfs 没有用哪怕一种额外的补充算法,也没有列举很多额外的约定,只是提供了一条,仅仅一条简单的规则,引入了一个概念,虚拟时钟的概念, 就可以把 cfs 表述的如此美妙,简直令人叫绝, cfs 中的无极变速思想更是让人拍案,它彻底抛弃了时间片的概念,正是将调度决策引入一种更加灵活的方式, 实际上时间片是不合理的,无论何时保证公平才是合理的,有人会问,按照权值分配不同的时间片不也是很合理吗?实际上每时每刻都让每个进程感到公平你不觉得 更加合理吗?时间片分配中,在当前时间片没有完成之前,除了抢占是没有办法执行别的进程的,即使突然来了一位猛士,然而在 cfs 中,系统并不偏向在任何时 期的任何进程,即使该进程的时间片还没有用完。 cfs 保证的是每时每刻的公平, cfs 依据的是进程的执行时间,利用的是补偿原理, cfs 让进程先超前运 行,然后补偿别的进程,这样很合理。另外 cfs 不用任何启发算法,只是一个虚拟时钟就够了,因为当进程睡眠的时候,其虚拟时钟就不走了,这样当然落后于别 的进程的虚拟时钟,理应得到补偿。

      cfs 真是太猛了,我即便再不敢亵渎它,却还是写下了这篇拙文。

 

进程管理笔记三、完全公平调度算法CFS 进程管理笔记三、CFS调度算法 引言:CFS是英文Completely Fair Scheduler的缩写,即完全公平调度器,负责进程调度。在Linux Kernel 2.6.23之后采用,它负责将CPU资源,分配给正在执行的进程,目标在于最大化程式互动效能,最小化整体CPU的运用。使用红黑树来实现,算法效率为O(log(n))。 一、CFS调度算法原理   调度算法最核心的两点即为... 阅读详情

相关推荐

Linux进程调度CFS算法实现分析

网上讲CFS的文章很多,可能版本不一,理解不尽相同。我以问题追溯方式,跟踪源码写下我对CFS的理解,有的问题我也还没理解透,欢迎对内核有兴趣的朋友一起交流学习,源码版本是与LKD3配套的Linux2.6.34 背景知识: (1) Linux的调度器类主要实现两类进程调度算法:实时调度算法和完全公平调度算法(CFS),实时调度算法SCHED_FIFO和SCHED_RR

三哥的技术专栏 1347

Linux CFS调度算法核心解析

回家的路上,聊了下CFS调度器…我昨天不是写了一篇批判性的文章嘛: 【为什么Linux CFS调度器没有带来惊艳的碾压效果】 https://blog.youkuaiyun.com/dog250/article/details/95729830 确实如此啊,我又没说错啥。 CFS stands for “Completely Fair Scheduler,” and is the new "desktop"...

TCP/IP 5457

Linux 进程管理之CFS调度器

调度的发展历史 字段版本O(n) 调度器linux0.11 - 2.4O(1) 调度器linux2.6CFS调度器linux2.6至今O(n) 调度器是在内核2.4以及更早期版本采用的算法...

Peter的专栏 1013

CFS Scheduler(CFS调度器)

前面我们分享了O(n)和O(1)调度器的实现原理,同时也了解了各个调度器的缺陷和面临的问题。总的来说O(1)调度器的出现是为了解决O(n)调度器不能解决的问题,而O(1)调度器在Linux2.4内核的在服务器的变形是可行的,但是Linux2.4以后随着移动设备的逐渐普遍,面临的卡顿问题逐渐明晰,这才导致后来的CFS调度器的出现。 今天我们来学习CFS调度器,再分析代码之前,我们可以先看下内...

半月旋空 2341

面试复习题--RN面试

考察点:热更新方案的深度理解,选型能力,实战落地经验。答题思路主流热更新方案对比。

hqiangtai的博客 724

RocketMq面板访问异常 com.alibaba.fastjson.JSONException: not close json text, token : string

rocketmq JSONException: not close json text, token : string 问题解决

qq_21067307的博客 5573

Linux之调度管理(3)-CFS调度器 详解

普通进程:static_prio=prio=normal_prio;实时进程:prio=normal_prio=99-rt_priority;static_prio保持默认值不改变。

z20230508的博客 1545

afe模拟前端的重要性_高性能模拟前端信号链解决方案如何助力医疗超声系统发展...

1942年,奥地利TDussik使用A型超声成像系统穿透性探测颅脑,并于1949年获得头部的超声图像,此举昭示超声系统进入到医疗领域。直到如今,超声系统作为用于人体内部的无创可视化技术,被广泛用于医疗领域。最近一份报告称到2022年,中国医疗超声诊断仪器行业的市场规模预计将达到15.8亿美元,保持6%左右的年均增长率。高性能模拟信号链前端是超声设备的关键组成部分,作为高性能模拟技术主要的提供商AD...

weixin_28799111的博客 1088

LINUX CFS算法解析

linux cfs算法解析笔记。

Jerry的博客 1643

SAP生产订单成本‘还原’实战:从标准成本到实际费用,一步步拆解差异来源(附物料分类账提示)

本文深入解析SAP生产订单成本差异分析的全过程,从标准成本到实际费用的追踪方法,揭示差异根源的六维分析法。特别强调物料分类账(CKMLCP)在成本还原中的关键作用,帮助财务人员精准定位价格差异、用量差异等问题,提升制造业成本管理的效率和准确性。

weixin_28705087的博客 532

ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)

ε-差分隐私之拉普拉斯噪声机制 差分隐私的描述 1-范式的定义:使用matlab调用函数norm(x, 1) 更多范式见 范式 差分隐私的定义应该满足 拉普拉斯噪声的证明全过程如下: DP方向差分隐私证明是基本入门!!! -拉普拉斯噪声分布代码 Laplace分布的概率密度函数的形式是: 使用python - matplotlib来绘制概率分布图: import matplotlib.pyplot as plt import numpy as np def laplace_fun

毕业才是起点 1万+

百度CFS

本文介绍了百度智能云文件存储 CFS 的元数据系统的核心设计,对⻓期困扰文件系统元数据领域的 POSIX 兼容性和高扩展性(特别是写扩展性)难以兼顾的问题,进行了解答。这是一个大规模分布式文件系统能否扩展到千亿级别文件数,同时保持高性能稳定性的一个关键问题。分离式元数据架构是近年来文件系统元数据领域的发展趋势,业界有潜力存储千亿文件的系统均是基于这种架构实现的。这类架构采用类似 “存算分离” 的思想,将元数据服务分为两层,分别是负责存储数据的数据库层,和偏计算逻辑、负责实现文件系统语义的元数据代理层。

easonwx的博客 963

37.华为路由器:loopback(本地回环)接口的作用

本地环回接口(或地址),亦称回送地址(loopback address)。 此类接口是应用最为广泛的一种虚接口,几乎在每台路由器上都会使用。常见于如下用途: 1 作为一台路由器的管理地址 系统管理员完成网络规划之后,为了方便管理,会为每一台路由器创建一个loopback 接口,并在该接口上单独指定一个IP 地址作为管理地址 ,管理员会使用该地址对路由器远程登录(telnet ),该地址实际上起到了类似设备名称一类的功能。 但是通常每台路由器上存在众多接口和地址,为何不从当中随便挑选一个呢 ? 原因如下:由于

迷逝 3万+

CFS 调度器学习笔记

[转http://blog.youkuaiyun.com/peimichael/archive/2010/01/20/5218335.aspx]<br /><br />首先声明,本文参考了网上很多CFS的文章,包括:<br />《 使用完全公平调度程序(CFS)进行多任务处理》     --Avinesh Kumar<br />《Linux进程管理之CFS组调度分析》               --ericxiao<br /> Inside the Linux 2.6 Completely Fair S

melong100的专栏 8216

水文仿真软件:HEC-RAS (Hydrologic Engineering Center‘s River Analysis System)_(7).一维非稳态水力模型

自定义脚本是通过编程语言(如 Python)编写的一系列自动化任务,可以帮助用户更高效地处理数据和运行模型。编写脚本:使用 Python 或其他编程语言编写自定义脚本。集成脚本:将脚本集成到 HEC-RAS 中,实现自动化数据处理和模型运行。

kkchenjj的博客 929

Zephyr内核——内存管理——内存堆

Zephyr提供了一组允许线程动态分配内存。

wayne2018的博客-心情驿站 771

Linux CFS调度器简介

Linux CFS调度器简介

小立仔 2171

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

CFS线程调度机制分析

一、前言操作系统上运作着各种应用、服务来满足用户需求,这些应用、服务实现的功能,通常都会依托一个个具体的线程来完成。在2022年的今天,无论是手机用户还是平台厂商,都不会容忍一台手机的功能仅限于单一的通信功能。手机设备不比服务器,其多核架构体系上只存在8个cpu core,而执行线程的数量却轻而易举超过8个。每个cpu上该执行什么线程,是由linux线程调度器来进行决策的,关于这一部分,网上已经有...

内核工匠 3250

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【linux温故】CFS调度

Linux 的稳定内核版本在 2.6.24 之后,使用了新的调度程序 CFS,所有非实时可运行进程都以虚拟运行时间为键值用一棵红黑树进行维护,以完成更公平高效地调度所有任务。CFS 弃用 active/expired 数组和动态计算优先级,不再跟踪任务的睡眠时间和区别是否交互任务,而是在调度中采用基于时间计算键值的红黑树来选取下一个任务,根据所有任务占用 CPU 时间的状态来确定调度任务优先级。

helixiao的博客 892

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linux内核之CFS调度

CFS调度的基本思想 CFS调度器的目标是保证每一个进程的完全公平调度。 CFS调度器和以往的调度器不同之处在于没有时间片的概念,而是分配cpu使用时间的比例。理想状态下每个进程都能获得相同的时间片,并且同时运行在CPU上,但实际上一个CPU同一时刻运行的进程只能有一个。 也就是说,当一个进程占用CPU时,其他进程就必须等待。CFS为了实现公平,必须惩罚当前正在运行的进程,以使那些正在等待的进程下次被调度。CFS调度引入虚拟时间代替实际时间,每次在就绪队列中选择虚拟时间最小的task,实现公平. CFS调度

WellZZ1的博客 681

linux CFS Scheduler

学习Completely Fair Scheduler (CFS) 1.Linux’s Scheduler   From Linux’s first version in 1991 through the 2.4 kernel series, the Linux scheduler was simple in design. It was easy to understand, but sca...

weixin_41028621的博客 1583
上一篇: 关于应用程序的重启
下一篇: CFS调度算法的思想和细节
linuxcode_turing
博客等级 码龄17年 0粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值