- •Лабораторная работа №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
20 Gate snf nak1,exit
Если накопитель nak1 оказывается незаполненным, то транзакты следуют к следующему по номеру блоку — к блоку ENTER, в противном случае транзакт удаляется из системы в соответствии с полем <B>, в котором задано имя EXIT блока TERMINATE без параметров.
Блоки GATE в режиме NU — устройство свободно анализируют соответствующие устройства: если устройство свободно, то транзакт направляется к следующему по номеру блоку, если устройство не свободно, то транзакты направляются к блоку, имя которого указывается в поле <B> соответствующего блока GATE в режиме NU.
Задание к примеру 1:
Изменить емкость накопителя от 10 до 1. Объяснить результаты моделирования.
Изменить поле <A> блоков ADVANCE от 3 до 10.
Изменить поле <A> блока GENERATE от 8 до 4 (при исходных полях <A> блоков ADVANCE).
Изменить количество пар точек, задаваемых в операторе FUNCTION: 15, 25, 35.
Написать программу для моделирования ситуации, когда транзакты поступают в устройства с равной вероятностью.
Для исходной программы выполнить 2-3 прогона.
СПИСКИ СИСТЕМЫ GPSS/PC
Интерпретатором GPSS/PC сообщения (транзакты) заносятся в списки, в которых они хранятся в зависимости от типа списка.
В списке текущих событий находятся сообщения, соответствующие событиям, время наступления которых меньше или равно текущему модельному времени.
Список пользователя содержит сообщения, удаленные пользователем из списка текущих событий и помещенные в список пользователя как временно неактивные. Со списком пользователя связаны блоки LINK и UNLINK.
Перевод сообщений из списка текущих событий в список пользователя осуществляется блоком LINK. Удаление сообщений из списка пользователя производится блоком UNLINK.
Пример 2. Требования поступают в систему через 202 мин. и направляются во второй канал обслуживания в течение 70 мин. По прошествии 70 мин. требования направляются на обслуживание в первый канал. Каждый из каналов производит обслуживание со временем 197 мин. Предусмотреть вывод требований в списки пользователя и их возврат на обслуживание в каналы. Первый канал обслуживает требования, 100 из которых полностью обслуживаются и выводятся из системы, а остальные требования отправляются на дообслуживание во второй канал. В первом канале обслуживание предусмотреть по дисциплине FIFO ( первым пришел, первым обслужился). Смоделировать процесс обслуживания требований и собрать статистику о работе каналов, возникающих очередях, списках пользователя.
Решение примера 2 приводится как программа 2.
Программа 2 |
simulate 10 generate 20,2 20 assign 13,7 30 test G c1,70,que2 40 queue 1; 1-я очередь 50 link waz1,fifo,chan1 60 chan1 seize 1; 1-е устройство с меткой chan1 70 depart 1 80 advance 19,7 90 release 1 100 unlink G waz1,chan1,1,13,6,que2 150 terminate 1 200 que2 queue 2; 2-я очередь с меткой que2 210 seize 2; 2-е устройство 220 depart 2 230 advance 19,7 240 release 2 250 terminate start 100 end
|
В программе 2 два блока, распределяющие транзакты по каналам: блок TEST в режиме сравнения "больше" (G) и блок UNLINK, который удаляет транзакты из списка пользователя сначала в первое устройство, а потом во второе устройство (точнее во вторую очередь). Следует отметить, что работа блоков LINK и UNLINK в сильной степени зависит от соотношения времени генерации транзактов и их временной задержки в устройствах. Реализация достижения момента в 70 мин. достигается при введении в поле <A> блока TEST системного числового атрибута С1 — текущего значения условного модельного времени. Один блок TERMINATE отсчитывает число завершений, заданного в операторе START (START 100). Другой блок TERMINATE выводит транзакты из системы без уменьшения счетчика числа завершений (поле <A> пусто).
Формат записи блока LINK:
