Page 78 - 6571
P. 78
1. Які існують три основні методи усунення взаємного впливу
процесів один на одного?
2. Що розуміють під множиною посилань процесу в контексті
паралельної програми?
3. За якої умови два процеси не впливають один на одного?
4. При яких умовах змінна називається глобальним інваріан-
том по відношенню до множини процесів?
5. У чому полягає суть процесу взаємного виключення?
6. У чому полягає суть процесу умовної синхронізації?
7. Які властивості неподільних дій забезпечують можливість
реалізації взаємного виключення та умовної синхронізації?
ЛЕКЦІЯ 10
ЗАДАЧА КРИТИЧНОЇ СЕКЦІЇ ТА
АКТИВНІ БЛОКУВАННЯ
10.1 Постановка задачі критичної секції
В паралельних програмах використовуються два основних
типи синхронізації: 1) взаємне виключення і умовна синхронізація.
Одним із видів реалізацій механізму синхронізації є використан-
ня критичних секцій. Завдання критичної секції пов’язане з про-
грамною реалізацією неподільних дій. Дана проблема виникає під
час написання більшості паралельних програм.
Задача критичної секції – це одна із класичних задач парале-
льного програмування. Вона стала першою всебічно вивченою
проблемою, але інтерес до неї не згасає, оскільки критичні секції
коду зустрічаються в більшості паралельних програм. Крім того,
рішення даної задачі можна використовувати для реалізації дові-
льних операторів await.
У задачі критичної секції передбачається, що n процесів не-
одноразово виконують спочатку критичну, а потім некритичну
секцію коду. Критичній секції передує протокол входу, а слідує
за нею протокол виходу. Таким чином, передбачається, що про-
цес має наступний вигляд:
process CS[i = 1 to n] {
while (true) {
протокол входу;
77