Page 96 - 4868
P. 96

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

                     Отже,  нами  було  окремо  вирішено  дві  підзадачі  синхронізації  (між
               одним  виробником  і  споживачем  та  між  декількома  виробниками  і
               споживачами), які пізніше були об’єднанні для отримання повного рішення
               задачі  синхронізації  між  декількома  процесами.  Таким  чином,  скрізь,  де
               присутні  декілька  видів  синхронізації,  доцільно  реалізовувати  їх  окремо,  а
               потім об’єднувати рішення в одне ціле.


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

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



                         ЛЕКЦІЯ 14. МЕХАНІЗМ ВЗАЄМНОГО ВИКЛЮЧЕННЯ
                                                      ПРОЦЕСІВ


                     14.1. Задача про філософів, що обідають

                     Розглянемо дві класичні задачі: про філософів, що обідають та читачів і
               письменників  на  основі  яких  показана  реалізація  вибіркового  взаємного
               виключення. Рішення задачі про філософів, що обідають ілюструє реалізацію
               взаємного виключення між процесами, конкуруючими за доступ до множин
               спільних змінних, що перетинаються між собою, а читачів і письменників –
               реалізацію  комбінації  паралельного  і  виняткового  доступу  до  спільних
               змінних.
                     Хоча задача про філософів, що обідають має більш навчальне значення
               ніж практичне, проте вона аналогічна реальним проблемам, в яких процесу
               необхідний одночасний доступ до більш ніж до одного ресурсу. Тому вона
               часто  використовується  для  ілюстрації  та  порівняння  різних  механізмів
               синхронізації.
                     Формулювання даної задачі звучить наступним чином: п’ять філософів
               сидять біля круглого столу. Вони проводять життя, чергуючи прийоми їжі і
               роздуми. У центрі столу знаходиться велика тарілка спагеті. Спагеті довгі і
               заплутані,  філософам  важко  управлятися  з  ними,  тому  кожен  з  них,  щоб
               поїсти,  повинен  користуватися  двома  виделками.  Проте,  філософам  дали
               всього  п’ять  виделок.  Між  кожною  парою  філософів  лежить  одна  виделка,
               тому  вони  домовилися,  що  кожен  з  них  буде  користуватися  тільки  тими
               виделками, які лежать поруч з ним (зліва і справа). Завдання полягає в тому,
   91   92   93   94   95   96   97   98   99   100   101