СИСТЕМА SEGMENTAL GPSS

 

Автор - к.т.н., доцент Королёв Анатолий Георгиевич.

 

Анонсируется система Segmental GPSS.

Система позволяет строить модели в стиле GPSS на языке Object Pascal. Модель создаётся в виде исполняемого модуля, с которым можно проводить эксперименты и получать отчёты о моделировании.

Кроме очевидного, того, что в модели доступны все возможности базового языка Object Pascal, такие как использование массивов объектов, текстовых файлов, переменных, записей, таблиц и  тому подобного, моя система обеспечивает гибкое управление будущими событиями для заявок.

Система обеспечивает доступность, как для записи, так и для чтения P – параметров любой неактивной в данное время заявки, если известен её номер. Она обеспечивает построение графиков и гистограмм таблиц, как во время прогона модели, так и позднее, в конце прогона.

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

До сих пор мало кто обращал внимание, что концепция будущего, заложенная в GPSS, очень консервативна, и напоминает директивное планирование в тоталитарных государствах. Я имею в виду, что заявки, отбывающие свой срок в Advance практически  не доступны системе для переопределения их будущего. Исключение составляют одиночные заявки, по которым, так или иначе, известен их номер. В системах типа GPSS, отсутствуют средства для работы с заявками из списка будущих событий, как с массовым явлением.

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

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

Отсутствие в GPSS полноценных средств отображения модели по частям ярко подтверждается тем фактом, что большие модели на GPSS не пишутся руками, а генерируются специальными программами – оболочками.

В GPSS нельзя разрабатывать части модели «впрок», с тем, чтобы применять их в будущих моделях по мере надобности.

В системе Segmental GPSS конечная модель может строиться из отдельно описанных и даже скомпилированных сегментов модели. Один сегмент является главным и инициирует, если нужно, готовность к работе других сегментов. Все сегменты модели имеют потенциально одинаковую структуру и возможности. Единственным исключением является план моделирования, который должен располагаться только в главном сегменте.

 Для перехода заявки из сегмента в сегмент используется блок

  Jump(номер_сегмента_модели, точка_входа, параметры_для_запоминания_места_возврата). Параметры  для возврата не обязательны, если команда просто выполняет возврат из сегмента.

Место возврата запоминается в P – параметрах как номер сегмента и точка возврата в сегмент.

То есть, заявки могут переходить из сегмента в сегмент и возвращаться обратно в точку вызова.

 Как правило, значения, необходимые для корректной работы сегмента с перешедшей в него заявкой передаются как P – параметры этой заявки. Тут могут быть заданы как числовые значения, так и ссылки на нужные объекты: устройства, очереди, таблицы, процедуры, функции, и так далее.

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

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

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

Всех, кого заинтересовала данная система, и, особенно, тех, кто имеет критические замечания по ней, прошу писать по адресу:

objectgpss@yandex.ru

В теме письма обязательно укажите слово gpss, иначе  ваше письмо будет удалено, как спам.

 

 На главную.

 

Hosted by uCoz