Лекция 5. Алгоритмы синхронизации.

Download Report

Transcript Лекция 5. Алгоритмы синхронизации.

Системное программное обеспечение
Лекция 5
Алгоритмы
синхронизации
Interleaving
2
Пример interleaving
3
Детерминированность
активностей
4
Наборы переменных
5
Условия Бернстайна
6
Взаимодействовать процессам или нет
7
Критическая секция
8
Время
17-05
17-07
Студент 1
Приходит в комнату
Обнаруживает, что хлеба нет
17-09
17-11
17-13
Уходит в магазин
17-27
17-29
17-31
Уходит в магазин
Приходит в комнату
Обнаруживает, что хлеба нет
Уходит в магазин
Приходит в магазин
Покупает 2 батона на всех
Уходит из магазина
Приходит в магазин
Покупает 2 батона на всех
17-33
17-35
17-37
17-39
17-41
17-47
17-53
Студент 3
Приходит в комнату
Обнаруживает, что хлеба нет
17-15
17-17
17-19
17-21
17-23
17-25
Студент 2
Уходит из магазина
Приходит в магазин
Покупает 2 батона на всех
Уходит из магазина
Возвращается в комнату
Возвращается в комнату
Возвращается в комнату
9
Исключение race condition
Время
Студент 1
17-05
Приходит в комнату
17-07
Достает два батона
хлеба
17-43
17-47
Студент 2
Студент 3
Приходит в комнату
Приходит в комнату
10
Структура процесса с race
condition
11
Алгоритмы организации
взаимодействия процессов
12
Требования, предъявляемые к
алгоритмам
13
Запрет прерываний
14
Переменная-замок
15
Строгое чередование
16
Флаги готовности
17
Алгоритм Петерсона
18
Алгоритм булочной
19
Аппаратная поддержка
взаимоисключений
20
Команда Test-and-Set
21
Test-and-Set на уровне CPU
22
Команда Swap
23
Заключение
24