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

UptoLike

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

176
Для процесса - производители: Для процесса - потребители:
).()1(
,)()1(
),()1(
,)1(
,)()1(
КСБП
КСБП
БП
11
11
1
1
111
11
k
2
1
1
1
1,11
SS
StS
SSStS
SS
SSStS
SSSSStS
SSStS
pn
nrr
pkmp
nkk
kЗ
(6.23а)
Для последовательной компоненты алгоритма управления:
SSSS
t
S
kkm 2
2
1
1
)1(
(6.23в)
6.6. Формализация алгоритмов управления
взаимодействующими параллельными процессами
в задаче «читатели-писатели»
Задача «читатели-писатели», наряду с задачей «производители-
потребители», является еще одним примером классической задачи
синхронизации двух классов процессов, которые имеют доступ к некоторому
общему разделяемому ресурсу (РР), в качестве которого может быть,
например, общая область памяти. Процессы первого класса (писатели)
должны иметь монопольный доступ к ресурсу. Процессы второго класса
(читатели) могут обращаться к данному ресурсу параллельно с любым
числом процессов этого же класса, так как осуществляют чтение без
изменения содержимого памяти. В качестве примера взаимодействия таких
процессов может служить система продажи авиабилетов, позволяющая
организовывать продажу билетов и изменять таким образом списки
пассажиров и число свободных мест одновременно несколькими кассирами.
Если в такой системе не будут предусмотрены правила, регламентирующие
доступ к базам данных нескольких программ, то вполне возможна продажа
билетов на одно и тоже место нескольким пассажирам. Для исключения
таких событий не должно допускаться параллельное исполнение двух
процессов, которые читают и изменяют значение одного и того же объекта
[73].
Словесная формулировка рассматриваемого варианта алгоритма
взаимодействия параллельных процессов задачи «читатели-писатели»
характеризуется следующими особенностями [61,70]. Алгоритм
взаимодействия процессов должен гарантировать, чтобы в любой момент
времени только один читатель или один писатель могли войти в критический
.)1(
,)()1(
)б23.6(,)1(
,)()1(
,)S()1(
БO
БO
БOБП
2
2
2
2
2
2
222
2
2
1
1
2
2
2
2,22
SSt
S
S
SSt
S
SSSStS
S
SSSSS
S
tS
SStS
p
n
nr
r
pkmp
nkkk
kЗ
 Для процесса - производители:                            Для процесса - потребители:
                                                1                         2
                  S1 (t  1)  ( S1,З  S1 ) S kS,2 (t 1)  (S2,З  S2 )Sk ,
                                                        2                 1                   2
                     S k1 (t  1)  S1 S k2 S БП  SSk1k S(tn1, 1)  S2 Sk (SБП  S1SБO)  Sk S 2n ,
                     S 1p (t  1)  S m S k1  S 1p (SSp2БП
                                                          (t     КСS
                                                             1S)      Sk2  S p2SБO, (6.23б)
                                                                    ),m(6.23а)

                     S r1 (t  1)  ( S1  S r1 )S n1S, 2r (t 1)  (S2  Sr2 ) S 2n ,
                     S n1 (t  1)  S 1p (S БП  S КС2            2
                                                   Sn).(t 1)  S p SБO.


            Для последовательной компоненты алгоритма управления:
                                         1          2
                      S m (t  1)  S k S1  S k S 2                 (6.23в)


       6.6. Формализация алгоритмов управления
   взаимодействующими параллельными процессами
              в задаче «читатели-писатели»
       Задача «читатели-писатели», наряду с задачей «производители-
потребители», является еще одним примером классической задачи
синхронизации двух классов процессов, которые имеют доступ к некоторому
общему разделяемому ресурсу (РР), в качестве которого может быть,
например, общая область памяти. Процессы первого класса (писатели)
должны иметь монопольный доступ к ресурсу. Процессы второго класса
(читатели) могут обращаться к данному ресурсу параллельно с любым
числом процессов этого же класса, так как осуществляют чтение без
изменения содержимого памяти. В качестве примера взаимодействия таких
процессов может служить система продажи авиабилетов, позволяющая
организовывать продажу билетов и изменять таким образом списки
пассажиров и число свободных мест одновременно несколькими кассирами.
Если в такой системе не будут предусмотрены правила, регламентирующие
доступ к базам данных нескольких программ, то вполне возможна продажа
билетов на одно и тоже место нескольким пассажирам. Для исключения
таких событий не должно допускаться параллельное исполнение двух
процессов, которые читают и изменяют значение одного и того же объекта
[73].
       Словесная формулировка рассматриваемого варианта алгоритма
взаимодействия параллельных процессов задачи «читатели-писатели»
характеризуется    следующими      особенностями    [61,70].   Алгоритм
взаимодействия процессов должен гарантировать, чтобы в любой момент
времени только один читатель или один писатель могли войти в критический
                                                                                                        176