- •Лабораторная работа 2. Моделирование простейших систем средствами gpss/World Цели лабораторной работы:
- •Задание к лабораторной работе
- •Основные сведения о системе имитационного моделирования gpss/World. Пояснения к работе.
- •0.000 60243.977 7 1 0
- •101 0 38246.575 101 3 4
- •167 0 60773.872 167 0 1
- •Generate a,b,c,d,e
- •Terminate a
- •Seize a
- •Release a
- •Advance a,b
- •Queue a,b
- •Depart a,b
- •Метка storage а
- •Enter a,b
- •Leave a,b
- •Transfer a,b,c,d
- •Test X a,b,c
- •7. Моделирование систем с использованием блоков split, assemble, match.
- •Split a,b,c
- •Assemble a
- •Match a
- •8. Моделирование систем с использованием блоков preempt, return.
- •Preempt a,b,c,d,e
- •Return a
- •8. Моделирование систем с использованием блоков assign, loop, equ
- •9. Обработка результатов моделирования
- •Требования к отчету по работе
- •Контрольные вопросы
Метка storage а
метка– имя МУ;
поле А– емкость МУ (количество устройств, входящих в МУ).
Блок ENTERимеет следующий формат записи:
Enter a,b
Блок ENTERпозволяет вошедшему сообщению использовать МУ. Сообщение может быть задержано на входе в блок, если МУ заполнено или имеющейся емкости недостаточно, или МУ в данный момент недоступно.
В поле Ауказывается номер или имя МУ, куда входит сообщение.
В поле Всодержится число занимаемых единиц МУ. Еслиполе Впусто, то предполагается что занимается одна единица. Если это значение равно нулю, то сообщение никогда не задерживается на входе, а блок рассматривается как нерабочий.
Одно и то же сообщение может входить в неограниченное число МУ, а впоследствии освобождать их (или часть из них).
Блок LEAVEимеет следующий формат:
Leave a,b
Блок LEAVEосвобождает определенное число единиц МУ.Поле АблокаLEAVEопределяет номер или имя МУ.Поле В- число освобождаемых единиц МУ. Если это поле пусто, предполагается 1. Число освобождаемых единиц не должно превышать текущее содержимое МУ.
С многоканальными устройствами связаны следующие основные СЧА:
S$<имя (или номер) устройства> - текущее число занятых каналов в МУ;
SA$<имя (или номер) устройства> - среднее число занятых каналов в МУ;
SМ$<имя (или номер) устройства> - максимальное число занятых каналов в МУ;
SR$<имя (или номер) устройства>- коэффициент использования МУ;
SC$<имя (или номер) устройства>- общее число входов;
ST$<имя (или номер) устройства>- среднее время занятости одного канала в МУ.
6. Работа с блоками передачи управления. Блок TRANSFER является основным средством, позволяющим направить сообщение к любому блоку модели. Блок TRANSFER имеет следующий формат:
Transfer a,b,c,d
Поле А задает режим выбора следующего блока, к которому должно перейти сообщение. Существуют следующие режимы работы блока TRANSFER: безусловный (пробел); статистический (.); BOTH; ALL; PICK; функция (FN); параметр (Р); подпрограмма (SBR).
Поля В и С задают возможные значения номеров следующих блоков или их положение. Использование значений описано при рассмотрении определенных режимов выбора.
Безусловный режим выбора. Если операнд А пропущен, то блок TRANSFER работает в безусловном режиме. Входящее в блок TRANSFER сообщение переходит к блоку, указанному в поле В. Если сообщение в этот блок войти не может, попытка направить сообщение к какому-либо другому блоку не производится. Например,
TRANSFER ,NEXT
NEXT SEIZE 1
Сообщения, входящие в блок TRANSFER, сразу переходят к блоку NEXT.
Статистический режим выбора. Когда операнд А не является зарезервированным словом, блок TRANSFER работает в статистическом режиме выбора.
Значение аргумента, записанного после точки (.) в поле А, рассматривается как трехзначное число, показывающее (в частях от тысячи), какой процент входящих в блок сообщений следует направить к блоку, указанному в поле С. Остальные сообщения направляются к блоку, указанному в поле В, или к следующему по номеру блоку, если операнд В пропущен. Например,
TRANSFER .7, BLK1, BLK2
Из общего числа сообщений, входящих в блок TRANSFER, в среднем 0.7 будут пытаться войти в блок с меткой BLK2; остальные 0.3 будут пытаться войти в блок с меткой BLK1.
Режим BOTH. В поле А стоит зарезервированное слово ВOTH. В этом режиме каждое входящее сообщение сначала пытается перейти к блоку, указанному в поле В. Если это сделать не удается, сообщение пытается перейти к блоку, указанному в поле С. Если сообщение не сможет перейти ни к тому, ни к другому блоку, оно остается в блоке TRANSFER и будет повторять в том порядке попытки перехода при каждом просмотре списка текущих событий, до тех пор, пока не сможет выйти из блока TRANSFER. Ниже приведен фрагмент программы, иллюстрирующий работу режима ВOTH:
TRANSFER BOTH, TRY1, TRY2
TRY1 SEIZE 1
TRY2 SEIZE 2
Режим ALL. В поле А стоит зарезервированное слово ALL. В этом режиме каждое входящее сообщение прежде всего пытается перейти к блоку, указанному в поле В. Если сообщение в этот блок войти не может, то последовательно проверяются все блоки в определенном ряду в поисках первого, способного принять это сообщение, включая последний блок, указанный операндом С. Номер каждого проверяемого блока вычисляется как сумма номера предыдущего блока и шага, заданного операндом D. Приведем пример программы:
TRANSFER ALL, NEXT1, NEXT3, 3
NEXT1 SEIZE 1
…
…
NEXT2 SEIZE 2
…
…
NEXT3 SEIZE 3
В этой программе сообщение сначала пытается перейти к блоку с меткой NEXT1, в случае неудачи к блоку с меткой NEXT2. Если сообщение войти в блок с меткой NEXT2 не может, то пытается перейти к блоку с меткой NEXT3. Между блоками NEXT находится три блока (в поле D задано 3). Если сообщение не может перейти ни к одному из указанных блоков, оно остается в блоке TRANSFER и повторяет описанную выше процедуру при каждом просмотре списка текущих событий до тех пор, пока не выйдет из блока TRANSFER.
Условными являются только режимы BOTH и ALL. Во всех остальных режимах выбор следующего блока производится в момент входа сообщения в блок TRANSFER.
Режим PICK. В поле А стоит зарезервированное слово PICK. Этот режим аналогичен режиму ALL за исключением того, что блоки, указанные в полях В и С выбираются случайным образом с одинаковой вероятностью. Сообщение пытается перейти только к выбранному для него блоку. Если сообщение не может сразу перейти к выбранному блоку, то оно будет ждать в блоке TRANSFER до тех пор, пока не будет снято блокирующее условие. Например,
GENERATE 5,2
TRANSFER PICK, 3,5,1
TRANSFER ,NEXT1
TRANSFER ,NEXT2
TRANSFER ,NEXT3
NEXT1 SEIZE1
…
NEXT2 SEIZE2
…
NEXT3 SEIZE3
Сообщение, вошедшее в первый блок TRANSFER, пытается войти в один из трех блоков: NEXT1; NEXT2; NEXT3 с равной вероятностью: 1/3. В полях В и С блока TRANSFER заданы номера строк, на которые передается управление; в поле D – шаг.
Помимо блока TRANSFER, потоком сообщений может управлять блок TEST. Блок TEST имеет следующий формат: