- •Лекции по gpss
- •Блоки и транзакты
- •Транзакт входит в блок, функцией которого является удаление транзакта из модели.
- •Транзакт входит в блок, функцией которого является задержка транзакта на некоторое определенное в модели время.
- •Удаление транзактов из модели и завершение моделирования
- •Занятие и освобождение одноканального устройства
- •Когда транзакт поступает в устройство, он должен обслуживаться там некоторое время.
- •Сбор статистики
- •Управление продолжительностью моделирования
- •Логика работы интерпретатора
- •1. Он находится в каком-либо конкретном блоке.
- •2. Он находится (отмечен) в одном или нескольких цепях (списках) gpss.
- •1) Единица модельного времени определяется разработчиком модели, который задает все временные интервалы в одних и тех же, выбранных им, единицах;
- •Занятие и освобождение многоканального устройства (памяти)
- •Абсолютное и относительное время. Команды clear и reset
- •0 Относительное
- •Изменение значений параметров транзактов
- •Числовые и символьные имена. Команда equ
- •Блоки, изменяющие маршруты транзактов
- •Блок transfer
- •Блок test
- •Блок gate
- •Блок loop
- •Команды table и qtable. Таблицы. Блок tabulate
- •Сохраняемые величины и матрицы сохраняемых величин
- •Initial Xj, значение
- •Initial mXj( a,b), значение
- •Арифметические переменные. Команды variable (fvariable)
- •Генераторы случайных чисел
- •1. Разыгрывается случайное число, равномерно распределенное в диапазоне 0;1;
- •2. Полученное число преобразуется в эквивалентное ему значение, но уже принадлежащее интересующей нас выборке.
- •Функции gpssw. Команда function
- •Модель смо
- •Блоки для работы со списками пользователя
- •Моделирование сетей массового обслуживания
- •1,2 Узел – 1 канал,3 узел – 2 канала
- •1,2 Устройства – одноканальные, 3-4 канала
- •Моделирование захвата прибора
- •Логические переключатели
- •Булевские переменные. Команда bvariable
- •Обработка транзактов, принадлежащих одному ансамблю
Удаление транзактов из модели и завершение моделирования
TERMINATE [A]
A – число единиц, на которое блок уменьшает содержимое счетчика завершения, определяющего момент окончания моделирования.
Операнд А может быть именем, положительным целым числом, выражением, СЧА. По умолчанию А=0, транзакт уничтожается, а значение счетчика не меняется.
Счетчик завершения – это ячейка памяти, в которой записано число командой START. При достижении счетчика значения нуля моделирование заканчивается. В модели может быть много блоков TERMINATE, но счетчик завершения только один.
Рассмотрим пример, когда блок TERMINATE и команда START используются для управления временем моделирования. Предположим, что единица времени = 1 мин. Необходимо промоделировать 10 часов времени, а затем моделирование должно быть закончено. Время моделирования 10*60=600 единиц.
GENERATE 600
TERMINATE 1
Во всех прочих блоках модели блок TERMINATE использует параметр А по умолчанию. Команда START используется для запуска процесса моделирования.
START A , [B] , C , [D]
A – значение счетчика завершения
В - вывод статистики (NP – стандартный отчет не выводится)
С – не используется
D – если какое-либо число, то списки текущих и будущих событий включаются в стандартный отчет
Занятие и освобождение одноканального устройства
Транзакты в модели требуют обслуживания. Аналогами обслуживающих элементов могут быть люди, механизмы, линии связи и т.д. В GPSS такие объекты моделируются с помощью устройств, памятей, логических переключателей.
Устройство характеризуется двумя свойствами:
Каждое устройство в любой момент времени может обслуживать только один транзакт. Любой новый транзакт либо ждет в очереди, либо направляется в другое место, либо, если новый транзакт с более высоким приоритетом, прерывает текущее обслуживание и занимает устройство.
Когда транзакт поступает в устройство, он должен обслуживаться там некоторое время.
Занятие и освобождение устройства реализуется блоками SEIZE (ЗАНЯТЬ) и RELEASE (ОСВОБОДИТЬ) соответственно, а обслуживание на некоторое время – блоком ADVANCE (ЗАДЕРЖАТЬ)
SEIZE A
RELEASE A
Здесь А – имя (символьное или числовое) занимаемого (освобождаемого) устройства.
Важно – транзакт не может освободить устройство, которое он не занимал !
ADVANCE A, [B]
A – среднее время задержки на обслуживание
В – половина поля допуска равномерно распределенного времени задержки
Пример
ADVANCE (Normal(12,X$Srednee,X$Sreotk))
Время задержки распределено по нормальному закону со средним значением и среднеквадратическим отклонением, предварительно записанным командой INITIAL в сохраняемые ячейки с именами Srednee и Sreotk.
Блок ADVANCE никогда не препятствует входу в него транзакта, в нем может находиться любое число транзактов.
Каждое ОКУ имеет следующие СЧА: F - состояние устройства (0 - свободно,1 - занято); FR - коэффициент использования в долях 1000; FC - число занятий устройства; FT - целая часть среднего времени занятия устройства.
Воспользуемся блоками SEIZE и RELEASE для моделирования одноканальной СМО с ожиданием (рис. ). Теперь блок ADVANCE находится между блоками SEIZE и RELEASE, моделирующими занятие и освобождение устройства с именем SYSTEM, и поэтому в нем может находиться только один транзакт. Транзакты, выходящие из блока GENERATE в моменты занятости устройства, не смогут войти в блок SEIZE и будут оставаться в блоке GENERATE, образуя очередь в списке текущих событий.
GENERATE 100,20
SEIZE SYSTEM
ADVANCE 80,30
RELEASE SYSTEM
TERMINATE 1
