Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРВ complete edition епта.docx
Скачиваний:
17
Добавлен:
24.09.2019
Размер:
488.03 Кб
Скачать

50. Что такое инверсия приоритета?

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

Механизмы, порождающие это явление, могут быть разнообразны (счетные семафоры).

51. При каких схемах планирования задач инверсия приоритета возникает? Фиксированные приоритеты - приоритет задаче назначается при ее создании и не

меняется в течение ее жизни. Эта схема с различными дополнениями применяется в

большинстве систем реального времени. В схемах планирования ОСРВ часто требуется,

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

число приоритетов (обычно 255 и более).

52. Что необходимо для возникновения инверсия приоритета?

Представим, что у нас есть высокоприоритетная Задача A, среднеприоритетная Задача B и низкоприоритетная Задача C.

Пусть в начальный момент времени Задачи A и B блокированы в ожидании какого-либо

внешнего события. Допустим, получившая в результате этого управление Задача C захватила

Ресурс A, но не успела его отдать, как была прервана Задачей A. В свою очередь, Задача A при

попытке захватить Ресурс A будет блокирована, так как этот ресурс уже захвачен Задачей C.

Если к этому времени Задача B находится в состоянии готовности, то управление после этого

получит именно она, как имеющая более высокий, чем у Задачи C, приоритет. Теперь Задача B может занимать процессорное время, пока ей не надоест, а мы получаем ситуацию, когда

высокоприоритетная Задача A не может функционировать из-за того, что необходимый ей

ресурс занят низкоприоритетной Задачей C.

Блокировка (Lockout). Процесс ожидает ресурс, который никогда не освободится.

Голодовка (Starvation). Процесс монополизировал процессор.

53. Можно ли полностью избавиться от инверсии приоритета

Возможно. Основным методом решения этой проблемы в ОС РВ является наследование приоритетов [Jean J. Labrosse], которое заключается в следующем. Если низкоприоритетный поток блокирует выполнение нескольких высокоприоритетных потоков, то низкоприоритетный поток игнорирует назначенный ему первоначально приоритет и выполняется с приоритетом, который является наивысшим в блоке ожидающих его потоков. После окончания работы поток принимает свой первоначальный приоритет.

54. Суть схемы наследования приоритета

. Основным методом решения этой проблемы в ОС РВ является наследование приоритетов [Jean J. Labrosse], которое заключается в следующем. Если низкоприоритетный поток блокирует выполнение нескольких высокоприоритетных потоков, то низкоприоритетный поток игнорирует назначенный ему первоначально приоритет и выполняется с приоритетом, который является наивысшим в блоке ожидающих его потоков. После окончания работы поток принимает свой первоначальный приоритет.

55. Суть схемы Immediate priority ceiling protocol (ipcp).

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