; Клиенты поступают в очередь каждые 60 минут
GENERATE 100, 60
; Первый процесс: Обработка клиентом администратора
ENTER Queue
SEIZE Administrator
ADVANCE 30 ; Обработка администратора длится 30 минут
RELEASE Administrator
DECIDE 0.7, ANKETA, SKIP_ANKETA ; Клиент заполняет анкету с вероятностью 70%
TRANSFER , ANKETA ; Переход к анкете
SKIP_ANKETA TRANSFER , INCARNATE ; Переход минуя анкету
; Второй процесс: Анкетирование
ANKETA TRANSFER 30, INCARNATE ; Анкета заполнена, переход к следующему шагу через 30 минут
; Завершение процесса
INCARNATE TERMINATE
; Начало второго потока клиентов (тренировка)
GENERATE 100, 60
ENTER Queue
SEIZE Trainer
ADVANCE 60 ; Тренировка длится 60 минут
RELEASE Trainer
ADVANCE 10 ; Подведение итогов
LEAVE Queue
; Определение ресурсов и очередей
Queue STORAGE 0
Administrator FACILITY 1
Trainer FACILITY 1
; Метки
ANKETA LABEL
INCARNATE LABEL
END LABEL
Пояснения по изменениям: GENERATE 100, 60 ; Генерация клиента каждые 60 минут
ENTER Queue ; Вход клиента в очередь
SEIZE Administrator ; Администратор захватывает ресурс
ADVANCE 30 ; Администратор заполняет данные о клиенте в течение 30 минут
RELEASE Administrator ; Администратор освобождает ресурс
DECIDE 0.7, Queue, ANKETA, END ; Клиент заполняет анкету с вероятностью 70%
ANKETA ADVANCE 30 ; Если клиент заполнил анкету, ждет 30 минут
ENTER Queue ; Клиент возвращается в очередь
INCARNATE ; Переход к следующему шагу
SEIZE Trainer ; Занятие тренера
ADVANCE 60 ; Проведение тренировки продолжительностью 60 минут
RELEASE Trainer ; Тренер освобождает ресурс
ADVANCE 10 ; Подведение итогов
LEAVE Queue ; Клиент уходит
TERMINATE ; Окончание моделирования процесса
Queue STORAGE 0 ; Очередь
Administrator FACILITY 1 ; Ресурс (администратор)
Trainer FACILITY 1 ; Ресурс (тренер)
ANKETA LABEL ; Метка для анкеты
END LABEL ; Метка для завершения процесса
GENERATE 100, 60 ; Генерация клиента каждые 60 минут
ENTER Queue ; Вход клиента в очередь
SEIZE Administrator ; Администратор захватывает ресурс
ADVANCE 30 ; Администратор заполняет данные о клиенте в течение 30 минут
RELEASE Administrator ; Администратор освобождает ресурс
DECIDE 0.7, FILL_FORM, SKIP_FORM ; Клиент заполняет анкету с вероятностью 70%
FILL_FORM ADVANCE 30 ; Если клиент заполнил анкету - переход к следующему шагу через 30 минут
TRANSFER ,END ; Переход к концу процесса
SKIP_FORM TRANSFER ,QUEUE ; Переход обратно в очередь
END TERMINATE ; Окончание моделирования процесса
GENERATE 100, 60 ; Генерация клиента каждые 60 минут
ENTER Queue ; Вход клиента в очередь
SEIZE Trainer ; Занятие тренера
ADVANCE 60 ; Проведение тренировки продолжительностью 60 минут
RELEASE Trainer ; Тренер освобождает ресурс
ADVANCE 10 ; Подведение итогов
LEAVE Queue ; Клиент уходит
Queue STORAGE 0 ; Очередь
Administrator FACILITY 1 ; Ресурс (администратор)
Trainer FACILITY 1 ; Ресурс (тренер)
Основные изменения:
ENTER Queue ; Вход клиента в очередь
SEIZE Administrator ; Администратор захватывает ресурс
ADVANCE 30 ; Администратор заполняет данные о клиенте в течение 30 минут
RELEASE Administrator ; Администратор освобождает ресурс
DECIDE 0.7, Queue, ANKETA, ANKETA ; Клиент заполняет анкету с вероятностью 70%
TRANSFER (ANKETA, 30), END ; Если клиент заполнил анкету - переход к следующему шагу через 30 минут
JUMP INCARNATE ; Переход к следующему шагу
ANKETA TRANSFER (QUEUE, 30) ; Анкета заполнена, клиент возвращается в очередь через 30 минут
INCARNATE TERMINATE ; Окончание моделирования процесса
TERMINATE ; Окончание работы программы
GENERATE 100, 60 ; Генерация клиента каждые 60 минут
ENTER Queue ; Вход клиента в очередь
SEIZE Trainer ; Занятие тренера
ADVANCE 60 ; Проведение тренировки продолжительностью 60 минут
RELEASE Trainer ; Тренер освобождает ресурс
ADVANCE 10 ; Подведение итогов
LEAVE Queue ; Клиент уходит
Queue STORAGE 0 ; Очередь
Administrator FACILITY 1 ; Ресурс (администратор)
Trainer FACILITY 1 ; Ресурс (тренер)
ANKETA LABEL ; Метка для анкеты
END LABEL ; Метка для завершения процесса