Материал: Моделирование, анализ и оценка надежности информационных систем и технологий. Некравцева Т.А., Толстых Т.О

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

130

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

Таблица 1

Категория

Типы объектов

 

 

Динамическая

Транзакты

 

 

Операционная

Блоки

 

 

Аппаратная

Устройства

 

Памяти

 

Ключи

 

 

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

Переменные: арифметические,,булевские

 

Функции

 

 

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

Очереди

 

Таблицы

 

 

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

Матрицы ячеек

 

Ячейки

 

 

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

Списки пользователя

 

Группы

 

 

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

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

131

Объекты аппаратной категории — это абстрактные элементы (уст-

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

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

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

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

зываются событиями.

7.3. Основные объекты GPSS

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

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

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

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

132

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

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

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

1. Блоки, осуществляющие модификацию атрибутов транзактов:

а) временная задержка ADVANCE; б) генерирование и уничтожение транзактов GENERATE, TERMINATE, SPLIT, ASSEMBLE; в) синхронизация движения нескольких транзактов МАТСН, GATHER; г) изменение параметров транзактов ASSIGH, INDEX, MARK; д) изменение приоритета

PRIOPITY.

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.

7.4.Описание моделей с помощью языка GPSS

133

В программе на языке GPSS каждый оператор (блок) записывается в следующем формате:

Поле метки

Поле операции

Поле операндов

Символический адрес Наименование типа Аргумент А, аргумент В и т.д.

блока

блока

Запись начинается с I позиции, а поля разделяются пробелами. Отсутствие метки также обозначается пробелом.

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

Вид блока указывается в «поле операции», где записываются аргументы блока. Это поле состоит из девяти частичных полей, помеченных буквами А, В, ..., I и разделенных друг от друга запятыми. Если некоторое частичное поле остается пустым, т. е. не нужен соответствующий аргумент, это отмечается еще одной запятой, например: PRINT, MOV. Здесь используется только аргумент МОV в частичном поле С (А и В пустые).

Карта SIMULATE. Если нужно провести счет по составленной модели системы, то должна быть карта SIMULATE. Допускается две формы заполнения этой карты: SIMULATE и SIMULATE т, где т — число минут машинного времени, по истечении которого моделирование будет прекращено. Например, оператор SIMULATE5 определяет длительность счета модели, равную 5 мин. По истечении этого времени моделирование прекращается и на печать выдается накопленная к этому моменту статистическая информация. Если карты SIMULATE нет, то работа (JOB) будет закончена после окончания ассемблирования.

Карта START. Эта карта показывает симулятору GPSS, что все входные данные уже получены и можно начинать счет.

Поле А определяет число транзактов, которые должны пройти через систему до выдачи окончательной статистики, называемой счетчиком числа завершений и обозначаемой TG1. Счет заканчивается в тот момент, когда TG1< 0. Значение TG1 уменьшается на величину, заданную в поле А блока TERMINATE, при каждом входе сообщения в этот блок. Если требуется за-

134

кончить моделирование после прохождения через модель 1000 транзактов, выводимых с помощью карты TERMINATE с единицей в поле А, то в поле А карты START записывается число 1000.

Например:

START 1000

Пример 1. Построить программу модели процесса прохождения 500 деталей, поступающих в промежутке времени 11 ± 5 единиц, распределенном по равномерному закону. Детали обрабатываются одним рабочим в течение 10 ± 7 единиц времени, распределенного по равномерному закону. После прохождения 300 деталей требуется выдавать статистику с интервалом в 25 деталей. Программа имеет вид (здесь и в других примерах моделирования справа дается комментарий):

SIMULATE

 

Начать имитацию

GENERATE

11,5

Поступление деталей

SEIZE

1

Запуск

ADVANCE

10,7

Обработка

RELEASE

1

Выпуск

TERMINATE

1

 

START

275, NP Прогон без статистики

START

225,,25

Интервальные статистики

END

 

 

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

Карта RESET. Результатом действия этой карты является то, что стирается вся статистическая информация, накопленная в процессе моделирования.

Карта СLEAR. В результате действия этой карты стирается вся накопленная в процессе моделирования статистика и из системы удаляются все транзакты.

Карта JOB. Эта карта должна помещаться между последовательными рабочими вычислениями, являющимися частями одной работы. Она выпол-

Источник: https://studfile.net/preview/16563751/