Как хорошо работать?

sched_setscheduler говорит:

Все планирование является превентивным: если процесс с более высоким статическим приоритетом становится готовым к запуску, текущий процесс будет выгружен и возвращен в список ожидания для его статического уровня приоритета.

в то время как setpriority говорит

Это приводит к очень низким хорошим значениям (+19), чтобы по-настоящему обеспечить небольшой процессор для процесса всякий раз, когда в системе есть другая более высокая приоритетная нагрузка, и делает высокие хорошие значения (-20) доставляют большую часть процессора в приложения, которые этого требуют

Итак, как меняется хорошая ценность, влияющая на выполнение программ? Схоже ли это с RT-планированием (где программа с более высоким хорошим значением собирается прервать программу с более низким хорошим значением)?


Вся информация в Интернете заключается в том, как использовать nice и как изменить приоритет процесса. Никакая ссылка не объясняет, как работает процесс с другим приоритетом. Я даже не мог найти исходный код.

  • Ли Linux прекращает обработку, связанную с графическим интерфейсом, когда мы удаляем экран рабочего стола из подключения из шкафа (процессорный блок)?
  • Как проверить текущую политику планирования во встроенной Linux?
  • Есть ли удобный инструмент командной строки для управления заданиями Cron?
  • Как я могу запланировать запуск программы python из другой программы python?
  • Каков алгоритм планирования собственной библиотеки потоков POSIX?
  • Как настроить невидимую работу cron?
  • Предотвращение использования планировщиком определенных ядер на FreeBSD
  • Изолирующая причина увеличения использования ЦП на RHEL 6 против RHEL 5
  • One Solution collect form web for “Как хорошо работать?”

    Доля процессорного времени, получаемого конкретным процессом, определяется относительной разницей в тонкости между ним и другими управляемыми процессами.

    Полностью честный планировщик Linux (CFS) вычисляет вес, основанный на тонкости. Вес примерно эквивалентен 1024 / (1.25 ^ nice_value) . По мере того как хорошее значение уменьшается, вес увеличивается экспоненциально. Временной лимит, выделенный для процесса, пропорционален весу процесса, деленному на общий вес всех выполняемых процессов. Реализация CFS выполняется в kernel/sched/fair.c

    CFS имеет целевую задержку для продолжительности планирования. Меньшие целевые задержки обеспечивают лучшую интерактивность, но по мере уменьшения целевой задержки увеличивается накладные расходы на переключение, снижая тем самым общую пропускную способность.

    Учитывая, например, целевую задержку в 20 миллисекунд и два выполняемых процесса равной степени удовлетворенности, тогда оба процесса будут выполняться в течение 10 миллисекунд каждый, прежде чем будут упреждаться в пользу другого процесса. Если есть 10 процессов с одинаковой доброжелательностью, каждый из них работает по 2 миллисекунды каждый.

    Теперь рассмотрим два процесса: один с хорошностью 0 (по умолчанию), другой с хорошностью 5. Пропорциональная разница между соответствующими весами составляет примерно 1/3, что означает, что процесс с более высоким приоритетом получает временной интервал около 15 миллисекунд в то время как процесс с более низким приоритетом получает временной интервал в 5 миллисекунд.

    И, наконец, рассмотрим два процесса с величинами 5 и 10 соответственно. В то время как абсолютная симпатия в этом случае больше, относительные различия между значениями достоинства такие же, как в предыдущем примере, что дает одинаковое распределение времени.

    Interesting Posts

    Как найти мой пипс?

    Запуск службы по сетевому запросу (активация сокета)

    Почему eth0 запускается только вручную в новом Suse 12.3?

    Можно ли отредактировать vsftpd.conf, предоставляя FTP-доступ пользователю только к нескольким каталогам внутри сервера?

    На следующий день пользователя введена дата – дата +1 день

    Цвета терминалов Linux Mint не работают

    Ошибка получения строки между двумя шаблонами

    Ключ управления питанием для запуска сценариев при пробуждении

    Использовать ACL для согласования разрешений внутри одной папки

    Первый пинг после ifup не работает

    Что делает systemd-nspawn еще «непригодным для безопасных настроек контейнера»?

    Как проверить, доступен ли смонтированный том?

    Самый быстрый и безопасный способ увеличить пространство подкачки на Scientific Linux

    Не удалось настроить двойную загрузку Ubuntu / Windows 8

    Сценарий оболочки, выполняющий два сценария Perl на основе ввода

    Linux и Unix - лучшая ОС в мире.