- •Министерство образования и науки
- •Основные теоретические сведения Краткие сведения о системах массового обслуживания
- •Объекты gpss
- •Описание операторов gpss World
- •Основные блоки gpss
- •1. Блок generate.
- •3. Команда start.
- •4. Блоки seize и release.
- •5. Блок advance.
- •6. Блоки queue и depart.
- •7. Оператор storage.
- •8. Блоки enter, leave.
- •9. Определение и использование таблиц.
- •10. Построение гистограмм.
- •11. Графическое отображение моделируемых величин во времени.
- •Варианты заданий
- •Порядок выполнения работы
- •III. Содержание отчета
- •IV. Контрольные вопросы
Основные блоки gpss
1. Блок generate.
Транзакты входят в модель через блок GENERATE (генерировать), ограничений на количество разных блоков GENERATE в одной модели не существует. Интервал времени между последовательными появлениями транзактов из блока GENERATE называют интервалом поступления. В момент входа в модель транзакта через блок GENERATE интерпретатор планирует время поступления следующего транзакта путем розыгрыша случайного числа c соответствующим распределением интервалов поступления на время, равное сумме текущего значения часов модельного времени и разыгранного значения.
Формат записи блока GENERATE:
GENERATE [A],[B],[C],[D],[E],
где А – среднее значение интервала поступления транзактов (число, СЧА, по умолчанию – 0);
В – величина разброса возможных значений относительно среднего значения (число, CЧА, по умолчанию – 0); в случае, если операнд В не задан, интервал поступления является детерминированной величиной;
С – смещение интервалов, момент времени, в который в блоке GENERATE должен появиться первый транзакт (по умолчанию – 0);
D – ограничитель числа транзактов, которые могут войти в модель через данный блок GENERATE на протяжении времени моделирования (по умолчанию –∞);
Е – уровень приоритета транзакта (возможные значения – целые числа от 0 до 127; чем больше значение, тем выше приоритет, по умолчанию – 0).
Если опущено поле операнда, то транслятор проставляет значение по умолчанию или выдает ошибку (в случае обязательности данного поля). Операнды не могут быть отрицательными числами. В GPSS World операнды А, В, C могут быть действительными числами.
Примеры задания оператора GENERATE:
GENERATE 10,2 задает равномерный закон распределения. Значение операнда A равно десяти, В – двум. Интервал поступления транзактов – случайное число из отрезка модельного времени [8; 12], т. е. интервал поступления может приобретать с равной вероятностью одно из пяти значений: 8, 9, 10, 11, 12;
GENERATE 4 – задает детерминированные значения интервалов поступления транзактов. Значение операнда A равно четырем, В – нулю (по умолчанию). Транзакты входят в модель каждые четыре единицы модельного времени.
GENERATE ,,,1 – генерирует один транзакт. Значения операндов A, В, С равно нулю (по умолчанию), D – единице. В нулевой момент времени в модель входит один транзакт.
2. Блок TERMINATE.
Транзакты удаляются из модели, попадая в блок TERMINATE (завершить). В этот момент освобождается память, выделенная под транзакт. Блоки TERMINATE всегда позволяют выйти из модели всем транзактам, которые пытаются это сделать. В модели может быть любое количество блоков TERMINATE.
Формат записи блока:
TERMINATE [A]
Операнд А задает величину уменьшения счетчика завершения, т. е. операнд задает величину, которая вычитается из счетчика каждый раз, когда транзакт входит в блок TERMINATE. По умолчанию A = 0. Вход транзакта в блок TERMINATE c нулевым значением операнда А не вызывает уменьшения счетчика завершения.
3. Команда start.
Данная команда предназначена для запуска имитации модели. Её можно
ввести либо из интегрированной среды GPSS World (команда меню Command→ START, которая становится доступной после трансляции модели при помощи Command → Create Simulation), либо непосредственно указать в тексте программы. Тогда запуск модели выполнится сразу после её (успешной) трансляции.
Формат записи команды:
START [A]
начальное значение, присваиваемое счётчику завершения.
Пример 1. Создание и запуск простой программы в среде GPSS World:
1. Запустить среду GPSS World.
2. Выбрать команду меню File → New, в появившемся окне выбрать Model:
3. В появившемся редакторе набрать следующую программу:
GENERATE 60 ; Создание транзакций
TERMINATE 1 ; Уничтожение транзакций
START 100 ; Моделирование 100 транзакций
Примечание: ввод блоков можно осуществлять вручную либо через команду Edit→ Insert GPSS blocks
4. Выбрать команду меню Command → Create Simulation.
Файл отчета создаётся при успешном завершении выполнения эксперимента. Содержит статистику по модели в целом и отдельным блокам.
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 6000.000 2 0 0
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 100 0 0
2 TERMINATE 100 0 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
0 6060.000 101 0 1
Поля START TIME и END TIME указывают моменты модельного времени начала и конца моделирования.
Поле BLOCKS указывает количество блоков, составляющих модель (в данном примере блоки GENERATE и TERMINATE).
Поля FACILITIES и STORAGES указывают количество устройств обслуживания заявок и накопителей, присутствующих в модели.
В следующей таблице представлена информация о блоках модели.
Колонка LABEL содержит метки блоков.
Колонка LOC содержит номера блоков, назначаемые системой.
Колонка BLOCK TYPE содержит имена блоков.
Колонка ENTRY COUNT для каждого блока содержит количество транзакций, вошедших в данный блок за всё время моделирования.
Колонка CURRENT COUNT для каждого блока содержит количество транзакций, задержанных в блоке на момент окончания моделирования.