Page 112 - 4868
P. 112
Ошибка! Стиль не определен. 110
операції P, призупиняє процес, а операція signal, як і операція V, відновлює
його роботу. Однак існує дві істотні відмінності. По-перше, операція wait
завжди призупиняє процес до подальшого виконання операції signal, тоді
як операція P виконує зупинку процесу тільки у випадку, якщо поточне
значення семафора дорівнює нулю. По-друге, операція signal не продукує
жодних дій, якщо не існує процесів, призупинених на умовній змінній, тоді
як операція V або запускає призупинений процес, або збільшує значення
семафора, тобто стан виконання операції signal не запам’ятовується. Через
дані відмінності умовна синхронізація з використанням моніторів
реалізується по іншому ніж із семафорами.
Спочатку для моніторів був запропонований порядок «сигналізувати і
очікувати», однак SC був прийнятий в операційній системі Unix, мові
програмування Java і бібліотеці Pthreads. Перевагу було віддано порядку SC,
оскільки він сумісний із плануванням процесів на основі пріоритетів і має
більш просту формальну семантику.
Запитання для самоперевірки
1. Що представляють собою монітори в контексті паралельної
програми?
2. Які недоліки притаманні семафорам у порівнянні із моніторами?
3. Який принцип роботи програмного монітора?
4. Якими трьома властивостями володіє програмний монітор?
5. Що виступає інваріантом програмного монітора у паралельній
програмі?
6. Яким чином у моніторі реалізується процедура взаємного
виключення?
7. Для чого у програмному моніторі використовуються умовні змінні?
8. Які існують два варіанти виконання процесів в контексті програмного
монітора?
9. В яких станах може перебувати процес під час синхронізації в
моніторі?
10. Який спосіб сигналізації використовує метод передачі умови?
ЛЕКЦІЯ 16. МЕТОДИ СИНХРОНІЗАЦІЇМОНІТОРІВ
16.1. Задача про читачів і письменників(сигнал сповіщення)
Нагадаємо, що процес-читач може тільки зчитувати записи бази даних, а
процес-письменник може їх переглядати та змінювати. Читачі можуть
звертатися до бази даних одночасно, а письменникам необхідний винятковий
доступ. Хоча база даних виступає загальнии ресурсом, проте її не можна
продставити у вигляді монітора, оскільки тоді читачі не зможуть працювати
із нею паралельно (весь код всередині монітора виконується із взаємним
виключенням). Замість цього монітор використовується для впорядкування