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

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

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

GPSS/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

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