- •Основы моделирования на языке gpss/pc
- •1. Общие сведения о gpss/pc.
- •2. Основные блоки gpss/pc.
- •2.1. Блоки, связанные с транзактами.
- •2.2. Блоки, связанные с аппаратными объектами.
- •2.3. Блоки для сбора статистических данных.
- •2.4. Блоки, изменяющие маршруты транзактов.
- •3. Логика работы интерпретатора gpss/pc.
- •4. Задание распределений, отличных от равномерного.
- •5. Примеры моделирования некоторых систем.
- •6. Управляющие операторы gpss/pc.
- •7. Команды gpss/pc и работа с пакетом.
- •7.1. Загрузка интегрированной среды.
- •7.2. Ввод новой модели.
- •7.3. Редактирование текста модели.
- •7.4. Запись и считывание модели с диска.
- •7.5. Прогон модели и наблюдение за ходом моделирования.
- •7.6. Получение и интерпретация стандартного отчета.
- •Список литературы.
- •0 1000000 12 1 1 305440
- •10060 0 999940 7 8 0 0
- •10061 0 1000326 0 1 0 0
- •10062 0 2000000 0 11 0 0
2.4. Блоки, изменяющие маршруты транзактов.
В приведенных выше примерах транзакты, выходящие из любого блока, всегда входили или пытались входить в следующий блок. В более сложных моделях в зависимости от условий моделирования может возникать необходимость направления транзактов к другим блокам, т.е. необходимость изменения маршрутов движения транзактов. Для изменения направления перемещения транзактов используется блок TRANSFER (передать).
Безотказный блок TRANSFER может направить входящие в него транзакты в блоки, отличные от следующего. Блок имеет девять режимов работы, из которых здесь рассматриваются только три наиболее часто используемые режимы – это режимы безусловной, случайной и логической передачи. В этих трех режимах блок имеет следующий формат:
имя TRANSFER A, B, C
Содержание операндов A, B и C зависит от режима передачи блока.
В режиме безусловной передачи операнды A и C не заданы, а операнд B задает имя блока (называется В-блок), куда безусловным образом направляется транзакт, вошедший в блок TRANSFER. Например, блок TRANSFER ,BACK направляет все входящие транзакты в блок с именем BACK. Не используемый операнд А здесь заменен символом “,”.
В режиме случайной передачи блок TRANSFER направляет входящие транзакты случайным образом в один из двух блоков. При этом операнды В и С задают имена этих двух блоков, а операнд A определяет вероятность, с которой транзакт направляется в блок, заданный операндом C. Очевидно тогда, что с вероятностью 1-A транзакт будет направлен в В-блок. Операнды А и С являются обязательными операндами, а если не задан операнд B, то В-блоком является следующий блок. Следует отметить, что направление текущего транзакта в тот или иной блок не зависит от того, куда был направлен предыдущий транзакт.
Вероятность в поле A задается, как правило, десятичной дробью, начинающейся с точки. Например, блок TRANSFER .75,PLAY,WORK с вероятностью 0,75 направляет транзакты в блок с именем WORK, а с вероятностью 0,25 – в блок с именем PLAY. Если же поле A начинается не с десятичной точки и не содержит одного из ключевых слов – признаков других режимов работы блока, то его значение рассматривается как количество тысячных долей в вероятности передачи. Например, предыдущий блок можно также записать в виде TRANSFER 750,PLAY,WORK.
В режиме логической передачи в поле A записывается ключевое слово BOTH (оба). Транзакт, поступающий в блок TRANSFER, сначала пытается войти в блок, указанный в поле B (или в следующий блок, если B не задан), а если это не удается, т.е. В-блок отказывает транзакту во входе, то в блок, указанный в поле C. Если и эта попытка неудачна, то транзакт остается в блоке TRANSFER до наступления в модели условий, делающих возможным вход транзакта в один из блоков B или C, причем при одновременно возникшей возможности транзакт войдет в В-блок.
Блоки рассматриваемой группы используются при моделировании различных СМО, где есть потери заявок. Воспользуемся блоком TRANSFER, например, для моделирования трехканальной СМО с отказами, когда поступающая заявка покидает систему, если все приборы заняты (рис. 8).
Транзакты, поступающие в модель, попадают в блок TRANSFER, работающий в логическом режиме. Если в момент поступления транзакта в устройстве MKS3 хотя бы один канал свободен, то блок TRANSFER направит его в следующий блок, т.е. в блок ENTER. Если же в момент поступления транзакта все каналы МКУ будут заняты, то блок ENTER откажет ему во входе, и он будет направлен в блок с именем OUT – это блок TERMINATE, который удалит транзакт из модели.
MKS3 STORAGE 3
GENERATE 70,20
TRANSFER BOTH, ,OUT
ENTER MKS3
ADVANCE 50,30
LEAVE MKS3
OUT TERMINATE
Рис. 8.