1) GENERATE 5; определяет время поступления транзактов ровно через
5 ед. времени;
2) GENERATE,,,10; в момент времени 0 родится одновременно 10 транзактов;
3) GENERATE 2,,10,,1; первый родится в 10, затем в 12, 14 и т. д. с приоритетом 1.
3.3.2. Уничтожение транзактов
Блок уничтожения транзактов (завершения) имеет формат:
TERMINATE [A]
Транзакты, попадающие в этот блок, уничтожаются и больше не участвуют в процессе моделирования. Если операнд A задан, то его значение указывает, на сколько единиц уменьшается содержимое так называемого счётчика завершений при входе транзакта в данный блок TERMINATE. Если A не определено, то оно считается равным 0, и транзакты, проходящие через такой блок, не уменьшают содержимого счётчика завершений.
Начальное значение счётчика завершений устанавливается управляющим оператором START А (начать), предназначенным для запуска прогона модели. Операнд A этого оператора содержит начальное значение счётчика завершений. Прогон модели заканчивается, когда содержимое счётчика завершений обращается в 0. Таким образом, в модели должен быть хотя бы один блок TERMINATE с непустым A, иначе процесс моделирования никогда не завершится.
|
|
Участок блок-схемы модели, связанный с парой блоков GENERATE-ТERMINATE, называется сегментом. Простые модели могут состоять из одного сегмента, в сложных моделях может быть несколько сегментов.
При моделировании системы иногда необходимо промоделировать обработку конкретного числа заявок, например 100 заявок. Соответствующий сегмент будет выглядеть так:
GENERATE 5,2,,100
………………………………
TERMINATE 1
START 100
Начальное значение счётчика завершений равно 100. Каждый транзакт, проходящий через блок TERMINATE, вычитает из счётчика единицу, и таким образом моделирование завершится, когда сотый по счёту транзакт войдёт в блок TERMINATE. При этом точное значение таймера в момент завершения прогона непредсказуемо. Следовательно, в приведённом примере продолжительность прогона устанавливается не по модельному времени, а по количеству транзактов, прошедших через модель.
Но чаще возникает необходимость провести процесс моделирования в течение конкретного времени, например, одного 8-часового рабочего дня. Если единица модельного времени минута, то необходимо, чтобы в момент 480 моделирование прекратилось. Для этого включаем сегмент – фиктивный блок времени:
GENERATE 5,2
………………………
TERMINATE
GENERATE 480;фиктивный блок времени
TERMINATE 1