- •Раздел 1. Основные понятия и определения.
- •1.1. Общее определение модели
- •1.2. Классификация моделей и моделирования
- •1.2.1. Классификация моделей и моделирования по признаку "характер моделируемой стороны объекта"
- •1.2.2. Классификация моделей и моделирования по признаку "характер процессов, протекающих в объекте"
- •1.2.3. Классификация моделей и моделирования по признаку "способ реализации модели"
- •1.3. Этапы моделирования
- •1.4. Адекватность модели
- •1.5. Требования, предъявляемые к моделям
- •Раздел 2. Имитационное моделирование
- •2.1. Применение имитационного моделирования
- •2.2. Имитация и ее разновидности
- •2.3. Виды имитационного моделирования
- •2.4. Области применения
- •2.5. Популярные системы имитационного моделирования
- •Раздел 3. Модели и методы моделирования
- •3.1. Характеристика физического (натурного) и математического моделирования.
- •3.2. Характеристика тмо, основные понятия и определения. Формула Литтла.
- •3.3. История развития Теории массового обслуживания.
- •Раздел 4. Система компьютерного моделирования gpss World
- •4.1 Основы построения системы моделирования gpss World
- •4.2 Синтаксис языка gpss
- •4.3. Объекты имитационной модели
- •4.4. Структура модели на gpss world
- •4.5. Транзакты - динамические объекты системы
- •4.6. Системные числовые атрибуты
- •4.7. Модельное время
- •4.8. Списки
- •4.9. Внутренняя организация gpss
- •4.10. Библиотечные генераторы случайных чисел
- •4.11. Запуск и завершение моделирования
- •4.12. Команды gpss
- •4.12.1. Команды описания и управления
- •4.2 Блоки, связанные с аппаратными объектами
- •4.3 Блоки, предназначенные для сбора статистических данных
4.7. Модельное время
Работа реальных систем протекает во времени, для отображения которого в GPSS-модели используется таймер модельного времени. Изменение модельного времени происходит путем его продвижения до ближайшего события, связанного с изменением состояния моделируемой системы. При моделировании СМО и СеМО такими событиями являются:
- поступление заявок в систему;
- завершение обслуживания заявок в узле СеМО (обслуживающем приборе).
Таким образом, моделирование заключается в определении ближайшего момента наступления каждого события.
Таймер модельного времени корректируется автоматически в соответствии с логикой, предписанной моделью.
Таймер GPSS World может принимать любые значения. Единица времени (секунды, минуты, часы или их доли) для таймера задается разработчиком модели. Так как единица времени не сообщается транслятору, то все данные, связанные со временем, должны быть выражены разработчиком через эту выбранную единицу.
Рассмотрим более подробно механизм изменения таймера модельного времени и логику процесса моделирования на примере моделирования системы массового обслуживания с неоднородным потоком заявок. Для формирования неоднородного потока заявок GPSS-модель будет содержать несколько операторов GENERATE по числу классов заявок.
В начале моделирования значение таймера модельного времени устанавливается в 0. Для всех классов заявок, поступающих в моделируемую систему, в каждом из блоков GENERATE определяется по одному ближайшему моменту появления транзакта, что соответствует моменту поступления очередной заявки данного класса. Очевидно, что число таких моментов будет равно количеству классов заявок. Среди всех этих моментов определяется момент с наименьшим значением, то есть момент, соответствующий ближайшему событию, и значение таймера модельного времени устанавливается равным значению (продвигается до) этого момента. Такое изменение значения таймера модельного времени приводит к тому, что соответствующий транзакт с моментом поступления, равным значению таймера, начинает движение в модели от блока GENERATE к следующему по порядку блоку. Движение транзакта в модели продолжается до тех пор, пока он не попадет в блок, функцией которого является задержка на некоторое заданное время, или в блок, который "отказывается" принять его до тех пор, пока в модели не изменятся некоторые условия. В последнем случае транзакт остаётся в предыдущем блоке. Если транзакт входит в блок, функцией которого является удаление транзакта из модели, то этот транзакт уничтожается.
Если в модели имеется ещё транзакт с таким же моментом формирования, то начинается его продвижение, причем значение таймера модельного времени не изменяется. Изменение таймера модельного времени происходит только в том случае, если в модели больше нет ни одного транзакта с таким же моментом формирования.
4.8. Списки
Продвижение транзактов в GPSS-модели реализуется с помощью так называемых списков или цепей (Chain).
В каждый момент модельного времени все транзакты, находящиеся в модели, соотносятся с одним из списков. В зависимости от принадлежности транзакта тому или иному списку, он может продвигаться в модели, быть готовым к дальнейшему продвижению, либо ожидать наступления заданного момента модельного времени или выполнения некоторого условия.
Такими списками в GPSS-модели являются:
- список текущих событий (СТС) - содержит транзакты, которые могут продвигаться в модели в текущий момент модельного времени;
- список будущих событий (СБС) - содержит транзакты, ожидающие наступления более позднего момента модельного времени;
- списки повторных попыток (СПП) - содержат транзакты, не удовлетворяющие условиям входа в блок, причем каждый объект GPSS-модели имеет свой СПП;
- списки прибора (одноканального устройства), включающие:
- список отложенных прерываний, в котором находятся транзак-ты, ожидающие занятия устройства по приоритету с возможностью вытеснения транзакта, ранее занимавшего устройство;
- список прерываний, в котором находятся транзакты, вытесненные из данного устройства, то есть обслуживание которых было прервано более высокоприоритетным транзактом;
- список задержки, в котором находятся транзакты, ожидающие занятия устройства;
- список повторных попыток;
- списки памяти (многоканального устройства), включающие:
- список задержки,
- список повторных попыток;
- списки пользователя, используемые для построения моделей с разнообразными функциональными возможностями, в частности, для организации моделирования различных алгоритмов формирования очередей (дисциплин буферизации и дисциплин обслуживания заявок в моделях массового обслуживания).
В любой модели всегда формируется один список текущих и один список будущих событий. Остальные списки формируются по мере необходимости.
В каждый момент модельного времени последовательно один за другим продвигаются только те транзакты, которые находятся в СТС, причем только один транзакт, который продвигается в данный момент реального времени, является активным. Продвижение каждого транзакта осуществляется до тех пор, пока это возможно. Например, если транзакт попадает в блок ADVANCE, функцией которого является задержка на некоторое время, то он переводится в СБС. Транзакт будет находиться в СБС до тех пор, пока модельное время не станет равным моменту, когда он может покинуть блок ADVANCE. В этом случае транзакт будет переведён в СТС.
Транзакты, расположенные в СТС с учётом их приоритетов, выбираются последовательно один за другим. Когда в СТС не остаётся транзактов, которые могут быть продвинуты в текущий момент модельного времени, происходит изменение модельного времени, которое продвигается до ближайшего запланированного момента времени для транзакта, находящегося первым в СБС. Этот, а также все другие транзакты, движение которых может быть возобновлено в тот же момент модельного времени, переносятся из СБС в СТС, где размещаются в порядке убывания приоритетов.
Каждый транзакт может иметь множество параметров, называемых атрибутами транзакта, которые сопровождают его в течение «жизни» в модели. К ним, в частности, относятся:
- параметры, закрепляемые пользователем за каждым транзактом, число которых не ограничено; идентификатором параметра может служить его номер (целое положительное число) или имя; параметры транзакта должны быть определены, до того как они будут востребованы;
- приоритет - преимущественное право на использование общего ресурса, причём более высокому приоритету соответствует большее значение; транзакты с одинаковым приоритетом обычно выбираются в порядке поступления;
- время входа транзакта в систему - значение абсолютного времени в момент первого входа транзакта в модель или в блок MARK без операнда А;
- текущий блок - номер блока, в котором находится транзакт;
- следующий блок - номер следующего блока, в который должен перейти данный транзакт;
- список, в котором находится транзакт в некоторый момент времени:
ACTIVE - транзакт находится в СТС и является активным;
SUSPENDED - транзакт находится в СБС или в СТС и
ожидает возможности стать активным;
PASSIVE - транзакт находится в состоянии ожидания: в списке пользователя, списке задержки или списке отложенных прерываний;
PREEMPTED - обслуживание транзакта в устройстве прервано, и он находится в списке прерываний;
TERMINATED - транзакт удаляется из модели и больше не участвует в процессе моделирования.
