Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тупиковая ситуация




Проблема несовместимого анализа

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

Проблема потери результатов обновления

Решение проблем параллелизма

Рассмотрим описанные выше проблемы, возникающие при параллельной обработке кортежей.

На рис. 10.7. приведена измененная версия процесса, показанного на рис.3., с учетом применения протокола блокировки для чередующихся операций.

 

Транзакция А Время Транзакция В
Извлечение кортежа p (задание S-блокировки) t1  
  t2 Извлечение кортежа p (задание S-блокировки)
Обновление кортежа p (задание X - блокировки) t3  
ожидание t4 Обновление кортежа p (задание X-блокировки)
ожидание   ожидание

Рис.10.7. Хотя обновления не утрачиваются, но в момент времени t4 возникает тупиковая ситуация

На рис.10.8 и рис.10.9 приведены в измененном виде примеры, показанные ранее на рис.10.4 и рис.10.5 соответственно. Они демонстрируют чередующееся выполнение операций согласно описанному выше протоколу блокировки.

Транзакция А Время Транзакция В
  t1 Обновление кортежа p (задание X-блокировки)
Извлечение кортежа p (задание S-блокировки) t2  
ожидание t3 Окончание или отмена выполнения (снятие X-блокировки)
Итог: извлечение кортежа р (задание S-блокировки)    

Рис.10.8. Транзакция А предохраняется от выполнения операций с незафиксированным изменением в момент времени t2

 

Транзакция А Время Транзакция В
  t1 Обновление кортежа p (задание X-блокировки)
Обновление кортежа p (задание X-блокировки) t2  
ожидание t3 Окончание или отмена выполнения (снятие X-блокировки)
Итог: обновление кортежа р (задание X-блокировки)    

Рис.10.9. Транзакция А предохраняется от выполнения операций с незафиксированным изменением в момент времени t2

На рис.10.10 приведена измененная версия рис.10.6 с перечислением чередующихся транзакций согласно протоколу блокировки.

 

Счет 1 – 40, Счет2 – 50, Счет3 - 30
Транзакция А Время Транзакция В
Извлечение кортежа Счет 1 (задание S-блокировки для кортежа Счет 1) Sum=40 t1  
Извлечение кортежа Счет 2   Sum=90 t2  
  t3 Извлечение кортежа Счет 3 (задание S-блокировки для кортежа Счет 3)
  t4 Обновление кортежа Счет 3 (задание X-блокировки для кортежа Счет 3) 30 à 20
  t5 Извлечение кортежа Счет 1 (задание S-блокировки для кортежа Счет 1)
  t6 Обновление кортежа Счет 1 (задание X-блокировки для кортежа Счет 1) 40 à 50
Извлечение кортежа Счет 3 (задание S-блокировки для кортежа Счет 3) t7 ожидание
ожидание   ожидание

Рис.10. Проблема несовместимого анализа разрешается, но в момент времени t7 возникает тупиковая ситуация

Как было показано выше, блокировку можно использовать для разрешения трех основных проблем, возникающих при параллельной обработке кортежей. К сожалению, использование блокировок приводит к возникновению другой проблемы – тупиковой ситуации. Два примера таких ситуаций были приведены выше.

Тупиковая ситуация возникает тогда, когда две или более транзакции одновременно находятся в состоянии ожидания, причем для продолжения работы каждая из транзакция ожидает прекращения выполнения другой транзакции.

Желательно, чтобы при возникновении тупиковой ситуации система могла обнаружить ее и найти из нее выход. Для обнаружения тупиковой ситуации следует обнаружить цикл в диаграмме состояний ожидания, т.е. в перечне «транзакций, которые ожидают окончания выполнения других транзакций». Поиск выхода из тупиковой ситуации состоит в выборе одной из заблокированных транзакций в качестве жертвы и отмене ее выполнения. Таким образом, с нее снимается блокировка, а выполнение другой транзакции может быть возобновлено.

 




Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 336; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.