Page 124 - 6571
P. 124
виконуватися як критична секція. Аналогічно, неподільним
чином повинні також виконуватися операції віднімання і
перевірка значення змінної nr в протоколі виходу.
Для повного рішення даної задачі, необхідно за допомогою
семафорів реалізувати неподільні дії для виконання описаних
вище операцій. Кожна дія представляє собою критичну секцією,
реалізація яких подана в лістингу 16. Нехай mutexR – семафор,
що забезпечує взаємне виключення процесів-читачів у рішенні
задачі про читачів та письменників поданого в лістинг 22.
Семафор mutexR ініціалізується початковим значенням 1,
початок кожної неподільної дії реалізується операцією
P(mutexR), а кінець – операцією V(mutexR).
Алгоритм в лістингу 22 реалізує рішення задачі з пріорите-
том читачів. Якщо певний процес-читач звертається до бази да-
них, а інший читач і письменник досягають протоколів входу, то
новий читач отримує перевагу перед письменником. Отже, дане
рішення не є справедливим, оскільки нескінченний потік проце-
сів-читачів може постійно блокувати доступ письменників до ба-
зи даних.
123