Как приоритет процесса влияет на процесс

Предполагая, что мы прочитали следующий вопрос: Измените правильность (приоритет) запущенного процесса, и мы знаем о разрешениях root, не-root:

Что на самом деле происходит, когда запущен процесс (через renice) или новый процесс (через nice) меняет приоритет на положительное / отрицательное значение, которое было ранее.

  • Значит ли это, что ему выделено больше памяти?
  • Больше мощности процессора идет на этот конкретный процесс?
  • Сокращает ли это время для ресурсов для этого процесса?

Что происходит при изменении приоритета процесса?

1 ответ

Решение

В ПК под управлением последних ОС процессы, кажется, работают одновременно, но на самом деле работают один за другим. Процессы могут быть в нескольких состояниях, здесь все упрощено:

  • работает (в настоящее время требует процессорное время)
  • готов (готов требовать процессор для некоторой работы)
  • wait (ожидание других процессов через межпроцессное взаимодействие или ввод-вывод, например, диск или сеть)
  • спать ("Мне не нужно ваше время сейчас")

Приоритет, который имеет процесс, указывает планировщику выбрать процесс с наивысшим приоритетом с состоянием готовности, чтобы позволить использовать процессор. Таким образом, в случае, когда несколько процессов находятся в состоянии готовности, большую часть времени получит процесс с наивысшим приоритетом. А поскольку Linux является вытесняющим ядром, он может приостановить процессы из запущенного состояния и позволить другим процессам выполнять свою работу. Время получения процессов делится на временные интервалы, и алгоритм для фактического планирования также может быть выбран.

Изменение nice Насколько мне известно, уровень ничего не меняет для менеджера памяти, но да, он влияет на блокировку ресурсов таким образом, что процессы с более высоким приоритетом должны завершаться раньше.

Я предлагаю вам прочитать больше на эту тему: Википедия: Упреждающая многозадачность и О'Рейли - Понимание ядра Linux (2000)

И, кстати, обратите внимание, что более низкий nice уровень означает более высокий приоритет в Linux.

Другие вопросы по тегам