Операционные системы. Курс лекций



Реализация операций семафора - часть 2


б)    низкоприоритетный процесс может стоять в очереди семафора перед процессом с более высоким приоритетом.

В однопроцессорных системах проблема (б) может быть решена следующим образом: метод SimSignal() освобождает все ожидающие процессы, после чего каждый из них снова осуществляет вызов SimWait(). После освобождения первым на выполнение будет процесс с наивысшим приоритетом, он и получит семафор. Недостатком такой схемы являются системные затраты на многократное блокирование и разблокирование процессов.

Планирование FIFO подходит для систем определенных типов. К ним относятся системы, не требующие ответов в реальном времени или в которых процессы, ожидающие у данного семафора, обычно выполняются с одинаковым приоритетом, а также системы, в которых очередь семафора очень короткая.

Если система должна отвечать в реальном времени, очереди семафоров в ней можно упорядочить с помощью приоритетов. В этом случае семафор должен иметь возможность узнать приоритет вызванного процесса. Для решения проблемы инверсии приоритетов можно добавить временное повышение приоритета процесса, который удерживает семафор до уровня самого высокоприоритетного в очереди. Эта операция называется наследование приоритета. Процесс, удерживающий семафор выполняется с действующим приоритетом равным большему из двух значений: исходный приоритет процесса и его унаследованный приоритет. Система реального времени должна реагировать на события с определенной скоростью. Если процесс блокируется в ожидании ресурса, важно, чтобы он не вышел за отведенные ему временные рамки.

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




Начало  Назад  Вперед