Page 107 - 6571
P. 107
7. Згідно яких правил відбувається синхронізація за допомо-
гою прапорців?
8. У якому випадку є ефективною синхронізація з активним
очікуванням?
9. Які існують недоліки у бар’єрної синхронізації із керуючим
процесом?
10. Яким чином реалізується бар’єр з об’єднуючим деревом?
ЛЕКЦІЯ 13
ОСНОВНІ ГРУПИ СЕМАФОРІВ ТА
ЇХ РЕАЛІЗАЦІЯ
13.1 Синтаксис і семантика семафорів
Більшість протоколів з активним очікуванням досить склад-
нідля практичної реалізації. Окрім того, немає чіткої межі між
змінними для синхронізації і змінними для обчислень, що ускла-
днює розробку і використання протоколів з активним очікуван-
ням.
Ще один недолік активного очікування – його неефектив-
ність в більшості багатопоточних програм. Зазвичай кількість
процесів більша числа процесорів, за винятком синхронних пара-
лельних програм, де на кожен процес припадає по одному проце-
сору, тому активне очікування процесу стає більш ефективним,
якщо під час нього використовувати процесор для виконання ін-
шого процесу.
Синхронізація є основою паралельних програм, тому для ро-
зробки правильних протоколів синхронізації бажано мати спеціа-
льні засоби, які можна використовувати для блокування призу-
пинених процесів. Першими такими засобами синхронізації, які
не втратили актуальності і сьогодні, стали семафори. Вони забез-
печують захист критичних секцій і можуть використовуватися
систематично для реалізації таких процедур, як планування та си-
гналізація.
Ідея семафора відповідно до назви взята з методу синхроні-
зації руху поїздів, прийнятого на залізниці. Залізничний семафор
– це «сигнальний прапорець», що показує, чи шлях попереду ві-
льний або зайнятий іншим поїздом. У процесі руху поїзда сема-
106