Блоки, управляющие движением транзактов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Блоки, управляющие движением транзактов



ЛЕКЦИИ ПО СИМ GPSS

 

GPSS (General Purpose Simulation System – общецелевая моделирующая система) представляет собой язык имитационного моделирования и программу для построения имитационных моделей дискретных систем типа систем массового обслуживания (СМО).

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

 

Средства формализации

 

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

ТРАНЗАКТЫ, как правило, отображают заявки, перемещающиеся по СМО. Иногда транзакты вводятся в ИМ искусственно и используются для организации ИМЭ (задания времени прогона ИМ, сбора статистики и др.).

БЛОКИ, как правило, отражают части моделируемой системы (очереди, каналы обслуживания, определение логической последовательности движения заявок по СМО и т.п.). Некоторые блоки используются для организации процесса моделирования (задания времени прогона ИМ, сбора статистики и др.).

Большинство переменных состояния (ПС) GPSS-модели вводится автоматически без участия пользователя в соответствии с используемыми в модели блоками. Такие ПС в GPSS-модели называются стандартными числовыми атрибутами (СЧА). Доступ разработчика GPSS-модели к СЧА осуществляется с помощью имен СЧА.

ИМЯ СЧА состоит из двух частей:

1) групповое имя СЧА. Характеризует тип элемента блок-схемы, состояние которого характеризуется, и вид информации о состоянии этого элемента (Например, для элемента «прибор» FC- число занятий прибора, FA – загрузка прибора, для элемента «очередь»  Q- текущая длина очереди, QM – максимальная длина очереди и т.п.). Перечень используемых групповых имен определяется при описании блоков.

2) Вторя часть имени СЧА определяет конкретного члена группы данного типа (имя или номер).

 

 

Общие сведения о блоках

Каждый блок определяет операцию, выполняемую над транзактом, проходящим в этот блок, напрмер:

GENERATE   - генерировать транзакт,

TERMINATE - вывести транзакт из модели,

ADVANCE              - задержать транзакт

SEIZE             - занять прибор,

RELEASE      - освободить прибор и др.

Блоки занимают определенные места в блок-схеме, а соответствующие им программные строки – места в ИП. Названия блоков в ИП могут идентифицироваться по первым четырем буквам.

Номера блокам присваивает сам GPSS-интерпретатор в порядке их расположения в ИП.

Блок может иметь:

- ИМЯ (от 3-5 символов, первые 3- обязательно символические). Используется как метка блока для передачи ему управления не в порядке расположения в блок-схеме (написания ИП);

- несколько основных операндов (≤ 7). В общем виде при их описании назначения операндов используются следующие заглавные буквы латинского алфавита: A, B, C, D, T, F, G.

 Некоторые из операндов определенных блоков должны быть обязательно заданы. Другие могут определяться по умолчанию. Большинство операндов, если они задаются численно, определяются как целые числа. Многие из них при этом определяют временные характеристики воздействия блока на транзакт и определяются в выбранных разработчиком GPSS-модели единицах модельного времени.

Структура строки ИП, соответствующей блоку, имеет следующий вид по номерам колонок:

1  2-------------6   7------------------18 19------------------------71

    имя блока    назв. операции         операнды

первая позиция не является частью имени блока; * в 1-ой позиции означает, что данная стока является комментарием.

Некоторые блоки в поле операции используют вспомогательный операнд «X».

Операнды следуют друг за другом без пробелов и разделяются запятыми.

Пропущенные операнды, определяемые по умолчанию, отмечаются следующими друг за другом запятыми «,,».

Первая колонка поля операндов, определяемая как пробел, говорит о конце записи операндов. Дальнейшая информация в строке воспринимается как комментарий к этой строке.

Отдельные блоки блок-схемы объединяются в сегменты. В ИМ может быть несколько сегментов. Отдельные сегменты отображают функционирование различных частей моделируемой системы. Некоторые сегменты выполняют вспомогательные функции: задание времени прогона ИМ, организацию периодического вывода результатов моделирования и др.

Каждый сегмент должен иметь в своем составе хотя бы один блок GENERATE.

Транзакты

 

Транзакты вводятся в модель через блоки GENERATE и могут выводиться из модели через блоки TERMINATE.

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

 Число транзактов, первоначально находящихся в пассивном буфере, ограничено и определяется основной памятью используемой ЭВМ.

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

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

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

Начав свое движение по блок‑схеме, активный транзакт продолжает его, до тех пор, пока не произойдет одно из трех событий:

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

транзакт входит в блок TERMINATE и выводится из блок‑схемы;

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

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

Для рассмотрения этой логики используется следующая запись, характеризующая состояние транзакта:

[N, T, NTB, PR, NSB], где

N – номер транзакта (в соответствии с первоначальной нумерацией транзактов в пассивном буфере),

T – время, на которое запланировано дальнейшее движение транзакта (для транзактов, попавших в условие блокировки, на этом месте используется аббревиатура КМР – как можно раньше);

NTB – номер текущего блока нахождения транзакта;

PR – приоритет транзакта (значения приоритета – целые числа от 0 до 127: чем больше значение, тем больше приоритет). Значения приоритета могут определяться при входе транзакта в ИМ из блока GENERATE (по умолчанию – приоритет 0), изменяться при прохождении блока PRIORITY. Параметр транзакта, определяющий его приоритет, используется для моделирования относительного приоритета заявок в моделях СМО;

NSB – номер следующего блока для движения транзакта.

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

 При перемещении транзакта по модели его параметры могут устанавливаться и изменяться и использоваться в соответствии с логикой моделирования. Использоваться в определенный момент работы имитационной программы могут только параметры активного транзакта.

Основные правила определения параметров транзакта:

1) Число используемых параметров транзакта определяется операндом F блока GENERATE;

2) СЧА параметров транзакта определяется Pj, где Р- групповое имя, j – номер параметра (символическое имя не используется);

3) Значениями параметров транзакта могут быть целые числа со знаком и без знака. Формат параметров определяется операндом G блока GENERATE, из которого он вышел (H- полуслово (), F- слово ().

4) При входе в модель все параметры транзакта имеют нулевые значения

5) Устанавливаться и изменяться могут при прохождении блока ASSIGGN

Использоваться параметры транзакта могут:

1) в качестве операндов блоков,

2) в качестве аргументов GPSS-функций,

3) описания арифметического выражения.

 

Описание некоторых блоков

Блок GENERATE – ввод транзактов в модель

Операнды: А, В – используются для моделирования интервала модельного времени между транзактами. Если заданы числами, то А- определяет мат. ожидание ЗРПВ, В – определяет половину интервала области определения.

С- смещение момента входа в модель 1-го транзакта;

D- ограничитель числа транзактов (по умолчанию ∞);

Е- уровень приоритета транзактов (по умолчанию 0);

F – число используемых параметров;

G – формат используемых параметров.

 

    Блок TERMINATE - вывод транзактов из модели

Операнды: А- указатель уменьшения счетчика завершений и счетчика снимков (по умолчанию =0).

Счетчик завершений (СЗ) – это ячейка памяти, в которую первоначально с помощью управляющей карты START заносится целое положительное число. Это значение уменьшается на величину А при прохождении транзактом блока TERMINATE с операндом А. Как только значение  СЗ станет ≤ 0, то процесс моделирования завершается. Счетчик снимков действует аналогично (см. вывод результатов моделирования).

 

    Блоки SE IZE (занять прибор) и RE LEASE (освободить прибор)

       

Операнд А – символическое или числовое имя прибора (обязательный операнд). Если прибор занят, то для следующего транзакта возникаент условие блокировки.

СЧА прибора:

Fj или F${имя} = 0 – прибор не занят, 1 – занят;

FC – количество занятий прибора

FA – загрузка прибора, FT –средняя задержка транзактов на приборе.

 

        

 

 

Блок ADVANCE – реализация задержки транзакта.

Операнды А, В – используются аналогично соответствующим операндам блока GENERATE.

 

    Блоки QUEUE и DEPART – регистраторы очередей

 Используются для сбора статистики по очереди.

Блок QUEUE регистрирует вход транзакта в очередь с именем, определяемым операндом А, а блок DEPART –выход из соответствующей очереди. Операнд В определяет число мест в очереди, занимаемых одним транзактом (по умолчанию =1).

СЧА регистраторов очередей:

Qj или Q${имя} – текущая длина очереди,

QA – средняя длина очереди, QC – число входов в очередь, QM – максимальная длина очереди, QT – среднее время пребывания в очереди с учетом нулевых входов,  QX- без учета нулевых входов,  QZ – число нулевых входов.

 

    Блоки ENTER – вход в МКУ, LEAVE - выход из МКУ

 

      

Операнды А – имя МКУ, В –число каналов МКУ занимаемых (освобождаемых) транзактом (по умолчанию =1).

Исходное число каналов МКУ задается картой описания

STORADGE  (имя МКУ1, емкость МКУ1/… символическое имя начинается с $).

Групповые имена СЧА МКУ: R – текущая емкость незаполненной части, S – емкость заполненной части, SA – среднее число занятых каналов, SC- число входов, SM- максимальное число занятых каналов, SR – загрузка МКУ, ST – среднее время пребывания транзактов в МКУ.

 

Блок P RIORIT Y – изменение уровня приоритета транзакта.

Операнд А – новый уровень приоритета транзакта (по умолчанию 0).

Блок ASSING – блок определения и изменения параметров транзакта.

Операнд А – определяет номер модифицируемого параметра транзакта (например, если А=3, определяется параметр №3; если А=Р3, определяется параметр транзакта, номер которого записан в параметре №3 транзакта; если А=4+, увеличивается параметр №4 транзакта; если А=Р2-, то уменьшается параметр транзакта, номер которого записан в параметре №23 транзакта);

Операнд В – величина, используемая для определения или модификации параметра транзакта.

 

Возможен режим работы блока с использованием GPSS- функций. В этом режиме используются операнды А, В, С. Операнд С определяет № GPSS- функции, участвующей в определении или модификации параметра транзакта; операнд В- величина, на которую умножается вычисленное значение GPSS- функции.

 

 

Примеры типовых конструкций из блоков в GPSS-моделях.

 

1. Одноканальная СМО с двумя входными потоками и соответствующими им неограниченными регистрируемыми очередями

 

 

2. СМО с двумя входными потоками и одной неограниченной регистрируемой очередью

 

 

3. Одноканальная СМО с ограниченной по числу мест очередью

 

 

 

4. СМО с многоканальным устройством обслуживания и неограниченной по числу мест регистрируемой очередью

 

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

 

 

 

6. СМО с семичасовым рабочим днем и часовым перерывом

 

 

7. Сегмент задания времени прогона GPSS-модели

 

 

Теоретические положения

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

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

цепь будущих событий (ЦБС);

цепь текущих событий (ЦТС).

Эти две структуры определяют положение транзакта в модели с точки зрения продвижения модельного времени и правил активизации транзактов.

 

ЦБС (является аналогом СБС в ММС) состоит из транзактов, движение которых по модели запланировано на некоторый момент в будущем:

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

б) транзакт попал в блок ADVANCE (блок задержки).

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

 

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

В ЦТС транзакты упорядочены по приоритетам (больший приоритет вперед). Если приоритет одинаков, то — в порядке занесения в ЦТС.

ЦБС фактически эквивалентна списку будущих событий в методе модельных событий, а ЦТС используется интерпретатором для реализации процессно‑ориентированной логики обработки критических событий.

Логика работы GPSS‑интерпретатора включает 3 фазы:

Фаза вводавыполняется однократно в начале работы ИМ и состоит в последовательном просмотре блоков модели, выявлении блоков GENERATE и в формировании для каждого блока записи в ЦБС для первого транзакта, который должен выйти через этот блок в модель.

Фазы КТМВ и ПЦТС выполняются итеративного до окончания моделирования.

Фаза коррекции таймера модельного времени заключается в переносе транзакта (транзактов) с наименьшим временем планируемого начала движения из ЦБС в ЦТС и соответствующем скачкообразном увеличении модельного времени.

 

Фаза просмотра ЦТС соответствует одному моменту модельного времени, определенному в предыдущей фазе, и заключается в последовательном продвижении транзактов, находящихся в ЦТС через возможно большее число блоков. Возврат на начало ЦТС осуществляется в том случае, когда при очередном перемещении транзакт проходит блок, снимающий условие блокировки (например, блоки RELEASE, LIAVE и др.).

Осуществление этой фазы реализует так называемую процессно-ориентированную логику обработки событий в ИМ.

 

В GPSS предусмотрен специальный механизм задания времени прогона ИМ с помощью так называемого «счетчика завершений». Начальное значение этого счетчика определяется разработчиком ИМ через операнд А управляющей карты START, а затем может быть организовано периодическое уменьшение этого значения в специальном сегменте модели, составленном из блоков GENERATE и TERMINATE. Как только счетчик завершений обнуляется, прогон ИМ завершается.

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

 

 

Иллюстрация на примере

Постановка задачи.

Построить GPSS-модель одноканальной СМО с неограниченной очередью.

 

Цели моделирования: исследовать загрузку КО и длину очереди.

Исходные данные:

ЗР интервалов времени между заявками во входном потоке ЗРПВ [18,6];

ЗР времени обслуживания – ЗРПВ [16,4].

 

Время прогона ИМ – 480.

 

Блок-схема такой  GPSS-модели имеет вид:

 

     

Рассмотрим функционирование GPSS-модели в предположении следующей численной реализации случайных величин:

 - интервал между заявками входного потока;

 - время обслуживания заявки;

и соответствующей реализации следующих переменных:

 - время входа заявки в систему,

 - время начала обслуживания заявки,

 - время окончания обслуживания заявки.

№ заявки
1 14 14 18 14 32
2 13 27 12 32 44
3 17 44 14 44 58
4 15 59 - - -

 

Графики, отражающие динамику работы СМО в соответствии с этими цифрами, имеют следующий вид:

 

 

Таблица, отражающая логику работы GPSS-интерпретатора для рассматриваемого примера ([N, T, NTB, PR, NSB])

№ Стр. Модельное время Цепь текущих событий Цепь будущих событий
1 до ф. ввода пусто пусто
2 после ф. ввода пусто [1,14,Нет,0,1], [2,480,Нет,0,8]
3 после ф.КТМВ t=14 [1,КМР,Нет,0,1] [2,480,Нет,0,8]
4 после ф. ПЦТС t=14 пусто [3,27,Нет,0,1], [1,32,5,0,6], [2,480,Нет,0,8]
5 после ф.КТМВ t=27 [3,КМР,Нет,0,1] [1,32,5,0,6], [2,480,Нет,0,8]
6 после ф. ПЦТС t=27 [3,КМР,2,0,3] [1,32,5,0,6], [4,44,Нет,0,1], [2,480,Нет,0,8]
7 после ф.КТМВ t=32 [3,КМР,2,0,3], [1, КМР,5,0,6] [4,44,Нет,0,1], [2,480,Нет,0,8]
8 после ф. ПЦТС t=32 пусто [4,44,Нет,0,1], [3,44,5,0,6], [2,480,Нет,0,8]
9 после ф.КТМВ t=44 [4,КМР,Нет,0,1], [3, КМР,5,0,6] [2,480,Нет,0,8]
10 после ф. ПЦТС t=44 пусто [4,58,5,0,6], [1,59,Нет,0,1], [2,480,Нет,0,8]

Для напоминания о соответствии номеров и имен блоков:

G; 2-Q; 3- S; 4- D; 5-A; 6 – R; 7 – T; 8- G; 9 – T.

Сохраняемые величины.

Сохраняемые величины (СВ)– это переменные состояния, в частном случае, константы, значения или правила изменения которых может задавать разработчик ИМ.

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

 Они используются:

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

2) для передачи информации от одного транзакта к другому аналогично использованию почтового ящика;

3) для расширения способа ввода данных: обычные константы, которые используются в качестве операндов блоков, принимают значения 0 ¸ 999999, а сохраняемые величины 0 ¸ (231 – 1);

4) для реализации прямого способа распечатки отдельных переменных состояния;

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

Сохраняемые величины могут быть скалярными  или матричными и имеют определенные СЧА для обращения к ним:

 

 

Xj или X$имя – СЧА скалярной (одномерные) СВ, формат которой определен как слово();

XHj или XH$имя – СЧА скалярной СВ, формат которой определен как полуслово(-32768 - 32767);

МXj(k,l) или МX$имя(k,l) – СЧА матричной СВ, формат которой определен как слово;

МXHj(k,l) или МXH$имя(k,l) – СЧА матричной СВ, формат которой определен как полуслово.

При использовании матричных СВ должна быть определена карта описания:

Имя СВ| MATRIX| A,B, C (А-формат СВ(Х или Н), В - m-число строк, С - n – число столбцов).

 Начальные значения сохраняемых величин задаются с помощью карты описания:

INITIAL имя1, знач1 /.../имя2 знач2

Значения СВ могут задаваться и изменяться с помощью блоков:

Блок SAVEVALUE – для скалярной СВ.

Операнды А – имя СВ, В – модифицирующее значение, С –формат СВ (Х или Н);

Блок М SAVEVALUE – для матричной СВ.

Операнды А – имя СВ, В, С – №№ стр. и столб i,j, D -модифицирующее значение, E –формат СВ (Х или Н)

 

GPSS- функции

Используются задаваемые по точкам либо кусочно‑постоянные (дискретные), либо кусочно‑линейные (непрерывные) функции.

Каждая функция должна иметь карту описания:

 

Имя ф.| FUNCTION| A (аргумент ф.), В (тип ф. и число точек: Dn или Сn)

a 1, f 1 / a 2, f 2 / a 3, f 3/…/ a n, f n (карта задания точек функции, определяется с первой позиции).

 

Значения Dn или Сn определяются для дискретных или непрерывных функций, соответственно.

Функция типа Dn определяется как кусочно-постоянная.

Функция типа Сn определяется как кусочно-линейная.

    Обращение к функции осуществляется с помощью СЧА

FNj  или FN$ имя функции

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

Наиболее важное применение GPSS‑функции находят в реализации механизмов моделирования псевдослучайных величин (интервалов входа транзактов в ИМ, их задержек в приборах, многоканальных устройствах (см. раздел моделирование ПСВ)).

 

    Арифметические величины

 

Каждая арифметическая величина (АВ) задается с помощью специальной карты описания. В поле операндов этой карты записывается арифметическое выражение, с помощью которого эта АВ вычисляется. При этом используются операции I группы («+», «–») и операции II группы («*» – умножение, «/» – деление, «@» – вычисление остатка от целочисленного деления). Операции II группы выполняются в первую очередь. Порядок операций может быть изменен с помощью скобок. Константы в арифметическом выражении должны быть записаны в целочисленной форме.

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

Используемые АВ определяются картами описания. Для АВ соответствующих типов  эти карты имеют вид:

        

Имя АВ|VARIABLE| арифметическое выражение

 

Имя АВ|FVARIABLE| арифметическое выражение

 

Используемые в арифметическом выражении константы записываются в целочисленной форме.

Арифметические переменные могут быть использованы в качестве операндов блоков и аргументов GPSS‑функций. Обращения к ним осуществляются с помощью следующих СЧА:

Vj или V$ имя.

   

Блок TA BULATE

Осуществляет сбор статистики в таблицу, номер или имя которой определяется операндом А этого блока.

В GPSS‑модели предусмотрен механизм сброса накопленной статистики после истечения некоторого интервала модельного времени (см управляющую карту RESET). Это необходимо для исключения влияния переходного процесса в ИМ на оценку статистических характеристик стационарного режима (см. раздел управляющие карты GPSS‑модели).

Вывод результатов моделирования в GPSS‑модели

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

При аварийном завершении моделирования обязательно распечатываются ЦТС и ЦБС. При обычном завершении моделирования эти цепи распечатываются лишь по указанию пользователя: операнд D в управляющей карте START устанавливается равным 1; если операнд В этой карты определен как NP, то стандартная распечатка в конце моделирования не осуществляется.

Вывод промежуточных результатов моделирования осуществляется двумя способами:

 - с использованием механизма счетчика снимков, определяемым управляющей картой START;

 - с использованием блока PRINT.

Работа счетчика снимков во многом аналогична счетчику завершений. Начальное значение счетчика снимков задается операндом С карты START. Это значение уменьшается каждый раз при прохождении транзактом блока TERMINATE  с ненулевым значение операнда А на величину, определяемую этим операндом.  Отличия следующие: после перехода счетчиком снимков нулевой границы не происходит завершение моделирования, а выдается стандартная распечатка; затем счетчик снимков восстанавливает свое начальное значение.

 

 

START 60,,30

 

 

Выборочная печать результатов моделирования возможна с использованием блока PRINT.

Блок PRINT

Операнды:

С – задает тип элементов GPSS‑модели, по которым выводится статистика:

    F - приборы,

    S - МКУ,

    Q - объявленные очереди,

    N - счетчики входов,

    C - таймеры абсолютного и относительного времени,

    T - таблицы,

    MOV - ЦТС,

    FUT – ЦБС;

А,В – минимальный и максимальный номера элементов определенного операндом С типа, по которым выводится статистика;

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

Для циклического задействования блока PRINT могут формироваться специальные сегменты GPSS‑модели.

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

 

SIMULATE

С этой карты начинается запись ИП, если пользователь желает осуществить прогон ИМ. При отсутствии этой карты интерпретатор проверит лишь синтаксическую правильность написания ИП.

 

START

С обработки этой карты начинается прогон ИМ. С ее помощью задаются начальные значения счетчика завершений (операнд А) и счетчика снимков (операнд С). Операнд В при его значении NP подавляет печать результатов. Операнд D управляет выводом ЦБС и ЦТС.

 

RESET

Карта используется для сброса статистики в нулевое состояние при отсечении переходного процесса в ИМ. Относительное модельное время сбрасывается в ноль (т.е. относительное модельное время измеряется с момента последнее обработки этой карты).

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

 

 

CLEAR

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

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

Карты между картой START и картой CLEAR используются для модификации параметров ИМ (т.е. для задания нового ее варианта). При этом должны указываться имена модифицируемых блоков.

 

Если перед этой картой не использована управляющая карта RMULT, то датчики БПЧ не сбрасываются в начальное состояние (реализуются независимые прогоны одной и той же ИМ, т.е. датчики БПСЧ не сбрасываются в начальное состояние).

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

RMULT

Используется для задания от одного до восьми множителей генераторов БПЧ с целью генерации нестандартных последовательностей при организации зависимых испытаний.

 

JOB

Используется для задания другой ИМ, которая будет обработана за один этап пакетной обработки ИП.

 

END

Завершающая карта ИП.

Сегмент № n ИП

GENERATE

TERMINATE

START A 1       операнд A1 задаетдлительность переходного процесса

RESET

START A 2       операнд A2 задаетдлительность стационарного режима

  Карты модифицируемых блоков предыдущего варианта GPSS-модели

RMULT (повтор начальной карты RMULT, если зависимые испытания)

CLEAR

 

START A 1      

RESET

START A 2    

JOB

Другая ИМ

END

ЛЕКЦИИ ПО СИМ GPSS

 

GPSS (General Purpose Simulation System – общецелевая моделирующая система) представляет собой язык имитационного моделирования и программу для построения имитационных моделей дискретных систем типа систем массового обслуживания (СМО).

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

 

Средства формализации

 

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

ТРАНЗАКТЫ, как правило, отображают заявки, перемещающиеся по СМО. Иногда транзакты вводятся в ИМ искусственно и используются для организации ИМЭ (задания времени прогона ИМ, сбора статистики и др.).

БЛОКИ, как правило, отражают части моделируемой системы (очереди, каналы обслуживания,



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 178; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.187.199 (0.246 с.)