Синхронизация параллельных процессов на низком уровне


1. Параллельная обработка. Проблемы критических участков. Взаимоисключения.
2. Синхронизация параллельных процессов на низком уровне.
• Блокировка памяти. Алгоритм Деккера. Аппаратная реализация взаимоисключения: команда “проверка и установка” (testandset).
• Семафоры. Реализация взаимоисключения при помощи семафоров. Синхронизация блокирования/возобновления процессов при помощи семафоров. Реализация взаимодействия в паре “производитель-потребитель” при помощи семафоров.

Параллельная обработка
Параллельными называются процессы, которые существуют одновременно. Два параллельных процесса могут быть независимыми либо взаимодействующими.
Независимыми или асинхронными являются процессы, множества переменных которых не пересекаются. Под переменными в этом случае понимаются файлы данных, а также области оперативной памяти, сопоставленные определенным в программе и промежуточным переменным. Независимые процессы не влияют на результаты работы друг друга, т.к. не могут изменить значения переменных другого независимого процесса. Они могут явиться причиной задержек исполнения других процессов, т.к. вынуждены разделять ресурсы системы. Асинхронным параллельным процессам требуется периодически синхронизироваться и взаимодействовать друг с другом.
Взаимодействующие процессы совместно используют некоторые переменные, и выполнение одного процесса может повлиять на выполнение другого.