Лекции
.pdfРис. 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