книги / Моделирование систем. Практикум
.pdfend |
GPSS/PC |
15 ± 2 мин, а второй — со временем 17 ± 2 мин. Провести моделирование процесса обслуживания поступающих заявок в Q -схем е и построить рас пределение времени пребывания заявок в очереди при обслуживании 100 заявок.
Пример 3 28 по своему содержанию полностью совпадает с предыду щим примером 3.27. Вопрос о получении распределения времени пребы вания заявок в очереди решается с помощью оператора QTABLE. Про грамма решения примера 3.28 EXAM31.GPS представлена на рис. 3.62 В данном примере оператор QTABLE действует совместно с блоком TABULATE. Формат записи оператора QTABLE отличается от формата оператора TABLE только заданием поля <А>.
Формат записи первого оператора QTABLE имеет вид*
ТТАВЗ QTABLE 17,5,20,29
В поле метки оператора задано имя ТТАВЗ, по которому происходит обращение к оператору QTABLE; в поле <А> — число 17 — номер очере ди, которая формируется блоком QUEUE под номером 30 (QUEUE 17); в поле <В> — ширина первого частотного интервала 5, в поле <С> — ши рина частотного интервала 20, в поле <D> — число частотных интервалов (это число равно 29, экспериментально подобранное и являющееся ми нимальным для данных условий моделирования) Операнд поля <D> не может превышать 8191.
Формат записи второго оператора QTABLE:
ТТАВ4 QTABLE L E N 2,6,20,31
В поле метки задается имя оператора QTABALE — ТТАВ4; в поле <А> — имя очереди — LEN2 (в программе очередь с именем LEN2 фор-
111
SIM U L A T E |
|
|
||
TTAB3 Q TA BLE 17,5,20,29, |
Г1ол« <D > > = 29 |
|||
TTA B4 Q TA BLE L E N 2,6,20,3I, |
Поле < D > > = 3 |
| |
||
********************** **************** **^ * |
********** |
|||
10 G ENER A TE 5,2 |
|
|
||
20 |
|
SPLIT 1,CHAN2 |
|
|
30C H A N 1 Q UEUE 17 |
|
|
||
40 |
|
SEIZE 1 |
|
|
50 |
|
DEPAR T 17 |
|
|
60 |
|
A D V A N C E 15,2 |
|
|
70 |
|
RELEA SE 1 |
|
|
75 |
TA BU LA TE TTAB3 |
|
|
|
80 |
TR A N SFER .EXIT |
|
|
|
9 0 C H A N 2 Q UEUE LEN2 |
|
|
||
100 |
SEIZE 2 |
|
|
|
110 D EPAR T LEN2 |
|
|
||
120 |
A D V A N C E 17,2 |
|
|
|
130 |
RELEASE 2 |
|
|
135 TABU LA TE TTAB4
200 EXIT TERM IN ATE 1
*********************************************^*****^^^^^^^^^
STA R T 100
END
t
Р и с 3 62 Программа EXAM31 GPS
мируется блоком SEIZE под номером 90), в поле <В> — верхняя граница первого частотного класса (в программе число 20), в поле <С> — ширина частотного интервала кроме первого (в программе число 20), в поле <D> — число частотных интервалов (в программе число 31, эксперимен тально подобранное для примера) Операнд поля <D> не может превы шать число 8191
В программе EXAM29.GPS ссылка на операторы QTABLE осуществ ляется блоками TABULATE под номерами 75 и 135 Блоки TABULATE инициализируют формирование таблицы очередей с помощью оператора описания Q-таблицы QTABLE.
Использование в модели операторов TABLE или QTABLE совместно с блоками TABULATE позволяет получить информацию о таблицах, в ко торые заносятся частотные распределения для построения гистограмм
Оператор QTABLE может формировать статистику об очередях и без блока TABULATE Более подробно о самостоятельном применении опе ратора QTABLE будет рассмотрено ниже
Результаты моделирования Q -схемы для примера 3 27 по программе EXAM30.GPS представлены на рис 3 63 под именем EXAM30.RPT.
Поле TABLE определяет имя таблицы (первая таблица с именем ТТАВ1, вторая таблица — ТТАВ2) Поле MEAN определяет среднее взве шенное значение табулируемого аргумента (СЧА QT1 Qt$Len2 — время пребывания в очереди под номером 1 и под именем LEN2 соответствен но) таблицы (для первой таблицы 139 89, для второй таблицы 146 17)
112
GPSS/PC Report file |
REPORT |
GPS |
|
(V 2 |
« 37349> |
07-10-2001 |
05 |
27 29 |
page 1 |
|||||||
STARTJTIME |
END_ TIME |
BLOCKS |
FACILITIES |
STORAGES |
|
FRE2J4EMORY |
||||||||||
|
0 |
|
800 |
16 |
|
|
|
2 |
|
|
0 |
|
63264 |
|
||
LINE |
LOC |
|
BLOCK_TYPE |
|
ENTRY^COUNT |
CURRENT_COUNT RETRY |
||||||||||
10 |
1 |
|
GENERATE |
|
|
|
|
164 |
|
|
0 |
|
0 |
|||
20 |
2 |
|
SPLIT |
|
|
|
|
|
164 |
|
|
0 |
|
0 |
||
30 |
CHAN* |
|
QUEUE |
|
|
|
|
|
164 |
|
|
110 |
|
0 |
||
40 |
4 |
|
SEIZE |
|
|
|
|
|
|
54 |
|
|
1 |
|
0 |
|
50 |
5 |
|
DEPART |
|
|
|
|
|
53 |
|
|
0 |
|
0 |
||
60 |
6 |
|
ADVANCE |
|
|
|
|
|
53 |
|
|
0 |
|
0 |
||
70 |
7 |
|
RELEASE |
|
|
|
|
|
53 |
|
|
0 |
|
0 |
||
75 |
8 |
|
TABULATE |
|
|
|
|
|
53 |
|
|
0 |
|
0 |
||
ВО |
9 |
|
TRANSFER |
|
|
|
|
|
53 |
|
|
0 |
|
0 |
||
90 |
CHAN? |
|
QUEUE |
|
|
|
|
|
164 |
|
|
116 |
|
0 |
||
100 |
11 |
|
SEIZE |
|
|
|
|
|
|
48 |
|
|
0 |
, |
0 |
|
110 |
12 |
|
DEPART |
|
|
|
|
|
|
48 |
|
|
0 |
|
0 |
|
120 |
13 |
|
ADVANCE |
|
|
|
|
4B |
|
|
1 |
|
0 |
|||
130 |
14 |
|
RELEASE |
|
|
|
|
47 |
|
|
0 |
|
0 |
|||
135 |
15 |
|
TABULATE |
|
|
|
|
|
47 |
|
|
0 |
|
0 |
||
200 |
EXIT |
|
TERMINATE |
|
|
|
100 |
|
|
0 |
|
0 |
||||
FACILITY |
ENTRIES |
|
UTIL |
AVE JTIME |
AVAILABLE1 |
OWNER PEND INTER RETRY DELAY |
||||||||||
1 |
54 |
0 |
993 |
|
14 |
72 |
|
|
1 |
|
106 |
0 |
|
0 |
c1 |
110 |
2 |
48 |
0 |
993 |
|
16 |
56 |
|
|
1 |
|
97 |
0 |
|
0 |
01 |
116 |
QUEUE |
MAX |
CONT ENTRIES |
ENTRIES(0) |
AVE |
CONT |
AVE TIME |
AVE <- 0) |
RETRY |
||||||||
1 |
111 |
111 |
164 |
|
|
1 |
|
56 |
28 |
274 |
55 |
276 |
24 |
0 |
||
LEN2 |
117 |
116 |
164 |
|
|
1 |
|
59 |
12 |
288 |
3B |
290 |
15 |
0 |
||
TABLE |
MEAN |
STD DEV |
RETRY |
|
RANGE |
|
|
FR E Q U EN C Y |
CUM % |
|||||||
TTAB1 |
139 |
B9 |
B1 |
18 |
0 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
1 |
89 |
|
|
|
|
|
|
|
|
5 |
- |
|
|
35 |
|
|
5 |
11 |
32 |
|
|
|
|
|
|
|
35 |
- |
|
|
65 |
|
|
7 |
24 |
53 |
|
|
|
|
|
|
|
65 |
- |
|
|
95 |
|
|
5 |
33 |
96 |
|
|
|
|
|
|
|
95 |
- |
|
|
125 |
|
|
5 |
43 |
40 |
|
|
|
|
|
|
125 |
- |
|
|
155 |
|
|
7 |
56 |
60 |
|
|
|
|
|
|
|
155 |
- |
|
|
185 |
|
|
S |
66 |
04 |
|
|
|
|
|
|
|
185 |
- |
|
|
215 |
|
|
5 |
75 |
47 |
|
|
|
|
|
|
|
215 |
|
|
|
245 |
|
|
7 |
88 |
68 |
|
|
|
|
|
|
|
24 5 |
|
|
|
275 |
|
|
6 |
100 |
00 |
|
TTAB2 |
146 |
17 |
85 |
32 |
0 |
|
|
|
6 |
|
|
|
2 |
h |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
13 |
||
|
Р и с |
3 63 (I) |
Стандартный |
отчет |
EXA M 30.R PT |
|
|
Поле STD.DEV определяет взвешенное среднеквадратичное отклонение (для первой таблицы 8 i 18, для второй — 85 32) Взвешенное среднеквад ратичное отклонение (S.D.) вычисляется по формуле
В - 3083 |
113 |
|
|
|
|
6 |
- |
36 |
5 |
12 |
77 |
|
|
|
|
36 |
- |
66 |
5 |
2 3 |
.4 0 |
|
|
|
|
66 |
- |
96 |
4 |
3 1 |
.9 1 |
|
|
|
|
96 |
- |
126 |
5 |
4 2 |
.5 5 |
CPSS/PC R e p o r t |
f i l e |
REPORT.GPS. |
(V 2 , » |
37349) |
0B -2 0 - 1999 19 |
0 7 :0 1 |
p a g e 2 |
||
TABLE |
MEAN |
STD DEV |
RETRY |
RANGE |
FREQUENCY |
CUM |
% |
||
|
|
|
|
126 |
- |
156 |
6 |
5 5 .3 2 |
|
|
|
|
|
156 |
- |
186 |
4 |
63 |
B3 |
|
|
|
|
186 |
- |
216 |
4 |
7 2 .3 4 |
|
|
|
|
|
21 6 |
- |
246 |
6 |
8 5 .1 1 |
|
|
|
|
|
246 |
- |
276 |
5 |
9 5 .7 4 |
|
|
|
|
|
276 |
- |
306 |
2 |
100.00 |
|
XACTGRCKJP |
GROUP_SI2E |
RETRY |
|
|
|
|
|
||
POSITION |
|
|
0 |
0 |
|
|
|
|
|
Р и с . |
3.63.(11). Стандартный отчет EXA M 30.RPT |
|
|
||||||
|
|
J |
S O S |
|
S U M |
|
|
|
|
|
S D ' у C O U N T - 1 ~ C O U N T {C O U N T - 1 ) ' |
|
|
|
где SOS — сумма квадратов значений аргументов; COUNT — чис ло входов в таблицу; SUM — квадрат суммы значений аргументов таблицы.
Поле RETRY определяет количество транзактов, ожидающих выпол нения специальных условий, зависящих от состояния таблицы (в приме ре специальных условий нет); поле RANGE — верхний и нижний преде лы частотных классов (ширина частотного интервала). Для первой табли цы ширина первого интервала равна 5, а для последующих интервалов 30. Для второй таблицы ширина первого интервала равна 6, а для остальных 30. Поле FREQUENCY определяет суммарную величину, которая форми руется при попадании табулируемого аргумента (времени пребывания в очереди) в указанные границы, заданные полем RANGE. Поле CUM. % определяет величину частоты в процентах к общему количеству значе ний табулируемого аргумента.
Для табулированного аргумента таблиц (времени пребывания в оче реди) последний частотный интервал должен превышать или быть рав ным величине поля AVE.TIME, относящегося к статистике очередей (QUEUE). Пометки PAGE1 и PAGE2 соответствуют данным, условно раз мещенным на первой и на второй страницах.
Результаты моделирования Q -схемы для примера 3.28 по программе EXAM31.GPS представлены на рис. 3.64 под именем EXAM31.RPT.
В файле стандартного отчета EXAM31.RPT для программы, в которой предусмотрен сбор статистики о распределении времени пребывания транзактов в очереди с помощью оператора QTABLE и блока TABULATE, выводимая информация имеет тот же вид и значения полей, что и для слу чая использования оператора TABLE. Поле QTABLE определяет имя
114
GPSS/PC |
Report file REPORT.GPS. |
(V 2, # 37349) |
07-10-2001 05:25:29 |
p«ge 1 |
||||||||
STARTJTIME |
END_TIME |
BLOCKS |
FACILITIES |
STORAGES |
FREE_MEMORY |
|||||||
|
0 |
BOO |
16 |
|
2 |
|
0 |
63200 |
RETRY |
|||
LINE |
LOC |
|
BLOCK_TYPE |
|
ENTRYJCOUNT |
CURRENTjCOUNT |
||||||
10 |
1 |
|
GENERATE |
|
164 |
|
0 |
|
0 |
|||
20 |
2 |
|
SPLIT |
|
|
164 |
|
0 |
|
0 |
||
30 |
CHAN1 |
|
QUEUE |
|
|
164 |
|
110 |
|
0 |
||
40 |
4 |
|
SEIZE |
|
|
|
54 |
|
1 |
|
0 |
|
50 |
5 |
|
DEPART |
|
|
53 |
|
0 |
|
0 |
||
€0 |
6 |
|
ADVANCE |
|
|
53 |
|
0 |
|
0 |
||
70 |
7 |
|
RELEASE |
|
|
53 |
|
0 |
|
0 |
||
75 |
e |
|
TABULATE |
|
|
53 |
|
0 |
|
0 |
||
BO |
9 |
|
TRANSFER |
|
|
53 |
|
0 |
|
0 |
||
90 |
CRAN2 |
|
QUEUE |
|
|
164 |
|
116 |
|
0 |
||
100 |
11 |
|
SEIZE |
|
|
|
40 |
|
0 |
|
0 |
|
110 |
12 |
|
DEPART |
|
|
|
4B |
|
0 |
|
0 |
|
120 |
13 |
|
ADVANCE |
|
|
4B |
|
1 |
|
0 |
||
130 |
14 |
|
RELEASE |
|
47 |
|
0 |
|
0 |
|||
135 |
15 |
|
TABULATE |
|
47 |
|
0 |
|
0 |
|||
200 |
EXIT |
|
TERMINATE |
|
100 |
|
0 |
|
0 |
|||
FACILITY |
ENTRIES |
UTIL |
|
AVE.JTIME AVAILABLE |
OWNER PEND INTER RETRY DELAY |
|||||||
1 |
54 0 .9 9 3 |
|
|
1 4 .7 2 |
1 |
106 |
0 |
0 |
c> |
110 |
||
2 |
48 0 .9 9 3 |
|
|
1 6 .5 6 |
1 |
97 |
0 |
0 |
0> |
116 |
||
QUEUE |
MAX |
IZONT. |
ENTRIES |
ENTRIES(0) AVE.CONT. |
AVE. TIME |
A V E .<- 0) |
RETRY |
|||||
17 |
111 |
111 |
|
164 |
|
1 |
5 6 .2 0 |
2 7 4 .5 5 |
2 7 6 . 24 |
0 |
||
LEN2 |
117 |
116 |
|
164 |
|
1 |
5 9 .1 2 |
2 8 8 .3 0 |
290*. 15 |
0 |
||
TABLE |
MEAN |
STD.DEV. |
RETRY |
RANGE |
|
FREQUENCY |
CUM.% |
|||||
TTAB3 |
270 .6 3 |
|
1 6 1 .5 2 |
0 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
5 |
|
2 |
|
1 .8 9 |
|
|
|
|
|
|
5 |
|
25 |
|
4 |
|
5 .6 6 |
|
|
|
|
|
|
25 |
|
45 |
|
4 |
|
9 .4 3 |
|
|
|
|
|
|
45 |
|
65 |
|
4 |
1 3 .2 1 |
|
|
|
|
|
|
|
65 |
|
85 |
|
4 |
1 6 .9 8 |
|
|
|
|
|
|
|
B5 |
|
105 |
|
2 |
1 8 .8 7 |
|
|
|
|
|
|
|
105 |
|
125 |
|
6 |
2 4 .5 3 |
|
|
|
|
|
|
|
125 |
|
145 |
|
4 |
2 B .3 0 |
|
|
|
|
|
|
|
145 |
|
165 |
|
4 |
3 2 .0 0 |
|
|
|
|
|
|
|
165 |
|
105 |
|
4 |
3 5 .0 5 |
|
|
|
|
|
|
|
165 |
|
205 |
|
2 |
3 7 .7 4 |
|
|
|
|
|
|
|
205 |
|
225 |
|
4 |
4 1 .5 1 |
|
|
|
|
|
|
|
225 |
|
245 |
|
4 |
4 5 .2 0 |
|
|
|
|
|
|
|
245 |
|
265 |
|
4 |
4 9 .0 6 |
|
|
|
|
|
|
|
265 |
|
205 |
|
4 |
5 2 .8 3 |
|
|
|
|
|
|
|
285 |
|
305 |
|
2 |
5 4 .7 2 |
Ри с . 3.64. Стандартный отчет EXAM31
8* |
115 |
0-таблицы (для примера это ТГАВЗ и ТТАВ4) Данные поля QTABLE можно использовать как для построения гистограмм пребывания транзактов в очереди, так и для определения и построения выборочной эмпи рической функции распределения времени пребывания транзактов в очереди
Примеры построения гистограмм и функций распределения рассмотрены при выполнении лабораторных и курсовых работ в следующих главах.
3.3. ПРОГРАММИРОВАНИЕ ДЛЯ ГРУППИРУЮЩЕЙ КАТЕГОРИИ ЯЗЫКА МОДЕЛИРОВАНИЯ GPSS/PC.
СПИСКИ ПОЛЬЗОВАТЕЛЯ. ГРУППЫ
Интерпретатором GPSS/PC транзакты (сообщения) заносятся в списки, в которых они хранятся в зависимости от типа списка. Имеется пять типов списков.
В списке текущих событий находятся сообщения, соответст вующие событиям, время наступления которых меньше или равно текущему модельному времени.
Список будущих событий содержит сообщения, соответствую щие событиям, время наступления которых больше текущего вре мени. События должны произойти в будущем.
Список прерываний содержит те отдельные сообщения, обслу живание которых соответствующими устройствами было прерва но, а также те, которые вызвали прерывание.
Список синхронизируемых сообщений содержит сообщения, на ходящиеся в данный момент в состоянии сравнения.
Список пользователя содержит сообщения, удаленные пользо вателем из списка текущих событий и помещенные в список поль зователя как временно неактивные. Со списком пользователя свя заны блоки LINK и UNLINK.
В GPSS/PC предусмотрен специальный тип объектов — груп пы. Группы обеспечивают пользователя средствами разделения сообщений и других объектов на определенные категории. При надлежность к группе и возможность обращения к членам группы не зависят от состояния составляющих группу сообщений. С груп пами связаны пять типов блоков: JOIN, REMOVE, EXAMINE, SCAN, ALTER.
116
3.3.1. Блок LINK, UNLINK
Перевод сообщений из списка текущих событий в список пользователя осуществляется блоком LINK, удаление сообщений из списка пользователя — блоком UNLINK.
Пример 3.29. Заявки поступают в Q-схему через 20 ± 2 мин и направ ляются во 2-й канал обслуживания в течение 70 мин. По прошествии 70 мин заявки направляются на обслуживание в 1 -й канал. Каждый из ка налов осуществляет обслуживание в течение 19 ± 7 мин. Предусмотреть вывод заявок в списки пользователя и их возврат на обслуживание в кана лы. Причем 1 -й канал обслуживает заявки, 100 из которых полностью об служиваются и выводятся из системы, а остальные заявки отправляются на дообслуживание во 2-й канал. В 1 -м канале обслуживание предусмот рено по дисциплине FIFO — первым пришел, первым обслужился Смо делировать процесс обслуживания заявок и собрать статистику о работе каналов, возникающих очередях, списках пользователя.
Программа решения примера 3 29 приведена на рис. 3.65 под именем EXAM32.GPS. В ней содержатся два блока, распределяющие транзакты по каналам: блок TEST в режиме сравнения «больше» G и блок UNLINK, который удаляет транзакты из списка пользователя сначала в 1-е устрой ство, затем во 2-е устройство. Следует отметить, что корректная работа блоков LINK и UNLINK в большой степени зависит от соотношения вре мени генерации транзактов и их временной задержки в устройствах. Реа лизация достижения момента в 70 мин получается при введении в поле <А> блока TEST числового атрибута С1 — текущего значения модельно-
SIM U L A T E |
|
|
10 G ENERA TE 20,2 |
|
|
20 |
ASSIGN 13,7 |
|
30 |
TEST G C1,70,Q UE2 |
|
40 |
Q U E U E 1; |
1-я очередь |
50 |
LINK W AZ1,FIFO ,CH AN1 |
|
60 |
CHAN1 SEIZE 1; |
1-е устройство с метдоЦ C H AN I |
70 |
DEPART I |
|
80 |
A D V A N C E 19,7 |
|
90 |
RELEA SE I |
|
100 |
UNLINK G W AZ1,CH AN 1,1,13,6,Q U E2 |
|
150 TERM IN ATE 1 |
|
|
200 |
QUE2 Q UEUE 2; |
2-я очередь с меткой Q UE2 |
210 |
SEIZE 2; |
2-е устройство |
220 |
DEPAR T 2 |
|
230 AD VAN CE 19,7 |
|
|
240 |
RELEASE 2 |
|
250 TERM IN ATE |
|
|
STA RT 100 |
|
|
END |
|
P И с** 34& Я дедам » EXAM32.GPS
117
го времени. Один блок TERMINATE отсчитывает число завершений, за данного оператором START. Другой блок TERMINATE выводит транзакты из системы без уменьшения счетчика числа завершений (поле <А> пусто).
Формат записи блока LINK имеет вид:
50 LINK WAZ1,FIF0,CHAN1
В поле <А> блока LINK задается имя списка пользователя, куда зано сятся транзакты (в программе задано имя WAZ1). Поле <В> задает алго ритм упорядочивания списка пользователя (в программе применена дис циплина FIFO). В поле <В> могут быть использованы операнды: FIFO, LIFO — последним пришел первым обслужен, номер параметра, при оритет, время нахождения транзакта в модели M l или С1. В поле <С> за дается альтернативный выход (в программе по метке CHAN1 транзакты отправляются в первое устройство под номером 60).
Формат записи блока UNLINK:
100 UNLINK G WAZ1,CHAN1,1,13,6,QUE2
В данном случае задействованы все поля блока UNLINK: <А>, <В>, <С>, <D>, <Е>, <F> и вспомогательное поле <Х>. В поле <Х> установлен указатель отношения G — больше. Отношение истинно, если значение параметра, заданного в поле <D>, больше значения, заданного в поле <Е>. Поле <А> задает имя списка пользователя (в программе WAZ1), из которого удаляются транзакты. В поле <В> указывается имя блока, к ко торому переходят удаленные транзакты (в программе блок с меткой CHAN1). Поле <С> задает число удаляемых из списка транзактов (в про грамме это 1). Операнд поля <С> может быть именем, положительным целым (как в программе число 1), СЧА, ALL — удаление всех транзактов. В поле <D> задан номер параметра (в программе номер 13, который пере определен блоком ASSIGN на число 7). Поле <D> может быть именем, целым (как в программе номер параметра), СЧА, BACK, BVj — булевская переменная с заданным номером j. При задании операнда BACK из ука занного списка пользователя, начиная с конца списка, удаляются тран закты в соответствии с заданием поля <С> (счетчик). Поле <Е> определя ет числовой атрибут (в программе задано число 6), который сравнивается со значением параметра транзактов списка пользователя поля <D>. Поле <F> задает имя следующего для входящего в блок UNLINK транзакта (в программе блок с меткой QUE2). При этом перевод транзактов в следую щий блок происходит в случаях: когда соответствующий список пользо вателя пуст, когда выполняется заданное отношение в поле <Х>.
Возможны варианты работы блока UNLINK в зависимости от того, какие из полей заполнены.
Для сравнения результатов моделирования рассмотрим программу EXAM33.GPS (рис. 3.66), в которой отсутствуют блоки LINK, UNLINK. В соответствии с программой EXAM33.GPS транзакты в начальный период моделирования (пока время меньше 70 мин) и отправляются в очередь 2-го устройства QUE2. Как только отношение в поле <Х> блока TEST бу дет истинным (т. е. время моделирования превысит число 70), то транзак-
118
SIM U L A T E |
|
|
10 GENERA TE 20,2 |
|
|
20 |
ASSIGN 13,7 |
|
30 |
TEST G C1,70,QUE2 |
|
40 |
QUEUE 1; |
1-я очередь |
60 |
CH AN1 SEIZE l; |
1-е устройство с меткой C H A N l |
70 |
DEPART 1 |
|
80 |
ADVANCE 19,7 |
|
90 |
RELEASE 1 |
|
150 TERM IN ATE 1 |
|
|
200Q U E 2 Q UEUE 2; |
2-я очередь с меткой Q UE2 |
|
210 |
SEIZE 2; |
2-е устройство |
220 |
DEPART 2 |
|
230 |
ADVANCE 19,7 |
|
240 |
RELEASE 2 |
|
250 |
TERM INATE |
|
STA RT 100
END
Р и с . 3 66. Программа EXAM33.GPS
ты будут следовать в следующий по номеру блок — в блок QUEUE под но мером 40.
Рассмотрим пример применения одного блока LINK.
Пример 3.30. Пусть в условии примера 3.29 транзакты направляются блоком TEST в очередь 2-го устройства, из которой они помещаются в список пользователя. Программа решения примера 3.30 приведена на рис. 3.67 под именем EXAM34.GPS.
SIM U LATE
10 G ENERA TE 20,2
20 ASSIGN 13,7
30 TEST G C1,70,Q UE2
40 QUEUE 1; 1-я очередь
60 C H A N l SEIZE 1; 1-е устройство с меткой C H A N l
70 DEPART 1
80 ADVAN CE 19,7
90 RELEASE 1
150 TERM IN ATE I
200 Q UE2 Q UEUE 2; 2-я очередь с меткой QUE2 205 LINK W A Z l,FIFO
210 SEIZE 2; 2-е устройство
220 DEPART 2
230 AD VAN CE 19,7
240 RELEASE 2
250 TERM IN ATE START 100
END
Р и с . 3.67. ПргорздДО EXAM34.GPS
119
Формат записи блока LINK имеет вид
205LINK W AZLFIFO
Вполе <А> задается имя списка пользователя WAZ1, куда помещают ся вошедшие в блок LINK транзакты. Поле <В> определяет дисциплину вошедших в список пользователя транзактов (в программе используется FIFO — вошедший транзакт помещается в конец списка пользователя). Поля <А> и <В> блока LINK являются обязательными.
Рассмотрим сначала файл стандартного отчета для программы EXAM33.GPS, который показан на рис. 3.68 под именем EXAM33.RPT.
Блоком GENERATE было сгенерировано 104 транзакта: 101 транзакт блоком TEST отправлены в очередь 1-го устройства, а три транзакта от правлены в очередь 2-го устройства. Среднее время нахождения транзак та в 1-й очереди составляет 3.31 мин, а во 2-й очереди — 0 мин (поле AVE.TIME для очередей под номерами 1 и 2). Причем 1-е устройство об служило 100 заявок, а 2-е — 3 заявки.
Для сравнения с отчетом EXAM33.RPT рассмотрим файл стандартно го отчета EXAM32.RPT (рис. 3.69). Отметим, что число сгенерированных
GPSS/PC |
R e p o r t f i l e REPORT.GPS. |
(V 2 , |
# 3 7349) |
0 7 -1 0 - 2 0 0 1 0 5 :3 1 :2 7 p a g e 1 |
|||||||
START TIME |
END TIME |
BLOCKS |
FA CILITIES STORAGES |
FREE MEMORY |
|||||||
|
0 |
2074 |
15 |
|
2 |
|
0 |
|
84176 |
|
|
LINE |
LOC |
BLOCK_TYPE |
|
ENTRY_COUNT |
CURRENT_ COUNT |
RETRY |
|||||
10 |
1 |
GENERATE |
|
|
104 |
|
|
0 |
0 |
||
20 |
2 |
ASSIGN |
|
|
|
104 |
|
|
0 |
0 |
|
30 |
3 |
TEST |
|
|
|
104 |
|
|
0 |
0 |
|
40 |
4 |
QUEUE |
|
|
|
101 |
|
|
0 |
0 |
|
60 |
CHAN1 |
SEIZE |
|
|
|
101 |
|
|
1 |
0 |
|
70 |
6 |
DEPART |
|
|
|
100 |
|
|
0 |
0 |
|
80 |
7 |
ADVANCE |
|
|
100 |
|
|
0 |
0 |
||
90 |
a |
RELEASE |
|
|
100 |
|
|
0 |
0 |
||
150 |
9 |
TERMINATE |
|
|
100 |
|
|
0 |
0 |
||
200 |
QUE2 |
QUEUE |
|
|
|
3 |
|
|
0 |
0 |
|
210 |
11 |
SEIZE |
|
|
|
3 |
|
|
0 |
0 |
|
220 |
12 |
DEPART |
|
|
|
3 |
|
|
0 |
0 |
|
230 |
13 |
ADVANCE |
|
|
3 |
|
|
0 |
0 |
||
240 |
14 |
RELEASE |
|
|
|
3 |
|
|
0 |
0 |
|
250 |
15 |
TERMINATE |
|
|
3 |
|
|
0 |
0 |
||
FACILITY |
ENTRIES |
U TIL. |
AVE._TIME |
AVAILABLE |
OWNER PEND |
INTER RETRY DELAY |
|||||
1 |
101 0 .0 9 1 |
1 8 .3 0 |
|
1 |
104 |
0 |
0 |
0 |
0 |
||
2 |
3 |
0 .0 2 1 |
1 5 .0 0 |
|
1 |
0 |
0 0 |
0 0 |
|||
QUEUE |
MAX |
CONT. ENTRIES |
ENTRIES(0) |
AVE.CONT. |
AVE.TIME |
A V E .(-O ) |
RETRY |
||||
1 |
1 |
1 101 |
|
41 |
0 .1 6 |
3 .3 1 |
5 .5 7 |
0 |
|||
2 |
1 |
0 |
3 |
|
3 |
0.00 |
0.00 |
000 |
0 |
||
XACT_GROUP |
GROUP_SIZE |
|
RETRY |
|
|
|
|
|
|
||
POSITION |
0 |
|
|
0 |
|
|
|
|
|
|
|
|
Р и с . 3.68. Стандартный |
отчет |
EXA M 33.R PT |
|
|
120