КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ СЛОЖНЫХ СИСТЕМ Курс лекций Составитель: Киселева М.В. каф. Автоматизированных систем управления 2008 Лекция 13. Программирование имитационных моделей в GPSS World Основные блоки и элементы языка GPSS Пример моделирования работы вычислительной системы в среде GPSS World Компьютерное моделирование сложных систем АСУ, 2008 3 Язык моделирования дискретных систем GPSS разработан фирмой IBM в начале 70-х годов ХХ в. и является одним из самых распространённых в мире специализированных языков программирования. GPSS (General Purpose Simulating System – общецелевая система моделирования) Компьютерное моделирование сложных систем АСУ, 2008 4 Системы моделирования: GPSS/PC (различных версий) GPSS World являются торговой маркой фирмы Minuteman Software Учебную версию GPSS World бесплатно можно получить на портале www.minutemansoftware.com/download Компьютерное моделирование сложных систем АСУ, 2008 5 Объекты языка GPSS Язык GPSS – это язык декларативного типа, построенный по принципу объектно-ориентированного языка. Основными элементами этого языка являются транзакты и блоки, которые отображают соответственно динамические и статические объекты моделируемой системы. Компьютерное моделирование сложных систем АСУ, 2008 6 Предназначение объектов системы различно. Выбор объектов в конкретной модели зависит от характеристик моделируемой системы. Каждый объект имеет некоторое число свойств, названых в GPSS стандартными числовыми атрибутами (CЧA). Часть СЧА доступна пользователю только для чтения, а на значение других он может влиять, используя соответствующие блоки. Компьютерное моделирование сложных систем АСУ, 2008 7 Блоки и транзакты (1) В GPSS концепция передачи управления от блока к блоку имеет специфические особенности. Последовательность блоков GPSS-модели показывает направления, в которых перемещаются элементы (транзакты, динамические элементы) Транзакты создаются в определённых точках модели, продвигаются интерпретатором через блоки, а затем уничтожаются. Компьютерное моделирование сложных систем АСУ, 2008 8 Блоки и транзакты (2) Блоки языка GPSS представляют собой подпрограммы, написанные на макроассемблере или на языке Си, и содержат набор параметров (операндов) для обращения к ним. Передача управления от блока к блоку в GPSS-программах реализуется c помощью движения транзактов в модельном времени. Обращение к подпрограммам блоков происходит через движение транзактов. Компьютерное моделирование сложных систем АСУ, 2008 9 Блоки и транзакты (3) Содержательное значение транзактов определяет разработчик модели. Он устанавливает аналогию между транзактами и реальными динамическими элементами моделируемой системы. Система Магазин Автомобильное шоссе Парикмахерская Склад Элементы систем, которые моделируются транзактами Покупатель Автомобиль Клиент Заявка Компьютерное моделирование сложных систем АСУ, 2008 10 Блоки и транзакты (4) C точки зрения программы транзакт - это структура данных, которая содержит такие поля: имя или номер транзакта; время появления транзакта; текущее модельное время; номер блока, в котором находится транзакт; номер блока, куда он продвигается; момент времени начала продвижения; приоритет транзакта; параметры транзакта: P1, P2, ... Компьютерное моделирование сложных систем АСУ, 2008 11 Блоки и транзакты (5) Каждый транзакт занимает некоторый объем памяти ЭВМ. После того, как он закончит свое движение по блокам модели, его необходимо уничтожать для освобождения памяти, чтобы избежать ее переполнения. Поскольку транслятору не известно, сколько транзактов одновременно будет находиться в модели, то память под транзакты выделяется динамически. Компьютерное моделирование сложных систем АСУ, 2008 12 Таким образом, при начале моделирования в GPSS-модели не существует ни одного транзакта. В процессе моделирования транзакты входят в модель в определенные моменты времени, соответствующие логике функционирования моделируемой системы, а затем покидают модель. В общем случае в модели существует несколько транзактов, но в каждый момент времени движется только один из них. Компьютерное моделирование сложных систем АСУ, 2008 13 Объекты типа «оборудование» ОКУ – одноканальное устройство (устройство, прибор) МКУ – многоканальное устройство (несколько параллельных одинаковых устройств) Логические ключи (имеют два состояния «включено» и «выключено»,состояние ключа изменяет транзакт) Компьютерное моделирование сложных систем АСУ, 2008 14 Объекты вычислительной категории (1) Переменные (арифметические, булевы) СЧА (стандартные числовые атрибуты) Компьютерное моделирование сложных систем АСУ, 2008 15 Объекты вычислительной категории (2) Функции. Используя функции, пользователь может задавать непрерывную или дискретную функциональную зависимость между аргументом функции и её значением. Ячейки и матрицы сохраняемых величин. Используются для хранения некоторой пользовательской числовой информации.. Запись в эти объекты выполняют транзакты. Записанную в этих объектах информацию может считывать любой транзакт. Таким образом, эти объекты являются глобальными и доступны из любой части модели. Компьютерное моделирование сложных систем АСУ, 2008 16 Статистические объекты Очереди. Сбор статистики очередей составляет одну из основных функций интерпретатора (автоматически поддерживается дисциплина FIFO). Таблицы. Объект «таблица» предназначен для сбора статистики о случайных величинах, заданных пользователем. Компьютерное моделирование сложных систем АСУ, 2008 17 Модельное время Единица модельного времени определяется разработчиком. Эту единицу времени интерпретатору не сообщают. Значение принятой единицы модельного времени выражают в неявном виде в форме временных данных модели. Система GPSS является интерпретатором «следующего события» (часы модельного времени продвигаются от одного события к другому). Компьютерное моделирование сложных систем АСУ, 2008 18 Блок-схема GPSS-модели Начать Прочитать данные Инициализировать переменные Определить время ближайшего события Продвинуть таймер до времени ближайшего события Отработать логическую схему конца обслуживания Завершить обслуживание Каков тип этого события Приход заявки Отработать логическую схему прихода заявки Записать результаты Компьютерное моделирование сложных систем АСУ, 2008 19 Операторы (блоки) GPSS Операторы GPSS делятся на три типа: 1) блоки; 2) операторы описания данных; 3) команды GPSS. Формат оператора GPSS: [Номер cmpoки][<Метка>] <Операция> <Операнды> <;Комментарии> Компьютерное моделирование сложных систем АСУ, 2008 20 ОбщаяОбщая структура GPSS-модели структура GPSS-модел GENERATE Блоки модели TERMINATE Компьютерное моделирование сложных систем АСУ, 2008 21 Моделирование работы вычислительной системы в среде GPSS World Задача. К компьютеру на обработку поступают задания. Из предварительного обследования получена информация, что интервал времени между двумя последовательными поступлениями заданий к компьютеру подчиняется равномерному закону распределения в интервале (1-11 мин.). Перед компьютером допустима очередь заданий, длина которой не ограничена. Время выполнения задания также равномерно распределено в интервале (1-19 мин.). Смоделировать обработку 100 заданий. Компьютерное моделирование сложных систем АСУ, 2008 22 В среде GPSS программа, моделирующая работу вычислительной системы, выглядит следующим образом: GENERATE 360,300 SEIZE B ADVANCE 600,540 RELEASE B TERMINATE 1 START 100 Единица модельного времени задана 1 секунда. Компьютерное моделирование сложных систем АСУ, 2008 23 Так как время среднее время обработки задания больше, чем среднее время поступления задания, в вычислительной системе будет накапливаться очередь с течением времени. Для сбора статистики об очереди используются операторы QUEUE, DEPART. В этом случае программа выглядит следующим образом: GENERATE 360,300 QUEUE BR SEIZE B DEPART BR ADVANCE 600,540 RELEASE B TERMINATE 1 START 100 24 Компьютерное моделирование сложных систем АСУ, 2008 25 Поступление транзактов в модель Формат блока: GENERATE [A],[B],[C],[D],[E] А – среднее значение интервала поступления В – величина разброса возможных значений относительно среднего значения C – момент времени появления первого транзакта D – предельное число транзактов Е – уровень или класс приоритета каждого из транзактов Компьютерное моделирование сложных систем АСУ, 2008 26 Например, блок GENERATE 100,40 создает транзакты через случайные интервалы времени, равномерно распределенные на отрезке [60;140], т.е. диапазон изменения интервала поступления имеет границы A-B, A+B. Компьютерное моделирование сложных систем АСУ, 2008 27 Удаление транзактов из модели TERMINATE A Значение поля A указывает, на сколько единиц уменьшается содержимое так называемого счетчика завершений при входе транзакта в данный блок TERMINATE. Если поле A не определено, то оно считается равным 0, и транзакты, проходящие через такой блок, не уменьшают содержимого счетчика завершений. 28 Начальное значение счетчика завершений устанавливается управляющим оператором START (начать), предназначенным для запуска прогона модели. Поле A этого оператора содержит начальное значение счетчика завершений. Прогон модели заканчивается, когда содержимое счетчика завершений обращается в 0. Таким образом, в модели должен быть хотя бы один блок TERMINATE с непустым полем A, иначе процесс моделирования никогда не завершится.29 Участок блок-схемы модели, связанный с парой блоков GENERATE-ТERMINATE, называется сегментом. Простые модели могут состоять из одного сегмента, в сложных моделях может быть несколько сегментов. Компьютерное моделирование сложных систем АСУ, 2008 30 Например, простейший сегмент модели, состоящий всего из двух блоков GENERATE и TERMINATE GENERATE 100,40 TERMINATE 1 START 1000 в приведенном примере продолжительность прогона устанавливается не по модельному времени, а по количеству транзактов, прошедших через модель. Компьютерное моделирование сложных систем АСУ, 2008 31 Если необходимо управлять продолжительностью прогона по модельному времени, то в модели используется специальный сегмент, называемый сегментом таймера. GENERATE 100,40 TERMINATE GENERATE 100000 TERMINATE 1 START 1 Компьютерное моделирование сложных систем АСУ, 2008 32 Моделирование одноканальных устройств (1) Устройства используются при моделировании систем для имитации работы оборудования единичной емкости, например процессор, канал передачи данных, человек, компьютер. Устройство в любой момент времени может обрабатывать только один транзакт. Если в процессе обслуживания появляется новый транзакт, то он должен: либо подождать своей очереди; либо направиться в другое место; либо прервать обслуживание текущего сообщения. Компьютерное моделирование сложных систем АСУ, 2008 33 Моделирование одноканальных устройств (2) Для использования одноканального устройства транзакту необходимо выполнить следующие шаги: ждать очереди, если необходимо; когда подходит очередь занять устройство; устройство находится в состоянии занятости, пока не закончится обслуживание, для обслуживания необходим некоторый интервал времени; когда обслуживание закончится, освободить устройство. Второй и четвертый шаги реализуются блоками SEIZE и RELEASE. Компьютерное моделирование сложных систем АСУ, 2008 34 Блок SEIZE имеет следующий формат: SEIZE A В поле А задается номер (имя) занимаемого устройства. Свободный блок SEIZE позволяет вошедшему в него сообщению занять указанное устройство. Блок SEIZE задерживает сообщение, если устройство занято или находится в состоянии недоступности. Компьютерное моделирование сложных систем АСУ, 2008 35 Сообщение, занявшее устройство, затем пытается перейти к следующему по номеру блоку. Устройство остается занятым до тех пор, пока занимающее его сообщение не войдет в соответствующий блок RELEASE. Прежде чем освободить устройство, сообщение может пройти через неограниченное число блоков. Блок RELEASE имеет следующий формат: RELEASE A В поле А задается номер (имя) освобождаемого устройства. Компьютерное моделирование сложных систем АСУ, 2008 36 Задержка транзактов Транзакты обслуживаются устройствами в течение некоторого промежутка времени (реализация шага 3). Для моделирования такого обслуживания, служит блок ADVANCE (задержать), имеющий следующий формат: ADVANCE A,B Операнды в полях A и B имеют тот же смысл, что и в соответствующих полях блока GENERATE. Компьютерное моделирование сложных систем АСУ, 2008 37 Задержка транзактов Следует отметить, что транзакты, входящие в блок ADVANCE, переводятся из списка текущих событий в список будущих событий, а по истечении вычисленного времени задержки возвращаются назад, в список текущих событий, и их продвижение по блок-схеме продолжается. Если вычисленное время задержки равно 0, то транзакт в тот же момент модельного времени переходит в следующий блок, оставаясь в списке текущих событий. Компьютерное моделирование сложных систем АСУ, 2008 38 Очереди (1) В GPSS объекты типа «очередь» вводятся для сбора статистических данных. Статистика об очередях собирается в моменты входа транзакта в блок QUEUE (вход в очередь) или в блок DEPART (выход из очереди). Формат записи блока QUEUE: QUEUE A,[B] Блок увеличивает длину очереди. Компьютерное моделирование сложных систем АСУ, 2008 39 Очереди (2) В поле А задается номер или имя очереди, к длине которой добавляются единицы. Операнд может быть именем, положительным целым, СЧА. Поле В определяет число единиц, на которое увеличивается текущая длина очереди. Если поле В пусто, то прибавляется единица. Когда сообщение входит в блок QUEUE, то ищется очередь с именем, определенным операндом А. Если необходимо, очередь создается. Компьютерное моделирование сложных систем АСУ, 2008 40 Очереди (3) Поскольку очередь обычно используется для измерения времени ожидания, за блоком QUEUE обычно следуют такой блок как SEIZE, который может задержать сообщение. Одно и то же сообщение может одновременно увеличить длину нескольких очередей, т.е. сообщение может войти в несколько блоков QUEUE перед тем, как войти в соответствующие блоки DEPART. Значение текущей длины очереди хранится в СЧА Q$<имя очереди>. Компьютерное моделирование сложных систем АСУ, 2008 41 Очереди (4) Блок DEPART имеет следующий формат: DEPART A,[B] Блок DEPART служит для уменьшения длины очереди. В поле А задается номер или имя очереди, длину которой нужно уменьшить. В поле В задается число единиц, на которое уменьшается длина очереди. Это число не должно превышать текущую длину очереди. Если поле В пусто, длина очереди уменьшается на единицу. Компьютерное моделирование сложных систем АСУ, 2008 42 Моделирование многоканальных устройств Изменим условие задачи. Пусть в вычислительной системе два компьютера (интенсивность обработки заданий одинаковая), все остальные условия остаются без изменений. Программа будет выглядеть следующим образом: NAK STORAGE 2 GENERATE 360,300 QUEUE BR ENTER NAK DEPART BR ADVANCE 600,540 LEAVE NAK TERMINATE 1 START 100 43 Компьютерное моделирование сложных систем АСУ, 2008 44 Вопросы Особенности работы с основными блоками GPSS Список литературы 1. Советов Б.Я., Яковлев С.А. Моделирование систем. Практикум: Учеб. пособие для вузов. – 2-е изд., перераб. и доп. М.: Высш. шк., 2003.- 295.: ил. 2. Боев В.Д. Моделирование систем. Инструментальные средства GPSS World: Учеб. Пособие. – СПб.: БХВ-Петербург, 2004.- 368 с.: ил. 3. Томашевский В., Жданова E. Имитационное моделирование в среде GPSS. – М.:Бестселлер, 2003. - 416 c.: ил. 4. Шрайбер Т. Дж. Моделирование на GPSS. – M.: Машиностроение, 1980. – 593c. 5. http://www.gpss.ru. Сайт, посвященный системе моделирования GPSS. 45 Компьютерное моделирование сложных систем АСУ, 2008 46