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

Лекции

.pdf
Скачиваний:
11
Добавлен:
10.02.2015
Размер:
1.43 Mб
Скачать

Рис. 7. Полнодуступный граф структуры процесса (cвернутые навигационные операторы).

Рис. 8. Операторно-параметрическая схема трека.

Входные параметры:

A1 = fa; bg

A2 = fc; e; dg

A3 = ff; gg

A4 = fh; mg

Выходные параметры:

On1 = fcg

On2 = fd; fg

On3 = fh; gg

On4 = fx; ng

Параметры, которые входяти и в Ai è â Oni , являются рабочими парамет-

21

локальная среда

ðàìè.

Рис. 9. Почти одинаковые треки, отличающиеся только параметрами.

Оба трека имеют одинаковую структуру (одинаковый трек), однако состав множества Ai è â Oni разные. Такие два процесса Z1 è Z2 являются однородными. Можем ли мы описать однородные процессы одной записью, раз они так похожи? Для этого построим один универсальный трек:

Ãäå hoi - объединенный элементарный оператор. В универсальный трек вошли только общие параметры. По этому треку запускаем сразу два инициатора I1, I2, а к каждому инициатору привяжем свою структуру данных. Написали общую часть для обоих и вынесли в эти структуры собственные параметры. Если пришел первый инициатор, объединенный параметр вытаскивает из первой структуры данных, если второй инициатор - из второй. Это процесса, очень фундаметальное понятие.

Эта локальная среда процесса является элементом процесса. Таким образом однородные процессы имеют одинаковый трек, но разную локальную среду. Теперь инициатор ¾тащит¿ за собой локальную среду процесса. Мы будем понимать под инициатором (как о типе) ссылку на среду передачи.

Так как время сцепления инициатора с элементарным оператором ноль, то проблем конфликта инициаторов не происходит.

22

Рис. 10. Универсальный трек, обобщенный трек.

3.4Áëîê

Под блоком будем понимать некоторую плотную последовательность операторов трека, плотное подмножество операторной-параметрической схемы. Это описательный механизм. Каждый блок порождает подпроцесс.

Рис. 11. Пример блоков.

Типы блоков:

Агрегат - замкнутый процесс, содержащий трек и единственный инициа-

23

тор, этот инициатор не может выйти из агрегата. Агрегат взаимодействует только через параметры. В агрегат не может попасть несколько инициаторов. В агрегате нет локальной среды передачи и трек не является объединенным.

Рис. 12. Тип блока агрегат.

Процессор - не имеет ни одного инициатор, содержит только описание

треков в виде объединенных треков. В процессор идет поток инциаторов со своими локальными средами, он порождает однородные процессы в любом количестве.

Рис. 13. Тип блока процессор.

Контроллер - по структуре есть агрегат. Но этот тип выделен в отдель-

ный тип из-за своих функций. В нем развивается один процесс, единственный инициатор, взаимодействует через параметры. Предназначен для работы с чужими (внешними) инициаторами. Для этого введем две операции:

Пассивизация инициатора - превращение инициатора в ссылку, прекращает существование как инициатор. Тот процесс, с которым он сцеплялся, полностью останавливается. Однако ссылку на локальную среду мы сохранили.

Активизация инициатора - преобразование ссылки в инициатор. С помощью операции навешаем свойства инициатора на параметр - ссылку на локальную среду.

24

Рис. 14. Тип блока контроллер.

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

25

4Лекция 4. 23.09.2013

4.1Ресурсы. Конфликты за ресурсы

Имеем два объекта:

O1; O2

То ресурс:

O1 \ O2 = R

Рис. 15. Графическое изображение ресурса.

Это означает, что объекты O1 è O2 меняют одни и те же параметры, то эти параметры считаются ресурсами.

Конфликт за ресурсы возникает в том случае, когда оба процесса меняют значение ресурса одновременно .

4.2Методы разрешения конфилктов

4.2.1Синхронизация

Устраняем одновременность.

26

Рис. 16. Процесс синхронизации.

27

4.2.2Семафоры

Способ логического разнесения ресурсов между процессами. сем ::= логич.переменная 2 [0; 1]

Рис. 17. Процесс захвата семафора и ресурса.

Однако теперь семафор сам становится критическим ресурсом и для него 28

нужно решать задачу синхронизации. В общем случае семафор может допускать захватывать ресурс ограниченному числу процессам. Семафор, допускающий 1 процесс, называется логическим семафором (mutex), а семафоры высшего порядка - арифметический семафор.

В более сложных случаях используются блоки-контроллеры.

29

4.2.3Контроллеры

Самый универсальный и трудоемкий способ разрешения конфликтов.

Рис. 18. Процесс захвата ресурса без синхронизации.

Рис. 19. Процесс захвата ресурса с помощью контроллера.

Контроллер пассивизирует инициаторы и сохраняет у себя в параметрах. Далее контроллер берет пассивизированные инициаторы по одному, активизи-

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]