Операционные системы



УПРАВЛЕНИЕ АСИНХРОННЫМИ ПАРАЛЛЕЛЬНЫМИ - часть 4


<критический участок>                            <критический участок>

TS I,B’0’                                                       TS I,B’0’

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

Недостатки:

1.     Циклический опрос переменной I и бессмысленное расходование времени ЦП.

2.     Не исключено бесконечное ожидание ресурса, хотя вероятность невелика.

3.     Работает с одним ресурсом.

Для устранения расходования времени ЦП может быть использован так называемый аппарат событий. С помощью этого средства могут решаться не только проблемы взаимного исключения, но и более общие задачи синхронизации процессов. В разных операционных системах аппарат событий реализуется по - своему, но в любом случае используются системные функции аналогичного назначения, которые условно назовем WAIT(x) и POST(x), где x - идентификатор некоторого события. Если ресурс занят, то процесс не выполняет циклический опрос, а вызывает системную функцию WAIT(I), здесь I обозначает событие, заключающееся в освобождении ресурса I. Функция WAIT(I) переводит активный процесс в состояние ОЖИДАНИЕ и делает отметку в его дескрипторе о том, что процесс ожидает события I. Процесс, который в это время использует ресурс I, после выхода из критической секции выполняет системную функцию POST(I), в результате чего операционная система просматривает очередь ожидающих процессов и переводит процесс, ожидающий события I, в состояние ГОТОВНОСТЬ

Семафор развивает механизм примитивов и обобщает его. Автор –

Е. Дейкстра. Семафор - это целочисленная неотрицательная переменная S – счетчик ресурса, которую можно менять и опрашивать при помощи операций P

и V, и очередь процессов к ресурсу Q(S).


Содержание  Назад  Вперед