Page 105 - 4868
P. 105

103                                                              Ошибка! Стиль не определен.

               одному  із  таких  процесів,  який  у  свою  чергу  виконує  критичну  секцію  і
               передає  естафету  наступному  процесу.  В  іншому  випадку  естафета
               передається  наступному  процесу,  який  вперше  намагається  увійти  в
               критичну секцію, тобто наступному процесу, що виконує операцію P(e).


                     Запитання для самоперевірки

                     1. Яке формулювання задачі про філософів, що обідають?
                     2. Які  операції  повинні  бути  реалізовані  для  вирішення  задачі  про
               філософів, що обідають?
                     3. У чому полягає суть взаємного блокування процесів?
                     4. Яким чином уникнути процедури взаємного блокування?
                     5. Яке формулювання задачі про читачів та письменників?
                     6. Яких  предметних  областей  стосується  задача  про  читачів  та
               письменників?
                     7. У чому полягає рішення задачі про читачів та письменників як задачі
               взаємного виключення?
                     8. У  чому  полягає  рішення  задачі  про  читачів  та  письменників  з
               використанням умовної синхронізації?
                     9. У  чому  полягає  рішення  задачі  про  читачів  та  письменників  через
               метод передачі естафети?
                     10. Що собою  представляє метод програмування під назвою  «передача
               естафети»?



                         ЛЕКЦІЯ 15. ПРИНЦИП РОБОТИ МОНІТОРА ТА ЙОГО
                                                     РЕАЛІЗАЦІЯ


                     15.1. Синтаксис і семантика моніторів

                     Семафори  виступають  фундаментальним  механізмом  синхронізації.  Їх
               використання        полегшує       програмування         взаємного       виключення        та
               сигналізації,  причому  їх  можна  застосовувати  систематично  при  вирішенні
               будь-яких       задач     пов’язаних       із   синхронізацією.        Однак      семафори
               представляють  собою  низькорівневий  механізм  синхронізації  декількох
               процесів  (використовуючи  їх  можна  легко  наробити  помилок).  Наприклад,
               програміст повинен стежити за тим, щоб випадково не пропустити виклики
               операцій P та V або не задати їх більше, ніж потрібно. Можна неправильно
               вибрати  тип  семафора  або  «захистити»  не  всі  критичні  секції.  Семафори
               глобальні  по  відношенню  до  всіх  процесів,  тому,  щоб  змінити  роботу
               семафора або іншої спільної змінної, необхідно переглянути всю програму.
               Нарешті,  при  використанні  семафорів  взаємне  виключення  і  умовна
               синхронізація програмуються за допомогою однієї і тієї ж пари примітивів,
               через  що  важко  зрозуміти  призначення  конкретних  операторів  P  та  V.
               Взаємне  виключення  і  умовна  синхронізація  –  це  різні  поняття,  тому  і
               реалізовувати їх краще різними способами.
                     Монітори  –  це  програмні  модулі,  які  забезпечують  більшу
   100   101   102   103   104   105   106   107   108   109   110