Ядро Linux поддерживает внешнюю многозадачность (отключаемую/прерываемую многозадачность, вытесняемую ), а внутренняя многозадачность включена в серию 2.6, которая позже была расширена до так называемой добровольной многозадачности. Когда ядро переключается на внутреннюю многозадачность, выполнение может быть прервано практически в любой ситуации. Многозадачность в ядре может быть опущена во время компиляции для различных целей.
Ядро поддерживает несколько методов и алгоритмов управления планированием задач. CFS, добавленный в версию ядра 2.6.23, заменил переключатель O(1 ). В ядре реализована поддержка загружаемых планировщиков для различных нужд использования.
Ядро может работать в многозадачном режиме с одним процессором и параллельно с многопроцессорным режимом. Помимо внешних потоков NPTL , ядро поддерживает внутренние потоки
Внутренняя многозадачность ядра распознает, например. использование спин -блокировки в многозадачности в ядре. В ядре используется множество структур данных, специфичных для каждого процессора , которые улучшают, среди прочего, эффективность использования кэша , но при их использовании внутренняя многозадачность может быть временно отключена.
Внутреннюю многозадачность можно настроить для различных целей. Real — Time Linux , предназначенный для использования в режиме реального времени, добавляет собственные опции многозадачности в ядре. Ротация SCHED_DEADLINE предназначена для использования в режиме реального времени в качестве альтернативы предыдущим политикам SCHED_FIFO и SCHED_RR.
Опция ядра NO_HZ уменьшает количество возбуждений, необходимых для синхронизации, улучшая энергопотребление и производительность в определенных ситуациях.
Для смены разработана обработка потребляемой мощности (энергопотребления) и тепловых ограничений.