Синхронизация процессов и потоков. Проблемы взаимодействия и синхронизации

Степень осведомленности Взаимосвязь Влияние одного процесса на другой Потенциальные проблемы
Процессы не осведомлены друг о друге Конкуренция Результат работы одного процесса не зависит от действий других. Возможно влияние одного процесса на время работы другого. Взаимоисключения Взаимоблокировки Голодание
Процессы косвенно осведомлены о наличии друг друга Сотрудничество с использованием разделения Результат работы одного процесса может зависеть от информации, полученной от других. Возможно влияние одного процесса на время работы другого. Взаимоисключения Взаимоблокировки Голодание Синхронизация
Процессы непосредственно осведомлены о наличии друг друга Сотрудничество с использованием связи Результат работы одного процесса может зависеть от информации, полученной от других. Возможно влияние одного процесса на время работы другого. Взаимоблокировки (возобновляемые ресурсы) Голодание

Системные функции для работы с критическими секциями

Достоинство: исключается потеря времени процессора на циклическую проверку освобождения занятого ресурса. Недостаток: растут накладные расходы ОС на по реализации функции входа в критическую секцию и выхода из нее.

Важным понятием процессов является понятие "критическая секция" программы. Критическая секция - это часть программы, в которой осуществляется доступ к разделяемым данным синхронизации. Чтобы исключить ситуацию, когда два или более процессов обрабатывают разделяемые данные, необходимо обеспечить, чтобы в каждый момент в критической секции, связанной с этим ресурсом, находился максимум один процесс. Этот прием называют взаимным исключением.

Итак: Критическая область - часть программы, в которой есть обращение к совместно используемым данным.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: