Так как в качестве операндов GPSS-модели могут выступать только целые числа, единицей модельного времени выберем секунды.
Название блока и его номер | Операнды | Смысл операнда | Расчет значения операнда |
GENERATE, №1 | A | МО времени между заявками во входном потоке | с |
ADVANCE, №6 | A | МО времени обслуживания заявки в 1 приборе | с |
ADVANCE, №12,21 | A | МО времени обслуживания заявки во 2 приборе | с |
GENERATE, №16 | A | МО времени между заявками во входном потоке | с |
GENERATE, №26 | A | Время прогона модели | с |
Представление описательной части GPSS -модели
· емкости многоканальных устройств:
1) Количество мест в очереди № 1 M1=3.
Q1 STORAGE 3
2) Количество мест в очереди 2-ой фазы обслуживания M2=4.
Q2 STORAGE 4
3) Количество мест в очереди 2-ой фазы обслуживания M3=5.
Q3 STORAGE 5
· GPSS -функции:
Для моделирования нам необходимо генерировать экспоненциальный закон распределения (с его помощью генерируются интервалы времени между приходами в СМО соседних заявок и времена обслуживания заявок в обслуживающих устройствах). Будем генерировать экспоненциальное распределение с помощью GPSS-функции, имя которой в нашей программе XPDIS.
XPDIS FUNCTION RN1,C12
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.7,1.2/.8,1.56/.88,2.12/.96,3.2/.9998,8.0/1.0,10.
Операнды:
RN1 – Значения функции 1 распределены случайным образом в зависимости от значений генератора случайных чисел RN1;
C12 – непрерывная функция, количество точек – 12.
· таблицы:
Для сбора статистики по времени нахождения заявок в системе будем использовать таблицы №9 и 10 с именами T1 и T2:
T1 TABLE M1,12,5,10
T2 TABLE M1,12,5,10
Операнды:
M1 – транзитное время;
12 – верхняя граница нижнего интервала;
5 – ширина интервала;
10 – число интервалов.
Описание управляющих карт
EQU (ОПРЕДЕЛИТЬ ЭКВИВАЛЕНТНОСТЬ)
EQU – ставит в соответствие номеру объекта символьное обозначение.
Формат: symbol EQU num,arg, где
symbol– определяемое символьное обозначение объекта;
num– целое число в диапазоне от –32766 до +32766;
arg– мнемоническое обозначение для элементов GPSS.
Определяемое символьное обозначение объекта должно начинаться с буквы и иметь длину не более 5 символов. Определяемые символические обозначения могут использоваться как номера СЧА. Ассемблер GPSSR заменяет символьные ссылки на соответствующие цифровые эквиваленты.
В нашей программе:
XPDIS EQU 10,F – определение функции;
D1 EQU1,Z– 1 прибор – одноканальное устройство;
QUE1 EQU2,S– очередь 1 – многоканальное устройство;
QUE2 EQU3,S– очередь 2 – многоканальное устройство;
QUE3 EQU4,S– очередь 3 – многоканальное устройство;
D2 EQU5,Z– 2 прибор;
T1 EQU 9,T– таблица по сбору статистики по времени пребывания заявки в системе.
T2 EQU 10,T– таблица по сбору статистики по времени пребывания заявки в системе.
FUNCTION (ФУНКЦИЯ).
FUNCTION– определяет функцию.
Формат: numFUNCTIONAB
A – аргумент функции (СЧА);
B – тип функции и количество пар точек.
В поле A может стоять любой СЧА. Если аргументом функции в поле A является генератор случайных чисел RN то значениями функции будут числа с плавающей точкой в диапазоне между 0.0 и 1.0. Поле B определяет тип функции: C – непрерывная, D – дискретная, за которым следует число выражающее количество точек (XiYi), с помощью которых осуществляется задание конкретной функции. Точки (XiYi) задаются операторами, следующими за картой FUNCTION. Значениями Yi могут быть как числа, так и СЧА.
В нашей программе:
XPDISFUNCTIONRN1, C12 – функция, генерирующая числа по экспоненциальному закону.
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.7,1.2/.8,1.56/.88,2.12/.96,3.2/.9998,8.0/1.0,10.
STORAGE (ПАМЯТЬ)
STORAGE – определяет емкость памяти.
Форматы: numSTORAGEA
num–номерпамяти.
A– емкость.
STORAGEAB
A – память (S) (стандартный числовой атрибут)
B – емкость памяти (по умолчанию 32767).
Устанавливает определенную емкость памяти. Если емкость не определена, то значением по умолчанию является 32767.
В нашей программе:
QUE1 STORAGE 3
QUE2 STORAGE 3
QUE3 STORAGE 5
TABLE (ТАБЛИЦА)
TABLE – определение таблицы.
Формат: numTABLEA,B,C,D,E
num– номер таблицы;
A – аргумент таблицы;
IA – промежуточный интервал;
RT – интенсивность прихода;
B – верхняя граница нижнего интервала;
C – ширина интервала;
D – число интервалов;
E – интервал времени (только для RT режима).
При входе транзакта в блок TABULATE, связанный с конкретной таблицей, операнд A соответствующей карты TABLE вычисляется и заносится в эту таблицу. Если за операндом A указан знак (–), в таблицу заносится разность двух соседних значений табулируемой величины. Если в поле A указан режим IA, в таблицу заносится интервал времени между приходом двух транзактов в блок TABULATE. Если в поле A указан RT режим, то информация заносится в таблицу через интервалы времени, заданные в поле E. Соответствующая результирующая величина показывает, сколько входов транзактов в блок TABULATE имело место в течении указанного интервала. Стоящий в поле D символ указывает, что таблица является взвешенной. Использовать взвешенные IA или RT разностные таблицы нельзя.
В нашей программе:
T1 TABLE M1,12,5,10 – таблица по сбору статистики о времени нахождения заявки в системе;
M1 – транзитное время;
12 – верхняя граница нижнего интервала;
5 – ширина интервала;
10 – число интервалов.
T2 TABLE M1,12,5,10
УПРАВЛЯЮЩИЕ ОПЕРАТОРЫ
END (ЗАКОНЧИТЬ)
END – заканчивает задание (выполнение прогона модели).
Формат: END
Операндов не имеет.
Оператор END является не обязательным. Если он включен, то является последним оператором.
SIMULATE (МОДЕЛИРОВАТЬ).
SIMULATE – требование исполнения программы.
Формат: SIMULATE
Операндов не имеет.
Оператор SIMULATE необходим, когда требуется выполнить прогон модели. Без оператора SIMULATE интерпретатор GPSSR компонует (ассемблирует) модель, но прогона модели не выполняет.
START (НАЧАТЬ)
START – управление процессом моделирования.
Формат: START A,B,C,D
A – счетчик числа завершений;
B – подавление вывода на печать (B = NP);
C – промежуточный вывод статистики;
D – распечатка списков.
Поле A определяет счетчик завершений при прогоне модели. При входе транзакта в блок TERMINATE с ненулевым значением поля A, содержимое поля A блока TERMINATE вычитается из остаточного значения счетчика – поля A карты START. Прогон завершается, когда значение счетчика достигнет нуля. Указатель NP в поле B отменяет вывод стандартного отчета GPSSR. Величина, указанная в поле C, определяет число завершений, по достижении которого выдается промежуточный отчет. Таким образом, можно получать статистические данные в определенных интервалах моделирования. Если поле D содержит 1, полученный отчет будет содержать списки текущих и будущих событий, а также списки пользователя.
В нашей программе: START 1 – прогон модели до первого завершения.