Наследование приоритета

редактировать

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

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

Содержание
  • 1 Пример
  • 2 См. Также
  • 3 Ссылки
  • 4 Внешние ссылки
Пример

Рассмотрим три задания:

Имя заданияПриоритет
HВысокий
MСредний
LНизкий

Предположим, что и H, и L требуют некоторого общего ресурса. Если L получает этот совместно используемый ресурс (входя в критическую секцию), а H впоследствии требует этого, H будет блокироваться, пока L не освободит его (покинет свою критическую секцию). Без наследования приоритета процесс M может вытеснить процесс L во время критического участка и отложить его завершение, в результате чего процесс M с более низким приоритетом будет косвенно вытеснять процесс H с высоким приоритетом. Это ошибка инверсии приоритета.

При наследовании приоритета L будет выполнять свою критическую секцию с высоким приоритетом H всякий раз, когда H блокируется на совместно используемом ресурсе. В результате M не сможет вытеснить L и будет заблокирован. То есть задание M с более высоким приоритетом должно ждать выполнения критического участка задания L с более низким приоритетом, поскольку L унаследовал приоритет H. Когда L выходит из критического раздела, он восстанавливает свой первоначальный (низкий) приоритет и пробуждает H (который был заблокирован L). H с высоким приоритетом вытесняет L и работает до завершения. Это позволяет M и L возобновить работу последовательно и завершить работу без инверсии приоритета.

См. Также
Ссылки
Внешние ссылки

.

Последняя правка сделана 2021-06-02 06:53:02
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте