GENERATE 10,5 ; Генерация сигналов (интервал 10±5 мкс)
MARK 1 ; Метка времени для расчёта задержки
* --- ОБРАБОТКА В КАНАЛЕ ---
QUEUE Q_CHAN ; Встать в очередь к каналу
SEIZE CHANNEL ; Захват канала
ADVANCE 10,3 ; Обработка в канале (10±3 мкс)
RELEASE CHANNEL ; Освобождение канала
DEPART Q_CHAN ; Выход из очереди канала
* --- ВЫБОР ЭВМ (НАИМЕНЬШАЯ ОЧЕРЕДЬ) ---
TEST G Q$Q_CPU1,Q$Q_CPU2,TO_CPU1 ; Если Q1 < Q2, идём на CPU1
* --- ВЕТКА ЭВМ 2 ---
CHECK2 TEST L Q$Q_CPU2,9,OVERFLOW ; Если очередь > 9, переполнение
QUEUE Q_CPU2 ; В очередь к ЭВМ 2
SEIZE CPU2 ; Захват ЭВМ 2
ADVANCE 33,6 ; Обработка (33±6 мкс)
RELEASE CPU2 ; Освобождение ЭВМ 2
DEPART Q_CPU2 ; Выход из очереди
TERMINATE 1 ; Конец обработки сигнала
* --- ВЕТКА ЭВМ 1 ---
TO_CPU1 TEST L Q$Q_CPU1,9,OVERFLOW ; Если очередь > 9, переполнение
QUEUE Q_CPU1 ; В очередь к ЭВМ 1
SEIZE CPU1 ; Захват ЭВМ 1
ADVANCE 33,6 ; Обработка (33±6 мкс)
RELEASE CPU1 ; Освобождение ЭВМ 1
DEPART Q_CPU1 ; Выход из очереди
TERMINATE 1 ; Конец обработки сигнала
* --- ПЕРЕПОЛНЕНИЕ ---
OVERFLOW SAVEVALUE 1+,1 ; Увеличить счётчик переполнений
TERMINATE 1 ; Сигнал потерян
* --- ЗАПУСК МОДЕЛИРОВАНИЯ ---
START 500 ; Моделировать 500 сигналов