- •Лабораторная работа №1 Изучение блоков динамической категории gpss/pc: generate, terminate, seize, release, advance
- •20 Transfer .7,chan1,chan2
- •20 Transfer both,chan1,chan2
- •20 Transfer all, chan1,chan4,4
- •Transfer pick,3,6
- •Assign 13,мет1
- •Loop 13, cycl5
- •Лабораторная работа №4 Системы с накопителями: блоки enter, leave, оператор storage. Управление потоком сообщений: блоки gate, test. Операторы variable, fvariable, initial.
- •Leave nak
- •Enter nak
- •20 Gate nu 1,facil2
- •Пример использования арифметических переменных
- •210 Funavail 1,re,facil2, ,re,facil3,re,facil4
- •230 Favail 1
- •510 Sunavail nak
- •530 Savail nak
- •20 Gate snv nak,facil2
- •110 Msavevalue mat2,1,1,c1
- •120 Msavevalue mat2,1,2,100
- •150 Msavevalue mat2-,2,2,2
- •Tabulate ttab1
- •135 Tabulate ttab2
- •70 Tabulate tab1
- •20 Gate snf nak1,exit
- •50 Link waz1,fifo,chan1
- •100 Unlink g waz1,chan1,1,13,16,que2
- •205 Link waz1,fifo
- •Лабораторная работа №9 Создание и управление групп транзактов gpss/pc: блоки join, remove, examine
- •120 Remove gr1,,p23,,,chan2
- •140 Remove gr1,,21
- •Examine gr17,,chan2
- •Examine gr1,6778,chan2
- •Листинг программы
- •Intlines storage 30
- •190 Transfer ,Breakoff
- •390 Terminate
- •570 Nonefree terminate
- •850 Terminate
- •Xact_group group_size retry
- •Лабораторная работа №11
- •Моделирование многофазных систем массового обслуживания
- •I теоретическая часть
- •1.1 Двухфазная система обслуживания
- •1.2 Трехфазная система обслуживания
- •II практическая часть
- •2.1 Моделирование в системе matlab
- •2.2 Моделирование в системе gpss/pc
- •Xact_group group_size retry
- •I теоретическая часть
- •II практическая часть
- •2.1 Моделирование в системе matlab
- •2.2 Моделирование в системе gpss/pc
- •Xact_group group_size retry
50 Link waz1,fifo,chan1
В поле <A> блока LINK задается имя списка пользователя, куда заносятся транзакты (в программе задано имя waz1). Поле <B> задает алгоритм упорядочивания списка пользователя (в программе применена дисциплина FIFO). В поле <B> могут быть использованы операнды: FIFO, LIFO — последним пришел первым вышел, номер параметра, приоритет, время нахождения транзакта в модели М1 или С1. В поле <C> задается альтернативный выход (в программе по метке chan1 транзакты отправляются в первое устройство под номером 60).
Формат записи блока UNLINK:
100 Unlink g waz1,chan1,1,13,16,que2
В данном случае задействованы все поля блока UNLINK: <A>, <B>, <C>, <D>, <E>, <F> и вспомогательное поле <X>.
В поле <X> установлен указатель отношения G — больше. Отношение истинно, если значение параметра, заданного в поле <D>, больше значения, заданного в поле <E>.
Поле <A> задает имя списка пользователя (в программе waz1), из которого удаляются транзакты.
В поле <B> указывается имя блока, к которому переходят удаленные транзакты (в программе блок с меткой chan1).
Поле <C> задает число удаляемых из списка транзактов (в программе 1). Операнд поля <C> может быть именем, положительным целым (как в программе число 1), СЧА.
В поле <D> задан номер параметра (в программе номер 13, который переопределен блоком ASSIGN на число 7). Поле <D> может быть именем, целым (как в программе номер параметра), СЧА.
Поле <E> определяет числовой атрибут (в программе задано число 6), который сравнивается со значением параметра транзактов списка пользователя поля <D>.
Поле <F> задает имя следующего для входящего в блок UNLINK транзакта (в программе блок с меткой que2). При этом перевод транзактов в следующий блок происходит в случаях: когда соответствующий список пользователя пуст, когда выполняется заданное отношение в поле <X>.
Результаты моделирования примера 2 приводятся как файл стандартного отчета 2.
GPSS/PC Report file REPORT.GPS. (V 2, # 37349) 11-23-2001 18:15:13 page 1 START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 3897 17 2 0 96912 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 80 8 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 DELAY 1 190 0.882 18.10 1 0 0 0 0 0 2 93 0.463 19.42 1 0 0 0 0 0
QUEUE MAX CONT. ENTRIES ENTRIES(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY 1 1 1 191 96 0.17 3.57 7.17 0 2 1 0 93 59 0.05 2.27 6.21 0
USER_CHAIN CHAIN_SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME WAZ1 0 0 0.17 100 1 6.81
XACT_GROUP GROUP_SIZE RETRY POSITION 0 0 |
Файл стандартного отчета 2 |
В отчете появилась статистика по списку пользователя. В поле USER_CHAIN задается имя списка пользователя (в отчете waz1). Поле CHAIN_SIZE определяет количество транзактов в списке пользователя в конце периода моделирования (в отчете 0). Поле RETRY определяет количество транзактов, ожидающих наступления специальных условий, связанных со списком пользователя. Поле AVE.CONT определяет среднее содержимое списка пользователя в течение периода моделирования (в отчете 0.17 транзактов). Поле ENTRIES определяет общее количество транзактов, помещаемых в список пользователя в течение периода моделирования (в отчете 100 транзактов). Поле МАХ определяет максимальное количество транзактов в списке пользователя за период моделирования (в отчете 1 транзакт; каждое помещение транзакта в список блоком LINK выводится затем из списка блоком UNLINK). Поле AVE.TIME определяет среднее время пребывания транзакта в списке пользователя (в отчете 6.81 мин. — единиц времени, которые были определены пользователем при моделировании).
Первое устройство обслужило 190 требований, но из них 90 отправлены во второе устройство. Второе устройство обслужило 93 требования: 3 требования через блок TEST, 90 требований через блок UNLINK.
Задание к примеру 2. В программе 2 изменить поле <A> блока GENERATE: от 2 до 28 с шагом 2. Проанализировать файлы стандартного отчета результатов моделирования.
Рассмотрим пример применения одного блока LINK.
Пример 3. Пусть в условии примера 2 транзакты направляются блоком TEST в очередь второго устройства, из которой они помещаются в список пользователя.
Решение примера 3 приводится как программа 3.
Программа 3 |
simulate 10 generate 20,2 20 assign 13,7 30 test G c1,70,que2 40 queue 1; 1-я очередь 60 chan1 seize 1; 1-е устройство с меткой chan1 70 depart 1 80 advance 19,7 90 release 1 150 terminate 1 200 que2 queue 2; 2-я очередь с меткой que2 205 link waz1,fifo 210 seize 2; 2-е устройство 220 depart 2 230 advance 19,7 240 release 2 250 terminate start 100 end |
Формат записи блока LINK:
