首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux内核- CPU子系统( CGROUPS)与CPU调度器有何不同?

Linux内核- CPU子系统( CGROUPS)与CPU调度器有何不同?
EN

Stack Overflow用户
提问于 2020-02-03 19:53:13
回答 1查看 643关注 0票数 0

Linux内核代码这里提供了CPU调度程序,它具有用于调度进程(包括停靠容器进程)的多个调度算法。

控制组是一个内核结构,它允许由一组进程限制对主机系统的物理资源的访问和使用。

控制组最初于2007年在Linux内核中实现。

这个版本1的实现被Linux内核4.5中的版本2实现所取代。版本2修正了与版本1实现相关的一些限制。

Linux内核中的六个CGROUP子系统中有两个是cpu子系统& cpuset子系统

cpu子系统通过调度程序控制对系统CPU的访问

cpuset子系统引脚进程属于CGROUPS的特定核心或内存节点。

CPU调度程序cpu子系统( CGROUPS)有何不同?与默认命名空间和多个命名空间有关的内容

EN

回答 1

Stack Overflow用户

发布于 2020-02-03 20:23:56

在不过分简单化的情况下,很难给出一个“简短的答案”。一个人可以写一本关于"CPU调度“的书,另一本写关于"Linux控制组”的书。

而不是“CPU调度程序与. Cgroups有何不同?”,更好的问题可能是“Linux与Linux进程有何不同?”

指南/ch01 如何组织控制组 Cgroups是按层次组织的,就像进程一样,子cgroup继承了它们的父级的一些属性。然而,这两种模式之间存在着差异。 Linux进程模型 Linux系统上的所有进程都是公共父进程的子进程: init进程,它在启动时由内核执行,并启动其他进程(这些进程可能启动自己的子进程)。因为所有进程都来自一个父进程,所以Linux进程模型是一个单一的层次结构或树。 此外,除init之外,每个Linux进程都继承其父进程的环境(例如路径变量)1和某些其他属性(如打开的文件描述符)。 Cgroup模型 Cgroup与流程类似,因为:

  • 它们是分等级的,而且
  • 子cgroup从其父cgroup继承某些属性。

根本的区别在于,cgroup的许多不同层次可以同时存在于一个系统上。如果Linux进程模型是单个进程树,那么cgroup模型是一个或多个独立的、未连接的任务树(即进程)。

cgroups的多个独立层次结构是必要的,因为每个层次结构都附加到一个或多个子系统。subsystem2表示单个资源,例如CPU时间或内存。

回到你最初的问题:

  • Linux CPU调度程序为进程分配时间。
  • CONFIG_CGROUP_SCHED组调度器扩展允许对任务进行分组,并在这些组之间公平地分配CPU时间。

有关更多信息,请看这里:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60046244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档