Команда просмотра списка текущих событий. Блок BUFFER




 

При определенных условиях в фазе просмотра интерпретатор GPSS World возобновляет просмотр СТС с начала. Возбновление просмотра не происходит до тех пор, пока активный транзакт не остановится в своем движении. Транзакт не прекратит движение до тех пор, пока не войдет или в блок ADVANCE (в котором указано ненулевое время задержки), или в блок TERMINATE, или в один из следующих блоков: SEIZE, RELEASE, ENTER, LEAVE, LOGIC, PRIORITY.

Но иногда пользователю бывает необходимо, чтобы просмотр СТС немедленно возобновился по достижении транзактом заданной точки модели. Для получения такого эффекта используется блок BUFFER.

 

Формат блока BUFFER:

BUFFER

 

Когда транзакт входит в блок BUFFER, интерпретатор GPSS World прекращает его движение и тут же начинает заново просматривать СТС. Транзакт, помещенный в буфер (т.е. вошедший в блок BUFFER), остается в СТС, сохраняя в нем то же положение, что и при входе в блок BUFFER. По мере продолжения нового просмотра, транзакт, помещенный в буфер, будет вновь обработан интерпретатором и его движение по программе модели возобновится.

 

 

Команды GPSS World

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

 

5.1 Команда START

 

Команда START используется для инициации начала моделирования.

 

Формат команды START:

START <A>[,<B>][,<C>][,<D>]

 

Поля операндов имеют следующий смысл:

­ <A> – значение счетчика завершений, определяющего момент окончания прогона модели (положительное целое число),

­ <B> – операнд вывода статистики. Этот операнд может принимать значение «NP» или быть опущенным; задание «NP» в операнде <В> приводит к блокированию вывода статистики; по умолчанию выводится стандартная статистика,

­ <C> – не используется,

­ <D> – задает необходимость вывода содержания CTC и СБС; операнд <D> может быть положительным целым, если операнд <D> не равен 0, CTC и СБС выводятся.

 

Моделирование продолжается до тех пор, пока счетчик завершения, определенный операндом <А>, не достигнет нулевого значения. Для уменьшения значения счетчика используется блок TERMINATE (п. 2.1.2.2).

Стандартный числовой атрибут, который связан c этой командой, TG1 – текущее значение счетчика завершения.

 

 

Оператор INITIAL

 

Оператор INITIAL позволяет задавать начальные значения сохраняемых величин, элементов матриц и логических ключей.

 

Формат оператора INITIAL:

INITIAL <A>[,<B>]

 

Поля операндов имеют следующий смысл:

­ <A> – СЧА сохраняемых величин, элементов матриц или логических ключей; в операнде <A> могут быть указаны:

§ LS<положительное целое>, LS$<имя> – имя логического ключа,

§ Х<положительное целое>, Х$<имя> – имя сохраняемой величины,

§ МХ<положительное целое>() или МХ$<имя>() – имя элемента матрицы,

­ <B> – устанавливаемое значение, по умолчанию равно единице, может быть числом, строкой, именем или UNSPECIFIED.

 

При выполнении оператора INITIAL значение, заданное операндом <В>, назначается логическому ключу, сохраняемой величине или элементу матрицы, определенному в операнде <А>.

Если операнд <А> определен как логический ключ, то операнд <В> может быть только нулем или единицей.

Если в операнде <В> использовано ключевое слово UNSPECIFIED, то сохраняемая величина, матрица или элемент матрицы устанавливается в «неопределенное» состояние. Обычно это ключевое слово используется, чтобы указать на отсутствие данных в матрице результатов, которая должна быть в дальнейшем проанализирована библиотечной процедурой ANOVA.

C оператором INITIAL связаны блоки LOGIC (п.2.2.3), SAVEVALUE (п.2.5.1) и MSAVEVALUE (п.2.5.2).

 

Команда RESET

 

Команда RESET cбрасывает в ноль статистику и СЧА системы, но не удаляет гранзакты из модели. Она используется для повторных экспериментов c моделью и сброса статистических данных переходного периода имитационного процесса.

 

Формат команды RESET:

RESET

 

Действия команды RESET:

1) значение относительного модельного времени (C1) устанавливается в ноль;

2) значение абсолютного модельного времени (AC1) остается без изменений;

3) все датчики псевдослучайных чисел остаются неизменными;

4) значения сохраняемых величин и матриц, а также состояния логических ключей не изменяются;

5) счетчики числа входов в блоки (Nj) сбрасываются в ноль;

6) времена занятости устройств устанавливаются в ноль;

7) счетчики числа входов в многоканальные устройства (SCj) и максимального содержимого многоканальных устройств (SMj) остаются неизменными;

8) счетчики вхождений в очередь (QCj) и максимального содержимого очереди (QMj) устанавливаются равными текущей длине очереди;

9) в таблицах стираются накопленные статистические данные;

10) счетчики числа вхождений в списки (CCj) и максимального содержимого списков (CMj) устанавливаются равными текущей длине списка.

 

 

Команда CLEAR

 

Команда CLEAR cбрасывает всю накопленную статистику, удаляет все транзакты из модели и устанавливает отсчет (нумерацию) транзактов, сгенерированных блоками GENERATE, начиная c единицы.

 

Формат команды CLEAR:

CLEAR [<A>]

 

Действия команды CLEAR:

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

2) содержимое всех блоков устанавливается в ноль;

3) текущие счетчики блоков (Wj) сбрасываются в ноль;

4) общие счетчики блоков (Nj) сбрасываются в ноль;

5) системное время (C1 и AC1) устанавливается в ноль;

6) устройства становятся незанятыми и доступными;

7) многоканальные устройства становятся свободными и доступными;

8) времена занятости устройств, накопителей, очередей и СП устанавливаются в ноль;

9) максимальные значения содержимого очередей, СП и многоканальных устройств устанавливаются равными их текущему значению;

10) состояние датчиков псевдослучайных чисел не изменяется;

11) внутренний счетчик транзактов, генерируемых в блоках GENERATE, устанавливается в ноль;

12) содержимое всех сохраняемых величин и матриц принимает нулевое значение;

13) логические ключи сбрасываются.

 

Если используется CLEAR OFF, выполняется все перечисленные выше действия за исключением последних двух пунктов. To есть, если операнд A=OFF, то логические ключи, сохраняемые величины и матрицы остаются без изменений.

После выполнения всех перечисленных операций команды CLEAR GPSS-модель просматривается интерпретатором в поиске блоков GENERATE. В каждом выявленном блоке GENERATE создается новый транзакт так же, как при первой интерпретации блока GENERATE. Заново вычисляется время начальной задержки и максимальное число транзактов, которые будут образованы в блоках GENERATE.

 

Команда RMULT

 

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

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

 

Формат команды RMULT:

RMULT [<A>][,<B>[,<C>][,<D>][,<E>][,<F>][,<G>]

 

Поля операндов имеют следующий смысл:

­ <A> – начальный множитель для первого генератора случайных чисел RN1,

­ <B> – начальный множитель для второго генератора случайных чисел RN2,

­ <C> – начальный множитель для третьего генератора случайных чисел RN3,

­ <D> – начальный множитель для четвертого генератора случайных чисел RN4,

­ <E> – начальный множитель для пятого генератора случайных чисел RN5,

­ <F> – начальный множитель для шестого генератора случайных чисел RN6,

­ <G> – начальный множитель для седьмого генератора случайных чисел RN7.

 

Стандартный числовой атрибут, связанный c этой командой, – RN<номep генератора>. Он возвращает случайное целое число из интервала от 0 до 999.

Операнды должны быть положительными целыми числами. В этом операторе должен быть задан хотя бы один операнд.

 

ПРИМЕР 29.

RMULT 875,1237,,,319

Устанавливаются начальные состояния множителей генераторов случайных чисел 1, 2 и 5. Остальные значения остаются без изменений.

 

Оператор EQU

 

Оператор EQU предназначен для присвоения числовых значений именам, которые используются в модели.

 

Формат оператора EQU:

<имя> EQU <A>

 

Поля оператора имеют следующий смысл:

­ <имя> – имя переменной, которой присваивается числовое значение,

­ <A> – выражение.

 

Когда интерпретатор обрабатывает оператор EQU, он вычисляет выражение, заданное операндом <А>, после чего создает или переопределяет имя переменной. Имени присваивается результат вычисленного выражения. Полученное значение заменяет ссылки на это имя в операндах или выражениях, используемых в модели.

Значения имен могут использоваться как внутренние значения переменных пользователя, или они могут определять объекты, такие как метка. Именам, используемым как метки объектов, значения обычно не назначаются. Интерпретатор автоматически назначает индивидуальные значения именам, если они еще не появились в операторе EQU, в выражениях или операндах. Имена могут использоваться для определения объекта в СЧА.

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

Имена, которым не были явно назначены значения, не могут использоваться в выражении. Необходимо назначить значение для имени прежде, чем будет вычислено выражение. Переменные пользователя могут быть заданы операторами EQU.

Если значение имени определено, то оно сохраняет свое значение на протяжении всего прогона модели.

Переменные FVARIABLE и BVARIABLE используют одну и ту же область имен.

Если необходимо использовать числовое имя для объекта, то оно должно быть назначено оператором EQU до определения объекта.

 

ПРИМЕР 30.

TZA EQU 10

GENERATE TZA,FN$EXPON

Переменной пользователя TZA назначено значение 10. Далее в программе можно использовать имя этой переменной.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-01-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: