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

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

140

ных чисел, называемых исходными. Пользователь может задать любое из этих чисел (RN1, ...,RN8). В случаях, когда обращение к датчику случайных чисел подразумевается, используется RN1. Начальные значения и, следовательно, последовательности псевдослучайных чисел, получаемые во всех системных датчиках (RN1, ...,RN8), одинаковы. Для получения различных последовательностей необходимо изменять их начальное значение.

Встатистической категории GPSS используется два типа объектов: очереди и таблицы.

Оч е р е д и. Транзакт помещается в очередь в том случае, когда некоторое устройство не в состоянии обслужить его немедленно (например, устройство занято, либо память переполнена). Статистические данные об очередях могут быть получены в разных точках модели. Для изменения длины очереди в выбранных точках размещается два типа блоков: блок QUEUE и блок DEPART. Блок QUEUE может быть помещен перед любым блоком диаграммы, в котором может возникнуть задержка. При этом транзакты увеличивают длину очереди при входе в блок QUEUE и уменьшают ее при входе в блок DEPART. В GPSS транзакт может входить в несколько блоков QUEUE одновременно. Каждая очередь имеет семь стандартных числовых атрибутов.

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

Я ч е й к и. Эти объекты используются в модели для сохранения отдельных значений СЧА, чтобы в дальнейшем можно было обращаться к ним. Для этого необходимо резервировать ячейки оперативной памяти ЭВМ, в которых эти значения будут храниться посредством карты SAVEVALUE. При принятии определенных решений отдельные транзакты могут обращаться к этим ячейкам и использовать хранящуюся в них информацию. Ячейка SAVEVALUE может сохранять числовое значение в размере формата «слова», «полуслова», «байта», «плавающей точки» в зависимости от ее типа

Перед входом в блок SAVEVALUE никакие специальные условия не проверяются, поэтому в этот блок может войти любой транзакт (т. е. он может быть задержан на этом блоке).

Поле А интерпретируется как номер ячейки SAVEVALUE, значение которой изменяется в результате прохождения блока.

На ячейки SAVEVALUE можно ссылаться, можно изменять их содержимое. Для рационального использования оперативной памяти ЭВМ формат ячейки SAVEVALUE должен согласовываться с записываемым значением.

Занесение сохраняемых значений осуществляется с помощью блока

SAVEVALUE.

В поле В задается значение, которое надо записать в данную ячейку. Ячейки SAVEVALUE могут иметь символические имена. Например:

SAVEVALUE PROCE,РН2,ХН

141

(т. е. значение параметра 2 транзакта, вошедшего в блок SAVEVALUE, записывается в ячейку SAVEVALUE с именем РROCE формата «полуслово»). Или

SAVEVALUE ХВ4 — 12,10,ХН

(где блок SAVEVALUE записывает число 10 в ячейки формата «полуслово», начиная с той, номер которой записан в ячейку формата «байт», и кончая ячейкой 12-го формата «полуслово». Число, записанное в ячейке 4, должно быть меньше 12, иначе заданный диапазон номеров окажется ошибочным).

Формат ячейки SAVEVALUE задается в поле С. Допускаются следующие записи: X, ХF, или пробел (ячейка формата «слово»), Н или ХН (ячейка формата «полуслово»), ХВ (ячейка формата «байт») и XL (ячейка формата «плавающая точка»). Если записываемое значение превышает максимально допустимое для ячейки SAVEVALUE данного формата, выдается предупреждающее значение. Например:

SAVEVALUE HTON, 156ХН

(т. е. в ячейке SAVEVALUE формата «полуслово» с именем НТОТ записывается число 156);

М а т р и ц ы. Эти объекты дают возможность упорядочить значения, которые нужно сохранить в виде матриц т х п, где т — число строк; п — число столбцов. Пользователь может определить число строк и столбцов, а также размер информации, которая будет храниться (формат «слово», «полуслово», «байт», «плавающая точка») с помощью карты МАТRIX.

К группирующей категории относятся два типа объектов: списки и группы.

С п и с к и. Транзакты GPSS хранятся в списках. Существует пять видов списков, в одном из которых в любой момент времени может находиться транзакт: 1) текущих событий; 2) будущих событий; 3) пользователя; 4) прерываний; 5) синхронизируемых транзактов.

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

142

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

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

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

Пользователю следует учитывать, что для транзактов, заблокированных в блоке ТЕST или пытающихся выйти из блока TRANSFER (в режимах ВОТН, АLL, списков задержки не существует. В этих случаях транзакты остаются в активном состоянии в списке текущих событий и участвуют во всех просмотрах.

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

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

Список прерываний содержит транзакты, обслуживание которых прервано на одном или более устройствах. Транзакты в списке прерываний расположены в порядке поступления. Этот список никогда не обрабатывается как списковая структура; транзакты по мере надобности заносятся в этот список и извлекаются из него. Все транзакты, захватившие устройства

143

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

Список синхронизируемых транзактов содержит транзакты, которые ожидают в блоках ASSEMBLE или GATHER прихода заданного числа транзактов из той же группы: находятся в блоках МАТСН в ожидании поступления транзакта той же группы на сопряженный блок МАТСН. Этот список также никоща не обрабатывается как списковая структура и представляет собой поднабор набора транзактов.

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

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

7.6. Блоки, связанные с транзактами GPSS

К динамической категории GPSS относятся транзакты, которые в процессе моделирования создаются, размножаются, собираются и уничтожаются. Каждому транзакту соответствует набор параметров, число которых может достигать 1020. Если число параметров не определено, то вводится 12 параметров формата «полуслово» для каждого транзакта. Параметры могут иметь формат: «слово», «полуслово», «байт», «плавающая точка». Транзактам присваивается приоритет от 0 до 127. Если приоритет не назван, то он принимается равным минимальному приоритету, т. е. 0.

Сдинамической категорией GPSS связаны следующие группы блоков:

1)задержки транзактов по заданному времени; 2) создания и уничтожения транзактов; 3) изменения параметров транзактов; 4) создания копий транзактов; 5) синхронизации движения транзактов.

1. Группа блоков задержки транзактов по заданному времени.

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

144

ние определенного периода времени. Задать его можно только в блоке АDVANCE. Этот блок задает среднее время выполнения операции в моделируемой системе S, а также разброс времени относительно среднего. В блоке производится определение числа единиц времени, на которое транзакт будет задержан. Это время может выражаться любым целым положительным числом, в том числе и нулем. Если время равно 0, то транзакт в блоке АDVANCE не задерживается и переходит в следующий блок блокдиаграммы.

Для задания времени пребывания в блоке АDVANCE пользователь указывает среднее время в поле А, а модификатор — в поле В. Если время задержки постоянно, поле В может быть пустым, а если время задержки нулевое, то и поле А может быть пустым. Модификаторы могут быть двух типов: интервал и функция.

Модификатор-интервал используется, когда время задержки транзактов распределено равномерно в некотором заданном диапазоне. Например, если времена распределены равномерно в интервале (10 ± 5), то среднее—10, интервал—5. В результате с равной вероятностью получаем целые числа от 5 до 15.

Например:

ADVANCE 10,5

(т. е. при использовании модификатора-интервала имеет место задержка на (10 ± 5) единиц времени).

Модификатор-функция используется, если времена задержки транзактов распределены не равномерно, а более сложным образом. При обращении к функции определяется некоторое число — значение функции, и время задержки в блоке определяется умножением среднего на это число (если результат — не целое число, то берется его целая часть).

Например:

ADVANCE 500,FN2

(т. е. при использовании модификатора-функции получается задержка на 500*FN2 единиц времени).

2. Группа блоков создания и уничтожения транзактов. В эту группу входят блоки GENERATE, TERMINATE,SPLIТ и АSSEMBLE.

Функцией блока GENERATE является создание транзактов, входящих в систему. В поле А задается среднее время между поступлением отдельных

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