Категории и типы объектов

Принципы построения GPSS/H

При использовании языка GPSS / H (дальше по тексту - языка) может возникнуть две ситуации:

1. Модель упрощена и требуется только начальное представление о СС S, в основу положена концептуальная модель со многими допущениями - в этом случае использование языка не является оправданным.

2. Модель излишне детализирована - это приводит к увеличению времени создания модели и возрастанию стоимости.

Пользователю всегда надо помнить об афоризме Р. Беллмана (одного из создателей теории динамического программирования): «Исследователь всегда должен искать узкую тропу между Сциллой переупрощения и Харибдой переусложнения». Поэтому основной задачей является выбор начального варианта модели, рационального в плане расхода ресурсов, построение уточнённой модели после реализации первого варианта и т. д. Таким образом, только достигнув нужного уровня абстракции можно переходить к составлению блок-схемы модели. Вначале рассмотрим основные категории и типы объектов языка. В основу языка положен транзактный способ имитации.

В разделе 3.3.2 отмечалось, что данный способ является развитием процессного способа имитации применительно к моделированию СС, представляемых в виде систем массового обслуживания (СМО). Таким образом, предполагается, что в качестве объектов моделирования (сложных систем) могут выступать различные системы и процессы, представимые в виде СМО: вычислительные системы и сети, технологические и производственные процессы; гибкие автоматизированные производства и робототехнические комплексы; системы обработки и передачи информации, предприятия сферы обслуживания; транспортные и коммутационные системы и т.д.

Таблица 4.4

№ кат. Категория объекта № типа Тип объекта Мнемонич. обозначение Функции блоков  
  Динамическая   Транзакт --------- Создание транзактов: GENERATE, SPLIT Уничтожение транзактов: TERMINATE, ASSEMBLE
  Операционная   Блок (оператор) ------------ ------------
  Аппаратная     устройства F (facilities) Занятие – освобождение SEIZE – RELEASE Захват – возврат PREEMPT – RETURN Доступно - не доступно FAVAIL – FUNAVAIL Выбор обусловленного направления GATE
    Памяти S (storages) Войти – покинуть ENTER – LEAVE Свободна – занята SAVAIL - SUNAVAIL Ожидание изменения статуса – GATE Изменение емкости памяти BSTORAGE
  Логические ключи L logic switch Включение, выключение, инверсия LOGIC Ожидание изменения положения L GATE
  Вычислительная   Арифметическая переменная V Целочисленное значение VARIABLE Плавающая точка FVARIABLE
  Булева переменная BV Задается логическими атрибутами СЛА
  Функция FN Задается пользователем или встроенной функцией
  Статистическая   Очереди Q Создание очереди – покидание QUEUE – DEPART
  Таблицы T Создать таблицу TABULATE
  Запоминающая   Ячейки Х Создание скалярной переменной
  Матрицы М Создание 2-х размерных матриц
  Амперперемен. & Создание переменных 5-ти типов
  Группирующая   Списки пользователя. С Включить – исключить LINK - UNLINK
  Группы G Поместить – удалить JOIN – REMOVE Проверка принадлежности – EXAMINE Определение вида транзакта SCAN Изменение аттрибутов - ALTER

Для указанного класса СС выделяется конечное множество абстрактных элементов, служащих для описания реальных элементов СС S (например: источников заявок на обслуживание накопителей, каналов обслуживания и т.п.), и конечное множество стандартных операций, описывающих связи между элементами. Выделенным множествам элементов и операций ставится в соответствие множество объектов языка. Модель СС S на GPSS/H строится путем объединения объектов в некоторую фиксированную логическую структуру. Объекты GPSS/H подразделяются на 7 категорий и 15 типов (табл. 4.4).

В Таблице 4.4 в разделе «функции блоков» приведены основные блоки (операторы), реализующие те или иные действия в процессе моделирования. Конкретное описание операторов будет дано ниже, в таблице же дано общее начальное представление.

Каждому объекту соответствуют арифметические или логические атрибуты, описывающие состояние объекта в текущий момент модельного времени. Большинство из атрибутов не доступны для программиста. Атрибуты, к которым в ИМ можно обращаться, называются стандартными числовыми атрибутами (СЧА). Основными объектами GPSS/H являются транзакты и блоки (операторы).

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

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

Основные функции блоков следующие:

— создание (генерация) и уничтожение транзактов;

— изменение числовых атрибутов объектов;

— задержка транзакта на определенный интервал времени;

— изменение маршрута движения транзакта и др.

Проиллюстрируем эти функции на простом примере.

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

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

Устройства описывают оборудование, которое в любой момент времени может быть занято только одним транзактом (одноканальные СМО): обрабатывающий центр, терминал, центральный процессор, АЦПУ, кассир и т.д., а также оборудование, на котором обслуживание одной заявки может быть прервано поступлением другой заявки (например, с более высоким приоритетом).

Памяти (многоканальные устройства) описывают оборудование, которое может использоваться несколькими транзактами одновременно (многоканальные СМО): оперативную память ЭВМ, бункер-накопитель в ГПС, стоянки автомобилей и т.д.).

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

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

Статистические объекты обеспечивают вычисление и представление в стандартном виде для показателей эффективности функционирования СС: средних значений, стандартных отношений, эмпирических функций распределения и т.п.

Запоминающие объекты служат для задания условий моде-лирования, хранения, накопления и обработки информации, получение которой не предусмотрено стандартными средствами GPSS/H.

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

Чтобы при дальнейшем изложении придерживаться единой терминологии введем единое понятия оператора (Таблица 4.5), которое отличается от дословного перевода терминов оригинальной версии языка.

Таблица 4.5

Обозначения оригинальной версии языка Введенные в пособии
BLOCKS Блоки операторы блоков (блоки, операторы)
Сontrol Statements Инструкция управления Операторы управления
Compiler Directive Директива компиляции Операторы описания объектов

Кроме указанных в Таблице 4.5 операторов для эффективного решения задач исследования системы необходимо иметь средства управления процессами модификации и отладки программ, сбора и обработки статистики и т.п. В языке такими средствами являются команды, которые, в отличие от операторов, являются своеобразной надстройкой к языку и могут отличаться от версии к версии. Основное назначение команд организация интерактивного взаимодействия с моделью на различных этапах моделирования. На этапе разработки логической структуры модели можно использовать графические обозначения объектов, при этом модель в целом представляется в виде блок-диаграммы. Подробно этот способ описан в [29] и в настоящем пособии из-за ограниченности объема не излагается.

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

Основой языка являются написанные на ассемблере программы, описывающие функционирование объектов GPSS/H и управляющая программа ("симулятор"), которая:

- обеспечивает продвижение транзактов по заданным программистом маршрутам и помещение транзактов в списки:

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

- организует изменение модельного времени;

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

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

Компилятор языка относится к компиляторам интерпретационного типа. Моделирующая программа на языке GPSS/H в операторной записи преобразуется компилятором сначала в ассемблерный, а затем в загрузочный код. При этом операторы описания объектов заменяются соответствующими ассемблер-программами.

После того как логика модели системы представлена в виде связанных между собой операторов блоков, должны быть задействованы операторы описания и управления. Необходимо учитывать, что процесс моделирования не инициализируется без постановки на первое место оператора управления SIMULATE, а прогон не начнётся, если после ядра программы не будет включён оператор управления START, а оператор управления END обозначает конец модели. Таким образом, модель состоит из трёх обязательных модулей, представленных на рис. 4.2


Рис. 4.2 Условный фрагмент модели

На рисунке не указаны атрибуты операторов блоков, а проиллюстрирована только идея модульного построения модели, между первым и последним блоками ядра программы может быть любое количество операторов блоков, зависящее от сложности моделируемой системы, первый и третий модули также могут иметь более сложную структуру. Однако, в начальном файле операторы блоков и управления могут быть смешаны и первое, что делает компилятор - это сортировка операторов блоков. В модельном файле уже чётко соблюдается принцип создания отдельных модулей. Операторы описания содержат информацию необходимую для модели, но в отличие от операторов управления не участвуют в процессе моделирования непосредственно. После создания модели язык позволяет провести эффективную отладку с помощью интерактивного дебаггера. По окончанию процесса кодирования и отладки происходит непосредственно вычислительный эксперимент- ВЭ. Входные, выходные и текущие данные легко кодируются с помощью удобных операторов управления GPSS/H, кроме того, имеется возможность введения информации из любого внешнего файла. Выходной отчёт создаётся автоматически с помощью собственных операторов и по умолчанию располагается в специальной секции и вызывается с помощью оператора управления REPORT, помещаемого в конце третьего модуля, непосредственно, перед END.

Для лучшего понимания приведём пример операторной записи для примера раздела 3.3.3. Напомним, что данная ВС описывается одноканальной СМО с ограниченной очередью. Полагается, что задание пользователя занимает один из 10 блоков оперативной памяти ВС. Модельное время (измеренное в минутах) между последова­тельными поступлениями заданий, а также время выполнения заданий распределено равномерно на интервалах [2, 6], [1,7] соответственно. Моделируется прохождение в модели 100 заданий.

Пример.

* модель вычислительной системы

SIMULATE оператор управления

QTII QTABLE TII,0, 20,15 оператор описания таблицы

PAM STORAGE 10 оператор описания памяти

* операторы описания объектов (блоков)

GENERATE 4,2 моделирование потока заданий

QUEUE TII фиксация момента постановки в очередь

ENTER PAM занятие блока памяти заданием

DEPART TII фиксация момента выхода из очереди

SEIZE CPU1 занятие процессора

ADVANCE 4,3 задержка задания на время обслуживания

RELEASE CPU1 освобождение процессора

LЕАVE PAM освобождение блока памяти

TERMINATE 1 удаление задания из системы

* управляющие операторы

START 100

END

В заключение параграфа рассмотрим системные и стандартные числовые атрибуты, не вошедшие в таблицу 4.4. Обозначение для них принято одинаковое - СЧА (SNA - Standart Numerical Attribute), отличие заключается в том, что системные атрибуты недоступны для обращения.

Системные числовые атрибуты характеризуют процесс моделирования в целом. СЧА объектов характеризуют состояние объектов в текущий момент модельного времени. Каждый объект имеет свой набор СЧА. Все числовые атрибуты имеют символические имена. Имя СЧА включает мнемоническое обозначение, задающее тип атрибута (для СЧА объектов эти обозначения, совпадают с мнемоническими обозначениями объектов, см. табл.4.4), и порядковый номер объекта в модели либо символическое имя объекта. Объекты всех типов, встречающиеся в модели, в том числе и объекты с символическими именами, кроме того, нумеруются управляющей программой автономно для каждого типа в порядке встречаемости в модели.

Основными СЧА транзакта являются параметры и приоритет транзакта. Каждый транзакт может иметь от 0 до 1020 параметров одного из четырех форматов В зависимости от формата параметры могут иметь следующие имена: PFi, PHi, PBi, PLi (где i — номер параметра, использование символического имени для параметра недопустимо). Выбор количества и назначения параметров определяются пользователем. Например, при моделировании сети передачи данных программист может резервировать первый параметр для задания длины сообщения, второй — для номера источника (терминала), выдавшего это сообщение, и т.д. В модели могут присутствовать транзакты, имеющие различный приоритет. Если два транзакты соперничают в занятии одного устройства, то управляющая программа отдает предпочтение транзакту с более высоким приоритетом. Транзакты с одинаковым приоритетом обрабатываются в порядке поступления. СЧА транзакта, характеризующий его приоритет, обозначается PR.

У каждого блока имеется два СЧА: Wi — номер транзакта, находящегося в блоке с номером i в текущий момент модельного времени; Ni — общее количество транзактов, поступивших в i-й блок в течение одного прогона ИМ.


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



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