Page 137 - 6571
P. 137

зберігає винятковий доступ до монітора, а процес, який отримав
            сигнал, почне роботу після того як отримає винятковий доступ до
            монітора.  По  суті,  операція  signal  просто  повідомляє  процес
            про  його  розблокування,  після  чого  він  повертається  в  чергу

            процесів, що очікують входу в монітор.
                  Порядок  «сигналізувати  і  очікувати»  виконує  переривання

            обслуговування.  Процес,  що  виконує  операцію  signal,  передає
            монітор процесу, що був запущений, тобто запущений процес пе-
            рериває роботу сигналізуючого процесу. У даному випадку про-
            цес, що виконав операцію signal додається в чергу процесів, які

            очікують входу монітор.
                  Діаграма станів на рисунку 15.1 ілюструє процедуру синхро-
            нізації  в  моніторах.  Якщо  певний  процес  володіє  монітором,  то

            інший процес, що виконує виклик його процедури поміщається у
            чергу, в іншому випадку даний процес отримує контроль над мо-
            нітором. Коли монітор звільняється (після завершення процедури

            або виконання операції wait), то процес, що знаходиться в «го-
            лові»  черги  може  у  нього  ввійти.  Виконуючи  операцію  wa-
            it(cv),  процес  покидає  монітор  і  поступає  у  чергу,  зв’язану  з

            умовною  змінною.  Коли  процес  із  монітору  виконує  операцію
            signal(cv), то при порядку «сигналізувати і продовжити» (SC)
            процес із «голови» черги переходить у монітор після того як за-

            вершить роботу процес, що знаходиться в моніторі. При порядку
            «сигналізувати і очікувати» (SW) процес, що виконується в моні-
            торі поміщається у чергу, а процес із черги переходить до вико-

            нання в моніторі.


                                            Черга змінної
                                                умови
                                                                   Очікування
                                      SC
                                                          SW
                                               Монітор
                             Вхідна            вільний             Виконання в
                              черга                                  моніторі
               Виклик                                                                   Повернення
                                                   SW

               Рисунок 15.1 – Діаграма станів під час синхронізації в моніторі








                                                        136
   132   133   134   135   136   137   138   139   140   141   142