2004-gre-cs-practice-book.pdf/Q52 — различия между версиями
Материал из DISCOPAL
StasFomin (обсуждение | вклад) (Новая страница: « == Вопрос: Q52-4c9f66 == <i>Тут вставьте перевод вопроса. Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80…») |
StasFomin (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | |||
== Вопрос: Q52-4c9f66 == | == Вопрос: Q52-4c9f66 == | ||
+ | [https://en.wikipedia.org/wiki/Database_transaction_schedule Расписание транзакций] является ''сериализуемым'', если его действие эквивалентно действию некоторого последовательного расписания. | ||
− | < | + | Рассмотрим бухгалтерскую операцию, состоящую из двух транзакций — <m>T_1</m> и <m>T_2</m>, которые необходимы для сохранения суммы ''A + B + C'' неизменной. |
− | + | ||
− | + | ||
− | + | ||
− | + | Какая из следующих пар транзакций всегда будет приводить к сериализуемому расписанию? | |
− | + | ||
− | + | ||
− | + | ;1: | |
− | + | <m>T_1</m> <m>T_2</m> | |
− | + | Lock A; Lock B; | |
− | + | A = A - 10; B = B - 20; | |
− | + | Unlock A; Unlock B; | |
+ | B = B + 10; C = C + 20; | ||
− | < | + | ;2: |
− | + | <m>T_1</m> <m>T_2</m> | |
− | + | A = A - 10; Lock B; | |
+ | Lock B; B = B - 20; | ||
+ | B = B + 10; Unlock B; | ||
+ | Unlock B; C = C + 20; | ||
+ | ;3: | ||
+ | <m>T_1</m> <m>T_2</m> | ||
+ | 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 | ||
=== Объяснение === | === Объяснение === | ||
− | + | {{cstest-source|2004-gre-cs-practice-book.pdf|36|52}} | |
− | {{cstest-source|2004-gre-cs-practice-book.pdf| | + | |
− | + | Общий ресурс-регистр, который модифицируют обе транзакции — B, его и надо лочить-анлочить перед операцией, другие локи не помогут никак. | |
− | {{question-ok|}} | + | {{question-ok|[[Участник:StasFomin|StasFomin]] 21:35, 15 декабря 2024 (UTC)}} |
Версия 21:35, 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, его и надо лочить-анлочить перед операцией, другие локи не помогут никак.