РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ Институт информационных наук и технологий безопасности Факультет информационных систем и безопасности Доклад: Система моделирования GPSS Презентацию подготовили студенты 3 курса ФИСБ, направления ИБ“КЗОИ”, Калинин Прохор и Бондаренко Игорь РГГУ 2019 1 1 Что такое GPSS? GPSS (англ. General Purpose Simulation System — система моделирования общего назначения) — язык моделирования, используемый для имитационного моделирования различных систем, в основном систем массового обслуживания. Была создана Джеффри Гордоном в фирме IBM в начале 1960-х годов. Система GPSS является самым популярным в мире инструментом имитации и являет редкий пример долгожительства в мире программного обеспечения. 2 Объекты в GPSS Объекты бывают: 1. Динамическими: • Транзакт - имитирует единицу исследуемого потока запросов. Работа модели заключается в перемещении транзактов от одного операционного блока к другому. 2. Статическими: • Устройство - используется для моделирования ресурса, который в каждый момент времени может быть занят только одним транзактом. • Память - представляют оборудование, которое может использоваться несколькими транзактами одновременно (многоканальные СМО) • Ключ - служат для блокировки или изменения маршрута движения транзактов. 3. Статистическими: • Очередь - это объект, предназначенный для сбора статистики по ожидающим обслуживания транзактам • Таблица - используется для сбора статистической информации в виде эмпирических функций распределения случайных величин, получаемых в ходе моделирования Вышеперечисленные объекты присутствуют в модели неявно, т.е. они существуют в процессе моделирования в виде некоторых информационных структур (переменных, списков и пр.), к которым пользователь (разработчик модели) имеет весьма ограниченный доступ. Для разработки модели пользователь использует блоки. 4. Операционными: • Блок - относятся к категории операционных объектов и задают логику функционирования моделируемого процесса или системы, определяют пути движения транзактов между объектами категории оборудования. 3 Немного больше о блоках В общем случае модель представляет собой несколько отдельных сегментов, каждый из которых состоит из последовательности блоков и определяет путь движения некоторого типа транзактов. Сегмент обычно начинается блоком GENERATE и может заканчиваться блоком TERMINATE. Все события в моделируемой системе происходят в результате входа транзактов в блоки и выполнения блоками своих функций. Основные функции блоков следующие: • создание (генерация) и уничтожение транзактов; • задержка транзакта на некоторый интервал времени; • изменение маршрута движения транзактов; • изменение числовых атрибутов объектов. Каждому блоку соответствует оператор языка GPSS. Кроме того, программа модели может быть представлена в виде блок-схемы, на которой каждому блоку соответствует характерная фигура. Пример сегмента: GENERATE (POISSON(1,40)) ; генерация потока транзактов ; QUEUE mainQ ; Войти в регистратор очереди SEIZE F007 ; Попытка занять устройство DEPART mainQ ; Покинуть регистратор очереди ADVANCE (Normal(1,35,4)) ; Моделирование процесса обслуживания. Время обслуживания ; распределено по нормальному (гауссову) закону; с математическим ожиданием 35 и среднеквадратическим отклонением 4 RELEASE F007 ; Освободить устройство TERMINATE ; удаление транзакта 4 Немного больше о блоках Каждый блок в модели имеет номер, который присваивается ему автоматически, согласно месту его расположения в модели. Кроме того, блок может иметь символическое имя (метку), которое используется для ссылки на этот блок при передаче управления. Блок может иметь до 8 операндов, уточняющих его действие. Для удобства записи обычно операнды обозначаются символами A, B, C, …, H. Если операнды блока в явном виде не заданы, интерпретатор GPSS полагает их значение по умолчанию. 5 Операторы Если операнды блока в явном виде не заданы, интерпретатор GPSS полагает их значение по умолчанию. Кроме операторов блоков, разработчик модели может использовать еще два вида операторов: • Операторы описания позволяют определить переменную, функцию, описать емкость памяти (количество каналов многоканальной СМО), параметры таблицы и пр. • Управляющие операторы позволяют задать условия моделирования, такие как продолжительность моделирования, число прогонов модели, порядок и условия сбора статистики. Написание операторов имеет следующий формат: <метка> <имя_оператора> <поле_операндов> [<комментарий>] 6 Модель парикмахерской, как простейший пример Сегмент клиентов GENERATE 18,6 ;Приход клиентов (1) QUEUE QMASTER;Присоединение к очереди (2) SEIZE MASTER;Переход в кресло парикмахера (3) DEPART QMASTER;Уход из очереди (4) ADVANCE 16,4 ;Обслуживание у парикмахера (5) RELEASE MASTER;Освобождение парикмахера (6) TERMINATE;Уход из парикмахерской (7) Сегмент таймера GENERATE 480 ;Приход транзакта-таймера (8) TERMINATE 1 ;Завершение прогона (9) 7 Список источников: • • • https://studfiles.net/preview/3536040/page:6/ https://ru.wikipedia.org/wiki/GPSS#%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%B8%D0%BC%D0%B8%D1%82%D0%B0% D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%D1%80%D0%BE%D0 %B2%D0%B0%D0%BD%D0%B8%D1%8F_GPSS http://bigor.bmstu.ru/?cnt/?doc=110_Simul/3017.mod 8 Спасибо за внимание! 9