- •Теоретическая часть
- •Объекты gpss, часы модельного времени
- •Внесение транзактов в модель, блок generate
- •Удаление транзактов из модели. Блок terminate
- •Выполнение задания
- •Напишите программу модели, которая моделирует поступление транзактов с равномерным законом распределения (25±7)
- •Смоделируйте приход в нулевой момент времени двадцати транзактов с уровнем приоритета 5
- •Смоделируйте ситуацию, когда транзакты поступают в модель каждые 35±10 мин (первый транзакт появляется на 50-й минуте), единица модельного времени – 0,1 мин
- •Напишите программу, в которой моделирование заканчивается после того, как через модель пройдут 500 транзактов; транзакты должны поступать в модель каждые 30±5 ед. Модельного времени
- •Задайте время моделирования работы системы 10 часов, единица модельного времени – 1 сек
- •Заключение
Внесение транзактов в модель, блок generate
Блок GENERATE (ГЕНЕРИРОВАТЬ) – это блок, через который транзакты входят в модель. Не существует ограничений на количество разных блоков GENERATE в одной модели.
Интервал времени между последовательными появлениями транзактов из блока GENERATE называют интервалом поступления. Когда транзакт входит в модель через блок GENERATE. интерпретатор планирует время поступления следующего транзакта путем розыгрыша случайного числа c соответствующим распределением интервалов поступления на время, равное текущему значению ЧАСОВ плюс разыгранное значение. При достижении этого значения модельного времени следующий транзакт вводится в модель через блок GENERATE и т.д.
Формат блока: GENERATE [A],[B],[C],[D],[E].
Таблица 1.1 – Значения операндов
Операнд |
Значение |
Значение по умолчанию |
А |
Средний интервал времени (число, СЧА) |
0 |
В |
Половина поля допуска равномерно распределенного интервала (число, CЧА) |
0 |
С |
Смещение интервалов |
Смещение отсутствует |
D |
Ограничитель транзактов |
∞ |
Е |
Уровень приоритета транзакта. Возможные значения 0 – 127 |
0 |
Удаление транзактов из модели. Блок terminate
Транзакты удаляются из модели, попадая в блок TERMINATE (ЗАВЕРШИТЬ). В этот момент освобождается память, выделенная под транзакт. Эти блоки всегда позволяют выйти всем транзактам, которые пытаются это сделать. В модели может быть любое количество блоков TERMINATE. Формат блока: TERMINATE [A].
Операнд А является величиной уменьшения специального счетчика, который называется счетчиком завершения. Этот операнд задает величину, которая вычитается из счетчика каждый раз, когда транзакт входит в блок TERMINATE. По умолчанию A = 0. Вход гранзакта в блок TERMINATE c нулевым значением операнда А не вызывает уменьшения счетчика завершения.
Счетчик завершения – это ячейка в памяти ЭВМ, которая хранит целое положительное число. Начальное значение этого счетчика устанавливается в начале моделирования. Оно равняется значению операнда А команды START (НАЧАТЬ). В процессе моделирования транзакты попадают в блок TERMINATE и, таким образом, уменьшают значение счетчика на величину операнда А. Моделирование заканчивается, когда значение счетчика становится равным нулю или отрицательному числу.
Выполнение задания
Напишите программу модели, которая моделирует поступление транзактов с равномерным законом распределения (25±7)
Для моделирования поступления транзактов с равномерным законом распределения воспользуемся блоком GENERATE, присвоив операндам А и В значения 25 и 7 соответственно. Для выхода транзактов из модели (в данном случае, для завершения моделирования) используем блок TERMINATE, А = 1. Значение параметра А каждый раз будет вычитаться из счетчика завершения, устанавливаемого командой START. Процесс моделирования завершится, когда значение счетчика завершения будет меньше или равно 0. Далее моделируем поступление 5 транзактов.
Рисунок 2.1 – Создание программы модели
По завершению моделирования, GPSS выдает стандартный отчет REPORT, содержащий результаты моделирования.
Рисунок 2.2 – Стандартный отчет
В отчете содержится информация о самом файле отчета, о дате и времени его создания и другие данные:
– START TIME – время начала моделирования (модельное время);
– END TIME - время окончания моделирования (модельное время);
– BLOCKS - количество блоков, используемых в программе;
– FACILITIES – количество одноканальных устройств;
– STORAGES – количество многоканальных устройств;
– LOC – номер блока, назначенный системой;
– BLOCK TYPE – название блока;
– ENTRY COUNT – количество транзактов, прошедших через блок за время моделирования;
– СURRENT COUNT – количество транзактов, задержанных в блоке на момент конца моделирования;
– RETRY – количество транзактов, ожидающих специальных условий для прохождения через данный блок;
– FEC ( Future Events Chain ) – информация о следующем событии;
– XN – номер транзакта;
– PRI – приоритет транзакта;
– BDT – абсолютное модельное время выхода транзакта из списка будущих событий и перехода транзакта в список текущих событий;
– ASSEM - номер семейства транзактов;
– CURRENT - номер блока в котором находится транзакт (0 – если транзакт не вошел в модель);
– NEXT - номер блока в который перейдет транзакт далее;
– PARAMETER – номер или имя параметра транзакта;
– VALUE – значение параметра.
На рисунке, содержащем отчет по данной программе можно увидеть, что, например, используется всего 2 блока, в модель вошло 5 транзактов, номер следующего транзакта 6 и тд.