- •12. Лекция: Методы синхронизации процессов
- •Алгоритм решения проблемы критической секции
- •Алгоритм булочной (bakery algorithm)
- •Синхронизация на основе аппаратной поддержки атомарных операций
- •Синхронизация на основе общих семафоров
- •Реализация семафоров
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
Набор для практики Вопросы
Почему необходима синхронизация параллельных процессов?
В чем суть задачи "ограниченный буфер"?
Почему необходимы атомарность и взаимное исключение операций над счетчиком числа элементов в буфере?
Что такое interleaving и в чем его опасность при использовании общих переменных параллельными процессами?
Что такое конкуренция за общие данные (race condition)?
Сформулируйте в общем виде проблему критических секций.
Какие условия необходимы для решения проблемы критических секций?
Что такое взаимное исключение?
В чем суть условия "прогресс" для решения проблемы критических секций?
В чем суть условия "ограниченное ожидание" для решения проблемы критических секций?
Что такое алгоритм булочной и на какой идее упорядочения процессов он основан?
Какие атомарные операции, поддержанные аппаратно, используются для синхронизации и каким образом?
Что такое общий семафор и какие операции над ним определены?
Как реализуются семафоры и операции над ними?
Как использовать семафоры для синхронизации по событиям?
Как используются семафоры для решения проблемы критических секций?
Что такое двоичный семафор?
Что такое семафорный бит?
В чем суть операции ЖУЖ для системных процессов и в чем ее отличие от операции ЖДАТЬ?
Как реализуются общие семафоры и операции над ними с использованием двоичных семафоров?
Какие Вы знаете классические задачи (схемы) синхронизации?
Как реализуется решение задачи ограниченный буфер с использованием семафоров?
Как реализуется решение задачи читатели-писатели с использованием семафоров?
Как реализуется решение задачи обедающие философы с использованием семафоров?
Что такое критические области?
Как реализуется решение задачи ограниченный буфер с использованием критических областей?
Как реализуются критические области с использованием семафоров?
Что такое мониторы (как средство синхронизации)?
Какие условия должны выполняться при исполнении операций монитора?
Что такое условные переменные и какие операции над ними определены?
Как реализуется решение задачи обедающие философы с использованием монитора?
Как реализуются мониторы, их операции и условные переменные с использованием семафоров?
Какие средства синхронизации используются в системе Solaris?
Какие средства синхронизации используются в системе Windows 2000?
Упражнения
Реализуйте алгоритм решения задачи ограниченный буфер со взаимным исключением критических секций.
Реализуйте алгоритм булочной.
Реализуйте алгоритмы синхронизации процессов с использованием операций TestAndSet и Swap (в предположении, что они атомарны).
Реализуйте общие семафоры и операции над ними.
Реализуйте двоичные семафоры и операции над ними.
Реализуйте алгоритм синхронизации критических секций с использованием семафоров.
Реализуйте общие семафоры с использованием двоичных семафоров.
Реализуйте алгоритм решения задачи ограниченный буфер с использованием семафоров.
Реализуйте алгоритм решения задачи читатели-писатели с использованием семафоров.
Реализуйте алгоритм решения задачи, обедающие философы с использованием семафоров.
Реализуйте алгоритм решения задачи читатели-писатели с использованием критических областей.
Реализуйте алгоритм решения задачи, обедающие философы с использованием критических областей.
Реализуйте общие области и конструкцию region с использованием семафоров.
Реализуйте алгоритм решения задачи ограниченный буфер с использованием мониторов.
Реализуйте алгоритм решения задачи читатели-писатели с использованием мониторов.
Реализуйте мониторы и условные переменные с использованием семафоров.