<<
>>

Семафоры в UNIX. Отличие операций над UNIX-семафорами от классических операций

В материалах предыдущего семинара речь шла о необходимости синхронизации работы процессов для их корректного взаимодействия через разделяемую память. Как упоминалось в лекции 6, одним из первых механизмов, предложенных для синхронизации поведения процессов, стали семафоры, концепцию которых описал Дейкстра (Dijkstra) в 1965 году.
При разработке средств System V 1РС семафоры вошли в их состав как неотъемлемая часть. Следует отметить, что набор операций над семафорами System V1РС отличается от классического набора операций {P, V}, предложенного Дейкстрой. Он включает три операции:

• A(S, п) — увеличить значение семафора S на величину п;

• D(S, п) — пока значение семафора S < п, процесс блокируется.

Далее

S = S - п;

• Z ( S ) — процесс блокируется до тех пор, пока значение семафора S

не станет равным 0.

Изначально все IPC-семафоры инициируются нулевым значением.

Мы видим, что классической операции P ( S ) соответствует операция D ( S, 1 ), а классической операции V ( S ) соответствует операция А ( S ,1 ). Аналогом ненулевой инициализации семафоров Дейкстры значением п может служить выполнение операции А ( s, п) сразу после создания семафора S, с обеспечением атомарности создания семафора и ее выполнения посредством другого семафора. Мы показали, что классические семафоры реализуются через семафоры System V IPC. Обратное не является верным. Используя операции р (s) и V{s), мы не сумеем реализовать операцию Z (S).

■я ц.

Поскольку IPC-семафоры являются составной частью средств System V IPC, то для них верно все, что говорилось об этих средствах в материалах предыдущего семинара. IPC-семафоры являются средством связи с непрямой адресацией, требуют инициализации для организации взаимодействия процессов и специальных действий для освобождения системных ресурсов по его окончании. Пространством имен IPC-семафоров является множество значений ключа, генерируемых с помощью функции ftok(). Для совершения операций над семафорами системным вызовам в качестве параметра передаются IPC-дескрипторы семафоров, однозначно идентифицирующих их во всей вычислительной системе, а вся информация о семафорах располагается в адресном пространстве ядра операционной системы. Это позволяет организовывать через семафоры взаимодействие процессов, даже не находящихся в системе одновременно.

<< | >>
Источник: В.Е. Карпов К.А. Коньков. Основы операционных систем. 2005 {original}

Еще по теме Семафоры в UNIX. Отличие операций над UNIX-семафорами от классических операций:

  1. ОПЕРАЦИЯ ФОРМАЛЬНАЯ
  2. ОПЕРАЦИЯ
  3. ОПЕРАЦИЯ ИНТЕЛЛЕКТУАЛЬНАЯ
  4. ОПЕРАЦИЯ КОНКРЕТНАЯ
  5. ОПЕРАЦИЯ СОЗНАТЕЛЬНАЯ
  6. Действия, операции и психологические приемы.
  7. ОПЕРАЦИЯ ПРИСПОСОБИТЕЛЬНАЯ
  8. § 2. Правовое регулирование валютных операций
  9. 6. Договоры об отдельных транспортно-экспедиционных операциях и услугах
  10. 5. Внешнеэкономические подрядные операции с давальческим сырьем
  11. Статья 1068. Операции со счетом, которые выполняются банком
  12. Статья 213. Нарушение порядка осуществления операций с металлоломом
  13. Статья 1101. Сообщение о проведенных операциях