Студентам > Курсовые > Моделирование систем и сетей связи на GPSS
Моделирование систем и сетей связи на GPSSСтраница: 7/12
.
Оператор определения таблицы с именем WTIME
разбивает ось вре-
мени на 10 частотных интервалов. Первый интервал
включает значения
от 0 до 50, второй - от 50 до 100, третий - от 100 до
150 и т.д.
Последний, десятый, интервал включает значения,
превышающие 450.
Если, например, время ожидания некоторого транзакта
в очереди
составило 145 единиц модельного времени, то к
счетчику третьего
частотного интервала будет добавлена 1. Следует
заметить, что ин-
формация в таблицу с именем WTIME заносится
автоматически, при вхо-
де транзактов в блоки QUEUE и DEPART, и никаких
специальных мер для
этого принимать не требуется.
Таблицы в GPSS/PC могут использоваться в более общем
случае не
только для табулирования времени ожидания в очереди, но и
для полу-
чения выборочных распределений произвольных СЧА любых
объектов мо-
дели. Для определения таблиц служит оператор TABLE
(таблица), фор-
мат которого совпадает с форматом оператора QTABLE.
Отличие состоит
лишь в том, что в поле A оператора TABLE записывается
стандартный
числовой атрибут, выборочное распределение которого
необходимо по-
лучить, а операнды B, C и D определяют разбиение на
частотные ин-
тервалы диапазона всевозможных значений этого СЧА.
Занесение информации в таблицу, определяемую
оператором TABLE,
уже не может быть выполнено симулятором автоматически,
как в случае
Q-таблиц. Для этого используется специальный блок
TABULATE (табули-
ровать), имеющий следующий формат:
1имя 0 TABULATE A
В поле A указывается номер или имя таблицы,
определенной соот-
ветствующим оператором TABLE.
При входе транзакта в блок TABULATE текущее значение
табулиру-
емого аргумента таблицы, указанного в поле A оператора
TABLE, за-
носится в нее в соответствии с заданным в операторе TABLE
разбиени-
ем области значений аргумента на частотные интервалы.
Одновременно
корректируются текущие значения СЧА таблицы: счетчик
входов в таб-
лицу TC, среднее время ожидания TB и среднеквадратическое
отклоне-
ние времени ожидания TD.
Пусть, например, в модели многоканальной СМО,
приведенной на
рис. 8, надо получить распределение времени пребывания
заявок в
системе, включающего время ожидания в очереди и время
обслуживания.
Это может быть обеспечено способом, показанным на рис.
11.
Оператор TABLE определяет таблицу с именем TTIME,
аргументом
которой служит СЧА М1 - время пребывания транзакта в
модели. В
рассматриваемой модели значение СЧА M1 одновременно
будет являться
временем пребывания транзакта в СМО в том случае, если
занесение
- 27 -
информации в таблицу производить перед выходом транзакта
из модели.
Поэтому блок TABULATE, заносящий информацию о времени
пребывания
каждого транзакта в модели в таблицу TTIME,
располагается перед
блоком TERMINATE. Диапазон возможных значений времени
пребывания
транзакта в модели разбит в операторе TABLE на 12
частотных интер-
валов, ширина которых (кроме последнего) равна 100
единицам модель-
ного времени.
Ш1
TTIME TABLE M1,100,100,12
STO2 STORAGE 2
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
ENTER STO2
ADVANCE 160,FN$EXP
LEAVE STO2
TABULATE TTIME
TERMINATE 1
Ш1.5
Рис. 11
2.4. Блоки, изменяющие маршруты транзактов
В приведенных выше примерах транзакты, выходящие
из любого
блока, всегда поступали в следующий блок. В более
сложных моделях
возникает необходимость направления транзактов к
другим блокам в
зависимости от некоторых условий. Эту возможность
обеспечивают бло-
ки изменения маршрутов транзактов.
Блок TRANSFER (передать) служит для передачи
входящих в него
транзактов в блоки, отличные от следующего. Блок имеет
девять режи-
мов работы, из которых рассмотрим здесь лишь три
наиболее часто
используемых. В этих трех режимах блок имеет следующий
формат:
1имя 0 TRANSFER
A,B,C
Смысл операндов в полях A, B и C зависит от режима работы
блока.
В режиме 1безусловной передачи 0поля A и
C пусты, а в поле B
указывается имя блока, к которому безусловным образом
направляется
транзакт, вошедший в блок TRANSFER. Например:
TRANSFER ,FINAL
В режиме 1статистической передачи
0операнд A определяет вероят-
ность, с которой транзакт направляется в блок, указанный
в поле C.
С вероятностью 1-A транзакт направляется в блок,
указанный в поле B
(в следующий, если поле B пусто).
- 28 -
Вероятность в поле A может быть задана
непосредственно деся-
тичной дробью, начинающейся с точки. Например, блок
TRANSFER .75,THIS,THAT
с вероятностью 0,75 направляет транзакты в блок с именем
THAT, а с
вероятностью 0,25 - в блок с именем THIS.
Если же поле A начинается не с десятичной точки и
не содержит
одного из ключевых слов - признаков других режимов работы
блока, то
его значение рассматривается как количество тысячных
долей в веро-
ятности передачи. Например, предыдущий блок TRANSFER
можно записать
также в следующем виде:
TRANSFER 750,THIS,THAT
В режиме 1логической передачи 0в поле
A записывается ключевое
слово BOTH (оба). Транзакт, поступающий в блок
TRANSFER, сначала
пытается войти в блок, указанный в поле B (или в
следующий блок,
если поле B пусто), а если это не удается, т.е. блок B
отказывает
транзакту во входе, то в блок, указанный в поле C. Если
и эта по-
пытка неудачна, то транзакт задерживается в блоке
TRANSFER до изме-
нения условий в модели, делающего возможным вход в один
из блоков B
или C, причем при одновременно возникшей возможности
предпочтение
отдается блоку B. Например:
TRANSFER BOTH,MET1,MET2
Блок TEST (проверить) служит для задержки или
изменения марш-
рутов транзактов в зависимости от соотношения двух СЧА.
Он имеет
следующий формат:
1имя 0 TEST X
A,B,C
Вспомогательный операнд X содержит условие проверки
соотноше-
ния между СЧА и может принимать следующие значения: L
(меньше); LE
(меньше или равно); E (равно); NE (не равно); GE
(больше или рав-
но); G (больше). Поле A содержит первый, а поле B -
второй из срав-
ниваемых СЧА. Если проверяемое условие A X B
выполняется, то блок
TEST пропускает транзакт в следующий блок. Если же это
условие не
выполняется, то транзакт переходит к блоку, указанному в
поле C, а
если оно пусто, то задерживается перед блоком TEST.
Например, блок
TEST LE P$TIME,C1
не впускает транзакты, у которых значение параметра с
именем TIME
больше текущего модельного времени. Блок
TEST L Q$LINE,5,OUT
направляет транзакты в блок с именем OUT, если текущая
длина очере-
ди LINE больше либо равна 5.
- 29 -
.
Для задержки или изменения маршрута транзактов в
зависимости
от состояния аппаратных объектов модели служит
блок GATE
(впустить), имеющий следующий формат:
1имя 0 GATE X A,B
Вспомогательный операнд X содержит код состояния
проверяемого
аппаратного объекта, а в поле A указывается имя или
номер этого
объекта. Если проверяемый объект находится в заданном
состоянии, то
блок GATE пропускает транзакт к следующему блоку. Если
же заданное
в блоке условие не выполняется, то транзакт переходит к
блоку, ука-
занному в поле B, а если это поле пусто, то
задерживается перед
блоком GATE.
Операнд X может принимать следующие значения: U
(устройство
занято); NU (устройство свободно); I (устройство
захвачено); NI
(устройство не захвачено); SE (МКУ пусто); SNE (МКУ не
пусто); SF
(МКУ заполнено); SNF (МКУ не заполнено); LS (ЛП
включен), LR (ЛП
выключен).
Например, блок
GATE SNE BUF3
отказывает во входе транзактам, поступающим в моменты,
когда в МКУ
с именем BUF3 все каналы обслуживания свободны. Блок
GATE LR 4,BLOK2
направляет транзакты в блок с именем BLOK2, если в
момент их
поступления ЛП с номером 4 включен.
Блоки рассматриваемой группы используются при
моделировании
различных СМО с потерями заявок. Воспользуемся,
например, блоками
TRANSFER для моделирования двухканальной СМО с отказами и
повторны-
ми попытками (рис. 12).
Ш1
STO2 STORAGE 2
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
ENT1 TRANSFER BOTH,,REFUS
ENTER STO2
ADVANCE 160,FN$EXP
LEAVE STO2
TERMINATE 1
REFUS TRANSFER .1,,OUT
ADVANCE 250,FN$EXP
TRANSFER ,ENT1
OUT TERMINATE 1
Ш1.5
Рис. 12
- 30 -
.
Транзакты, поступающие в модель, попадают в блок
TRANSFER с
именем ENT1, работающий в логическом режиме. Если в
момент поступ-
ления транзакта в МКУ STO2 хотя бы один канал
свободен, то блок
TRANSFER направит транзакт в следующий блок, т.е. в
блок ENTER.
|