Математическое моделирование


Последовательность выполнения модели - часть 3


При построении модели пользователь должен задаться соотношением единицы системного времени, используемого в модели, к реальному времени, в котором происходит функционирование моделируемой системы. Следует отметить, что системное время никак не связано с машинным временем, затрачиваемым на выполнение моделирования.

Центральной задачей, выполняемой симулятором, является определение того, какой транзакт нужно выбрать следующим для продвижения в модели, когда его предшественник прекратил свое продвижение. С этой целью симулятор рассматривает каждый транзакт как элемент некоторого списка.

В относительно простых моделях используются лишь два основных списка событий: список текущих событий и список будущих событий.

Список текущих событий включает в себя те транзакты, планируемое время продвижения которых равно или меньше текущего модельного времени (к последним относятся транзакты, движение которых было заблокировано ранее). Он организуется в порядке убывания приоритетов транзактов, а в пределах каждого уровня приоритета —в порядке поступления транзактов.

Список будущих событий включает в себя транзакты, планируемое время продвижения которых больше текущего времени (то есть события, связанные с продвижением этих транзактов, должны произойти в будущем). Этот список организуется в порядке возрастания планируемого времени продвижения транзактов.

Симулятор GPSS помещает транзакты в зависимости от условий в модели в тот или иной список и переносит транзакты из списка в список, просматривает списки, выбирая следующий транзакт для обработки, корректирует таймер модельного времени после обработки всех транзактов в списке текущих событий. Таким образом, в процессе моделирования интерпретатор автоматически определяет правильную очередность наступления событий. В случае, если нужные действия в намеченный момент времени выполнены быть не могут (например, занято устройство, к которому обращается транзакт), интерпретатор временно прекращает обработку «застрявшего» транзакта, но продолжает следить за причиной, которая вызвала блокировку его обработки.Как только эта причина исчезает (например, освобождается занятое устройство), интерпретатор возвращается к обработке задержанного транзакта.

Программа на GPSS представляет собой последовательность предложений, изображающих объекты того или иного типа, а ее работу нужно представить как движение транзактов через блоки модели. Таким образом, в отличие от традиционных языков программирования, в GPSS программируется не последовательность вычислений, а структура системы массового обслуживания, а также правила генерации и обработки транзактов.





- Начало -  - Назад -  - Вперед -