Page 110 - 6571
P. 110
конує критичну секцію коду, в якій відбувається доступ до деяко-
го спільного ресурсу, а потім некритичну секцію коду, в якій ко-
жен процес працює тільки з локальними об’єктами. Кожному
процесу, що знаходиться у своїй критичній секції, потрібен взає-
мовиключний доступ до ресурсу.
Семафори дозволяють спростити розв’язок задачі критичної
секції. У лістингу 4 було представлено рішення, в якому
використовуються змінні для блокування процесу, зокрема
змінна lock має значення «істина», коли жоден процес не
знаходиться у своїй критичній секції, і значення «брехня» в
протилежному випадку. Нехай значення «істина»
представляється як 1, а «хиба» – як 0. Тоді процес перед входом в
критичну секцію повинен очікувати, поки значення змінної lock
не стане рівним 1, і після того як це сталося присвоїти їй
значення 0. Виходячи з критичної секції, процес повинен
присвоїти змінної lock значення 1.
Розглянемо роботу аналога одномісного семафора, що нази-
вається м’ютексом (слово mutex походить від mutual exclusion –
«взаємне виключення»), який використовується для синхронізації
одночасно виконуваних потоків.
М’ютекс відрізняється від семафора тим, що тільки потік,
який ним володіє може його перевести в інший стан. Вони реалі-
зовані в більшості відомих на даний час операційних системах і
основне їх призначення – організація процедури взаємного ви-
ключення для декількох процесів.
М’ютекс представляє собою двійковий семафор, який може
перебувати в одному із двох станів – сигнальному або
несигнальному (відкритий і закритий відповідно). Коли певний
процес стає власником об’єкта mutex, то останній переводиться в
несигнальний стан. Якщо потік покидає м’ютекс, то його стан
відповідно стає сигнальним.
Завдання м’ютекса полягає у захисті об’єкта від доступу до
нього з інших процесів, відмінних від того, який заволодів м'юте-
ксом. М’ютекс перебуває в сигнальному стані тільки тоді, коли
він не належить жодному із процесів. Як тільки хоча б один про-
цес отримує контроль над м’ютексом, він переходить у несигна-
льний стан і залишається в ньому доти, поки не буде звільнений
власником. На відміну від критичних секцій, м’ютекси дозволя-
109