Степень осведомленности | Взаимосвязь | Влияние одного процесса на другой | Потенциальные проблемы |
Процессы не осведомлены друг о друге | Конкуренция | Результат работы одного процесса не зависит от действий других. Возможно влияние одного процесса на время работы другого. | Взаимоисключения Взаимоблокировки Голодание |
Процессы косвенно осведомлены о наличии друг друга | Сотрудничество с использованием разделения | Результат работы одного процесса может зависеть от информации, полученной от других. Возможно влияние одного процесса на время работы другого. | Взаимоисключения Взаимоблокировки Голодание Синхронизация |
Процессы непосредственно осведомлены о наличии друг друга | Сотрудничество с использованием связи | Результат работы одного процесса может зависеть от информации, полученной от других. Возможно влияние одного процесса на время работы другого. | Взаимоблокировки (возобновляемые ресурсы) Голодание |
Системные функции для работы с критическими секциями
|
|
Достоинство: исключается потеря времени процессора на циклическую проверку освобождения занятого ресурса. Недостаток: растут накладные расходы ОС на по реализации функции входа в критическую секцию и выхода из нее. |
Важным понятием процессов является понятие "критическая секция" программы. Критическая секция - это часть программы, в которой осуществляется доступ к разделяемым данным синхронизации. Чтобы исключить ситуацию, когда два или более процессов обрабатывают разделяемые данные, необходимо обеспечить, чтобы в каждый момент в критической секции, связанной с этим ресурсом, находился максимум один процесс. Этот прием называют взаимным исключением.
Итак: Критическая область - часть программы, в которой есть обращение к совместно используемым данным.