Советы пользователям

Усовершенствования в планировщике Линукс


Как уже всем, наверное, известно, ядро системы Линукс в настоящий момент будет иметь очень большую разновидность применений, от обычных наручных часов до супер-ЭВМ. В самых первых версиях планировщиков наблюдались некоторые проблемы сязанные с масштабируемостью. Иногда эти проблемы устранялись с помощью внесений изменений в ядро, предназначенное для целевых архитектур. Однако, в общем, система масштабируемости планировщиков, конечно же могла бы выглядеть и получше.

В планировщике нового типа значительным образом улучшена система масштабируемости и поддержки SMP (на английском языке Symmetric Multi Processing, что в переводе означает Симметричное Мультипроцессирование, то есть поддерживание многопроцессорной системы). Намного улучшено значение производительности работы планировщиков на многопроцессорной системе. Одной из целей, которые были обозначены разработчиками планировщиков нового вида, заключается в том, что процессоры должны быть полностью загружены работой на всех SMP-системах, естественно, если такая работа есть в наличии. Помимо этого, нужно обратить особое внимание на тот момент, что процессы иногда не могут планироваться на разные процессоры. Это может помочь обезопасить себя от переполнений кэш-памяти с запрошенными данными.

• Пакетные планирования задач

Это не является совсем новой особенностью, но считается рядом "заплат", которые смогли бы быть принятыми в ядро Линукса для поддерживания планирования пакетных процессов. В первой версии ядра имелось также некоторое поддерживание пакетных планирований. На данный момент выполняются приоритетные пакетные планирования. В ядре применяют приблизительно до 45 приоритетных уровней (правда, они все будут отображаться приблизительно на 5 различных уровнях). Пакетные задачи будут получать ресурсы процессора именно тогда, когда в системе не наблюдается очень часто интерактивные процессы или процессы, которые заняты в вычислительной работе ("числодробилки"), имеющие приоритет более высокого уровня. Пакетные задачи будут получать более высокие кванты времени, если сравнить с обычными задачами, что, конечно же, будет минимизировать число обращений к кэш-памяти для возможности подкачки данных, стараясь при этом повысить значение общей производительности выполнение пакетных процессов.

Линукс
• Повышено значение производительности задач интерактивного типа

Одним из главных улучшений в планировщике является возможность обнаружения и повышения значения производительности задач интерактивного типа. Действительно, тяжело очень было достичь этого в планировщике старых версий Линукса. В планировщике нового типа обнаружение процессов интерактивного типа отделяется от других типов задач при планировании, таких, к примеру, как задача управления квантом времени. Процессы интерактивного типа обнаруживают на основах статистики времени выполнения. Это значит, что процессы интерактивного типа будут иметь небольшое время отклика в момент наступления тяжелых нагрузок, а у "требовательных" до ресурсов процессора задач уже не будет возможности его монополизировать. Планировщик нового типа сможет определить активность интерактивных процессов и отдает им преимущество по сравнению с другими процессами. Даже в тот момент, когда происходит планирование задачи среди других процессов интерактивного типа при использовании циклического алгоритма. Это является очень важным для настольной системы, поскольку теперь пользователь уже не будет видеть увеличение времени отклика, в тот момент, когда он производит запуск задач, интенсивно использующих процессор, к примеру, переформатирование музыкального файла в формат ogg. В ближайшем будущем планируют объединение циклического алгоритма с кодами приоритетных прерываний, для того чтобы минимизировать величину времени отклика для задач интерактивного типа.

• Произведено улучшение масштабируемости и поддержки большего числа архитектур

Изменения, внесенные в новый планировщик, дают возможность легче переносить его на другие архитектуры, к примеру, NUMA (что в переводе с английского языка означает процесс неоднородного доступа к памяти) и SMT (что в переводе с английского языка означает процесс параллельной многопоточности).

Комментарии закрыты