Лекция: Практическое занятие №2
Объекты GPSS-модели
В ходе машинного моделирования СМО описывается в виде набора абстрактных элементов (объектов GPSS-модели). Все объекты можно разделить на несколько категорий:
№ | Категория | Объекты категории | Примечания |
Динамическая | Транзакты (сообщения) | Передвигающиеся по модели заявки на обслуживание | |
Операционная | Блоки | Задают пути продвижения заявок и общую логику работы модели | |
Аппаратная | – Приборы; – М/к прибор (память); – Логические ключи | Это абстрактные элементы, на которые может быть декомпозировано оборудование реальной СМО | |
Вычислитель- ная | – Переменные; – Функции | Описывают в математическом виде связи между компонентами системы | |
Запоминающая | Сохраняемые величины | Это ячейки памяти, где фиксируются требуемые значения | |
Статистическая | – Очереди; – Таблицы | Вводятся в модель для оценки характеристик работы системы |
Обслуживание транзактов в СМО занимает некоторое время, поэтому в модели выбирается конкретная единица модельного времени(сек, мин, час и т.д.). Все времена в модели для удобства рекомендуется представлять целыми числами.
ПРИМЕР: время обслуживания в приборе задается равным 4.5 мин (нецелое число); GPSS-программа в качестве единиц модельного времени может принять секунды. Тогда время обслуживания транзактов будет равно 270 с. Все остальные интервалы времени также переводятся в секунды.
Все объекты модели могут иметь 2 вида имён. Имя объектаможет быть числовое (например, прибор 1) или символическое (прибор PAR), включающее латинские буквы, цифры и знаки подчеркивания. Символические имена необязательны, но их использование увеличивает понятность программы.
Блоки языка GPSS
GPSS – программа пишется позиционно, в три столбца: с 1-й позиции указывается символическое или числовое имя объекта GPSS, а также метка блока; с 8-й – название карты или блока; с 19-й – операнды карты или блока.
ПРИМЕР: Список операндов для карты или блока может иметь вид:
GENERATE A,B,C,D,E,F – все операнды перечислены через запятую;
GENERATE A,B – отсутствуют операнды в конце списка;
GENERATE A,B,, ,E – нет 2-х операндов внутри списка;
GENERATE,, C – нет 2-х операндов в начале списка.
Многие блоки в GPSS-программе являются парными, описывают начало и конец обслуживающего действия.
БЛОК GENERATE– отвечает за генерацию (создание) транзактов в модели.
√A – среднее время или средний интервал между появлением двух транзактов (по умолчанию А = 0);
√B – модификатор разброса, если поток заявок случайный, (по умолчанию В = 0); обязательное условие: A³B;
√С – определяет время появления в модели 1-го транзакта (по умолчанию C = 0);
√D – задает число создаваемых этим блоком транзактов (по умолчанию их число неограниченно);
√E – уровень приоритета создаваемых транзактов 0¸127 (по умолчанию Е = 0);
√F – задает количество параметров транзакта — ячеек памяти, связанных с любым из создаваемых транзактов (по умолчанию F = 12, мах F = 1020).
ПРИМЕР:
1) GENERATE 10,3,100,16,5
Транзакты создаются через каждые (10±3) единиц времени, причем 1-й транзакт создан в момент времени = 100; всем 16 транзактам, созданным в этом блоке, присваивается 5-й уровень приоритета.
2) GENERATE,, ,1
Блок создает один единственный транзакт в начальный момент времени
БЛОК TERMINATE – удаляет (выводит) транзакты из модели;
√А – всякий раз при удалении очередного транзакта из модели значение операнда А вычитается из специального счетчика завершений в карте START, описываемой ниже (по умолчанию А = 0).
В программе может быть несколько выходов (блоков TERMINATE), но хотя бы один из них обязан иметь A>0, иначе моделирование не сможет завершиться.
БЛОК QUEUE – постановка транзакта в очередь перед обслуживанием.
√A –обязательный операнд; указывает имя очереди;
√В – занимаемое транзактом количество мест в очереди (по умолчанию В = 1).
Транзакт может находиться не более чем в 2-х очередях одновременно.
БЛОК DEPART – моделирует уход транзакта из очереди. Операнды блока имеют тот же смысл.
БЛОК SEIZE – транзакт занимает прибор, указанный операндом А. Транзакт не может войти в устройство, если оно уже занято другим транзактом.
БЛОК RELEASE – моделирует выход транзакта из прибора А. Транзакт не может освободить прибор, который не занимал.
БЛОК ADVANCE – моделирует задержку транзактов на некоторое время в определенных точках модели (например, в приборе – на время обслуживания).
√А – средний интервал задержки;
√В – модификатор разброса, если это время случайно.
Управляющие карты языка GPSS
Карты не отражаются на блок-диаграммах, но входят в текст GPSS-программ и могут быть 2-х видов:
1. Карты описания объектов (например – карта FUNCTION, STORAGE);
2. Карты, управляющие процессом моделирования (START и т.д.).
КАРТА START – указание о начале и окончании моделирования. Моделирование завершится, когда через систему пройдет определенное значением операнда А количество транзактов. Операнд А называют счетчиком завершений.
ЗАДАЧА № 2 (условие задачи № 1, в блок-диаграмме нет лишь сегмента времени)
Промоделировать работу парикмахерской по обслуживанию 30 клиентов. Исследовать, как изменится загрузка парикмахера при увеличении среднего интервала обслуживания клиентов на 2 мин.
GENERATE 18,6