Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Е. Основные категории и типы объектов GPSS / H .



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

В Таблице 16 в разделе «функции операторов блоков» приведены основные операторы блоков (кратко блоки) – ОБ, реализующие те или иные действия в процессе моделирования.

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

Таблица 16 Категории и типы объектов

№ кат. Категория объекта № типа Тип объекта Мнемонич. обозначение Функции операторов блоков
  1   Динамическая   1   Транзакт   Хакт Создание транзактов: GENERATE, SPLIT Уничтожение транзактов: TERMINATE,
2 Операционная 2 ОБ (блок) ------------ Объяснены в главе 5

 

 

3

 

 

Аппаратная

 

    3     Устройства   F (facilities) Занятие – освобождение SEIZE – RELEASE Захват – возврат PREEMPT – RETURN Доступно - не доступно FAVAIL – FUNAVAIL  
  4   Памяти (накопители) S (storages) Войти – покинуть ENTER – LEAVE Свободна – занята SAVAIL - SUNAVAIL Ожидание изменения статуса – GATE
  5   Логические ключи L (logic switch) Включение, выключение, инверсия LOGIC Ожидание изменения положения L GATE

 

4

 

Вычислительная

  6   Арифметическая переменная V (variable)   Целочисленное значение VARIABLE Плавающая точка FVARIABLE
7 Булева переменная BV Задается логическими атрибутами СЛА
8 Функция FN Задается пользователем или встроенной функцией

 

5

 

Статистическая

9 Очереди Q Создание очереди – покидание QUEUE – DEPART
10 Таблицы T Создать таблицу TABULATE

 

6

 

Запоминающая

11 Ячейки Х Создание скалярной переменной
12 Матрицы М Создание 2-х размерных матриц
13 Амперпеременные & Создание переменных 5-ти типов

 

 

7

 

 

Группирующая

14 Списки пользователя С Включить – исключить LINK - UNLINK
    15     Группы     G Поместить – удалить JOIN – REMOVE Проверка принадлежности – EXAMINE Определение вида транзакта SCAN

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-список текущих событий- СТС (время наступления меньше либо равно текущему модельному времени),

-список будущих событий- СБС (время наступления больше текущего модельного времени);

-список прерываний (транзакты, обслуживание которых прервано);

-список синхронизируемых транзактов (находящихся в состоянии сравнения);

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

Ж.Структура объектов

Транзакты. В модели эти динамические элементы обозначаются Xакт или просто X с его идентификационным номером – ИН (IN). ИН задаётся в порядке появления транзактов в модели, когда в МФ существует несколько источников транзактов, то назначение ИН не меняется (в порядке появления Xакт).. Каждый Xакт находится в исследуемый момент времени в текущем блоке (Current Block) и делает попытку войти в следующий ожидаемый блок (Next Block Attempted). При прохождении Xакт через последовательность ОБ МФ от момента зарождения до момента терминирования может возникнуть четыре ситуации:

1. Задержка Xакт при входе в ОБ (например, ADVANCE),

1. Препятствие входу Xакт (блокирование) в следующий ОБ (например SEIZE),

2. Уничтожение (терминирование) Xакт при попадании в ОБ TERMINATE,

3. Возвращение Xакт к началу МФ при появлении ОБ TRANSFER вместо ОБ TERMINATE

Две последние ситуации не могут возникать одновременно, так терминирование происходит при выходе Xакт из системы (обслуженный покупатель, посланное сообщение, прошедший пункт контроля автомобиль и т. д.) В случае, когда Xакт не покидает систему, а возвращается к началу, используется ОБ TRANSFER, изменяющий направление движения (например, клерки в нотариальной конторе представляют собой Xакт, но подготовив один документ и подписав его у менеджера возвращаются на рабочее место для подготовки нового документа). Как только Xакт прекращает движение (две первые ситуации), сразу начинается движение следующего транзакта, становящегося активным, Отсюда следует правило, которое неуклонно соблюдается при моделировании: В каждый момент времени в модели движется только один X акт! Xакт может иметь один или больше атрибутов (атрибут - характеристика относящаяся к отдельному транзакту: цвет, тип, число покупок и т.д.), одни из атрибутов вводятся программой, например ИН, другие назначаются исследователем, например тип движущегося по дороге транспортного средства. В случае когда надо рассмотреть людей и предметы, представляемых транзактами, то скорее всего в МФ надо их представить отдельными цепочками ОБ.

Ресурсы. В отличии от транзактов ресурсы (устройства, памяти) неподвижные, постоянные объекты, которые за время одного прогона ИМ остаются неизменными. Ресурсы используются транзактами для решения задачи, определённой исследователем. Xакт соревнуются между собой за использование ресурсов, ожидают их освобождения предыдущим Xакт, для реализации задачи моделирования могут потребовать несколько разных ресурсов. Ресурсы также могут быть людьми (число кассиров в банке), или предметами (станок, автомат на АЗС), возможно сочетание ресурсов в одной модели.

В МФ используются:

 операторы блоков (блоки) –ОБ,

 операторы управления –ОУ,

 операторы описания -  ОО.

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

ОБ характеризуются размещением, действием (названием совершаемой операции) и операндами. Рассмотрим их подробнее:

- Размещение - каждый ОБ занимает, предназначенную ему позицию и нумеруется самой программой, начиная от 1 и далее в порядке их появления в МФ. Исследователь не имеет возможности присваивать номера ОБ, но при необходимости может давать имя (присваивать ярлык) ОБ одинакового названия, для их чёткого различения. Особенно это важно при изменении последовательного движения транзактов или при возвращении к уже пройденному участку МФ.

- Код действия - каждый ОБ обозначается ключевым словом, уточняющим характер операции, совершаемой ОБ в процессе ИМ. Ключевые слова типа GENERATE, TERMINATE, ADVANCE, SEIZE (см. приложение П.1) обязательно пишутся прописными буквами и могут быть сокращены до четырёх символов, например, GENE, TERM и т.д. Ошибки в написании ОБ приводят к появлению в листинге сообщений об ошибках компиляции и процесс моделирования не начинается.

- Операнды – каждый ОБ имеет от одного до нескольких операндов, дающих информацию, на которой основано действие ОБ. Операнды обозначаются A,B,C… Отсутствие операнда на назначенном ему месте определяется значением по умолчанию, чаще 0, а иногда . Нередко бывают ситуации, когда часть операндов задаётся в явном виде, а часть используется по умолчанию.

ОУ и ОО. Структура этих операторов схожа со структурой ОБ, только вместо номера строки размещения первой характеристикой является ярлык (label). Вторая и третья характеристики совпадают по смыслу (код действия и операнды).

- Ярлык для ОУ в некоторых случаях требуется, а в некоторых является не нужным, а для некоторых ОУ и ОО он просто не предусмотрен.

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

- Операнды ОУ имеют нуль или несколько операндов. Они также обозначаются А,В,С… и для определённых типов операторов задаются в явном виде, а в большинстве применяются по умолчанию.

Приведя эти начальные соображения по структуре объектов, перейдём к представлению структуры МФ, которую можно представить в виде 3-х укрупнённых модулей рис.38.

Рассмотрим более подробно отличительные черты приведенноё структуры, Жирным шрифтом выделены блоки, без которых процесс ИМ не может быть осуществлён.

1. Всегда, в любом случае на первом месте модуля задания стоит ОУ SIMULATE, который даёт команду на компиляцию МФ, отсутствие этого ОУ приводит к машинной ошибке и процесс ИМ не начинается.

2 ОУ START даёт команду на исполнение МФ, при этом счётчик свершений -СС устанавливается в начальное значение, инициализируется ОБ GENERATE, т.е начинают поступать транзакты, которые движутся последовательно блок за блоком.

3. ОУ END, стоящий обязательно последним в МФ прекращает процесс ИМ, выполняя две операции: - сигнализируя о том, что МФ физически кончился и прекращая исполнение МФ, даёт команду о возвращении в командную оболочку.

Рис.38 Укрупнённая структура модельного файла:

1 - модуль задания,  2 - модуль исполнения, 3 - модуль управления.

Таким образом любой МФ состоит из этих трёх обязательных модулей.

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

4. Модуль исполнения включает необходимое число исполняемых ОБ. В модуле исполнения на первом месте стоит ОБ GENERATE, если в МФ предусмотрено исследование нескольких типов транзактов, то в каждой из параллельных ветвей МФ предусмотрен свой ОБ GENERATE, при использовании временного таймера также используется ОБ GENERATE. Число ОБ в модуле исполнения зависит от сложности и логики модели. Этот модуль является главным и в результате его исполнения собирается вся необходимая информация

5. Модуль управления, начинается с ОУ START и заканчивается ОУ END, между ними может быть необходимое число ОУ, а в некоторых случаях и ОБ GENERATE.

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

Примечание: Для лучшего восприятия МФ, при текстовом написании каждый модуль может иметь собственное имя (допускается написание имени на русском языке).


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 284; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.026 с.)
Главная | Случайная страница | Обратная связь