2009-11-25 3 views
0

Я пытаюсь найти алгоритм, который обнаруживает взаимоблокировки в параллельных транзакциях в программном обеспечении. Я пробовал искать, но ничего не нашел. Может ли кто-то указать на хороший ресурс, чтобы следовать по этому вопросу или кто-то может объяснить этот алгоритм?Тупики в параллельных транзакциях

+0

Это домашнее задание? –

+0

Это трудная задача. Мой босс сказал мне сделать некоторые исследования по этому поводу. – persistence

ответ

1

Обнаружение тупика подразумевает некоторое знание ресурсов, которые приобретаются. В более простых случаях один менеджер ресурсов (например, база данных) владеет ресурсами (такими как блокировки на записях), и поэтому может обнаруживать цикл в запросах блокировки. Следовательно, могут применяться алгоритмы, такие как обсуждаемые here.

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

Прежде всего, мы ищем циклы в результ-респектабельности. Это подход outline.

+0

Можете ли вы указать мне хороший ресурс для случая одного менеджера ресурсов по базам данных, алгоритмы Bankers и Ostrich не работают из этого случая, как я помню. – persistence

+0

Вам нужен подход обнаружения цикла. Боюсь, я не знаю ни одного примера реализации. Ссылка, которую я добавил выше, описывает алгоритм. – djna

Смежные вопросы