Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник по ИМ для заочников.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
649 Кб
Скачать
☆

1.4.2. Удаление транзактов из модели

Транзакты удаляются из модели (уничтожаются), попадая в блок TERMINATE. Блоки TERMINATE (Уничтожить) всегда позволяют выйти из модели всем транзактам, которые пытаются это сделать. Блок TERMINATE может иметь один операнд, т.е. имеет вид

TERMINATE A

Операнд A (по умолчанию 0) указывает число, на которое уменьшается содержимое счетчика числа завершений.

Счетчик числа завершений – это переменная, которая используется для управления окончанием процесса моделирования. Счетчик завершений в модели только один, хотя блоков TERMINATE может быть несколько. При достижении значения счетчика завершений, равного 0, моделирование завершается. Начальное значение счетчика завершений задается с помощью управляющего оператора START (Начать моделирование), имеющего следующий формат:

START A

Операнд A – начальное значение счетчика завершений (по умолчанию 0).

Оператор START может быть записан последним оператором в текст модели, и тогда моделирование начнется сразу же после успешной компиляции модели. Если в тексте модели нет оператора START, то после компиляции модели система ожидает от пользователя дальнейших команд. Команда START может быть введена далее через главное меню.

Счетчик завершений используется для того, чтобы:

  1. ограничить число транзактов, “прогоняемых” в модели;

  2. ограничить время, в течении которого исследуется объект.

Например, мы хотим закончить моделирование, когда 100-ый транзакт покинет модель. Тогда можно задать в операторе TERMINATE значение операнда A, равное 1:

TERMINATE 1

А начать моделирование командой (или оператором)

START 100

Другая ситуация, если мы хотим закончить моделирование по истечении некоторого времени. Например, мы моделируем работу парикмахерской в течение рабочего дня (8 ч), а единицей времени является одна минута. Тогда в момент времени, равный 480, моделирование должно быть закончено, независимо от того, сколько клиентов прошло через нее, и сколько ней сейчас находятся. Для этого в модель вводится дополнительный сегмент (соответствующий таймеру времени) вида:

GENERATE 480

TERMINATE 1

При этом начальное значение счетчика завершений командой START должно быть задано равное 1, а все другие блоки TERMINATE (уничтожающие транзактов - клиентов) не должны содержать параметров. Тогда в момент модельного времени, равный 480, будет сгенерирован транзакт-таймер и сразу же уничтожен. При этом счетчик завершений станет равен 0, и моделирование прекратится.

1.4.3. Управление устройствами.

Объект типа “устройство” является аналогом канала обслуживания в СМО. В каждый момент времени он может быть занят только одним транзактом. Если устройство занято, транзакты ожидают в очереди его освобождения.

Занятие устройства транзактом выполняется блоком SEIZE (Занять) формата:

SEIZE A

Операнд A – символическое или числовое имя устройства. Правила записи всех символических имен в GPSS (будь то имя устройства, имя очереди, имя переменной или метка в модели) следующие:

  • Первые три символа должны быть буквами.

  • Имя не должно быть ключевым словом системы GPSS.

  • Все символы строчных букв преобразуются в прописные.

Вход транзакта в блок SEIZE моделирует занятие устройства. Если транзакт входит в этот блок, то производятся следующие действия:

  1. Проверяется состояние устройства

  2. Если устройство свободно, то состояние устройства изменяется на “занято”, а транзакту разрешается дальнейшее продвижение.

  3. Если же устройство занято, то транзакту не разрешается вход в следующий блок. Он остается в блоке SEIZE, и на этом этапе его продвижение в модели заканчивается.

Освобождение устройства выполняется блоком RELEASE (Освободить) формата:

RELEASE A

Операнд A – символическое или числовое имя устройства.

Этот блок разрешает вход и выход транзакту в любом случае. Когда транзакт входит в этот блок, состояние устройства изменяется на “свободно”. Попытка входа в блок RELEASE транзакта, ранее не прошедшего блок SEIZE с тем же именем в поле А, что и в блоке RELEASE, приводит к прекращению моделирования из-за нарушения логики моделирования.

Если разработчик модели использует пару блоков SEIZE – RELEASE с одним и тем же именем устройства, то тем самым он сообщает системе о наличии такого устройства и необходимости регистрировать статистические данные по нему. Коэффициент использования, количество транзактов, занимавших устройство, среднее время обслуживания и другие статистические данные собираются по устройствам автоматически и могут быть получены пользователем по окончании моделирования.