Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Моделирование систем. Практикум

.pdf
Скачиваний:
7
Добавлен:
12.11.2023
Размер:
17.79 Mб
Скачать

DEPART (выход из очереди). Блоки 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

Соседние файлы в папке книги