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. Задача про читачів і письменників(сигнал сповіщення)
                     Нагадаємо, що процес-читач може тільки зчитувати записи бази даних, а
               процес-письменник  може  їх  переглядати  та  змінювати.  Читачі  можуть
               звертатися до бази даних одночасно, а письменникам необхідний винятковий
               доступ.  Хоча  база  даних  виступає  загальнии  ресурсом,  проте  її  не  можна
               продставити у вигляді монітора, оскільки тоді читачі не зможуть працювати
               із  нею  паралельно  (весь  код  всередині  монітора  виконується  із  взаємним
               виключенням).  Замість  цього  монітор  використовується  для  впорядкування
   107   108   109   110   111   112   113   114   115   116   117