Page 77 - 6571
P. 77

{x == 0 Ùy == 0}
                  <x = x+1; {x == 1Ùy == 0}; y = y+1;>
                  {x == 1 Ùy == 1}

                  Ці дві властивості неподільних дій призводять до виникнення

            двох способів використання синхронізації для усунення взаємно-
            го впливу: взаємного виключення та умовної синхронізації. Розг-
            лянемо наступний фрагмент:

                  coP : ... a;...
                       1
                    // P : ...         S  ;{C}  S  ;...
                           2            1         2
                  oc

            де a – оператор присвоєння в процесі  P , а S  та S  – оператори в
                                                                   1
                                                                                  2
                                                                          1
            процесі  P .  Критичне  твердження  C   є  передумовою  оператора
                          2
             S .
              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

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




                                                        76
   72   73   74   75   76   77   78   79   80   81   82