Из алгоритма видно, что КАЛЕНДАРЬ ведет модельное время и инициирует выполнение активного события первого события в каждом КОС. АПУ генерирует пассивные события КОС и его алгоритм имеет следующий вид: 1. Просчет всех логических условий, заданных в столбце 1 ТУ. В зависимости от результата, полученного при вычислении логического условия j -ой строки ТУ, выполняется шаг 2 либо шаг 3. 2. Если логическое условие равно 0 (ложь), то j:=j+l и повторяется шаг 1. 3. Если логическое условие равно 1 (истина), то происходит разбор j -ой строки: • ИНИЦИАТОР :=<значение столбца 2 в ТУ по j -ой строке>; • 0:=<значение столбца 3 в ТУ по j-ой строке>; • затираниеj -ой строки ТУ; • передача управления по адресу, хранящемуся в D. 4. Если все логические условия в столбце 1 равны 0 и нет ни одного условия, равного 1, управление передается программе КАЛЕНДАРЬ, так как исчерпаны все события текущего КОС и необходим переход к новому КОС, начинающемуся с активного события (см. теорему 5.) Как видно из рис. 4.2., подпрограммы событий после своего выполнения передают управление в алгоритм АПУ. Каждая подпрограмма h\ в ходе своего выполнения меняет состояние системы и определяет условие продвижения инициатора своего процесса по треку. Если подпрограмма h\ содержит условие типа h\ то заполняет строку в ТБВ, определяет момент активизации инициатора. Навигационный оператор hH в составе hl определяет адрес следующей по треку подпрограммы событий. В эту же таблицу помещается и значение текущего инициатора (ссылка на локальную среду). Если подпрограмма h[ содержит условие типа И1 , то И1заносит строку в ТУ, помещая в столбец 1 логическое условие, а в остальные инициатор и 120 |
столбец 1 логическое условие активизации инициатора, определяемое предшествующим оператором /?7; столбец 2 инициатор процесса; столбец 3 адрес подпрограммы пассивного события в треке данного процесса. 106 -1 -2 -3условие логическое значение инициатора адрес очередной подпрограммы • • • • • •. • • •. Рис. 2.26. Структура таблицы ТУ КАЛЕНДАРЬ определяет первое активное событие в новом КОС в соответствии с (2.14.). Его алгоритм выглядит следующим образом: 1. Поиск минимального значения в столбце 1 ТБВ. Пусть это значение равно tk, где к номер строки ТБВ. 2. ВРЕМЯ := tk 3 ИНИЦИАТОР := <значение столбца 2 в ТБВ по строке к> 4. С := <значение столбца 3 в ТБВ по строке к > 5. Затирание к -ой строки ТБВ. 6 . Передача управления по адресу, хранящемуся в С. Из алгоритма видно, что КАЛЕНДАРЬ ведет модельное время и инициирует выполнение активного события первого события в каждом КОС. АПУ генерирует пассивные события КОС и его алгоритм имеет следующий вид: 1. Просчет всех логических условий, заданных в столбце 1 ТУ. В зависимости от результата, полученного при вычислении логического условия j-ой строки ТУ, выполняется шаг 2 либо шаг 3. 2. Если логическое условие равно 0 (ложь), то j:=j+l и повторяется шаг 1. 3. Если логическое условие равно 1 (истина), то происходит разбор j-ой строки: • ИНИЦИАТОР:=<значение столбца 2 в ТУ по j -ой строке>; • D:=■<значение столбца 3 в ТУ по j -ой строке>; • затирание j-ой строки ТУ; • передача управления по адресу, хранящемуся в D. 4. Если все логические условия в столбце 1 равны 0 и нет ни одного условия, равного 1, управление передается программе КАЛЕНДАРЬ, так как исчерпаны все события текущего КОС и необходим переход к новому КОС, начинающемуся с активного события (см. теорему 5.) Как видно из рис. 2.24., подпрограммы событий после своего выполнения передают управление в алгоритм АПУ. Каждая подпрограмма h\ в ходе своего выполнения меняет состояние системы и определяет условие продвижения инициатора своего процесса по треку. Если подпрограмма /?; содержит условие типа h\ то hl заполняет строку в ТБВ, определяет момент активизации инициатора. Навигационный оператор hHв составе И1определяет адрес следующей по треку подпрограммы событий. В эту же таблицу помещается и значение текущего инициатора (ссылка на локальную среду). Если подпрограмма /г, содержит условие типа И\ то И' заносит строку в ТУ, помещая в столбец 1 логическое условие, а в остальные инициатор и адрес следующей по треку подпрограммы событий аналогично вышеописанному. Таким образом, предложенный моделирующий алгоритм реализует все необходимые действия в соответствии с разработанной в диссертации 107 |