Лекция №1. (15.02.2018)
GPSS World
Язык моделирования GPSS ориентирован на моделирование дискретных систем. Моделируемая система может рассматриваться как галоп взаимодействующих сущностей каждая из которых в общем случае независима от других. Наиболее подходящей областью использования GPSS является моделирование систем массового обслуживания (СМО). В любой системе массового обслуживания предлагается, что имеется некоторый входной поток сущностей, именуемых требования и для этого потока задаются временные характеристики они показывают интервалы времени между поступлением в систему.
Возникающие в системе требования должны пройти некоторую процедуру обработки. Обработкой занимается некоторое фиксированное количество приборов. Они могут располагаться параллельно, а могут последовательно. Поскольку обслуживание каждого требования требует некоторого времени, то из приходящих требований может создаваться очередь ожидания обслуживания.
Цель моделирования систем массового обслуживания состоит в получении статистических характеристик, касающихся возникающих очередей. Основная цель этих характеристик — это среднее значение. Обычно это средне время ожидания в очереди и среднее количество требований. В языке GPSS выделяют два вида сущностей:
-
Транзакты. Являются аналогами требований систем массового обслуживания.
-
Приборы. Соответствуют обслуживающим устройствам.
В ходе работы модели транзакты перемещаются по заданному маршруту от прибора к прибору, задерживаясь на обслуживании прибора, либо в очереди перед ним. Когда транзакт подходит к свободному прибору он "захватывает" его, то есть делает недоступным для других транзактов. Обычно прибор некоторое время обслуживает транзакт, после чего освобождается, и транзакт продолжает своё движение по маршруту, а прибор освобождается и может обслуживать следующий транзакт. Если транзакты подошли к "захваченному" прибору, то они встают в очередь ожидания, а затем обслуживаются в соответствии с определенными правилами. Эти правила определяют дисциплину очереди.
Дисциплина в очереди
FIFO
LIFO - последний пришедший обслуживается первым (очередь в стек).
Кроме этого возможны очереди с приоритетом, в этой ситуации каждому транзакту приписывается число - приоритет, и транзакты с более высоким приоритетом обслуживаются раньше транзактов с низким приоритетом. Временные приоритеты, как между моментами появления требований, так и время обслуживания транзактов обычно бывают случайными.
В языке GPSS World имеется большое количество разнообразных стандартных законов получения случайных чисел. Кроме того, возможно создание своих законов получения случайных значений. Чаще всего используются два случайных закона: равномерное распределение на некотором заданном интервале и экспоненциальное распределение. Модель на языке GPSS визуально выглядит как набор блоков, соединенных между собой линиями. Каждое действие, описываемое в моделях, имеет свой вид блока. Коме того, модель одной системы может быть набором сегментов, отражающих параллельно проникающие процессы. Синхронизация достигается за счёт использования в различных сегментах одних и тех же приборов.
Блоки GPSS
Каждый блок имеет имя, используемое при запись-модели и набор параметров. Часть параметров имеют значения по умолчанию и при написании могут быть опущены, однако занятые, разделяющие их значения должны быть записаны.
Параметр GENERATE
Параметры A и B определяют закон распределения времени между поступлением двух транзактов, если A и B числа, то закон распределения равномерный: ; ;
Параметр C определяет первого транзакта в модели. Параметр D определяет количество транзактов, которое может породить данный блок. По умолчанию D равно бесконечности. Параметр E определяет приоритет обслуживания, создаваемых транзактов (чем больше значение, трем выше приоритет). По умолчанию значение E равно 0 (самый низкий приоритет).
Параметр TERMINATE. A равно нулю.
При уничтожении транзактов значение специального счетчика завершения уменьшается на величину параметра A. Как только этот счетчик перестанет быть прекращается работа модели и выдается отчет о результатах моделирования. Любой сегмент модели на языке GPSS начинается блоком GENERATE и завершается блоком TERMINATE. Счетчик завершения записывается после самого последнего блока модели, имеет вид START A.