Основы современных операционных систем Лекция 12
(C) В.О. Сафонов, Синхронизация процессов
(C) В.О. Сафонов, История
(C) В.О. Сафонов, Ограниченный буфер: Представление
(C) В.О. Сафонов, Ограниченный буфер: Производитель
(C) В.О. Сафонов, Ограниченный буфер: Потребитель
(C) В.О. Сафонов, Ограниченный буфер: Атомарность операций над counter
(C) В.О. Сафонов, Ограниченный буфер: Реализация операций над counter
(C) В.О. Сафонов, Ограниченный буфер: Совместное обращение (interleaving)
(C) В.О. Сафонов, Ограниченный буфер: Эффект interleaving
(C) В.О. Сафонов, Конкуренция за общие данные (race condition)
(C) В.О. Сафонов, Проблема критической секции
(C) В.О. Сафонов, Решение проблемы критической секции
(C) В.О. Сафонов, Первоначальные попытки решения проблемы
(C) В.О. Сафонов, Алгоритм 1
(C) В.О. Сафонов, Алгоритм 2
(C) В.О. Сафонов, Алгоритм 3
(C) В.О. Сафонов, Алгоритм булочной (bakery algorithm) – L. Lamport
(C) В.О. Сафонов, Алгоритм булочной
(C) В.О. Сафонов, Аппаратная поддержка синхронизации
(C) В.О. Сафонов, 2010 Взаимное исключение с помощью TestAndSet
(C) В.О. Сафонов, 2010 Аппаратное решение для синхронизации
(C) В.О. Сафонов, 2010 Взаимное исключение с помощью Swap
(C) В.О. Сафонов, 2010 Общие семафоры – counting semaphores (по Э. Дейкстре)
(C) В.О. Сафонов, 2010 Критическая секция для N процессов
(C) В.О. Сафонов, 2010 Реализация семафора
(C) В.О. Сафонов, 2010 Реализация
(C) В.О. Сафонов, 2010 Семафоры как общее средство синхронизации
(C) В.О. Сафонов, 2010 Два типа семафоров
(C) В.О. Сафонов, 2010 Вариант операции wait(S) для системных процессов (Эльбрус)
(C) В.О. Сафонов, 2010 Реализация общего семафора S с помощью двоичных семафоров
(C) В.О. Сафонов, 2010 Реализация операций над семафором S
(C) В.О. Сафонов, 2010 Классические задачи синхронизации
(C) В.О. Сафонов, 2010 Задача ограниченный буфер
(C) В.О. Сафонов, 2010 Процесс-производитель ограниченного буфера
(C) В.О. Сафонов, 2010 Процесс-потребитель ограниченного буфера
(C) В.О. Сафонов, 2010 Задача читатели-писатели
(C) В.О. Сафонов, 2010 Процесс-писатель
(C) В.О. Сафонов, 2010 Процесс-читатель
(C) В.О. Сафонов, 2010 Задача обедающие философы Общие данные semaphore chopstick[5]; Первоначально все значения равны 1
(C) В.О. Сафонов, 2010 Задача обедающие философы
(C) В.О. Сафонов, 2010 Критические области (critical regions)
(C) В.О. Сафонов, 2010 Пример: ограниченный буфер
(C) В.О. Сафонов, 2010 Процесс-производитель
(C) В.О. Сафонов, 2010 Процесс-потребитель
(C) В.О. Сафонов, 2010 Реализация оператора region x when B do S
(C) В.О. Сафонов, 2010 Реализация
(C) В.О. Сафонов, 2010 Мониторы (C. A. R. Hoare)
(C) В.О. Сафонов, 2010 Мониторы: условные переменные
(C) В.О. Сафонов, 2010 Схематическое представление монитора
(C) В.О. Сафонов, 2010 Монитор с условными переменными
(C) В.О. Сафонов, 2010 Пример: обедающие философы
(C) В.О. Сафонов, 2010 Обедающие философы: реализация операций pickup и putdown
(C) В.О. Сафонов, 2010 Обедающие философы: реализация операции test
(C) В.О. Сафонов, 2010 Реализация мониторов с помощью семафоров
(C) В.О. Сафонов, 2010 Реализация мониторов
(C) В.О. Сафонов, 2010 Реализация мониторов
(C) В.О. Сафонов, 2010 Реализация мониторов
(C) В.О. Сафонов, 2010 Синхронизация в Solaris
(C) В.О. Сафонов, 2010 Синхронизация в Windows 2000
(C) В.О. Сафонов, Q & A