Номер имя операция операнды ; комментарии

Все операторы должны начинаться с номера – целого положительного числа от 1 до 9999999. После ввода операторов они располагаются в исходной программе в соответствии с присвоенными номерами. Обычно нумерация производится с некоторым шагом, отличным от 1, чтобы иметь возможность добавления операторов в нужное место программы. Некоторые операторы удобно вводить, не включая их в исходную программу. Тогда они вводятся без номера. Далее в этой работе при описании формата операторов и в примерах моделей номера операторов будем опускать для лучшей читаемости текста.

Отдельные операторы в программе могут иметь имя для ссылки на эти операторы из других операторов. Если такие ссылки отсутствуют, то этот элемент оператора не является обязательным.

В поле операции записывается ключевое слово-глагол (название оператора), указывающее конкретную функцию, выполняемую данным оператором. Это поле оператора является обязательным.

В полях операндов записывается информация, которая конкретизирует выполнение функции, определенной в поле операции. Эти поля в зависимости от типа операции могут содержать до семи операндов, расположенных в определенной последовательности и обозначаемых первыми буквами латинского алфавита A, B, C, D, E, F, G. Некоторые операторы вообще не имеют операндов, а в некоторых операнды могут быть не заданы и при этом устанавливаются их значения по умолчанию (стандартные значения). Если в операторе какой-нибудь необязательный операнд не используется, то его отсутствие в соответствующем поле отмечается символом ",".

Необязательные комментарии, в случае их присутствия в программе, отделяются от поля операндов символом ";". Комментарии не могут содержать буквы русского алфавита.

Операторы GPSS/PC записываются, начиная с первой позиции, в свобод-ном формате, т.е. отдельные поля разделяются произвольным количеством пробелов. При вводе исходной программы в интегрированной среде GPSS/PC (см. раздел 7.2) размещение отдельных полей операторов с определенным количеством интервалов между ними производится автоматически.

Каждый оператор GPSS/PC относится к одному из четырех типов: операторы-блоки; операторы описания объектов; управляющие операторы и операторы-команды.

Операторы-блоки формируют логику функционирования модели. В GPSS/PC имеется около 50 различных видов операторов-блоков (далее часто просто оператор или блок), каждый из которых выполняет свою конкретную функцию и занимает вполне определенное место в исходной программе. Каждому такому оператору соответствует определенная подпрограмма транс-лятора, которая реализует функции, возложенные на данный оператор, а его операнды при этом служат фактическими параметрами данной подпрограммы.

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

Управляющие операторы служат для контроля и управления процессом моделирования (прогоном модели).

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

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

Динамические объекты в GPSS/PC называются транзактами. Транзакт является прообразом заявки в терминологии СМО. В процессе моделирования транзакты “создаются” (заявки поступают) и “уничтожаются” (заявки уходят) так, как это необходимо по логике модели. С каждым транзактом может быть связано определенное число параметров, несущих необходимую информацию об этом транзакте. Кроме того, транзакты могут иметь различные приоритеты.

Операционные объекты GPSS/PC, называемые блоками, соответствуют операторам-блокам исходной программы и также формируют логику функционирования модели, давая транзактам указания: куда идти и что делать дальше. Каждый блок имеет уникальный вид (в Приложении I приведен графический вид каждого из рассматриваемых в этой работе блоков). Модель системы на GPSS/PC (GPSS-модель) можно представить в виде блок-схемы – совокупность фигур с характерными очертаниями блоков, соединенных между собой направленными линиями в соответствии с логикой модели. Блок-схема является графическим представлением модели и показывает взаимодействие блоков в процессе моделирования в отличие от программного представления – совокупности соответствующих операторов.

Аппаратные объекты являются аналогами обслуживающих приборов и другого оборудования реальной системы. К ним относятся одноканальные, многоканальные устройства и логические переключатели. Одноканальные и многоканальные устройства соответствуют обслуживающим приборам в СМО. Логические переключатели используются для моделирования двоичных состояний логического или физического характера и могут находиться в двух состояниях: включено и выключено.

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

К вычислительным объектам относятся переменные (арифметические, булевские) и функции. Они используются для вычисления некоторых величин, заданных арифметическими, логическими выражениями или в табличном виде.

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

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

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

Каждому объекту того или иного типа соответствуют числовые атрибуты, описывающие его состояние в данный момент модельного времени. Кроме того, имеется ряд так называемых системных атрибутов, относящихся не к отдельным объектам, а к модели в целом. Значения атрибутов всех объектов модели по окончании моделирования выводятся в стандартный отчет GPSS/PC. Большая часть атрибутов доступна пользователю и составляет так называемые стандартные числовые атрибуты (СЧА),которые могут использоваться в качестве операндов операторов программы. Все атрибуты в GPSS/PC являются целыми числами.

Для ссылкина какой-либо СЧА некоторого объекта соответствующий операнд оператора записывается одним из следующих способов:

название $ имя или название j,

где название – системное обозначение конкретного СЧА данного объекта; имя или j – соответственно имя или номер объекта, а $ – символ-разделитель.

Прогон текущей модели, т.е. собственно моделирование, выполняется с помощью специальной управляющей программы, называемая симулятором (от английского слова SIMULATE – моделировать, имитировать) и работает в режиме интерпретации. Прогон GPSS-модели под управлением симулятора-интерпретатора заключается в перемещении транзактов от одного блока к другому, имитируя перемещение заявок в моделируемой системе.

В начальный момент времени в GPSS-модели нет ни одного транзакта. В процессе моделирования интерпретатор GPSS/PC генерирует транзакты в определенные моменты времени (подобным же образом и уничтожает их) в соответствии с логикой функционирования модели. В общем случае в модели одновременно находится большое число транзактов, однако в каждый момент времени интерпретатор осуществляет продвижение только одного транзакта.

Если транзакт начал свое движение, он перемещается от блока к блоку по пути, предписанному блок-схемой. В тот момент, когда транзакт входит в некоторый блок, на исполнение вызывается соответствующая данному блоку подпрограмма интерпретатора, а после ее выполнения, т.е. после реализации функций данного блока, транзакт покидает его и пытается войти в следующий блок. Такое продвижение транзакта продолжается до тех пор, пока не произойдет одно из следующих событий:

1) транзакт входит в блок, который удаляет его из модели;

2) транзакт входит в блок, функцией которого является задержка его в данном блоке на некоторое время;

3) транзакт пытается войти в следующий блок, однако он отказывается принять его.

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

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

Входя в блоки модели, каждый транзакт вносит вклад в содержимое счетчиков блоков. Значения этих счетчиков доступны пользователю через СЧА блоков: W – счетчик текущего содержимого блока и N – счетчик входов, т.е. счетчик общего числа транзактов, вошедших в блок.

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

Таймер модельного времени в GPSS/PC имеет следующие особенности:

1) в начале моделирования таймер устанавливается равным нулю;

2) модельное время может принимать только целые значения;

3) единица времени определяется разработчиком модели и все временные параметры модели должны быть приведены к выбранной единице;

4) интерпретатор при автоматической коррекции таймера времени применяет принцип переменного шага, когда таймер корректируется на момент наступления ближайшего события.

Значения таймера времени доступны пользователю через системные СЧА: C1 – относительное время и AC1 – абсолютное время.

Основной задачей, выполняемой интерпретатором, является определение того, какой транзакт надо выбрать следующим для продвижения в модели, когда предыдущий транзакт прекратил свое продвижение. С этой целью интерпретатор рассматривает каждый транзакт не только как элемент блока, в котором он находится в данный момент, но и как элемент одного или более списков. В GPSS/PC существуют следующие списки: список текущих событий; список будущих событий; списки прерываний; списки пользователя и списки паритетности (синхронизации).

Во всех моделях обязательно присутствуют два основных списка: список текущих событий (ТС) и список будущих событий (БС). Остальные списки в данной работе не рассматриваются.

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

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

Интерпретатор GPSS/PC помещает транзакты в зависимости от условий в модели в тот или иной список. После обработки всех транзактов в списке ТС интерпретатор просматривает список БС и корректирует таймер на момент времени первого (ближайшего) события в списке БС и соответствующий транзакт переносит из списка БС в список ТС и т.д.

2. Основные блоки GPSS/PC.

Множество блоков, используемых в GPSS/PC можно условно разделить на четыре группы: блоки, связанные с транзактами; блоки аппаратных объектов; блоки для сбора статистических данных и блоки, изменяющие маршруты транзактов.

2.1. Блоки, связанные с транзактами.

С транзактами связаны блоки создания, уничтожения, задержки транзактов, изменения их атрибутов и создания копий транзактов.

Для создания транзактов, входящих в модель (другими словами для имитации процессов поступления заявок в СМО) служит блок GENERATE (генерировать) – единственный блок, через который транзакты входят в модель. Блок GENERATE имеет следующий формат:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: