Document 4765916

advertisement
КОМПЬЮТЕРНОЕ
МОДЕЛИРОВАНИЕ
СЛОЖНЫХ СИСТЕМ
Курс лекций
Составитель: Киселева М.В.
каф. Автоматизированных систем
управления
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
Download