Трудно дать «короткий ответ» без особого упрощения. Можно было бы написать книгу о «планировании ЦП», а другую - «Linux Контрольные группы».
Вместо «Чем отличается [планировщик ЦП от… Cgroups?», лучше задать вопрос: «Чем Linux Cgroups отличаются от Linux процессов?»
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/ch01
Как контрольные группы Организованные
Группы организованы иерархически, подобно процессам, и дочерние группы наследуют некоторые атрибуты своих родителей. Однако между этими двумя моделями есть различия.
Модель процессов Linux
Все процессы в системе Linux являются дочерними процессами общего родителя: процесс init, который выполняется ядром во время загрузки и запускает другие процессы (которые, в свою очередь, могут запускать собственные дочерние процессы). Поскольку все процессы происходят от одного родителя, модель процесса Linux представляет собой единую иерархию или дерево.
Кроме того, каждый Linux процесс, кроме init, наследует среду (например, переменную PATH) [1] и некоторые другие атрибуты (например, дескрипторы открытых файлов) своего родительского процесса.
Модель группы
Группы похожи на процессы в том, что:
- они являются иерархическими, а
- дочерние группы наследуют определенные атрибуты от своих родительская группа.
Принципиальное отличие состоит в том, что в системе может одновременно существовать множество различных иерархий групп. Если модель процесса Linux представляет собой одно дерево процессов, то модель cgroup представляет собой одно или несколько отдельных, несвязанных деревьев задач (т. Е. Процессов).
Необходимо несколько отдельных иерархий групп, поскольку каждая иерархия привязана к одной или нескольким подсистемам. Подсистема [2] представляет отдельный ресурс, такой как время процессора или память.