Рефераты | Рефераты по информатике, программированию | Deadlocks | страница реферата 7 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Первый пример

    Самый тривиальный случай, нарушение порядка доступа в чистом виде, представляют собой две транзакции примерно следующего содержания:

    Первая транзакция - T1.

    BEGIN TRAN

     UPDATE Tbl SET X = 1 WHERE X = 1

     UPDATE Tbl SET X = 3 WHERE X = 3

    COMMIT TRAN

    Вторая транзакция - T2.

    BEGIN TRAN

     UPDATE Tbl SET X = 3 WHERE X = 3

     UPDATE Tbl SET X = 1 WHERE X = 1

    COMMIT TRAN

    Если эти транзакции стартуют одновременно, то произойдет взаимоблокировка по причине очевидного нарушения порядка доступа. T1 сначала обращается к записи X = 1, а затем к записи X = 3. Т2 же, наоборот, сначала обращается к записи X = 3, а затем к X = 1.

    Рефераты | Рефераты по информатике, программированию | Deadlocks

    Рисунок 1. Порядок обращения к записям, приводящий к взаимоблокировке.

    При одновременном старте Т1 захватывает запись X = 1, в это время Т2 успевает захватить запись X = 3. Затем T1 хочет захватить запись X = 3, но она уже захвачена T2, поэтому T1 ожидает T2 на блокировке, и в граф добавляется ребро T1->T2. Примерно в это же время T2 хочет захватить запись X = 1, которая также уже захвачена T1. В графе ожидания появляется второе ребро T2->T1 и он становится цикличным. Ну а поскольку подобная ситуация без грубого вмешательства неразрешима, то одна из транзакций будет отменена, другая же, пользуясь тем, что блокировка исчезла, спокойно завершит свою работу.

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

    Второй пример

    Следующие примеры я постараюсь разобрать более подробно, эмулируя поведение сервера в реальной ситуации.

    Очень часто встречается примерно такая последовательность операторов в одной транзакции:


    Рекомендуем скачать другие рефераты по теме: урок изложение, диплом разработка.



    Предыдущая страница реферата | 2  3  4  5  6  7  8  9  10  11  12 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •