Сущность семафорных механизмов Дейкстры Р(S) - операция (P – от голландского Proberen – проверить) V(S) – операция (V – от голландского Verhogen – увеличить)

Презентация:



Advertisements
Похожие презентации
Взаимодействующие параллельные процессы
Advertisements

Взаимодействующие параллельные процессы. Параллельные процессы P1 P2 Q1 Q2 Последовательные процессы Логические параллельные процессы P1 P2 Q1Q2 Физические.
Алгоритмические структуры 1.Линейный 2.Ветвление 3.Цикл.
ЛЕКЦИЯ 4 СИНХРОНИЗАЦИЯ ПРОЦЕССОВ. ВОПРОСЫ 1.Синхронизация процессов с использованием объектов ядра. 2.Задачи синхронизации. 3.Мониторы Хоара. 4.Почтовые.
Управление процессами 3.Взаимодействие процессов: синхронизация, тупики 3.1.Разделение ресурсов 3.2.Взаимное исключение Проблемы реализации взаимного.
АЛГОРИТМ ЕВКЛИДА (нахождение наибольшего общего делителя (НОД) двух натуральных чисел)
Использование частных случаев в условиях. Флаг в задачах Задача. Определить место первого четного элемента в массиве.
Оператор ветвления. Для реализации ветвления в программе используют условный оператор (оператор ветвления). Условный оператор в полной форме записывается.
7. Монитор Сидельников В.В v Монитор Хоара 7.1. Общее описание monitor ; end. ::= ::= begin.
Моделирование последовательных процессов Моделирование систем на основе сетей Петри program mult; var X, Y: integer; begin read(Y); X:=1; while Y>0 do.
6. Средства синхронизации и взаимодействия процессов 6.1. Проблема синхронизации Процессам Процессам часто нужно взаимодействовать друг с другом, например,
Взаимодействие процессов: синхронизация, тупики. Параллельные процессы Параллельные процессы – процессы, выполнение которых хотя бы частично перекрывается.
Циклы. Вычислить сумму ряда чисел Program sum; var a: integer; s: real; Begin a:=1; s:=0; while a<600 do begin a:=a+1; s:=s+1/a; end; writeln ( ' s=
1 Программирование на языке Паскаль Тема 2. Максимальный элемент массива.
АЛГОРИТМ ВЕТВЛЕНИЯ ОПЕРАТОР ВЕТВЛЕНИЯ. Какая задача решается по этой программе? Program Z1: Var a,b,c: integer; Begin Write ( vv a,b:); Read (a,b); C:=(a+b)*(b-a);
Обработка массивов Сортировка. Сортировка массивов «…создается впечатление, что можно построить целый курс программирования, выбирая примеры только из.
1 Программирование на языке Паскаль Тема 3. Сложные условия © К.Ю. Поляков,
Программирование на языке Паскаль. Часть II К. Поляков, Поиск в массиве 1 Задача – найти в массиве элемент, равный X, или установить, что его.
Алгоритм ветвления на PasclABC. 1. Определение разветвленного алгоритма Это алгоритм в котором в зависимости от некоторого условия выбирается путь следования.
Основы операционных систем. Тема 6. Механизмы синхронизации.
Транксрипт:

Сущность семафорных механизмов Дейкстры Р(S) - операция (P – от голландского Proberen – проверить) V(S) – операция (V – от голландского Verhogen – увеличить) InitSem (Имя-семафора, Начальное_значение_семафора) Семафорные механизмы Схема работы семафорного механизма Мьютекс

Алгоритм реализации семафорных операций P(S): S:=S-1; if S<0 then WAIT(S) {остановить процесс и поместить в очередь ожидания к семафору S}; V(S): if S<0 then RELEASE(S) {поместить один из ожидающих процессов очереди семафора в очередь готовности}; S:=S+1; демонстрация

Листинг - Взаимоисключение с помощью семафорных операций var S: Semaphore; begin InitSem(S, 1); parbegin ПР1: while true do begin P(S); CS1; {Критический интервал процесса ПР1} V(S); end and

ПР2: while true do begin P(S); CS2; {Критический интервал процесса ПР2} V(S); end parend end. Листинг (продолжение)