
进程调度
sunshineywz
这个作者很懒,什么都没留下…
展开
-
大碰撞!当Linux多线程遭遇Linux多进程
背景 本文并不是介绍Linux多进程多线程编程的科普文,如果希望系统学习Linux编程,可以看[《Unix环境高级编程》第3版] (https://book.douban.com/subject/1788421/) 本文是描述多进程多线程编程中遇到过的一个坑,并从内核角度分析其原理。这里说的多进程多线程并不是单一的多进程或多线程,而是多进程和多线程,往往会在写一个大型应用时才会用到多进程多线程的模...原创 2020-07-05 23:06:31 · 246 阅读 · 0 评论 -
【原创】(五)Linux进程调度-CFS调度器
1. 概述 Completely Fair Scheduler,完全公平调度器,用于Linux系统中普通进程的调度。 CFS采用了红黑树算法来管理所有的调度实体sched_entity, 算法效率为O(log(n))。 CFS跟踪调度实体sched_entity的虚拟运行时间vruntime, 平等对待运行队列中的调度实体sched_entity,将执行时间少的调度实体sched_entity排列...原创 2020-03-21 21:08:21 · 715 阅读 · 0 评论 -
【原创】(二)Linux进程调度器-CPU负载
1. 概述 cat /proc/cpuinfo:查看CPU信息; cat /proc/loadavg:查看cpu最近1/5/15分钟的平均负载: 计算CPU负载,可以让调度器更好的进行负载均衡处理,以便提高系统的运行效率。此外,内核中的其他子系统也可以参考这些CPU负载值来进行相应的调整,比如DVFS等。 目前内核中,有以下几种方式来跟踪CPU负载: 1.全局CPU平均负载; 2.运行队列CPU负...原创 2020-03-21 21:07:55 · 334 阅读 · 0 评论 -
【原创】(四)Linux进程调度-组调度及带宽控制
1. 概述 组调度(task_group)是使用Linux cgroup(control group)的cpu子系统来实现的,可以将进程进行分组,按组来分配CPU资源等。 比如,看一个实际的例子: A和B两个用户使用同一台机器,A用户16个进程,B用户2个进程 如果按照进程的个数来分配CPU资源,显然A用户会占据大量的CPU时间,这对于B用户是不公平的。 组调度就可以解决这个问题,分别将A、B用户...原创 2020-03-21 21:07:39 · 800 阅读 · 0 评论