- •Лабораторная работа №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
205 Link waz1,fifo
В поле <A> задается имя списка пользователя (waz1), куда помещаются вошедшие в блок LINK транзакты. Поле <B> определяет дисциплину вошедших в список пользователя транзактов (в программе используется FIFO — вошедший транзакт помещается в конец списка пользователя). Поля <A> и <B> блока LINK являются обязательными. Блок LINK будет блокировать устройство 2, т.е. второе устройство будет не задействованным.
Задание к примеру 3. Написать программу с применением блока UNLINK так, чтобы 2-е устройство было задействовано. В созданной программе изменить поле <B> блока TEST: 30, 50, 90. Изменить также число завершений: 50, 75, 230. Применить следующий формат записи блока UNLINK:
unlink <A>,<B>,<C>
Поле <A> — имя списка. Поле <B> — метка блока, куда будут направляться транзакты из списка. Поле <C> — положительное число.
Лабораторная работа №9 Создание и управление групп транзактов gpss/pc: блоки join, remove, examine
Цель работы: Изучение возможностей управления группами транзактов с помощью блоков JOIN, REMOVE, EXAMINE.
Блок JOIN включает в группу сообщение (режим сообщения) или числовое значение (числовой режим). Присоединение к группе происходит по дисциплине FIFO.
Блок REMOVE производит удаления соответствующих групп. Блок REMOVE может работать в режиме сообщения или в числовом режиме.
Блок EXAMINE предоставляет пользователю возможность выбора пути, по которому проследует сообщение в зависимости от состояния членов заданной группы. Блок EXAMINE также может быть использован в режиме сообщения или в числовом режиме.
Пример 1. Смоделировать процесс параллельного обслуживания заявок, которые поступают в систему со временем 42 мин. Первый прибор обслуживает 100 заявок со временем 72 мин., второй прибор обслуживает все остальные поступающие в систему заявки со временем 31 мин. Применить блок JOIN в числовом режиме и режиме сообщения. В числовую группу ввести: параметр транзакта под номером 23, в который записаны числа 34, 21, 2221, 39. В группу сообщений ввести количество транзактов, поступающих на первое устройство.
Программа решения примера 1 приводится как программа 1.
Программа 1 |
|
simulate 10 generate 4,2 15 savevalue mmm1,gn$gr1; 16 savevalue mmm2,gt$gr2 20 split 1,chan2 25 assign 23,34 30 join gr2 35 join gr1,p23 36 join gr1,21 37 join gr1,2221 38 join gr1,39 40 seize 1 |
50 advance 7,2 60 release 1 66 savevalue mmm3,gn$gr1 70 transfer ,exit 80 chan2 seize 2 90 advance 3,1 100 release 2 110 savevalue mmm4,gn$gr1 150 terminate 200 exit terminate 1 start 100 end |
В программе 1 блок JOIN используется в режиме сообщения (под номером 30) и в числовом режиме (под номерами 35, 36, 37, 38).
Блоки SAVEVALUE сохраняют СЧА, заданные в полях <B>: gt$gr2 — текущее число членов в группе с именем gr2, gn$gr1 — текущее число членов в числовой группе с именем gr1.
Формат записи блока JOIN в режиме сообщения:
join gr2
Блок JOIN под номером 30 имеет одно заполненное поле <A>, которое задает имя группы — gr2. Операнд поля <A> может быть е положительным целым, СЧА, СЧА с параметром.
Формат записи блока JOIN в числовом режиме:
35 join gr1,p23
36 join gr1,21
37 join gr1,2221
38 join gr1,39
Для каждой записи блока JOIN в поле <A> указывается имя группы. В поле <B> задается присоединяемое к группе числовое значение: число 34 через параметр 23, числа 21, 2221, 39.
Два блока TERMINATE используются для вывода заявок (транзактов) из системы: блок под номером 200 связан со счетчиком числа завершений через оператор START 100, блок под номером 150 выводит из системы транзакты, обслуженные во втором устройстве.
Каждый из блоков SAVEVALUE заносит в отводимую ячейку (mmm1, mmm2, mmm3, mmm4) соответственно: число членов в группе gr1, число транзактов в группе сообщения gr2, число членов в группе gr1, число членов в группе gr1.
Результаты моделирования представлены в файле стандартного отчета 1.
GPSS/PC Report file REPORT.GPS. (V 2, # 37349) 12-07-2001 13:51:16 page 1
START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 724 21 2 0 87152 LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 10 1 GENERATE 182 0 0 15 2 SAVEVALUE 182 0 0 16 3 SAVEVALUE 182 0 0 20 4 SPLIT 182 0 0 25 5 ASSIGN 182 0 0 30 6 JOIN 182 0 0 35 7 JOIN 182 0 0 36 8 JOIN 182 0 0 37 9 JOIN 182 0 0 38 10 JOIN 182 81 0 40 11 SEIZE 101 1 0 50 12 ADVANCE 100 0 0 60 13 RELEASE 100 0 0 65 14 SAVEVALUE 100 0 0 70 15 TRANSFER 100 0 0 80 CHAN2 SEIZE 182 0 0 90 17 ADVANCE 182 0 0 100 18 RELEASE 182 0 0 110 19 SAVEVALUE 182 0 0 150 20 TERMINATE 182 0 0 200 EXIT TERMINATE 100 0 0
FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY 1 101 0.994 7.13 1 200 0 0 0 81 2 182 0.766 3.05 1 0 0 0 0 0
XACT_GROUP GROUP_SIZE RETRY POSITION 0 0 GR2 82 0
NUMERIC_GROUP GROUP_SIZE RETRY GR1 4 0
SAVEVALUE VALUE RETRY MMM1 +4 0 MMM2 +82 0 MMM3 +4 0 MMM4 +4 0 |
Файл стандартного отчета 1 |
В файле отчета группа сообщений (под именем gr2) следует за стандартным полем POSITION. Поле XACT GROUP определяет имя или номер объекта типа "группа сообщений". В поле GROUP SIZE — размер группы — указывается число транзактов, которое осталось в группе в конце моделирования (это число равно 82). Поле RETRY определяет число транзактов, ожидающих наступления специальных условий, связанных с состоянием этой группы транзактов (в поле стоит 0, т.к. специальных условий не создавалось). Информация о числовой группе следующая. Поле NUMERIC GROUP определяет имя числовой группы (в файле отчета имя gr1). Поле GROUP SIZE определяет количество числовых значений, которые содержатся в числовой группе в конце моделирования. Это количество равно 4 (в группу занесены четыре числа). Поле RETRY определяет число транзактов, ожидающих наступления специальных условий, связанных с состоянием числовой группы (специальных условий не создавалось, поэтому в поле RETRY находится 0).
Задание примеру 1. Создать числовую группу со следующими СЧА: Р3—параметр транзакта под номером 3, С1 — текущее значение условного времени моделирования, FT1, FT2 — среднее время использования 1-го и 2-го устройств, соответственно. Вычислить переменную со значением и занести ее в числовую группу.
Пример 2. Числовой режим блока REMOVE. Смоделировать процесс обслуживания заявок, которые поступают в систему каждые 8 минут. Обслуживание происходит в первом устройстве со временем 72 мин. и обслуживаются 100 заявок. Сформировать числовую группу из чисел 21, 39, 44, Р23 — параметр со значением 15. Предусмотреть удаление из группы числа 21, параметра Р23 (число 15) и перевод заявок во второй прибор, который обслуживает заявки также со временем 72 мин.
Программа решения примера 2. приводится как программа 2.
Программа 2 |
|
simulate 10 generate 8 20 assign 23,15 30 join gr1,p23 40 join gr1,21 50 join gr1,39 60 join gr1,44 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$gr1 140 remove gr1,,21 150 savevalue mmm2,gn$gr1 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 |
В группу под именем gr1 заносятся числа 21, 39, 44, 15 (через параметр под номером p23) с помощью блоков join (под номерами 30, 40, 50, 60).
Удаление чисел 21, 15 (как числовое значение параметра p23) производится блоками remove (под номерами 120 и 140).
Блоки savevalue в различных частях программы сохраняют в ячейках стандартный числовой атрибут gn$gr1 — значение числовой группы под именем gr1.
Формат записи блоков REMOVE:
