Недетерминированные автоматы в проектировании систем параллельной обработки. Вашкевич Н.П. - 162 стр.

UptoLike

Составители: 

162
Для простоты рассмотрения вопросов реализации процедуры
обращения к разделяемым данным будем считать, что для выполнения этой
процедуры необходимо только два оператора (два события
S
m
и
S
nk
).
Проследим работу рассматриваемого алгоритма управления
параллельными процессами по ГСАП (рис.6.1) и системе уравнений (6.8а,
6.8б, 6.8в). Для определенности был принят приоритет первого процесса
выше приоритета второго процесса.
Будем рассматривать самый наихудший вариант межпроцессного
взаимодействия, когда оба процесса одновременно достигли операторов,
определяющих заявки на доступ к разделяемым данным (события
S
З,1
=
)
1
З,2
S
. Тогда воспринимается для реализации заявка того процесса,
который не находится в данный момент времени в критическом участке. В
том случае, если оба процесса не находятся в критическом участке, то
воспринимаются обе заявки
)
1
(
21
SS
, т.е. оба процесса будут находится в
режиме пассивного ожидания доступа к разделяемым данным. При этом
будет открыт доступ к разделяемым данным для того процесса, который
имеет наивысший приоритет
Так как для нашего предположения наивысшим приоритетом обладает
первый процесс, то будет истинным событие
)1(
11
SS
kk
. Одновременно с
зарождением события
S
k
1
первый процесс приостанавливает свою работу и
ждет окончания процедуры обращения к разделяемым данным. Это
обеспечивается зарождением события
S
r
1
и его сохранением
)1(
1
S
r
до тех
пор, пока не закончится процедура обращения к разделяемым данным и
первый процесс выйдет из критического участка при
1
1
S
p
. При
1
11
SS
pr
первый процесс, приостановленный на период обращения к разделяемым
данным, продолжит свою работу
)
1
(
прод,1
S
.
В том случае, когда были восприняты заявки на обслуживание от обоих
процессов, то после выхода первого процесса из критического участка
)0(
1
S
k
и в связи с тем, что событие
S
1
к этому времени также будет равно
нулю, зародится событие
S
k
2
, определяющее вход второго процесса в
критический участок. После этого работа алгоритма управления доступом
второго процесса к разделяемым данным будет такой же, как и работа
алгоритма управления для первого процесса.
Для большей наглядности при изучении работы алгоритма управления
взаимодействующими параллельными процессами при обращении к
разделяемым данным можно воспользоваться временными диаграммами,
отражающими организацию синхронизации процессов, которая реализуется
событиями, представленными в управляющем алгоритме.
S
1
S
1
S
1
S
1
S
1
S
1
S
1
S
1
S
1
S
k
1
S
k
1
S
k
1
S
k
1
S
k
1
S
k
1
        Для простоты рассмотрения вопросов реализации процедуры
обращения к разделяемым данным будем считать, что для выполнения этой
  процедуры необходимо только два оператора (два события S m и S nk ).
                 Проследим работу рассматриваемого алгоритма управления
  параллельными процессами по ГСАП (рис.6.1) и системе уравнений (6.8а,
   6.8б, 6.8в). Для определенности был принят приоритет первого процесса
                            выше приоритета второго процесса.
             Будем рассматривать самый наихудший вариант межпроцессного
  взаимодействия, когда оба процесса одновременно достигли операторов,
        определяющих заявки на доступ к разделяемым данным (события
  S 1,З = S 2,З  1) . Тогда воспринимается для реализации заявка того процесса,
 который не находится в данный момент времени в критическом участке. В
     том случае, если оба процесса не находятся в критическом участке, то
воспринимаются обе заявки (S 1  S 2  1) , т.е. оба процесса будут находится в
   режиме пассивного ожидания доступа к разделяемым данным. При этом
   будет открыт доступ к разделяемым данным для того процесса, который
                               имеет наивысший приоритет
         Так как для нашего предположения наивысшим приоритетом обладает
  первый процесс, то будет истинным событие S1k (S1k  1) . Одновременно с
 зарождением события S 1k первый процесс приостанавливает свою работу и
       ждет окончания процедуры обращения к разделяемым данным. Это
 обеспечивается зарождением события S 1r и его сохранением (S1r  1) до тех
   пор, пока не закончится процедура обращения к разделяемым данным и
  первый процесс выйдет из критического участка при S 1p  1. При S 1r S 1p  1
  первый процесс, приостановленный на период обращения к разделяемым
                        данным, продолжит свою работу (S 1,прод  1) .
       В том случае, когда были восприняты заявки на обслуживание от обоих
    процессов, то после выхода первого процесса из критического участка
   1
 (S k  0) и в связи с тем, что событие S1 к этому времени также будет равно
     нулю, зародится событие S 2k , определяющее вход второго процесса в
 критический участок. После этого работа алгоритма управления доступом
    второго процесса к разделяемым данным будет такой же, как и работа
                  алгоритма управления для первого процесса.
        Для большей наглядности при изучении работы алгоритма управления
      взаимодействующими параллельными процессами при обращении к
  разделяемым данным можно воспользоваться временными диаграммами,
отражающими организацию синхронизации процессов, которая реализуется
           событиями, представленными в управляющем алгоритме.
   S1     S1    S1                            S1    S1     S1    S1    S1    S1
    1             1     1     1     1                                         1
   Sk           Sk    Sk    Sk    Sk                                        Sk

                                                                              162