Как в Linux распределяется процессорное время между процессами?

Linux планирует готовые к выполнению потоки по классу, приоритету и доступным CPU. Обычные задачи делят процессор справедливо с учётом весов, а real-time и deadline имеют другие правила.

Короткий ответ

Что ответить на собеседовании

Linux планирует готовые к выполнению потоки по классу, приоритету и доступным CPU. Обычные задачи делят процессор справедливо с учётом весов, а real-time и deadline имеют другие правила.

Подробный разбор

Ответ с пояснениями

Linux планирует готовые к выполнению потоки по классу, приоритету и доступным CPU. Обычные задачи делят процессор справедливо с учётом весов, а real-time и deadline имеют другие правила.

На решение влияют nice, cgroups, affinity и число runnable-задач. Ожидающий I/O поток не расходует процессор как непрерывно вычисляющий.

В современных ядрах fair-класс использует развитие EEVDF вместо прежнего CFS: учитываются виртуальное время, задолженность и deadline выбора. Конкретное поведение зависит от версии ядра и настроек. Равное число процессов не означает равную долю CPU для каждого приложения с разным числом потоков.

Источник: docs.kernel.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее