книги / Моделирование систем. Практикум
.pdfGPSS/PC R e p o r t f i l e REPORT.GPS. |
(V 2 ё * |
37349) |
0 7 - 1 0 -2 0 0 1 |
0 5 :3 5 :2 9 p a g e 1 |
||||||||
START_TIME |
END_TIME |
BLOCKS |
FACILITIES |
STORAGES |
FREE MEMORY |
|||||||
|
0 |
3897 |
17 |
|
2 |
|
0 |
|
83712 |
|
||
LINE |
LOC |
BLOCK_TYPE |
|
ENTRY_COUNT |
CURRENT_ COUNT |
RETRY |
||||||
10 |
1 |
GENERATE |
|
|
194 |
|
|
0 |
0 |
|||
20 |
2 |
ASSIGN |
|
|
|
194 |
|
|
0 |
0 |
||
30 |
3 |
TEST |
|
|
|
194 |
|
|
0 |
0 |
||
40 |
4 |
QUEUE |
|
|
|
191 |
|
|
0 |
0 |
||
50 |
5 |
LINK |
|
|
|
191 |
|
|
1 |
0 |
||
60 |
CHAN1 |
SEIZE |
|
|
|
190 |
|
|
0 |
0 |
||
70 |
7 |
DEPART |
|
|
|
190 |
|
|
0 |
0 |
||
во |
в |
ADVANCE |
|
|
190 |
|
|
0 |
0 |
|||
90 |
9 |
RELEASE |
|
|
190 |
|
|
0 |
0 |
|||
100 |
10 |
UNLINK |
|
|
|
190 |
|
|
0 |
0 |
||
150 |
11 |
TERMINATE |
|
|
100 |
|
|
0 |
0 |
|||
200 |
QUE2 |
QUEUE |
|
|
|
93 |
|
|
0 |
0 |
||
210 |
13 |
SEIZE |
|
|
|
93 |
|
|
0 |
0 |
||
220 |
14 |
DEPART |
|
|
|
93 |
|
|
0 |
0 |
||
230 |
15 |
ADVANCE |
|
|
93 |
|
|
0 |
0 |
|||
240 |
16 |
RELEASE |
|
|
|
93 |
|
|
0 |
0 |
||
250 |
17 |
TERMINATE |
|
|
93 |
|
|
0 |
0 |
|||
FACILITY |
ENTRIES |
UTIL. AVE._TIME |
AVAILABLE |
OWNER PEND |
INTER RETRY |
D ELAY |
||||||
1 |
190 |
0 .8 8 2 |
1 8 .1 0 |
|
1 |
|
0 |
0 |
0 |
0 |
0 |
|
2 |
93 0 .4 6 3 |
1 9 .4 2 |
|
1 |
|
0 |
0 0 |
0 0 |
||||
QUEUE |
MAX |
CONT. ENTRIES |
ENTRIES(0) |
AVE.CONT. AVE. TIME |
A V E .(-O ) |
RETRY |
||||||
1 |
1 |
1 |
191 |
|
96 |
|
0 .1 7 |
|
3 .5 7 |
7 .1 7 |
0 |
|
2 |
1 |
0 |
93 |
|
59 |
|
0 .0 5 |
|
2 .2 7 |
6.21 |
0 |
|
USER_CHAIN |
CHAIN_SIZE |
RETRY |
AVE.CONT |
ENTRIES |
MAX |
AVE. TIME |
||||||
NAZI |
|
0 |
0 |
|
0 .1 7 |
|
|
100 |
|
1 |
<5 .8 1 |
|
XACTJ3ROUP |
|
GROUP_SIZE |
RETRY |
|
|
|
|
|
|
|
||
POSITION |
|
0 |
|
0 |
|
|
|
|
|
|
|
Р и с . 3.69. Стандартный отчет EXA M 32.RPT
транзактов увеличилось и составило 194 (по сравнению с отчетом EXAM33.RPT). Во 2-м устройстве обслужено 93 транзакта. Изменились статистики по очередям и появилась статистика по списку пользователя. В поле USER_CHAIN задано имя списка пользователя (в отчете WAZ1). Поле CHAINJSIZE определяет количество транзактов в списке пользова теля в конце периода моделирования (в отчете 0). Поле RETRY определя ет количество транзактов, ожидающих наступления специальных усло вий, связанных со списком пользователя. Поле AVE.CONT определяет среднее содержимое списка пользователя в течение периода моделирова ния (в отчете 0,17 транзактов). Поле ENTRIES определяет общее количе ство транзактов, помещаемых в список пользователя в течение периода моделирования (в отчете 100 транзактов). Поле МАХ определяет макси мальное количество транзактов в списке пользователя за период модели-
121
Блок EXAMINE предоставляет пользователю возможность вы бора пути, по которому проследует сообщение в зависимости от состояния членов заданной группы. Блок EXAMINE также можно использовать в режиме сообщения или в числовом режиме.
Пример 3.31. Смоделировать процесс параллельного обслуживания заявок, которые поступают в Q -схему со временем 4 ± 2 мин. Причем 1-й канал обслуживает 100 заявок со временем 7 ± 2 мин, а 2-й канал обслу живает все остальные поступающие в систему заявки со временем 3 ± 1 мин. Применить блок JOIN в числовом режиме и режиме сообщения. В числовую группу ввести: параметр транзакта под номером 23, в который записано число 34, числа 21,2221, 39. В группу сообщений ввести количе ство транзактов, поступающих на I-й канал.
Программа решения примера 3.31 приведена на рис. 3.71 под именем EXAM35.GPS. В программе блок JOIN используется в режиме сообще ния (под номером 30) и в числовом режиме (под номерами 35, 36, 37, 38). Блоки SAVEVALUE сохраняют стандартные числовые атрибуты, задан ные в полях <В>: GTSGR2 — текущее число членов в группе с именем GR2, CNSGR1 — текущее число членов в числовой группе с именем GR1.
Формат записи блока JOIN в режиме сообщения имеет следующий
вид:
30 JO IN GR2
SIM U LA TE
10 G EN ER A TE 4,2
15SA V EV A LU E M M M 1,G N $G R 1;
16SA V EV A LU E M M M 2,G T $G R2 20 SPLIT 1,CHAN2
25 A SSIG N 23,34
30 JOIN GR2
35 JO IN G R1,P23
36 JOIN GR1,21
37JO IN G R 1,2221
38JO IN G R1,39
40SEIZE 1
50 |
A D V A N C E 7,2 |
60 |
RELEA SE 1 |
66 |
SA V EV A LU E M M M 3,G N $G R I |
70 T R A N S F E R ,EXIT 80C H A N 2 SEIZE 2
90 |
A D V A N C E 3,1 |
100 |
RELEA SE 2 |
110 |
SA V EV A LU E M M M 4,G N $G R1 |
150 |
TER M IN A TE |
200 |
EXIT TER M IN A TE 1 |
STA R T 100 |
|
END |
|
Р и с |
3.71. Программа EXAM35.GPS |
124
Блок JOIN под номером 30 имеет одно заполненное поле <А>, кото рое задает имя группы — GR2. Операнд поля <А> может быть также по ложительным целым, СЧА, СЧА с параметром.
Формат записи блока JOIN в числовом режиме:
35 JOIN GR1,P23
36 JOIN GR1,21
37 JOIN GR1,2221
38 JOIN GR1,39
Для каждой записи блока JOIN в поле <А> указывается имя группы. В поле <В> задается присоединяемое к группе числовое значение: число 34 через параметр 23, числа 21, 2221,39. Таким образом, в группу с именем 8 внесены четыре числа.
Два блока TERMINATE используются для вывода заявок (транзактов) из системы: блок под номером 200 связан со счетчиком числа завер шений через оператор START 100, блок под номером 150 выводит из сис темы транзакты, обслуженные во втором устройстве.
Каждый из блоков SAVEVALUE заносит в отводимую ячейку (МММ1, МММ2, МММЗ, МММ4) соответственно: число членов в группе GR1, число транзактов в группе сообщения GR2, число членов в группе GR1, число членов в группе GR1.
Рассмотрим числовой режим блока REMOVE.
Пример 3.32. Смоделируем процесс обслуживания заявок, которые поступают в Q -схем у каждые 8 мин. Обслуживание происходит в 1-м ка нале со временем 7 ± 2 мин и обслуживаются 100 заявок. Сформируем чи словую группу из чисел: 21, 39,44, Р23 — параметр со значением 15. Пре дусмотреть удаление из группы числа 21, параметра р23 (число 15) и пере вод заявок во 2-й канал, который обслуживает заявки также со временем 7 ± 2 мин.
Программа решения задачи моделирования Q -схемы примера 3.32 представлена на рис. 3.72 под именем EXAM36.GPS. В группу под именем GR1 заносятся числа 21,39,44,15 (через параметр под номером Р23) с по мощью блоков JOIN (под номерами 30,40, 50, 60). Удаление чисел 21,15 (как числовое значение параметра Р23) осуществляется блоками REMOVE (под номерами 120 и 140).
Блоки SAVEVALUE в различных частях программы сохраняют в ячейках стандартный числовой атрибут GNSGR1 — значение числовой группы под именем GR1.
Формат записи блоков REMOVE имеет вид
120 REMOVE GR1,P23„,CHAN2
Блок REMOVE в числовом режиме удаляет числовые значения из со ответствующих групп. В поле <А> указывается имя группы (в программе GR1), из которой удаляется числовое значение В числовом режиме поле <В> пусто В поле <С> задается число (числовое значение параметра Р23), входящее в числовую группу (в программе группа GR1). Поля <D>,
125
SIMULATE |
|
10 GENERATE 8 |
|
20 |
ASSIGN 23,15 |
30 |
JOIN GR1,P23 |
40 |
JOIN GR1,21 |
50 |
JOIN GR1,39 |
60 |
JOIN GRlf44 |
70 |
QUEUE 1 |
80 |
CHAN1 SEIZE 1 |
90 |
DEPART 1 |
100 ADVANCE 7,2
110 RELEASE 1
120 REMOVE GR1„P23,„CHAN2
130 SAVEVALUE MMM1,GN$GRI
140 REMOVE GR1„21
150 SAVEVALUE MMM2,GNSGR1
160 TRANSFER,EXIT
170 CHAN2 QUEUE 2
180 SEIZE 2
190 DEPART 2
200 |
ADVANCE 7,2 |
210 |
RELEASE 2 |
220 |
TERMINATE |
250 |
EXIT TERMINATE 1 |
START 100 |
|
END |
Р и с |
3 72 П рограмма |
E X A M 36.G PS |
SIMULATE |
|
|
10 GENERATE 4 |
|
|
20 |
SAVEVALUE МММ1,GT$GR2 |
|
30 |
JOIN GR2 |
|
40 |
REMOVE GR2,23,mCHAN2 |
|
50 CHAN! SEIZE 1 |
|
|
60 |
ADVANCE 9 |
|
70 |
RELEASE 1 |
|
80 |
SAVEVALUE MMM2,GT$GR2 |
|
100 TERMINATE 1 |
|
|
200CHAN2 SEIZE 2 |
|
|
210 |
ADVANCE 3 |
|
220 |
RELEASE 2 |
|
230 |
SAVEVALUE MMM3,GT$GR2 |
|
250 |
EXIT TERMINATE |
|
START 100 |
|
|
END |
|
|
Р и с |
3 73 П рограмма |
EX A M 37.G PS |
<E> пусты В поле <F> задается метка блока (в программе CHAN2), в ко торый отправляются часть транзактов, вошедших в блок REMOVE. В не которых версиях GPSS использовать поле <F> можно только при выпол нении ряда условий по отношению рассматриваемой группы
140 REMOVE GR1„21
Блок REMOVE работает только в режиме удаления числа 21 из число вой группы GR1.
Рассмотрим некоторые возможности блока REMOVE в режиме сооб щений
Пример 3.33. В Q -схему поступают заявки каждые 4 мин и направля ются на обработку в 1 -й канал (устройство) со временем обработки 9 мин. Произвести обработку 100 заявок в 1 -м канале и через группу сообщений осуществить обработку 22 заявок
Для решения данного примера в программе следует предусмотреть блок создания группы сообщений — JOIN и блок удаления сообщений из группы сообщений — REMOVE.
Программа решения задачи моделирования Q -схемы примера 3 33 приведена на рис 3 73 под именем EXAM37.GPS.
3.4. ТЕХНОЛОГИЯ П РИ М ЕН ЕН И Я ЯЗЫКА МОДЕЛИРОВАНИЯ G PSS/P C ПРИ ВЫ ПОЛНЕНИИ
ПРАКТИКУМА НА ПЭВМ
3.4.1.Состав дистрибутивной дискеты
иработа с турбооболочкой
На дистрибутивной дискете, поставляемой фирмой MINUTEMAN Software, размещаются следующие файлы.
G PSS.B A T — ком андны й файл,
G PSS1.E X E — ф аза |
компиляции (ассем блера), |
G PSS2.E X E — фаза |
исполнения, |
G PSS1.E X E — фаза |
отчета, |
SM D P .E X E — файл |
турбооболочки (ассем блера), |
IN STA L L .D O S — инструкция по установке систем ы моделирования G P S S /P C на П Э В М типа IB M /P C
Контрольные примеры на дистрибутивной дискете обозначе ны следующим образом:
Е Х А М Р И G P S
EX A M PL2.G PS
EX A M PL3.G PS
EX A M PL I.D O C
EX A M PL2.D O C
EX A M PL3.D O C
EX A M PL1.LST
EX A M PL2.L ST
EX A M PL2.LST и т д
Дискета загружается с дисковода А. Система моделирования GPSS/PC подготовлена к запуску.
127
При работе с турбооболочкой запуск системы осуществляется вводом в командной строке имени SMDP:
71 А > S M D P
На экране появляется заставка, которая после нажатия клави ши Enter заменяется меню, содержащим четыре режима:
FILE — реж им файла;
EDIT — редактирование исходной программы;
R U N — запуск на исполнение;
O PT IO N S — дополнительны е возм ож ности.
Переход из одного режима в другой осуществляется клавиша ми курсора.
В режиме FILE возможны следующие действия, вызываемые нажатием клавиши Enter:
LOAD — в ответ на приглаш ение *.G P S вводится имя загруж аемого файла; DIRECTO RY — просм отр текущ ей директории;
CH AN G E D IR —* зам ена директории;
M A IN FILE — ввод им ени главного файла;
O S SH E L L — переход в среду M S D O S (с возм ож ностью возврата путем ввода команды EXIT);
Q U IT — выход из G P S S /P C
В этом режиме может осуществляться подготовка или коррек ция программы модели с помощью встроенного текстового редак тора:
CO LO R —* установка цветов изображ ения на экране; FRAM E — установка рамки,
EDIT — подклю чение внеш него редактора;
SA VESET — сохранение заданного реж им а (при нажатии клавиш и фиксирует на время сеан са выбранные возм ож ности).
Врежиме RUN осуществляется запуск программы на исполне ние.
При работе без турбооболочки вызов системы GPSS/PC мож но осуществить двумя способами.
1. С выводом результатов моделирования на экран компьюте ра. Для этого вводят команду:
G P S S CON: = < имя программы модели >
Например:
G P S S C O N: = EX A M PL .G PS
где EXAMPL.GPS — исходный текст модели на языке GPSS/PC (файл с расширением типа .GPS).
2. С формированием листинга в виде файла с расширением
.LST. Для этого вводят команду:
G P S S
128
и на приглашение GPS> вводят имя исполняемой программы. При этом результаты моделирования на экран не выводятся, а за писываются в файл. Например, в результате ввода:
GPS> EXAMPL.GPS
будет сформирован файл EXAMPL.LST.
Возможны дополнительные расширения команды вызова сис темы:
указание /Р означает установку интерактивного реж има,
указание -d задает устройство, на которое будут выводиться временны е файлы.
Если требуется определить имя выходного файла, это можно сделать в командной строке, которая в этом случае будет иметь следующий вид:
GPSXileout = filein[/p][-d]
где fileout означает выходной файл, filein — исходный текст моде ли. В квадратных скобках указаны рассмотренные выше необяза тельные операнды.
Для получения на экране результатов моделирования исполь зуется режим HELP. Переход в HELP осуществляется вводом зна ка вопрос «?» в командной строке. При этом на экран выводится список допустимых команд:
? - HELP |
— получение справочной информации; |
|
BLO - |
BLOCK |
— счетчики блоков; |
FAC - |
FACILITY |
— статистика устройств; |
FSV - |
FSAVEVALUE |
— содержимое полнословных ячеек; |
HSV - |
HSAVEVALUE |
— содержимое полусловных ячеек; |
LSV - |
LSAVEVALUE |
— содержимое ячеек с плавающей точ |
|
|
кой; |
LOG - |
LOGICWITCH |
— состояние ключей (SET); |
NEX - |
NEXT |
— следующий отчет (при нескольких |
|
|
картах START); |
QUE - |
QUEUE |
— статистика очередей; |
QUI - |
QUIT |
— выход в DOS; |
STO - |
STORAGE |
— статистика памяти; |
TAB - |
TABLE |
— содержимое таблиц; |
CHA - |
USERCHAIN |
— статистика списков пользователя; |
INC - |
UNCREMENT |
— вывод следующего экрана; |
FFD - |
FORMFEED |
— установка и отмена перевода формата. |
9 _ 3083 |
129 |
Для получения данных о требуемом объекте вводят соответст вующую команду в командной строке.
Рассмотрим следующие примеры:
ТАВ1
(т. е. вывод на экран таблицы 1);
BLO
(т. е. вывод на экран счетчиков блоков);
FAC1
(т. е. вывод статистики по устройству 1).
Интерактивный режим моделирования. Интерактивный режим моделирования устанавливается командой /Р в командной строке (что приводит к установке точки прерывания в блоке 2) или вво дом символа Р (заглавного) в процессе моделирования.
При переходе в интерактивный режим на экран выводится приглашение в виде звездочки (*). Интерактивному отладчику не доступны символические имена, объявленные картой EQU, по этому следует указывать числовые обозначения объектов, а не их символьные эквиваленты. Косвенная адресация через СЧА не до пускается. В интерактивном режиме могут быть использованы следующие двухбуквенные команды:
?- HELP
BR |
— установить |
точку прерывания в указанном блоке; |
|
NB |
— снять прерывание в указанном блоке; |
||
DP |
— копировать значение |
в указанный параметр; |
|
EV |
— вычислить |
указанный СЧА; |
|
GO |
— продолжить моделирование; |
||
MV |
— устанавливает границу последовательного Движения |
||
|
транзакта, |
|
|
QU |
— выход в DOS; |
|
|
RP |
— произвести |
отчет; |
|
ST |
— шаг через указанное |
количество блоков; |
|
TR |
— установить бит трассировки в текущий транзакт; |
||
NT |
— снять бит трассировки; |
||
XF |
— копировать значение |
в полнословную ячейку; |
|
ХН |
— копировать значение |
в полусловную ячейку. |
130