Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
23.05.2015
Размер:
1.7 Mб
Скачать

6.5Семафор

В этом примере, как и в примере из предыдущего параграфа, предполагается, что заданы n процессов

P1, . . . , Pn (6.24) причём для каждого i = 1, . . . , n процесс Pi имеет вид

Pi = (αi? ai1 . . . aiki βi?)

где

αi? и βi? – служебные действия, представляющие собой сигналы о начале и о конце очередного сеанса работы процесса Pi, и

ai1, . . . , aiki – собственные действия процесса Pi.

Мы хотели бы создать такой процесс P , в котором все процессы P1, . . ., Pn работали бы совместно, причём эта совместная работа должна подчиняться следующему режиму:

если в некоторый момент времени какой-либо из процессов Pi начал очередной сеанс своей работы исполнением действия αi?,

то этот сеанс должен быть непрерываемым, т.е. все последующие действия процесса P должны быть действиями процесса Pi, до тех пор, пока Pi не завершит этот сеанс.

Данное требование можно выразить в терминах трасс: каждая трасса процесса P должна иметь вид

αi? ai1 . . . aiki βi? αj? aj1 . . . ajkj βi? . . .

т.е. каждая трасса tr процесса P должна представлять собой конкатенацию трасс

tr1 · tr2 · tr3 . . .

каждая из которых представляет собой сеанс работы какого-либо процесса из (6.24).

163

Искомый процесс P мы определим следующим образом:

P := ( P1[f1] | . . . | Pn[fn] | Sem ) \ {π, ϕ}

где

Sem – процесс, предназначенный для задания требуемого режима работы процессов P1, . . ., Pn, данный процесс называется семафором и имеет вид

Sem = ( π! ϕ! )

• fi : αi 7→π, βi 7→ϕ

Спецификация процесса P представляется следующим соотношением:

+

P ≈ τ.a11. . . . a1k1 . P + . . . + (6.25) + τ.an1. . . . ankn . P

Доказательство того, что процесс P удовлетворяет этой спецификации, производится при помощи теоремы о разложении:

P = ( P1[f1]

| . . . | Pn[fn] | Sem ) \ {π, ϕ}

 

 

 

π?.an1

. . . . .a1nkn ϕ?.Pn[fn|]

 

 

|

 

 

 

 

π, ϕ

 

 

 

 

π?.a11. . . . .a1k .ϕ?.P1[f1] . . .

 

 

\ {

 

 

 

 

|

π!. ϕ!. Sem

 

|

 

 

 

 

 

}

 

|

a11. . . . .a1k .ϕ?.P1[f1] . . .

|

 

 

 

 

 

 

 

 

 

τ.

π?.an1. . .1. .ankn ϕ?.Pn|

[fn]

 

 

\ {

π, ϕ

 

+

 

| ϕ!. Sem

 

 

 

|

 

 

 

 

}

 

 

 

|

 

 

 

 

 

 

 

 

 

 

 

 

 

+ . . . +

an1. . . . .ankn1ϕ?.Pn[fn]

|

 

 

 

|

 

 

 

π, ϕ

 

+τ.

 

 

 

 

 

 

 

 

 

π?.a11. . . . .a1k .ϕ?.P1[f1]

|

. . .

 

\ {

 

 

}

 

 

|

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|ϕ!. Sem

. . .

+

τ.a11. . . . a1k1 .τ. P + . . . + τ.an1. . . . ankn .τ. P ≈

+

≈ τ.a11. . . . a1k1 . P + . . . + τ.an1. . . . ankn . P

В заключение обратим внимание на следующий момент. Наличие префикса “τ.” в каждом слагаемом в правой части соотношения (6.25) означает, что выбор альтернативы в начальный момент функционирования процесса P определяется

164

не в окружающей среде процесса P ,

а внутри процесса P .

Если бы этого префикса не было, то это означало бы, что выбор альтернативы в начальный момент функционирования процесса P определяется окружающей средой процесса P .

165