Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Расчетно-графическая работа №4.doc
Скачиваний:
8
Добавлен:
02.05.2014
Размер:
138.75 Кб
Скачать
          1. Исходный текст программной реализации

ВИ: Вертикальное исполнение

Простой вариант:

def eA222(ccrt, hCycles): // alg A222():

thread.start_new(hCycles.Zh, (ccrt.techsys.head9, )) // Fork(Zh())

hCycles.Zh(ccrt.techsys.head1) // Zh1()

while not ccrt.techsys.head9.yzh: // Join(Zh3()): ожидание (head1.yzh = 9)

pass // пустой оператор тела цикла

// Выполняется активное ожидание события – процессор занят до конца цикл

Более рациональный вариант:

defeA222(ccrt,hCycles): //algA222():

thread.start_new(hCycles.Zh, (ccrt.techsys.head9, )) // Fork(Zh9())

hCycles.Zh(ccrt.techsys.head1) // Zh1()

while not ccrt.techsys.head9.yzh: // Join(Zh9()): ожидание (head1.yzh = 9)

time.sleep(0.1) // Задержка повторения цикла:

// Пассивное (почти пассивное) ожидание события:

// процессор освобождается на время задержки

Алгоритм a323: Параллельная конъюнкции трех команд

          1. Исходное общее описание алгоритма

СФА: Структурная формула алгоритма

Алгоритм этапа обработки (основного перехода тех. операции):

A323 = (Z1 & Z9 & Z4) = (Z1 #& Z9 #& Z4) =

= #(Z1, Z9, Z4)& = # Z1, Z9, Z4 &

Алгоритм операционного цикла // включая загрузку и разгрузку

A = (Zz – A323 – Zr) = (Zz – (Z1 & Z9 & Z4) – Zr)

ССА: Структурная схема алгоритма

Вариант 1 Вариант 2

ДИА:Диаграмма исполнения алгоритма: mz7 = 30, mz3 = 70, mz1 = 10

          1. Многопоточные представления

СФА: Структурная формула алгоритма

A323 = (Z1 & Z9 & Z4) = ((Z1 & Z9) & Z4) = ((Z1 #& Z9) #& Z4)

= #(#(Z1,Z9)&,Z4)& = # #Z1,Z9&,Z4&

ССА: Структурная схема алгоритма / Вариант 3

ССА: Структурная схема алгоритма / Вариант 4

Основной поток (Main)

Дополнительный поток (thread):

команда Z9, упакованная в поток

Дополнительный поток (thread):

команда Z4, упакованная в поток

Структурные операторы:

FZi = F(Zi) = Fork(Zi) – оператор узла вилки:

упаковка в поток и вызов команды Zi в потоке

J&Zi = J&(Zi) = Join_&(Zi) – оператор узла сборки:

ожидание (wait) завершения команды Zi

ВТА: Вербальный текст алгоритма / ПиПТ: Питон-подобный текст

ГИ: Горизонтальное исполнение

ШТА: Шаблон текста алгоритма

A323 = ((Z1 &Z9) &Z4) = ((Z1 #&Z9) #&Z4) =

= #(#(Z1,Z9)&,Z4)& = # #Z1,Z9 &,Z4 & =

= # # Z1Z9 &Z4 & = ##Z1Z9&Z4 & = ##Z1Z9&Z4 & =

= # FZ9Z1J&Z9Z4 & =#FZ9Z1JZ9Z4&=#FZ9Z1JZ9Z7&=

= FZ4FZ9Z1J&Z9J&Z4 =FZ4 –FZ9 –Z1 –J&Z9 –J&Z4

// Рабочий оператор Z3 связывают:

// слева вилка # – переходит в структурный оператор FZ3;

// справа сборка & – переходит в структурный оператор J&Z3.

// Рабочий оператор Z1 связывают:

// слева вилка # – переходит в структурный оператор FZ1;

// справа сборка & – переходит в структурный оператор J&Z1.

РТА: Рабочий текст алгоритма

alg A323( ): Fork(Zh4( )); Fork(Zh9( )); Zh1( ); Join_&(Zh9( )) ; Join_&(Zh4( ))

ВИ: Вертикальное исполнение

ШТА: Шаблон текста алгоритма РТА: Рабочий текст алгоритма

A323 = alg A323( ):

| FZ4 Fork(Zh4( ))

| FZ9 Fork(Zh9( ))

| Z1 Zh1( )

| J&Z9 Join_&(Zh9( ))

| J&Z4 Join_&(Zh4( ))