- •Имитационное моделирование систем
- •Предисловие
- •Список сокращений
- •Введение
- •Глава 1. Основные понятия моделирования систем, классификация моделей и методов с точки зрения философии, моделирование представляет собой один из методов познания мира.
- •1.1. Основные понятия теории моделирования
- •1.2. Основные методы моделирования
- •1.3. Классификация моделей
- •Глава 2. Математическое моделирование систем с использованием марковских случайных процессов
- •2.1. Элементы теории марковских случайных процессов, используемые при моделировании систем
- •2.2. Марковские цепи
- •2.3. Непрерывные цепи Маркова
- •2.4. Финальные вероятности состояний
- •Необходимые и достаточные условия существования финальных вероятностей
- •2.5. Математическое представление потока событий
- •2.6. Компоненты и классификация моделей систем массового обслуживания (смо)
- •2.7. Расчёт основных характеристик смо на основе использования их аналитических моделей
- •Одноканальные системы с отказами
- •Одноканальные системы с ограниченной очередью
- •Многоканальные системы с отказами
- •Многоканальные системы с ограниченной очередью
- •Контрольные вопросы и задания
- •Глава 3. Имитационное моделирование в среде gpss
- •3.1. Общие сведения о языке gpss
- •Основные объекты языка gpss
- •3.3. Основные блоки языка gpss
- •Поступление транзактов в модель
- •Уничтожение транзактов
- •Моделирование работы одноканальных устройств
- •Моделирование очередей
- •Моделирование многоканальных устройств (мку)
- •Изменение маршрута движения транзактов
- •Разработка модели и процесс моделирования в gpss. Пример создания модели
- •Управление процессом моделирования
- •Объекты вычислительной категории языка: переменные и функции. Сохраняемые ячейки
- •Определение и использование функций
- •Работа с параметрами транзакта, приоритеты
- •Блок mark
- •Применение в моделях копий и организация синхронизации движения транзактов
- •Использование блока test
- •Контрольные задания по моделированию Моделирование систем с условием перераспределения заявок в заданном статистическом режиме
- •Заключение
- •Библиографический список
- •Основные элементы стандартного отчёта
- •Системные числовые атрибуты (сча)
- •Сча транзактов
- •Сча блоков
- •Сча одноканальных устройств
- •Сча очередей
- •Сча таблиц
- •Сча ячеек и матриц ячеек сохраняемых величин
- •Сча вычислительных объектов
- •Сча списков и групп
- •10. Какое действие выполняет этот оператор: transfer both,lab1,lab2
- •11. Какое действие выполняет этот оператор: transfer 0.4,lab1,lab2
- •12. Правильно ли описана эта команда: transfer ,met:
- •13. Какое действие выполняет этот блок: lines1 storage 2
- •Индивидуальные зачётные задания по имитационному моделированию систем
- •4. Реорганизация заправочной станции
- •8. Модель швейного цеха
- •10. Моделирование работы заправочной станции
- •11.Моделирование работы станции скорой помощи
- •13. Модель автобусной остановки
- •14.Моделирование работы кафе
- •15. Задача о конвейере
- •17.Моделирование цеха обработки
- •Алфавитно-предметный указатель
- •Рассказова Марина Николаевна имитационное моделирование систем
- •644099, Омск, Красногвардейская, 9
Уничтожение транзактов
Блок уничтожения транзактов (завершения) имеет формат:
TERMINATE [A]
Транзакты, попадающие в этот блок, уничтожаются и больше не участвуют в процессе моделирования. Если операнд A задан, то его значение указывает, на сколько единиц уменьшается содержимое так называемого счётчика завершений при входе транзакта в данный блок TERMINATE. Если A не определено, то оно считается равным 0, и транзакты, проходящие через такой блок, не уменьшают содержимого счётчика завершений.
Начальное значение счётчика завершений устанавливается управляющим оператором START А (начать), предназначенным для запуска прогона модели. Операнд A этого оператора содержит начальное значение счётчика завершений. Прогон модели заканчивается, когда содержимое счётчика завершений обращается в 0. Таким образом, в модели должен быть хотя бы один блок TERMINATE с непустым A, иначе процесс моделирования никогда не завершится.
Участок блок-схемы модели, связанный с парой блоков GENERATE-ТERMINATE, называется сегментом. Простые модели могут состоять из одного сегмента, в сложных моделях может быть несколько сегментов.
При моделировании системы иногда необходимо промоделировать обработку конкретного числа заявок, например 100 заявок. Соответствующий сегмент будет выглядеть так:
GENERATE 5,2,,100
………………………………
TERMINATE 1
START 100
Начальное значение счётчика завершений равно 100. Каждый транзакт, проходящий через блок TERMINATE, вычитает из счётчика единицу, и таким образом моделирование завершится, когда сотый по счёту транзакт войдёт в блок TERMINATE. При этом точное значение таймера в момент завершения прогона непредсказуемо. Следовательно, в приведённом примере продолжительность прогона устанавливается не по модельному времени, а по количеству транзактов, прошедших через модель.
Но чаще возникает необходимость провести процесс моделирования в течение конкретного времени, например, одного 8-часового рабочего дня. Если единица модельного времени минута, то необходимо, чтобы в момент 480 моделирование прекратилось. Для этого включаем сегмент – фиктивный блок времени:
GENERATE 5,2
………………………
TERMINATE
GENERATE 480 ;фиктивный блок времени
TERMINATE 1
START 1
Транзакты, рождённые в первом GENERATE, просто уничтожаются. А единственный транзакт, рождённый во втором GENERATE, заходя в блок TERMINATE, уменьшает значение счётчика завершений на 1, а он был равен 1, т. е. счётчик обнуляется, и процесс моделирования останавливается. Таким образом, в этой модели гарантируется завершение прогона в определённый момент модельного времени, а точное количество транзактов, прошедших через модель, непредсказуемо.
Моделирование работы одноканальных устройств
Устройства используются при моделировании систем для имитации работы оборудования единичной ёмкости, например, процессор, канал передачи данных, человек, компьютер. Устройство в любой момент времени может обрабатывать только одно сообщение (транзакт). Одноканальные устройства заранее не описываются.
Для использования одноканального устройства транзакту необходимо выполнить следующие шаги:
ждать очереди, если необходимо;
когда подходит очередь, занять устройство;
пропустить время, необходимое на обслуживание;
когда обслуживание закончится, освободить устройство.
Второй и четвёртый шаги реализуются блоками SEIZE и RELEASE.
Блок SEIZE (занять устройство) имеет следующий формат:
SEIZE A
Аргумент А задаёт номер или имя занимаемого устройства.
Свободный блок SEIZE позволяет вошедшему в него сообщению занять указанное устройство. Блок SEIZE задерживает сообщение, если устройство занято или находится в состоянии недоступности. Сообщение, занявшее устройство, затем пытается перейти к следующему по номеру блоку. Устройство остаётся занятым до тех пор, пока занимающее его сообщение не войдёт в соответствующий блок RELEASE. Прежде чем освободить устройство, сообщение может пройти через неограниченное число блоков.
Блок RELEASE (освободить устройство) имеет следующий формат:
RELEASE A
Освободить устройство может лишь тот транзакт, который его занимает, иначе возникает сообщение об ошибке.
Транзакты обслуживаются устройствами в течение некоторого промежутка времени. Для моделирования такого обслуживания, т. е. для задержки транзактов на определённый отрезок модельного времени служит блок ADVANCE (задержать), имеющий следующий формат:
ADVANCE A,B
Операнды A и B имеют тот же смысл, что и в соответствующих полях блока GENERATE. Операнд А обязателен. Любой транзакт входит в блок ADVANCE беспрепятственно.
Пример.
GENERATE 5,2
SEIZE 1
ADVANCE 4,2
RELEASE 1
В момент освобождения устройства должен быть решён вопрос о том, кто имеет право первым его занять. Транзакты регистрируются симулятором в списке перед блоком SEIZE и упорядочиваются согласно приоритетам и времени прихода. Первый из этого списка занимает устройство.