Теория распараллеливания и синхронизация. Демьянович Ю.К - 80 стр.

UptoLike

Глава 3 Синхронизация с помощью
семафоров
§1 Некоторые определения
Семафор это разделяемая переменная, имеющая неотрицатель-
ные целочисленные значения и обрабатываемая с помощью двух
неделимых операций P и V:
P(s) : < await (s > 0) s = s 1; >
V(s) : < s = s + 1; >
Операция P(s) в неделимом действии выполняет следующее:
1) проверяет условие s > 0; 2) приостанавливает процесс п ри s = 0
до увеличения значения s; 3) если s оказывается положительным,
то в том же действии эта операция уменьшает s на единицу и про-
пускает процесс.
Операция V(s) увеличивает s на единицу в неделимом дей-
ствии.
Обычный семафор может принимать любые значения, а дво-
ичный сем афор только значения 0 и 1.
§2 Взаимное исключение. Барьеры
Задача критической секции ставится так: в каждый момент време-
ни лишь один из n процессов выполняет критическую секцию, в
которой он имее т доступ к разделяемому ре сурсу (именно поэтому
критические секции должны выполн яться со взаимным исключе-
нием). Затем процесс выполняет некритическую секцию, в которой
он работает с локальными объектами. При этом схема выполняем ой
программы такова:
81