Блокування.

План

Література

Контрольні питання

1. В чому полягає різниця між масивом та структурою? Що є спільного між ци-ми поняттями?

2. Навіщо потрібна операція звертання до елементу структури? Яким знаком позначається ця операція?

3. За допомогою якого ключового слова оголошується структура?

4. В чому різниця між міткою структури та екземпляром структури?

5. Чи є сенс визначати структуру без оголошення екземплярів відповідного структурного типу? Поясніть, чому.

 


 

Б. Керниган, Д. Ритчи. Язык программирования С. Пер. с англ. – М.: издательский дом «Вильямс», 2003 – 234 с.

Б. Джонс, П. Эйткен. Освой самостоятельно С. Пер. с англ. – М.: издательский дом «Вильямс», 2005 – 800 с.

Э. Кёниг, Б. Му. Эффективное программирование на С++. Серия С++ In Depth. Пер. с англ. – М.: издательский дом «Вильямс», 2002 – 384 с.

 

 

1.Загальні відомості і різновиди блокування.

Взаємоблокування.

2.Ступінь деталізації при блокуванні.

 

Блокування − процедура, що викликається для керування паралельним доступом до даних. Коли деяка трансакція отримує доступ до БД, механічним блокуванням дозволяє заборонити спроби отримання доступу до тих самих даних з боку інших трансакцій.

Всі механізми виконання блокування побудовані на основі одного фундаментального принципу − трансакція повинна запросити виконати блокування для читання (розділене) або для запису (виключне) деякого елементу даних перед тим, як вона зможе виконати в базі відповідну операцію читання або запису.

Встановлене блокування перешкоджає модифікації елементу даних іншими транзакціями. Виключне блокування забороняє навіть читання даних. Розмір заблокованого елементу визначається мірою деталізації встановленого блокування.

Розподілене блокування. Якщо в трансакції встановлене розподілене бллокування елементуданих, то в ній може виконатися читання цього елементу, але не його оновлення.

Виключне блокування. Якщо в трансакції встановлене блокування елемента даних, то в ній може виконуватись і читання і оновлення цього елементу.

Оскільки розподільні блокування не можуть слугувати причиною конфліктів припускається встановлювати розподілені блокування (для читання) для одного і того ж елементу даних з боку кількох трансакцій.

 

Порядок використання блокувань:

- Кожна трансакція, якій необхідно отримати доступ до елементу даних, спочатку повинна виконати його блокування. Трансакція може «попрохати» розподілене блокування (доступ лише для читання) або виключне (доступ і для читання і для запису);

- Якщо елемент на даний момент часу не заблоковано іншою трансакцією, його блокування буде виконано успішно;

- Якщо елемент в даний момент часу заблоковано СУБД перевіряє чи сумісне наявне блокування з записаним. Якщо типи блокувань сумісні ( розподілені), запит задовольняється. В противному разі трансакція, що зчитувала блокування, переходить до стану очікування, який буде продовжуватись поки не зніметься поточне блокування;

- Трансакція продовжує утримувати блокування елементи даних до тих пір, поки не звільнить його явним чином – чи то в ході свого виконання чи по завершенні. Після цього елемент даних стане доступним до інших трансакцій.

Взаємоблокування − це тупікова ситуація, яка виникає, коли дві або більше трансакцій знаходиться у взаємоочікуванні звільнення блокувань, утримуваних одна одною.

Нажаль, метод усунення взаємоблокувань лише один − виконання однієї з трансакцій повинно бути припинене. Існує два загальних методи обробки взаємоблокувань.