Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






ПРИНЦИП РАБОТЫ СИСТЕМЫ МОДЕЛИРОВАНИЯ ДИСКРЕТНЫХ СИСТЕМ GPSS

 

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

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

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

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

Строки нумеруются от 1 до 9999999. Операторы располагаются в программе в соответствии с нумерацией строк. Некоторые операторы не требуется включать в исходную программу. Такие операторы вводятся без номера строки. Отдельные операторы могут иметь метку для ссылки на эти операторы в других операторах. Между номером строки и меткой ставится один пробел. Отсутствие метки также обозначается пробелом.

Имя_операции - это ключевое слово, указывающее конкретную функцию, выполняемую данным оператором. Операнды - уточняющие и конкретизирующие выполнение функции, определённой в поле операции. Эти поля в зависимости от типа операции содержат до девяти операндов, расположенных в определённой последовательности и обозначаемыми буквами латинского алфавита от А до I. Некоторые операции вообще не имеют операндов, а в некоторых операнды могут быть пропущены. Если некоторое частичное поле остается пустым, т. е. не нужен соответствующий аргумент, это отмечается еще одной запятой, например: PRINT,, MOV[1]. Здесь используется только аргумент MOV в частичном поле С (А и В пустые).

В качестве значений, записываемых в указанные поля (A...I), можно использовать: а) некоторый стандартный числовой атрибут (СЧА); б) положительную константу Кп; в) специальные обозначения, определяющие режим (например, ALL для блока TRANSFER); г) определенные СЧА (только Xn, Vn и т. д.).

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

Каждый оператор относится к одному из четырёх типов:

· карты описания блоков (формируют логику модели),

· карты описания объектов (описание параметров объектов),

· управляющие карты (управление процессом моделирования),

· управляющие карты системы (управление интегрированной средой GPSS/PC).

После трансляции исходной программы в памяти ПК создаётся текущая модель, являющаяся совокупностью разного типа объектов. Каждому объекту соответствуют числовые атрибуты, описывающие его состояние в данный момент модельного времени. Значения атрибутов могут быть арифметическими или логическими. Атрибуты, доступные программисту, называются стандартными числовыми атрибутами (СЧА) (см. Приложение 3).

Кроме того, имеется ряд так называемых системных атрибутов, относящихся не к отдельным объектам, а к модели в целом. Значение атрибутов всех объектов модели по окончанию моделирования выводятся в стандартный отчёт. Все СЧА являются целыми числами[2]. Для ссылки на стандартные числовые атрибуты соответствующий операнд оператора записывается, так:

СЧА$имя

или так:

СЧАi

где СЧА - конкретный СЧА, имя - имя объекта, i - номер объекта, $ - символ-разделитель. Каждый объект GPSS имеет имя и номер. Имя объекта представляет собой начинающуюся с буквы последовательность букв латинского алфавита, цифр и символа подчёркивания "_", общее число символов – от трех до пяти. Первые три символа – буквы. При необходимости имени любого объекта, кроме имени блока, можно поставить в соответствие любой номер с помощью карты EQU, имеющей следующий формат:

Метка Операция A

j EQU номер

где j – имя объекта

Для того чтобы показать пошаговое выполнение процедур, было использовано символическое изображение передач управления в виде специальных фигур и линий (см. рис. 2.). Управление передавалось от одного блока к другому (или от одного действия к другому). Однако в GPSS концепция "передачи управления от блока к блоку" имеет специфические особенности и требует более подробного рассмотрения. Конфигурация блок-схемы GPSS-модели отражает направления, по которым происходит движение перемещающихся элементов. Каждый такой элемент называется транзактом. Транзакты являются динамическими (т. е. движущимися) элементами GPSS-модели. Работа этой модели заключается в перемещении транзактов от блоков к блокам. Некоторые примеры возможных аналогий между транзактами и элементами реальных систем представлены в табл. 1.

Таблица.1

Системы Элементы систем, символизируемые транзактами
Магазин Покупатель
Бензозаправка Автомобиль
Дисплейный класс Компьютеры
Парикмахерская Клиент

 

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

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

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

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

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

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

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

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

· регистрируются только целые значения,

· единица модельного времени выбирается разработчиком,

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

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

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

Объекты GPSS подразделяются на 7 категорий и 14 типов (табл. 1) и позволяют, с одной стороны, описать их взаимодействие сравнительно несложными наборами операций, с другой — достаточно просто и наглядно представить процесс функционирования исследуемой системы S, формализуемой в виде Q-схемы.

 

Таблица 2

Категория Типы объектов
Динамическая Транзакты
Операционная Блоки
Аппаратная Устройства Памяти Ключи
Вычислительная Переменные: · арифметические, · булевские Функции
Статистическая Очереди Таблицы
Запоминающая Матрицы ячеек Ячейки
Группирующая Списки пользователя Группы

 

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

 

Рис. 4. Процесс создания модели с использованием GPSS

 

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

Основные сокращения и обозначения, используемые симулятором GPSS на этапе системного ввода, приведены в приложении 2.

 
 

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

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

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

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

функции.

К статистическим объектам относятся очереди и таблицы, вводимые для оценки характеристик поведения системы.

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

Транзакты моделируют прохождение по системе соответствующих единиц исследуемого потока. Такое движение может быть разбито на цепь элементарных событий, происходящих в опреде­ленные моменты времени. Основной задачей симулятора GPSS является определение моментов наступления этих событий, расположение их в правильной временной последовательности и выполнение соответствующих действий при наступлении каждого события. Чтобы обеспечить правильную последовательность обработки событий во времени, в симуляторе GPSS имеются «системные часы», хранящие значения абсолютного времени модели. Все отрезки времени описываются целыми числами. Поэтому перед составлением модели необходимо провести временное масштабирование для всех временных параметров и характеристик модели системы.

Следующие СЧА не связаны только с одним отдельным объектом, а используются моделью в целом: С1—текущее значение относительного времени с начала процесса моделирования: Кп или п — положительная константа; RNx—одно из восьми случайных чисел (1 £ x £ 8), значения которых находятся в пределах О...999.

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

Cобытийное моделирование в GPSS реализуется следующим образом.

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

· Обработка списков транзактов. Для имитации процессов, протекающих в моделируемой системе, в GPSS предусмотрены следующие механизмы: - все транзакты, порождаемые в процессе моделирования, образуют списки, в которых транзакты отсортированы, во-первых, по времени, во-вторых, при равных временах у транзактов, по приоритетам; - в процессе моделирования может быть образовано до пяти списков: список текущих событий содержит транзакты, которые должны перемещаться в текущий момент модельного времени; все они имеют одинаковое время, pавное текущему, и если их приоритеты совпадают, то очередной транзакт для перемещения выбирается по правилу FIFO[3]; список будущих событий содеpжит тpанзакты, котоpые будут пеpемещаться по модели в будущие моменты вpемени; в этот список попадают тpанзакты, вошедшие в блоки имитации задеpжки или заблокиpованные по каким-либо условиям (типа светофоpа или "пpобки" для автомобиля); списки пpеpываний, синхронизации и пользователя содеpжат тpанзакты, обслуживание котоpых пpеpвано по некотоpым условиям, задаваемым блоками пpеpывания, синхpонизации или находящимся под упpавлением пользователя.

· Алгоритм событийного моделирования состоит в фомиpовании, пpосмотpе и изменении этих списков, в пеpемещении тpанзактов из одного списка в дpугой и в продвижении одного из транзактов (активного, находящегося на веpшине списка текущих событий) по блокам модели.

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

Ø транзакт входит в блок задержки ADVANCE A,B, в котором время транзакта увеличивается на значение, определяемое полями A и B так же, как и в блоке GENERATE, и транзакт переходит в список будущих событий;

Ø транзакт входит в один из блоков проверки условий типа if...then...else (GATE_R A, B или TEST_T A, B), и условие не позволяет транзакту перемещаться дальше (наступает условие блокировки), тогда транзакт переводится в список будущих событий;

Ø транзакт входит в блок удаления TERMINATE.

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

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

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

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

Параметры обозначаются как РХi[4], где i — номер параметра, Х — тип параметра (X — может принимать значения в зависимости от форматов: F — «слово», Н — «полуслово», В — «байт», L—«плавающая точка»).

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

Важным атрибутом любого транзакта является уровень приоритета PR, изменяющийся в пределах от 0 до 127. В случае, когда два транзакта соперничают при занятии данного устройства, сначала обрабатывается тот, у которого приоритет выше. Если приоритеты у обоих транзактов одинаковые, сначала обрабатывается тот, у которого время ожидания обработки больше. В одном задании может выполняться как один, так и несколько прогонов одной модели. При этом текущим значением абсолютного времени модели АС1 будет называться суммарное время по всем реализованным прогонам, а текущим значением относительного времени модели С1—системное время в пределах одного прогона.

Время, в течение которого транзакт обрабатывается в процессе моделирования, обозначается Ml и называется транзактным временем. Оно определяет интервалы времени: 1) с момента относительного времени; 2) с момента прохода транзакта через блок MARK до текущего момента относительного времени.

Параметрическое транзактное время МРn вычисляется вычитанием из текущего момента относительного времени зна­чения n-го параметра данного транзакта типа РХ.

Моделирование и синхронизация параллельных процессов обеспечивается как механизмами и средствами продвижения транзактов по модели, так и дополнительными средствами размножения и синхронизации во времени:

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

Ø существует блок копирования (размножения) семейства транзактов SPLIT A, B, C, D (где A - количество копий транзакта; B - блок, в который переходят копии транзактов; С - параметр, в котором хранятся номера копий транзактов; D - количество параметров, задаваемых копиям транзактов) с последующим перемещением их по ветвям модели и сборкой либо в блоке GATHER Ag (Ag - количество собираемых копий) с последующим перемещением по правилу FIFO, либо в блоке ASSEMBLE Aa c объединением Aa-транзактов в один транзакт для последующего его продвижения;

Ø существуют блоки синхронизации перемещения транзактов по модели MATCH A (здесь A - имя блока, сопряженного с данным), и поступивший в него транзакт продолжит перемещаться только при условии поступления некоего другого транзакта в сопряженный блок.

Изменение последовательного перемещения транзакта по модели может быть нарушено оператором блока TRANSFER, определяющим для данного транзакта номер следующего блока.

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

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

У каждого блока имеется два СЧА: Wn — счетчик входов в блок или ожидающий счетчик, который содержит в себе номер текущего транзакта, находящегося в блоке n; Nn — общий счетчик транзактов, поступивших в блок с начального момента мо­делирования или с момента обнуления (с помощью карт RESET либо CLEAR). Оба счетчика меняют свое содержимое авто­матически.

В зависимости от назначения блоки подразделяются на несколько групп (см. Приложение 4):

1. Блоки, осуществляющие модификацию атрибутов транзак­тов: а) временная задержка ADVANCE; б) генерирование и уничтожение транзактов GENERATE, TERMINATE, SPLIT, ASSEMBLE; в) синхронизация движения нескольких транзактов MATCH, GATHER; г) изменение параметров транзактов ASSIGH, INDEX, MARK; д) изменение приоритета PRIORITY.

2. Блоки, изменяющие последовательность передвижения транзактов (блоки передачи управления): TRANSFER, LOOP, TEST, GATE.

3. Блоки, связанные с группирующей категорией: JOIN, REMOVE, EXEMINE, SCAN, ALTER.

4. Блоки, организующие использование объектов аппаратной категории: а) устройства (технические средства) SEIZE, RELEASE, FAVAIL, PREEMPT, RETURN, FUNAVAIL, б) памяти (запомина­ющие устройства) ENTER, LEAVE, SAVAIL, SUNAVAIL, в) ключи (логические переключатели) LOGIC.

5. Блоки, сохраняющие необходимые значения для дальнейшего использования: SAVEVALUE, MSAVEVALUE.

6. Блоки, обеспечивающие получение статистических резуль­татов; а) очереди QUEUE, DEPART; б) статистические таблицы TABULATE, TABLE.

7. Специальные блоки BUFFER, PRINT, EXECUTE, COUNT'X', CHANGE, TRACE, UNTRACE, SELECT'X', HELP.

8. Блоки для организации цепей: LINK, UNLINK.

9. Вспомогательные блоки: WRITE, SAVE, LOAD, REPORT, UPDATE.

Последнее изменение этой страницы: 2016-07-22

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...