2004-gre-cs-practice-book.pdf/Q52 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
 
Строка 40: Строка 40:
  
 
{{question-ok|[[Участник:StasFomin|StasFomin]] 21:35, 15 декабря 2024 (UTC)}}
 
{{question-ok|[[Участник:StasFomin|StasFomin]] 21:35, 15 декабря 2024 (UTC)}}
 +
 +
[[Категория:Параллельные вычисления]]

Текущая версия на 21:38, 15 декабря 2024

Вопрос: Q52-4c9f66

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

Рассмотрим бухгалтерскую операцию, состоящую из двух транзакций — и , которые необходимы для сохранения суммы A + B + C неизменной.

Какая из следующих пар транзакций всегда будет приводить к сериализуемому расписанию?

1
                 
    Lock A;        Lock B;
    A = A - 10;    B = B - 20;
    Unlock A;      Unlock B;
    B = B + 10;    C = C + 20;
2
                 
    A = A - 10;    Lock B;
    Lock B;        B = B - 20;
    B = B + 10;    Unlock B;
    Unlock B;      C = C + 20;
3
                 
   Lock A;        Lock A;
   A = A - 10;    B = B - 20;
   Unlock A;      Unlock A;
   B = B + 10;    C = C + 20;

Ответы

  • Только 1
  • Правильный ответ: Только 2
  • Только 3
  • 1 и 2
  • 2 и 3

Объяснение

Исходники — вопрос 52 на 36 странице книги «2004-gre-cs-practice-book.pdf»

Общий ресурс-регистр, который модифицируют обе транзакции — B, его и надо лочить-анлочить перед операцией, другие локи не помогут никак.