Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Семафоры и мьютексы



Семафор — специальная защищенная переменная в ОС. Под за­щищённостью понимается невозможность для прикладной програм­мы работать с этой переменной непосредственно. Для доступа к семафору программа должна использовать специальные системные вызовы ядра (примитивы):

- установить начальное значение семафора S;

- P(S) — если S>0, то S:=S — 1, иначе ожидать на S;

- V(S) — если один или более процессов ожидают на S, то поз­волить одному из них продолжить работу, иначе S:=S+1.

Обратите внимание, что вызов примитива P(S) может заблоки­ровать процесс до выполнения примитива V(S) другим процессом.

Все вызовы ядра для управления семафорами атомарны, то есть не могут быть прерваны другими процессами.

Семафоры, управляемые описанными примитивами, называют­ся считающими, так как в принципе могут принимать любые неотри­цательные значения. В частности, такие семафоры могут использо­ваться для управления несколькими однотипными ресурсами в си­стеме.

Семафоры, которые могут принимать только два значения: 0 и 1, — называются мьютексами. Такие семафоры чаще всего приме­няются для организации процедуры взаимоисключения.

В современных ОС реализуется несколько разных механиз­мов управления семафорами, модифицирующих базовые алгоритмы, описанные выше.





Дата публикования: 2015-02-03; Прочитано: 1273 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...