Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 / А2_Наволоцкий_74.docx
Скачиваний:
0
Добавлен:
09.11.2025
Размер:
42.78 Кб
Скачать

7. Протокол наследования приоритетов и протокол граничных приоритетов:

7.1. Протокол наследования приоритетов (Priority Inheritance Protocol, pip):

Основная идея:

Протокол наследования приоритетов (PIP) — это механизм, который предотвращает инверсию приоритетов за счёт временного повышения приоритета задачи, захватившей ресурс, до уровня задачи с наивысшим приоритетом, ожидающей этот ресурс. Это позволяет задаче быстрее завершить работу с ресурсом и освободить его для высокоприоритетной задачи.

Как это работает:

  • Если задача с низким приоритетом (например, задача C) захватывает ресурс (например, мьютекс), а задача с высоким приоритетом (задача A) пытается получить доступ к этому ресурсу, задача C временно наследует приоритет задачи A.

  • Это временное повышение приоритета позволяет задаче C быстрее завершить выполнение критической секции и освободить ресурс.

  • После освобождения ресурса приоритет задачи C возвращается к исходному значению.

Пример:

  • Задача C (низкий приоритет) захватывает мьютекс.

  • Задача A (высокий приоритет) пытается захватить тот же мьютекс и блокируется.

  • Приоритет задачи C временно повышается до уровня задачи A.

  • Задача C завершает работу с ресурсом и освобождает мьютекс.

  • Приоритет задачи C возвращается к исходному значению, и задача A может захватить ресурс.

Преимущества:

  • Устраняет инверсию приоритетов, гарантируя, что высокоприоритетные задачи не будут заблокированы на длительное время.

  • Прост в реализации и не требует значительных накладных расходов.

Недостатки:

  • Не предотвращает все возможные сценарии блокировок (например, цепочки блокировок, где несколько задач блокируют друг друга).

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

7.2. Протокол граничных приоритетов (Priority Ceiling Protocol, pcp):

Основная идея:

Протокол граничных приоритетов (PCP) — это более строгий механизм, который предотвращает инверсию приоритетов и взаимоблокировки (deadlocks). Каждому ресурсу (например, мьютексу) назначается "потолок приоритета" — максимальный приоритет задачи, которая может использовать этот ресурс. Когда задача захватывает ресурс, её приоритет временно повышается до уровня потолка приоритета.

Как это работает:

  • Каждому ресурсу назначается потолок приоритета, который равен максимальному приоритету задачи, способной использовать этот ресурс.

  • Когда задача захватывает ресурс, её приоритет временно повышается до уровня потолка приоритета этого ресурса.

  • Это предотвращает выполнение задач с более низким приоритетом, которые могут попытаться захватить другие ресурсы и вызвать инверсию приоритетов.

  • После освобождения ресурса приоритет задачи возвращается к исходному значению.

Пример:

  • Ресурс R1 имеет потолок приоритета, равный приоритету задачи A (высокий приоритет).

  • Задача C (низкий приоритет) захватывает ресурс R1, и её приоритет временно повышается до уровня задачи A.

  • Задача B (средний приоритет) не может выполняться, пока задача C использует ресурс R1, так как её приоритет ниже потолка приоритета R1.

  • После освобождения ресурса R1 приоритет задачи C возвращается к исходному значению.

Преимущества:

  • Полностью предотвращает инверсию приоритетов и взаимоблокировки.

  • Обеспечивает более строгую защиту, чем протокол наследования приоритетов.

  • Упрощает анализ временных характеристик системы, так как поведение становится более предсказуемым.

Недостатки:

  • Более сложен в реализации по сравнению с протоколом наследования приоритетов.

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

Сравнение протоколов:

Характеристика

Протокол наследования приоритетов (PIP)

Протокол граничных приоритетов (PCP)

Предотвращение инверсии

Да, но не во всех случаях

Да, полностью

Предотвращение взаимоблокировок

Нет

Да

Сложность реализации

Низкая

Высокая

Накладные расходы

Минимальные

Умеренные

Предсказуемость

Умеренная

Высокая

Когда использовать:

  • Протокол наследования приоритетов (PIP): Подходит для систем с умеренными требованиями к предсказуемости, где инверсия приоритетов возможна, но не критична. Также используется в системах с ограниченными ресурсами, где важна простота реализации.

  • Протокол граничных приоритетов (PCP): Рекомендуется для систем жёсткого реального времени, где критически важно предотвратить инверсию приоритетов и взаимоблокировки. Обеспечивает более строгую защиту и предсказуемость, что делает его идеальным для критически важных приложений.

Оба протокола широко используются в ОСРВ для обеспечения надёжности и предсказуемости выполнения задач. Выбор между ними зависит от требований конкретной системы.

Соседние файлы в папке 2