Проектирование баз данных для экономических информационных систем в среде сервера данных ORACLE 7.3. Меркулова Т.А - 57 стр.

UptoLike

59
расписывают выполнение команд с учетом времени старта каждой
команды. Такие последовательности команд называют расписанием.
Если расписание подчиняется правилу, то говорят о легальном
расписании.
Пусть в распоряжении программиста имеются следующие команды:
lock a – заблокировать ресурсы a;
unlock a – разблокировать ресурсы a.
Решение проблемы общего ресурсаблокировки будет следующим.
T1: lock a
read a
a:=a+1
write a
unlock a
T2: lock a
read a
a:=a+1
write a
unlock a
Все будет выполняется последовательно, а не параллельно. Наличие
блокировок не исключает двух видов противоречий: бесконечного
ожидания и тупиков.
T1: lock a, unlock a
T2 , T3 : lock a, unlock a
T4:
Таким образом T2 может ждать бесконечно. Проблему бесконечных
ожиданий решает планировщик, встроенный в сервер. Например: с
помощью дисциплины обслуживания «первым вошелпервым
получил ресурс».
Появление тупиков связано с использованием кратных ресурсов.
T1: lock a; lock b, ..., unlock a, unlock b
T2: lock b; lock a, ..., unlock b, unlock a
Проблему тупиков можно решить двумя способами.
1. Сервер данных должен уметь отыскивать тупики, аннулировать
результаты транзакции и активизировать только одну из них. Для
реализации такого способа необходим математический аппарат,
позволяющий выявить тупики.
2. Разработчик транзакций должен придерживаться некоторых правил
проектирования: разработать линейный порядок для всех ресурсов и
блокировать ресурсы во всех транзакциях только в этом порядке.