Студентам > Курсовые > Моделирование систем и сетей связи на GPSS
Моделирование систем и сетей связи на GPSSСтраница: 10/12
признак подавления формирования стандартного отчета по
завершении
моделирования. Если поле B пусто, то по окончании
прогона модели
формируется отчет со стандартной статистической
информацией о всех
объектах модели (см. разд. 5). Поле C не используется и
сохранено
для совместимости со старыми версиями GPSS. Поле D может
содержать
1 для включения в отчет списков текущих и будущих
событий. Если по-
ле D пусто, то выдача в отчет содержимого этих списков
не произво-
дится.
Оператор SIMULATE (моделировать) устанавливает
предел реально-
го времени, отводимого на прогон модели. Если прогон не
завершится
до истечения этого времени, то он будет прерван
принудительно с вы-
дачей накопленной статистики в отчет.
Оператор SIMULATE имеет единственный операнд A,
содержащий
предельное время моделирования в минутах, задаваемое
константой.
Оператор размещается перед оператором START, начинающим
лимитиро-
ванный прогон.
Оператор RMULT (установить значения генераторов)
позволяет пе-
ред началом прогона установить начальные значения генераторов
слу-
чайных чисел RN, определяющие генерируемые ими
последовательности.
Поля A-G оператора могут содержать начальные значения
генераторов
соответственно RN1-RN7, задаваемые константами.
Начальные значения
генераторов, не установленные операторами RMULT,
совпадают с номе-
рами генераторов.
Оператор RESET (сбросить) сбрасывает всю
статистическую инфор-
мацию, накопленную в процессе прогона модели. При этом
состояние
аппаратных, динамических и запоминающих объектов, а также
генерато-
ров случайных чисел сохраняется, и моделирование может
быть возоб-
новлено с повторным сбором статистики. Оператор не имеет
операндов.
С оператором RESET связано различие между
относительным (СЧА
C1) и абсолютным (СЧА AC1) модельным временем. Таймер
относительно-
го времени C1 измеряет модельное время, прошедшее после
последнего
сброса статистики оператором RESET, а таймер
абсолютного времени
- 39 -
AC1 - модельное время, прошедшее после начала первого
прогона моде-
ли. Если не использовалось ни одного оператора RESET,
то значения
этих таймеров совпадают. Оператор RESET устанавливает
таймер C1 в
ноль и не влияет на таймер AC1.
Оператор RESET используется обычно при моделировании
нестацио-
нарных процессов, когда требуется собрать статистику по
отдельным
интервалам стационарности или исключить влияние
переходного периода
на собираемую статистическую информацию.
Пусть, например, в модели, приведенной на рис. 18,
необходимо
отбросить статистику, собираемую на первой тысяче
транзактов. Это
может быть сделано способом, показанным на рис. 19.
Первый оператор START начинает прогон модели длиной
1000 тран-
зактов (переходный период). Поскольку статистика,
накопленная на
этом периоде, не используется, в поле B оператора
указан признак
подавления формирования отчета NP. Оператор RESET
сбрасывает накоп-
ленную статистику, не изменяя состояния модели.
Второй оператор
START начинает основной прогон модели с формированием
отчета по за-
вершении прогона.
Ш1
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
ASSIGN TSRV,80,EXP
GATE NU SYSTEM,WAIT
SFAC SEIZE SYSTEM
ADVANCE P$TSRV
RELEASE SYSTEM
UNLINK LINE,SFAC,1
TERMINATE 1
WAIT LINK LINE,P$TSRV
START 1000,NP
RESET
START 10000
Ш1.5
Рис. 19
Оператор CLEAR (очистить) очищает модель,
подготавливая ее к
повторному прогону. При этом сбрасывается вся
накопленная в преды-
дущем прогоне статистика, из модели удаляются все
транзакты, и она
приводится к исходному состоянию, как перед первым
прогоном. Уста-
навливаются в ноль сохраняемые величины и матрицы, что
следует учи-
тывать при использовании этих объектов для хранения
исходных дан-
ных. Исключение составляют генераторы случайных чисел, которые
не
- 40 -
возвращаются к своим начальным значениям, что позволяет
повторить
прогон модели на новой последовательности случайных
чисел. Оператор
не имеет операндов.
Оператор CLEAR используется обычно для организации
нескольких
независимых прогонов модели на разных последовательностях
случайных
чисел. Перед повторением прогона можно при необходимости
переопре-
делить отдельные объекты модели, например емкости
многоканальных
устройств.
Пусть, например, требуется повторить прогон модели,
приведен-
ной на рис. 17, три раза при емкости МКУ, равной 1, 2 и
3. Это мо-
жет быть выполнено так, как показано на рис. 20.
После каждой
очистки модели оператором CLEAR оператор STORAGE
устанавливает но-
вое значение емкости МКУ с именем STO2.
Оператор END (закончить) завершает 1сеанс
0работы с GPSS/PC и
возвращает управление в операционную систему. Оператор
не имеет
операндов.
Ш1
STO2 STORAGE 1
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
GATE SNF STO2,WAIT
ENT1 ENTER STO2
ADVANCE 160,FN$EXP
LEAVE STO2
UNLINK BUFER,ENT1,1
TERMINATE 1
WAIT LINK BUFER,FIFO
START 10000
CLEAR
STO2 STORAGE 2
START 10000
CLEAR
STO2 STORAGE 3
START 10000
Ш1.5
Рис. 20
Как правило, управляющие операторы не включаются
в исходную
программу, т.е. не имеют номеров строк, а вводятся
пользователем
непосредственно с клавиатуры ПК.
- 41 -
.
4. НЕКОТОРЫЕ ПРИЕМЫ КОНСТРУИРОВАНИЯ GPSS-МОДЕЛЕЙ
4.1. Косвенная адресация
В рассматривавшихся до сих пор примерах моделей
ссылки на раз-
личные объекты GPSS/PC производились исключительно по
данным им
произвольным именам. Такая 1адресация
0объектов удобна, когда речь
идет о небольшом числе объектов каждого типа. Если же
число объек-
тов некоторого типа велико, то во избежание
пропорционального роста
количества блоков в модели используют ссылки на эти
объекты по их
номерам с использованием так называемой 1косвенной
адресации 0.
Идея косвенной адресации заключается в том, что
каждый тран-
закт в некотором своем параметре содержит номер того или
иного объ-
екта, а в полях блоков, адресующихся к объектам,
записывается ссыл-
ка на этот параметр транзакта. Проиллюстрируем применение
косвенной
адресации на примере следующей модели.
Ш1
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
CLASS FUNCTION RN1,D3
.333,1/.667,2/1,3
MEAN FUNCTION P$TYPE,L3
1,70/2,80/3,90
PRIOT VARIABLE 4-P$TYPE
STO2 STORAGE 2
WTIME QTABLE LINE,50,50,10
TTIME TABLE M1,100,100,12
GENERATE 100,FN$EXP
ASSIGN TYPE,FN$CLASS
PRIORITY V$PRIOT
QUEUE LINE
QUEUE P$TYPE
ENTER STO2
DEPART P$TYPE
DEPART LINE
ADVANCE FN$MEAN,FN$EXP
LEAVE STO2
TABULATE TTIME
TERMINATE 1
Ш1.5
Рис. 21
Пусть на вход моделируемой многоканальной СМО с
двумя каналами
обслуживания поступает пуассоновский поток заявок со
средним интер-
валом поступления 100 единиц модельного времени. Каждая
заявка с
равной вероятностью 1/3 относится к одному из трех
классов: 1, 2
- 42 -
или 3, а среднее время обслуживания заявок каждого типа
составляет
соответственно 70, 80 и 90 единиц модельного времени.
Чем меньше
среднее время обслуживания заявки, тем выше ее приоритет.
Необходи-
мо построить модель, позволяющую оценить средние
значения времени
ожидания заявок каждого типа, а также распределения
общего времени
ожидания в очереди и общего времени пребывания в системе.
Такая мо-
дель имеет вид, показанный на рис. 21.
Переменная PRIOT служит для вычисления приоритета
транзакта
как функции его класса, содержащегося в параметре с
именем TYPE.
Транзакты класса 1 (P$TYPE=1) получат приоритет 3,
транзакты класса
2 - приоритет 2 и транзакты класса 3 - приоритет 1.
В блоке ASSIGN в параметр TYPE транзактов
записывается класс
|