• <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • CFS调度器(6)-总结

    作者:smcdef 发布于:2019-1-1 12:37 分类:进程管理

    CFS调度器-总结

    经过前面一系列的文章描述,我们已经对CFS调度器有了一定的认识。那么本篇文章就作为一篇总结和思考。我们就回忆一下CFS调度器的那些事。我们就以问题的形式重新回顾一遍CFS调度器设计的原理。现在开始,我们问题来了。


    阅读全文>>

    标签: CFS

    评论(2) 浏览(3333)

    CFS调度器(5)-带宽控制

    作者:smcdef 发布于:2018-12-22 15:07 分类:进程管理

    前言

    什么是带宽控制?#32771;?#32780;言之就是控制一个用户组在给定周期时间内可以消耗CPU的时间,如果在给定的周期内消耗CPU时间超额,就限制该用户组内任务调度,直到下一个周期。限制某个进程的最大CPU使用率是否真的有必要呢?如果一个系?#25345;?#20165;存在一个进程,限制该进程使用CPU使用率最大50%,当进程使用率达到50%的时候,就限制该进程运行,CPU进入idle状态。看起来好像没有任?#25105;?#20041;。但是,有时候,这正是系统管理员可能想要做的事情。如果这些进程属于仅支付了一定CPU时间的客户或者需要提供严格资源的情况,则限制进程(或进程组)可能消耗的CPU时间的最大份额是很有必要的。毕竟付多少钱享受多少服务。本文章仅讨论SCHED_NORMAL进程的CPU带宽控制(CPU bandwidth control)。

    注:代码分析基于Linux 4.18.0。

    阅读全文>>

    标签: CFS bandwidth

    评论(8) 浏览(4037)

    CFS调度器(4)-PELT(per entity load tracking)

    作者:smcdef 发布于:2018-12-2 15:40 分类:进程管理

    为什么需要PELT?

    为了让调度器更加的聪明,我们总是希望系统满足最大吞吐?#23458;?#26102;又最大限度的降低功耗。虽然可能有些矛盾,但是现实总是这样。PELT算法是Linux 3.8合入的,那么在此之前,我们存在什么问题才引入PELT算法呢?在Linux 3.8之前,CFS以每个运行队列(runqueue,简称rq)为基础跟踪负载。但是这种方法,我们无法确定当前负载的来源。同时,即使工作负载相对稳定的情况下,在rq级别跟踪负载,其值也会产生很大变化。为了解决以?#31995;?#38382;题,PELT算法会跟踪每个调度实体(per-scheduling entity)的负载情况。

    注:代码分析基于Linux 4.18.0。


    阅读全文>>

    标签: PELT

    评论(7) 浏览(4636)

    CFS调度器(3)-组调度

    作者:smcdef 发布于:2018-11-10 20:43 分类:进程管理

    前言

    现在的计算机基本都支持多用户登陆。如果一台计算机被两个用户A和B使用。假设用户A运行9个进程,用户B只运行1个进程。按照之前文章对CFS调度器的讲解,我们认为用户A获得90% CPU时间,用户B只获得10% CPU时间。随着用户A不停的增加运行进程,用户B可使用的CPU时间越来越少。这显然是不公平的。因此,我们引入组调度(Group Scheduling )的概念。我们以用户组作为调度的单位,这样用户A和用户B各获得50% CPU时间。用户A中的每个进程分别获得5.5%(50%/9)CPU时间。而用户B的进程获取50% CPU时间。这也符合我们的预期。本篇文章讲解CFS组调度实现原理。

    注:代码分析基于Linux 4.18.0。使能组调度需要配置CONFIG_CGROUPS和CONFIG_FAIR_GROUP_SCHED。

    阅读全文>>

    评论(11) 浏览(4295)

    CFS调度器(2)-源码解析

    作者:smcdef 发布于:2018-10-21 20:55 分类:进程管理

    前言

    经通过上一篇文章《CFS调度器-基本原理》,我们可以了解到CFS调度器基本工作原理。本篇文章主要集中在Linux CFS调度器源码解析。

    注:文章代码分析基于Linux-4.18.0。

    阅读全文>>

    标签: CFS

    评论(18) 浏览(5077)

    CFS调度器(1)-基本原理

    作者:smcdef 发布于:2018-10-7 17:36 分类:进程管理

    前言

    首先需要思考的问题是:什么是调度器(scheduler)?调度器的作用是什么?调度器是一个操作系统的核心部分。可以比作是CPU时间的管理员。调度器主要负责选择某些就绪的进程来执行。不同的调度器根据不同的方法挑选出最适合运行的进程。目前Linux支持的调度器就有RT scheduler、Deadline scheduler、CFS scheduler及Idle scheduler?#21462;?#25105;想用一系列文章呈现Linux 调度器的设计原理。

    注:文章代码分析基于Linux-4.18.0。

    阅读全文>>

    标签: CFS

    评论(18) 浏览(7629)

    per-entity load tracking

    作者:linuxer 发布于:2018-8-18 10:27 分类:进程管理

    本文分三个部分描述了3.8内核引入的PELT(per-entity load tracking)机制。第一章主要描述了PELT比per-runqueue load tracking的?#20040;?#22312;哪里,这也是引入PELT的原因。第二章描述了具体PELT的算法,有兴趣的同学可以自行根据代码进行分析。第三章主要给出几个PELT的应用场景,在这些场景中,其他的内核子系统可以通过PELT进行更精准?#30446;?#21046;。

    本文?#23884;詇ttps://lwn.net/Articles/531853/的翻译,有兴趣的同学可以参考原文。

    阅读全文>>

    标签: PELT per-entity load tracking

    评论(1) 浏览(4116)

    Deadline调度器之(二)?#21512;?#33410;和使用方法

    作者:linuxer 发布于:2018-2-22 18:23 分类:进程管理

    Linux内核的DL调度器是一个全局EDF调度器,它主要针对有deadline限制的sporadic任务。注意:这些术语已经在本系列文章的第一部分中说明了,这里不再赘述。在这本文中,我们将一起来看看Linux DL调度器的细节以及如?#38382;?#29992;它。另外,本文对应的英文原文是https://lwn.net/Articles/743946/,?#34892;籰wn和Daniel Bristot de Oliveira的分享。

    阅读全文>>

    标签: scheduler Deadline

    评论(1) 浏览(6881)

    deadline调度器之(一):原理

    作者:linuxer 发布于:2018-1-31 19:20 分类:进程管理

        关于deadline调度器的文档有两篇,本篇简单介绍了实时调度及其背后的一些理论。另外一篇将专门讨论Linux系?#25345;?#30340;Deadline调度器。另外,本文主要?#30446;?#26550;和思想来自Deadline scheduling part 1 — overview and theory,但经过作者的翻译、整理和演绎。

    阅读全文>>

    标签: deadline调度器

    评论(0) 浏览(8052)

    O(n)、O(1)和CFS调度器

    作者:linuxer 发布于:2018-1-8 19:19 分类:进程管理

    随着内核版本的演进,其源代码的膨胀速度也在递增,这让Linux的学习曲线变得越来越陡峭了。这对初识内核的同学而言当然不是什么好事情,满腔热情很容易被当?#26041;?#28781;。我有一个循序渐进的方法,那就是先不要看最新的内核,首先找到一个古老版本的内核(一般都会比较简单),将其吃透,然后一点点的迭代,理解每个版本变更背后的缘由和目的,最?#32960;?#36827;到最新内核版本。

    本文就是从2.4时代的任务调度器开始,详细描述其实现并慢慢向前递进。当然,为了更好的理解Linux调度器设计和实现,我们在第二章给出了一些通用的概念。之后,我们会在第四章讲述O(1)调度器如何改进并提升调度器?#38405;堋?#30495;正有划时代意义的是CFS调度器,在2.6.23版本的内核中并入主线。它的设计思想是那么的眩目,即便是目前最新的内核中,完全公平的设计思想仍然没有太大变化,这些我们会在第六章描述。第五章是关于公平调度思想的引入,通过这一章可以了解Con Kolivas的RSDL调度器,它是开启公平调度的?#30830;媯?#36890;过这一章的铺垫,我们可以更顺畅的理解CFS。

    阅读全文>>

    标签: O(n) O(1) CFS scheduler

    评论(10) 浏览(6967)

    Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog
    连码三全中是什么
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • 江西快三今日预测号码 深圳风采市政 体育彩票江苏7位数 双色球5个红球多少钱 内蒙古 有哪些3d手机 北京11选5推荐号 篮球混合过关6窜 广西十一选五分析 内蒙古快三今天推荐 正版四不像一肖中特刘佰温 河北十一选五遗漏一定牛 任选9场有多少奖金 足球比分网即时比分 霹雳马彩铅在哪买靠谱