Интернет магазин китайских планшетных компьютеров



Компьютеры - Взаимная блокировка

23 января 2011


Оглавление:
1. Взаимная блокировка
2. Обнаружение взаимных блокировок



Взаимная блокировка — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.

Простейший пример взаимной блокировки

Шаг Процесс 1 Процесс 2
0 Хочет захватить A и B, начинает с A Хочет захватить A и B, начинает с B
1 Захватывает ресурс A
2 Ожидает освобождения ресурса B Захватывает ресурс B
3 Ожидает освобождения ресурса A
4
Взаимная блокировка

Отладка взаимных блокировок, как и других ошибок синхронизации, усложняется тем, что для их возникновения нужны специфические условия одновременного выполнения нескольких процессов.

Livelock

Это слово означает такую ситуацию: система не «застревает», а занимается бесполезной работой, её состояние постоянно меняется — но, тем не менее, она «зациклилась», не производит никакой полезной работы.

Жизненный пример такой ситуации: двое встречаются лицом к лицу. Каждый из них пытается посторониться, но они не расходятся, а несколько секунд сдвигаются в одну и ту же сторону.



Просмотров: 2190


<<< Блокировка (программирование)
Критическая секция >>>