книги / Моделирование систем. Практикум
.pdfDEPART (выход из очереди). Блоки Q U EU E и DEPART являю тся инф орм ационно-статистическими и не влияют на внутренние операции процесса моделирования G P S S /P C .
Пример 3.25. В Q -схем у поступают на обслуживание заявки по равно мерному закону с интервалом 7 ± 2 мин. С вероятностью 0,6 заявки об служиваются в 1 -м канале по равномерному закону с интервалом 9 + 2 мин и с вероятностью 0,4 обслуживание происходит во 2-м канале также по равномерному закону с интервалом 11 ± 2 мин. Смоделировать процесс функционирования системы и получить статистические данные об оче реди заявок при обслуженном числе их, равном 100.
Подобный пример рассматривался ранее. Здесь входящий поток зая вок не ограничен и по времени является более интенсивным, чем обслу живание в каждом из каналов. Естественно, следует ожидать возникнове ния очередей перед каждым из каналов. Задача состоит в том, чтобы об служить 100 заявок (двумя каналами) и собрать сведения о задержках на чала обслуживания, т. е. статистику об очередях. Для решения этой задачи разработана программа EXAM28.GPS (рис. 3.56), в которой при менены две пары совместных блоков QUEUE и DEPART. В блоке GENERATE поле <D> — поле задания генерируемых транзактов (заявок) не используется, поэтому ограничение поступающих в систему транзак тов определяется только оператором START и временем генерации тран зактов блоком GENERATE.
SIMULATE
10 GENERATE 5,2
20 TRANSFER 0.4,CHANI,CHAN2 30CHAN1 QUEUE 1
40 SEIZE 1
50 DEPART 1
60 ADVANCE 12,2
70 RELEASE 1
80 TRANSFER,EXIT 90CHAN2 QUEUE LEN2 100 SEIZE 2
110 DEPART LEN2
120 ADVANCE 13,2
130 RELEASE 2
140 SAVEVALUE NUM,C1
150 SAVEVALUE NUM1,Q1
160 SAVEVALUE NUM2,Q$LEN2
170 SAVEVALUE NUM3,QT1
180 SAVEVALUE NUM4,QTSLEN2
200 EXIT TERMINATE 1 START 100
END
Р и с . 3.56. Программа EXAM28.GPS
101
i Формат записи блоков QUEUE имеет вид:
30 |
<метка> |
Q U E U E |
< А > ,[< В > ] |
90 |
<метка> |
Q U E U E |
< А > ,[< В > ] |
В поле <метка> задается имя блока; в поле <А> — имя или номер оче реди; в поле <В> — число единиц, на которое увеличивается текущая длина очереди. Если поле <В> пусто (как в программе), то прибавляется единица. В поле <метка> блока QUEUE под номером 30 задана метка CHAN1, для блока 90 задана метка CHAN2. Блок QUEUE под номером 30 регистрирует статистику для очереди под номером 1 перед 1-м устройст вом (оно начинается с блока SEIZE под номером 40). Блок QUEUE под номером 90 регистрирует статистику для очереди под именем LEN2 перед 2-м устройством (оно начинается с блока SEIZE под номером 100).
Выход транзакта из очереди регистрируется блоком DEPART. Формат записи блоков DEPART имеет вид:
50 |
DEPART |
< А > ,[< В > ] |
110 |
DEPART |
< А > ,[< В > ] |
Вполе <А> блока DEPART задается номер или имя очереди, длину которой нужно уменьшить; в поле <В> — задается число единиц, на ко торое уменьшается длина очереди. Это число не должно превышать теку щую длину очереди (чтобы не получилось отрицательное число). Если поле <В> пусто (как в программе), длина очереди уменьшается на едини цу. В программе для блока под номером 50 в поле <А> задана очередь с номером 1, для блока под номером ПО в поле <А> задана очередь под именем LEN2. В подпрограмме блока DEPART автоматически проверя ется значение времени пребывания транзакта в очереди. Если транзакт не был задержан в очереди, т. е. имеет нулевое время задержки, число нуле вых входов увеличивается на число единиц, указанное в поле <В> блока DEPART. В программе EXAM26.GPS поле <В> пусто.
Врассматриваемой программе используются пять блоков SAVEVALUE, которые сохраняют СЧА по времени моделирования и оче редей.
Формат записи блоков SAVEVALUE имеет вид:
140 SAVEVALUE < А > ,< В >
150 SAVEVALUE < А > ,< В >
160 SAVEVALUE < А > ,< В >
170 SAVEVALUE < А > ,< В >
180SAVEVALUE < А > ,< В >
Вполе <А> каждого блока SAVEVALUE задается имя ячейки, в кото рую записывается значение поля <В>. Для примера с помощью блоков SAVEVALUE были сохранены следующие СЧА. Для блока SAVEVALUE под номером 140 имя сохраняемой ячейки NUM, сохраняемая величина С1 — условное время моделирования Для блока SAVEVALUE под номе
ром 150 имя сохраняемой ячейки NUM1, сохраняемая величина Q1 — длина очереди под номером 1. Для блока SAVEVALUE под номером 160 имя сохраняемой ячейки NUM2, сохраняемая величина QSLEN2 —
102
длина очереди с именем LEN2. Для блока SAVEVALUE под номером 170 имя сохраняемой ячейки NUM3, сохраняемая величина QT1 — среднее время (с точностью до целых) пребывания сообщения в очереди под но мером 1 (включая нулевые входы). Для блока SAVEVALUE под номером 180 имя сохраняемой ячейки NUM4, сохраняемая величина QTSLEN2 — среднее время (с точностью до целых) пребывания сообщения в очереди с именем LEN2 (включая нулевые входы). Очереди имеют также и другие СЧА: QAj — средняя длина очереди j (автоматически определяется и со храняется программой, приводится в файле стандартного отчета); QMj — максимальная длина очереди j (автоматически определяется и со храняется программой, приводится в файле стандартного отчета); QCj — общее число входов в очередь j (автоматически определяется и со храняется программой, приводится в файле стандартного отчета); QZj — число нулевых входов в очередь j (автоматически определяется и сохраняется программой, приводится в файле стандартного отчета); QXj — среднее время пребывания транзакта в очереди j без нулевых вхо дов (автоматически определяется и сохраняется программой, приводится в файле стандартного отчета).
Результаты моделирования для примера 3.25 по программе EXAM28.GPS представлены на рис. 3.57 под именем EXAM28.RPT. По условию задачи моделирования Q-схемы входной поток заявок не огра ничен и поэтому количество сгенерированных транзактов превышает ко личество обработанных и выведенных из системы транзактов, которых 100. Перед каждым каналом (устройством) системы (Q-схемы) осуществ ляется сбор статистических данных об очередях с помощью блоков QUEUE, DEPART. Устройства моделируются блоками SEIZE, ADVANCE, RELEASE, соответственно для первого устройства это блоки с номерами 40, 60, 70; для второго устройства — блоки с номерами 100, 120, 130.
В файле стандартного отчета EXAM28.RPT строка QUEUE имеет сле дующие поля: 1 — номер первой очереди, LEN2 — имя второй очереди (очередь может иметь либо произвольный номер, либо произвольное имя), поле МАХ — максимальное содержимое очереди в течение периода моделирования (для первой очереди 21, для второй с именем LEN2 — 9), поле CONT определяет текущее содержимое очереди в конце периода мо делирования (для первой очереди 20, для второй с именем LEN2 — 9), поле ENTRIES определяет общее количество входов в накопитель (поста новку в очередь) в течение периода моделирования (для 1-й очереди 73, для 2-й с именем LEN2 — 57), поле ENTRIES(O) определяет общее коли чество входов в очередь с нулевым временем ожидания (для первой оче реди 1, для второй с именем LEN2 — 3), поле AVE.CONT определяет среднее значение содержимого очереди (для 1 -й очереди — 10.36, для 2-й с именем LEN2 — 4.47), поле AVE.TIME определяет среднее время, про веденное в очереди с учетом всех входов в очередь (для 1 -й очереди 89 85, для 2-й с именем LEN2 — 49.65), AVE.(—0) определяет среднее время, проведенное в очереди без учета «нулевых» входов в очередь (для 1 -й оче реди 91.10, для 2-й с именем LEN2 — 52.41), поле RETRY определяет ко-
103
GPSS/PC Report file REPORT GPS. |
(V 2, |
# 37349) |
07-10-2001 05:11:23 page 1 |
||||||||
START_TIME |
END_TIME |
BLOCKS |
FACILITIES |
STORAGES |
FREE |
MEMORY |
|||||
|
0 |
633 |
19 |
|
2 |
|
0 |
e o B o o |
|
||
LINE |
LOC |
BLOCK_TYPE |
|
ENTRY_COUNT |
CURRENT_COUNT |
RETRY |
|||||
10 |
1 |
GENERATE |
|
130 |
|
0 |
|
0 |
|||
20 |
2 |
TRANSFER |
|
130 |
|
0 |
|
0 |
|||
30 |
CHAN1 |
QUEUE |
|
|
|
73 |
|
20 |
|
0 |
|
40 |
4 |
SEIZE |
|
|
53 |
|
0 |
|
0 |
||
50 |
5 |
DEPART |
|
|
53 |
|
0 |
|
0 |
||
€0 |
6 |
ADVANCE |
|
53 |
|
1 |
|
0 |
|||
70 |
7 |
RELEASE |
|
52 |
|
0 |
|
0 |
|||
60 |
в |
TRANSFER |
|
52 |
|
0 |
|
0 |
|||
90 |
CHAN2 |
QUEUE |
|
|
57 |
|
8 |
|
0 |
||
100 |
10 |
SEIZE |
|
|
49 |
|
1 |
|
0 |
||
110 |
11 |
DEPART |
|
|
48 |
|
0 |
|
0 |
||
120 |
12 |
ADVANCE |
|
4B |
|
0 |
|
0 |
|||
130 |
13 |
RELEASE |
|
48 |
|
0 |
|
0 |
|||
140 |
14 |
SAVEVALUE |
|
4B |
|
0 |
|
0 |
|||
150 |
15 |
SAVEVALUE |
|
48 |
|
0 |
|
0 |
|||
160 |
16 |
SAVEVALUE |
|
48 |
|
0 |
|
0 |
|||
170 |
17 |
SAVEVALUE |
|
48 |
|
0 |
|
0 |
|||
160 |
18 |
SAVEVALUE |
|
48 |
|
0 |
|
0 |
|||
200 |
EXIT |
TERMINATE |
|
100 |
|
0 |
|
0 |
|||
FACILITY |
ENTRIES |
UTIL |
AVE._TIME AVAILABLE |
OWNER PEND INTER RETRY DELAY |
|||||||
1 |
53 |
0 .9 9 2 |
1 1 .8 5 |
|
1 |
96 |
0 |
0 |
0 |
20 |
|
2 |
49 |
0 .9 7 3 |
1 2 .5 7 |
|
1 |
111 |
0 |
0 |
0 |
8 |
|
QUEUE |
MAX |
CONT ENTRIES |
ENTRIES(0) |
AVE.CONT. AVE.TIME |
A V E .( - 0 ) |
RETRY |
|||||
1 |
21 |
20 |
73 |
|
1 |
1 0 .3 6 |
|
8 9 . B5 |
|
9 1 .1 0 |
0 |
LEN2 |
9 |
9 |
57 |
|
3 |
4 .4 7 |
|
4 9 .6 5 |
|
5 2 .4 1 |
0 |
XACT__GROUP |
|
GROUP_SIZE |
|
RETRY |
|
|
|
|
|
|
|
POSITION |
|
0 |
|
0 |
|
|
|
|
|
|
|
SAVEVALUE |
|
|
|
VALUE |
RETRY |
|
|
|
|
||
NUM |
|
|
|
+633 |
|
|
0 |
|
|
|
|
NUM1 |
|
|
|
+20 |
|
|
0 |
|
|
|
|
NUM2 |
|
|
|
+ 9 |
|
|
0 |
|
|
|
|
NUM3 |
|
|
|
+89 |
|
|
0 |
|
|
|
|
NUM4 |
|
|
|
+49 |
|
|
0 |
|
|
|
|
Р и с 3.57. Стандартный отчет EXAM28.RPT
личество транзактов, ожидающих специальных условий, зависящих от состояния очереди (специальных условий в примере нет).
Статистику по транзактам можно сопоставить по полям MAX, CONT, ENTRIES и ENTRY_COUNT, CURRENT_COUNT.
Дадим пояснения к полю AVE(—0). Для каждой очереди поле имеет большее время пребывания в очереди, чем для поля AVE.TIME. Нулевые входы означают, что транзакты поступают на обслуживание без задерж
им
ки, если же этих нулевых входов нет, то транзактам приходится находить ся в очереди, и значит, увеличивается время пребывания в очереди.
Для статистики блоков SAVEVALUE отводятся следующие поля. В поле SAVEVALUE указываются имена ячеек (в отчете это NUM, NUM1, NUM2, NUM3, NUM4), в которых сохраняются заданные величины. Со храняемые величины указываются в поле VALUE (это 633, 20, 9, 89, 49). Поле RETRY определяет количество транзактов, ожидающих наступле ния специальных условий, зависящих от состояния сохраняемой величи ны (в рассматриваемом примере специальных условий нет).
3.2.2 Блок MSAVEVALUE. Операторы MATRIX,
INITIAL
Оператор INITIAL использую т для задания начальных значе ний ячеек матрицы. Он задает размер матрицы — количество строк и столбцов. Блок MSAVEVALUE применяю т для записи зна чений в матрицы.
Пример 3.26. На языке G P S S /P C создать две матрицы размером 2 х 3: одна должна быть заполнена натуральными нечетными числами, начи ная с единицы, а другая со следующими элементами:
с\ |
100 |
cl + 100 |
cl + Vl00 |
от 500 вычесть десять р а з 2 |
10 + десять раз по 5 |
где cl — модельное время. Сохранить также целую часть от Viol. Программа решения примера 3.25 приведена на рис. 3.58 под именем
EXAM29.GPS.
Формат записи операторов MATRIX следующий:
M A T l |
M ATRIX |
<А > ,< В > ,< С > |
М АТ2 |
M ATRIX |
<А > ,< В > ,< С > |
Служебное слово MATRIX является оператором описания матрицы. Поле метки определяет имя матрицы (в программе это МАТ1 и МАТ2). Поле <А> в данной версии G PSS не используется. В поле <В> задается число строк матрицы (для МАТ1 и МАТ2 число строк равно 2). В поле <С> задается число столбцов матрицы (для МАТ1 и МАТ2 число столб цов равно 3). Каждая матрица может содержать не более 8191 элементов.
Формат записи оператора задания начальных ячеек матрицы INITIAL имеет вид:
IN ITIAL |
М Х $М А Т 2(2,2),50 |
INITIAL |
М Х $М А Т 2(2,3),10 |
Рассмотрим оператор INITIAL, который имеет поля <А> и <В>. В поле <А> задается стандартный числовой атрибут MX, связанный с име-
105
SIM U L A T E
VAR1 VA RIA BLE Cl+IOO
VAR2 V A RIA BLE C1+SQ R(100)
VAR3 VARIABLE INT(SQ R(101))
VAR4 VARIABLE SQR(625)
M AT1 M ATRIX ,2,3
M AT2 M ATRIX ,2,3
IN ITIA L M X $M AT2(2,3),10 IN ITIA L M XSM AT2(2,2),50 10 G ENERA TE 7,2
50 M SA V E V A L U E M A T 1,1,1,1 60 M SA V E V A L U E M A T 1,1,2,3
70 M SAV EVALU E M A T l,t,3,5
80 M SAVEVALUE M AT1,2,1,7
90 M SAV EVALU E M A T1,2,2,9
100 |
M SAV EVALU E M AT1,2,3,11 |
110 |
M SAV EVALU E M A T 2,1,1,C l |
120 |
M SAV EVALU E M A T2,1,2,100 |
130 |
M SAVEVALUE M A T 2,l,3,V $V A R l |
140 |
M SAV EVALU E M AT2,2,1,V $V AR2 |
150 |
M SAV EVALU E M AT2-,2,2,2 |
160 |
M SAVEVALUE M AT2+,2,3,5 |
170 |
SAVEVA LUE M M M 3,V $VAR3 |
200 |
TER M IN A TE 1 |
START 10
END
Р и с 3 58 П рограмма EX A M 29.G PS
нем матрицы посредством знака $, и с указанием номера строки и номера столбца определяемой матрицы, а в поле <В> — определяемая величина Операнд поля <В> может быть целым действительным числом
Оператор задания матриц INITIAL должен располагаться в програм ме после определения матрицы оператором MATRIX.
Формат записи блока MSAVEVALUE рассмотрим на примере форми рования матрицы под именем МАТ2
110 |
M SAVEVALUE |
М А Т 2,1,1,С 1 |
120 |
M SAVEVALUE |
М А Т 2,1,2,100 |
130 |
M SAVEVALUE |
M A T2,1,3,V $VAR 1 |
140 |
M SAVEVALUE |
M AT 2,2,1,V $V A R 2 |
150 |
M SAVEVALUE |
M A T 2 -,2 ,2 ,2 |
160M SAVEVALUE M A T 2+ ,2,3,5
Вполе <A> блока MSAVEVALUE задается имя матрицы, для которой осуществляется определение или переопределение ее элементов В поле <В> указывается номер строки определяемой матрицы первые три блока имеют первую строку — цифра 1, последующие три блока имеют цифру 2
Вполе <С> указывается номер столбца определяемой матрицы для пер-
GPSS/PC Report file |
REPORT |
GPS |
(V 2, |
# 37349) |
07-10-2001 05 |
21 25 |
page 1 |
||
START |
TIME |
END TIME BLOCKS |
FACILITIES STORAGES |
FREE MEMORY |
|||||
|
0 |
|
70 |
|
15 |
0 |
0 |
8 4 0 9 6 |
|
LINE |
LOC |
|
BLOCK^TYPE |
ENTRY_ COUNT CURRENT_COUNT |
RETRY |
||||
10 |
1 |
|
GENERATE |
|
10 |
0 |
0 |
||
50 |
2 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
60 |
3 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
70 |
4 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
80 |
5 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
90 |
6 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
100 |
7 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
110 |
8 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
120 |
9 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
130 |
10 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
140 |
21 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
150 |
12 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
160 |
13 |
|
MSAVEVALUE |
|
10 |
0 |
0 |
||
170 |
14 |
|
SAVEVALUE |
|
10 |
0 |
0 |
||
200 |
15 |
|
TERMINATE |
|
10 |
0 |
0 |
||
XACT_GROUP |
GROUP |
SIZE |
RETRY |
|
|
|
|||
POSITION |
|
|
|
0 |
|
0 |
|
|
|
SA V E V A L U E |
|
|
|
|
VALUE |
RETRY |
|
|
|
мммз |
|
|
|
|
+10 |
0 |
|
|
|
MATRIX |
RETRY |
ROW |
|
COLUMN |
VALUE |
|
|
|
|
MAT1 |
0 |
1 |
|
|
1 |
+ 1 |
|
|
|
|
|
|
|
|
|
|
|||
|
|
1 |
|
|
2 |
+3 |
|
|
|
|
|
1 |
|
|
3 |
+5 |
|
|
|
|
|
2 |
|
|
1 |
+ 7 |
|
|
|
|
|
2 |
|
|
2 |
+9 |
|
|
|
|
0 |
2 |
|
|
3 |
+11 |
|
|
|
MAT2 |
1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
+70 |
|
|
|
||
|
|
1 |
|
|
2 |
+ 100 |
|
|
|
|
|
1 |
|
|
3 |
+170 |
|
|
|
|
|
2 |
|
|
1 |
+80 |
|
|
|
|
|
2 |
|
|
2 |
+30 |
|
|
|
|
|
2 |
|
|
3 |
•♦60 |
|
|
|
|
Р и с |
3 59 |
Стандартны й отчет |
EXA M 29.RPT |
|
|
вых трех блоков заданы 1,2,3 столбцы (строка 1), для последующих бло ков и второй строки матрицы заданы 1, 2, 3 столбцы
В поле <D> задается определяемая величина в блоке под номером 110 задана величина С1 — время моделирования, в блоке 120 — число 100, в блоке 130 — переменная под именем VAR1, которая определена оператором VARIABLE как С1 + 100 (модельное время плюс число 100)
107
В блоке 140 задана переменная под именем VAR2, которая определена оператором VARIABLE как С 1 + -ЛОО, в блоке 150 — число 2, которое вы читается из начального значения элемента матрицы второй строки и вто рого столбца, и это вычитание происходит всякий раз,когда в блок MSAVEVALUE входит транзакт, т. е. 10 раз (в соответствии с оператором START 100). В блоке под номером 160 задано число 5, которое 10 раз скла дывается с начальным значением элемента матрицы второй строки и третьего столбца.
Операция сложения или вычитания в блоке MSAVEVALUE задается в поле <А> после имени матрицы соответственно знаком + или —. Если после имени матрицы в поле <А> знак опущен, то тогда происходит заме щение значения элемента матрицы полем <D>.
Сохранение переменной VAR3 блоком SAVEVALUE приведено для демонстрации использования стандартного оператора INT — оператора вычисления целой части выражения.
Результаты моделирования Q -схемы для примера 3.26 по программе EXAM29.GPS показаны на рис. 3.59 под именем EXAM29.RPT. В отчете приведена статистика по количеству генерируемых транзактов 10, сохра няемой величине блоком SAVEVALUE и формированию матриц блоками MSAVEVALUE.
В поле SAVEVALUE указано имя ячейки (ММ3), в которой сохраня ется число 10 (в поле VALUE).
Сформированные матрицы в отчете описаны в поле MATRIX. В са мом поле MATRIX указано имя матрицы (для первой матрицы МАТ1, а для второй — МАТ2). Поле RETRY определяет количество транзактов, ожидающих специальных условий, связанных с состоянием матричной сохраняемой величины (для примера специальных условий нет); поля ROW и COLUMN — номер строки и номер столбца матричной сохраняе мой величины; поле VALUE — значение элемента матричной сохраняе мой величины в конце моделирования (для первой матрицы это — 1,3,5, 7, 9, 11; для второй матрицы — 70, 100, 170, 80, 30, 60).
3.2.3. Блок TABULATE. Операторы TABLE, QTABLE.
Команда PLOT
Пример 3.27. В Q-схем у поступают заявки по равномерному закону со временем 5 ± 2 мин. Обработка заявок происходит параллельно в двух ка налах по равномерному закону. Причем 1-й канал обслуживает со време нем 15 ± 2 мин, а второй — со временем 17 ± 2 мин. Смоделировать про цесс обслуживания поступающих заявок в Q -схеме, собрать статистику об очередях при обслуживании 100 заявки. Представить также визуальное изображение длины очереди к одному из каналов и гистограмму распре деления длительности пребывания заявки в очереди средствами
G PSS/PS.
Программа решения задачи моделирования Q -схемы приведена на рис. 3.60 под именем EXAM30.GPS. По условию заявки распределяются
108
SIM U LA TE |
|
TTAB1 TA BLE QT 1,5,30,11; |
Поле < D > > = T I |
TTA B2 TA BLE Q T $LEN2,6,30,12; |
Поле <D > > = 12 |
*****************'******************************************
10 G EN ER A TE 5,2
20 SPLIT I,CH AN 2
30C H A N 1 Q U EU E 1
40 SEIZE I
50 D EPAR T 1
60 A D V A N C E 15,2
70 RELEA SE 1
75 TA BU LA TE TTAB1
80 TR A N SFER .EX IT 90C H A N 2 Q U EU E LEN2
100 |
SEIZE 2 |
110 |
D EPAR T LEN2 |
120 |
A D V A N C E 17,2 |
130 |
R ELEA SE 2 |
135 |
TA BU LA TE TTAB2 |
200 |
EX IT TER M IN A TE 1 |
***********************************************************
PLOT Q 1,130A 900
STA RT 100
END
Р и с . 3.60. П рограмма E X A M 30.G PS
по двум каналам, т. е. поступающий поток заявок разделяется и поровну направляется в каждый канал. В связи с тем, что время обслуживания ка ждым каналом различно, очевидно, следует ожидать, что количество об служенных заявок каждым каналом будет различным, но число посту пающих заявок в каждый канал будет одинаковым. Статистика об очере дях собирается автоматически при наличии в системе блоков QUEUE и DEPART. Табулирование значений какого-либо СЧА осуществляется применением оператора TABLE и блока TABULATE. Для построения диаграммы изменения значений выбранного СЧА используется команда PLOT.
Формат записи первого оператора TABLE:
ТТАВ1 TABLE Q T 1,5,30,11
В поле метки находится имя оператора ТТАВ1, в поле <А> задан стан дартный числовой атрибут QT1 — среднее время пребывания транзакта (заявки) в очереди под номером 1 (в соответствии с QUEUE 1). В общем случае в поле <А> задается аргумент таблицы — элемент данных, чье час тотное распределение будет табулироваться, в поле <В> — задается верх ний предел первого интервала (в программе число 5). Операнд поля <В> может быть целым. В поле <С> задается ширина частотного интервала (в программе число 30). Операнд поля <С> может быть положительным це лым. В поле <D> задается число частотных интервалов (в программе чис-
109
ло 11). Число частотных интервалов не должно превышать 8191. Операнд поля <D> может быть положительным целым.
Формат записи второго оператора TABLE имеет вид:
ТТАВ2 TABLE Q Q T $L A N 2,6,30,12
Меткой оператора TABLE является ТТАВ2, табулируемая величина поля <А> Qt$Lan2 — среднее время пребывания в очереди под именем LAN2, величина первого интервала равна 6 (поле <В>), ширина интерва ла равна 30 (поле <С>), число частотных интервалов равно 12 (поле <D>).
Выбор значений полей <B>,<C>,<D> сделан на основе результатов моделирования и статистики для очередей блоков SEIZE.
Формат записи первого блока TABULATE:
75 TABULATE ТТАВ1
Блок TABULATE табулирует текущее значение заданного аргумента таблицы. В поле <А> задается номер или имя таблицы (в программе имя первой таблицы ТТАВ1). Блок может иметь и поле <В>, в котором задает ся число единиц, заносимых в частотный интервал. Если поле <В> пусто (как в программе), то эта величина полагается равной 1. Формат записи второго блока TABULATE
135 TABULATE ТТАВ2
В поле <А> задано имя второй таблицы ТТАВ2.
Каждая таблица должна быть определена оператором TABLE. Табли ца изменяется в соответствии с операндами оператора TABLE.
Для отображения в рабочем окне данных системы G P S S /P C диаграм мы изменения числа заявок, находящихся в очереди, в программе EXAM30.GPS применена команда PLOT. Формат записи команды PLOT следующий.
PLO T Q 1 ,130,0,900
В поле <А> задается СЧА — аргумент отображения (Q1 — длина пер вой очереди), в поле <В> — максимальная величина отображаемой вели чины (в программе задано число 130 — предполагаемая максимальная длина очереди), в поле <С> — начальное время отображения (принят 0), в поле <D> — конечное время отображения (принято число 900, несколь ко превышающее общее время моделирования).
Команда PLOT инициализирует оси отображения и строит диаграм му изменения значений СЧА в процессе моделирования на интервале времени, заданном полями <С> и <D>. Для просмотра диаграммы следу ет закомментировать оператор END (точкой с запятой или звездочкой).
Гистограмма, построенная командой PLOT, для программы EXAM30.GPS показана на рис. 3.61.
Пример 3.28. Рассмотрим применение оператора QTABLE. В Q -cxe- м у поступают заявки по равномерному закону со временем 5 ± 2 мин. Обработка заявок осуществляется параллельно в двух каналах по равно мерному закону. Причем первый канал обслуживает заявки со временем
110