Page 63 - 4868
P. 63

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

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

                     {x == 0  y == 0}
                     <x = x+1; {x == 1 y == 0}; y = y+1;>
                     {x == 1  y == 1}
                     Ці  дві  властивості  неподільних  дій  призводять  до  виникнення  двох
               способів  використання  синхронізації  для  усунення  взаємного  впливу:
               взаємного  виключення  та  умовної  синхронізації.  Розглянемо  наступний

               фрагмент:
                     co P : ... a;...
                         1
                       // P : ...  S ;{C} S ;...
                              2          1        2
                     oc

               деa   –  оператор  присвоєння  в  процесі  P ,  аS та  S   –  оператори  в  процесі
                                                                  1     1     2
                P .Критичне твердженняC є передумовою оператора  S .
                 2                                                               2
                     Припустимо,  щоa впливає  на  C .Перший  спосіб  позбутися  даного
               впливу  полягає  у  використанні  взаємного  виключення,  з  метою
               «приховування»  твердженняC  від  оператораa .Для  цього  оператори S та  S
                                                                                                     1     2
               другого процесу можна об’єднати в єдину неподільну дію.

                     <S ; S ;>
                        1   2
                     Тепер  оператори  S та  S виконуються  неподільним  чином,  і  стан
                                              1       2
               змінних стає невидимим для інших процесів.
                     Інший  спосіб  уникнути  взаємного  впливу  процесів  –  використання
               умовної синхронізації, з метою посилення передумови оператора a .Зокрема,
               можна замінити присвоєння  a наступною умовною неподільною дією:

                     <await (!CorB)a;>

               де  B –  предикат,  що  характеризує  множину  станів,  при  яких  виконання
               присвоєння  a  зробитьCістинним. Таким чином, в даному виразі втручання
               усувається  або  очікуванням  того,  щоC стане  хибним  (тоді  оператор  S   не
                                                                                                       2
               буде виконаним), або забезпеченням того, що виконання a зробитьC істинним
               (що дозволить виконання оператора S ).
                                                             2

                     Запитання для самоперевірки
                     1. Які існують три основні методи усунення взаємного впливу процесів
               один на одного?
                     2. Що  розуміють  під  множиною  посилань  процесу  в  контексті
               паралельної програми?
                     3. За якої умови два процеси не впливають один на одного?

                     4. При  яких  умовах  змінна  називається  глобальним  інваріантом  по
               відношенню до множини процесів?
                     5. У чому полягає суть процесу взаємного виключення?
   58   59   60   61   62   63   64   65   66   67   68