Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Terminate а




GENERATE A,B,C,D,E

Язык GPSS. Блоки создания и удаления транзактов. Примеры использования.

 

Блок создания транзактов GENERATE имеет следующий общий вид:

A – среднее значение интервала поступления транзакта в систему (целое число, по умолчанию 0);

B – величина разброса значений относительно среднего значения (целое число, по умолчанию 0);

C – момент времени, в который в блоке GENERATE должен появиться первый транзакт. После этого все приходы возникают по распределению, определенному параметрами А и В. (целое число, по умолчанию отсутствует)

D – ограничитель общего числа транзактов, которое может войти в модель через данный блок GENERATE на протяжении времени моделирования. Если это число достигнуто, блок перестает быть активным.

E – уровень или класс приоритета каждого из транзактов, водимых в модель.

 

Количество блоков GENERATE в модели может быть неограниченным. Интервал времени между последовательными появлениями транзактов из блока GENERATE называют интервалом поступле­ния.

Когда транзакт входит в модель через блок GENERATE. интерпретатор планирует время поступления следующего транзакта путем розыгрыша случайного числа c соответствующим распределением интервалов поступления на время, равное текущему значению ЧАСОВ плюс разыгранное значение. При достижении этого значения модельного времени следующий транзакт вводится в модель через блок GENERATE и т.д.

Примеры: 1. GENERATE 6,4

Операнды: A = 6, В = 4. Интервал времени поступления является случайным числом со средним значением 6 и полем допуска 8, то есть он может приобретать только одно из девяти разных значений: 2, 3,4,5,6,7,8,9, 10.

2. GENERATE 10

Операнды: A = 10, В = 0 (по умолчанию). Транзакты входят в модель каждые 10 единиц модельного времени.

 

3. GENERATE,,,1

Генерирование одного транзакта. Операнды: A = В = C = 0 (по умолчанию), D = 1. В нулевой мо­мент в модель входит один транзакт.

 

Блок удаления транзактов из модели TERMINATE:

А – величина уменьшения терминального счетчика каждый раз, когда транзакт входит в блок TERMINATE (по умолчанию равно 0).

 

Терминальный счетчик – это ячейка в памяти ЭВМ, которая хранит целое положительное число. Начальное значение этого счетчика ус­танавливается в начале моделирования. Оно равняется значению опе­ранда А команды START. В процессе моделирования транзакты попадают в блок TERMINATEи, таким образом, умень­шают значение счетчика на величину операнда А. Моделирование за­канчивается, когда значение счетчика становится равным нулю или отрицательному числу.

Примеры: 1. TERMINATE 2

А = 2. Значение терминального счетчика при попадании в блок TERMINATE уменьшается на 2.

 

9.(3.3)Язык GPSS. Блок проверки и ветвления. Примеры использования.

 

В GPSS поток транзактов обычно проходит блоки последовательно, поэтому

предполагается, что, выполнив блок с номером n, транзакт переходит к выполнению блока

с номером п + 1. Однако в моделируемой реальной системе S в зависимости от

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

движения изменено. Для моделирования таких ситуаций на пути потока транзактов может

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

создавшихся условий. В зависимости от способа и условий, сложившихся в модели в

данный момент, транзакт по указанию пользователя может быть задержан или направлен

в блок с любым указанным номером. Например, перед входом транзакта в блоки

некоторых типов (например, блок SEIZE) симулятор GPSS проверяет состояние

устройства, указанного в этом блоке. Транзакт войдет в блок, когда соответствующее

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

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

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

 

В группу изменения маршрутов сообщений входят блоки GATE, TEST, TRANSFER.

Блок GATE23. Этот блок используется для определения состояния объектов устройств

без изменения их состояния. Блок GATE работает в двух режимах

: 1) отказа илиусловного входа;

2) перехода или безусловного входа.

 

При работе в режиме отказа блок GATE не пропускает транзакты, если

соответствующий объект не находится в требуемом состоянии. Если же поставленное в

блоке условие удовлетворяется, блок разрешает вход транэактов.

Если в поле В указано наименование (номер) блока, то вместо отказа блок GATE будет

посылать транзакт на указанный блок. Таким образом, если поле В пустое, блок работает

в режиме отказа, если не пустое — в режиме перехода.

 

Существует шесть условий или логических атрибутов, описывающих состояние

устройств, памятей, ключей и условия синхронизации. Мнемонические обозначения

проверяемого условия записываются непосредственно после GATE. Поле А определяет

номер объекта аппаратной категории (устройства, памяти или ключа). Состояние

устройства описывается следующими условиями: FNU24 — устройство не используется,

свободно; FU — устройство используется, занято (обслуживает захвативший транзакт или

прерывание); FNI —устройство работает без прерывания (свободно или обслуживает

захвативший его транзакт); FI — устройство обслуживает прерывание; FV — устройство

доступно; FNV — устройство недоступно.

Состояние памяти описывается следующими условиями: SE — память пуста; SNE —

память не пуста; SF — память заполнена; SNF — память не заполнена; SV — память

доступна; SNV — память недоступна.

Состояние ключа описывается двумя условиями: LR — логический ключ в состоянии

«выключен»; LS — логический ключ в состоянии «включен».

Следующие два мнемонические обозначения подробно описаны ниже: М — блок

GATE проверяет выполнение условия синхронизации в указанном блоке блок-диаграммы;

NM — блок GATE проверяет невыполнение условия синхронизации в указанном блоке

блок-диаграммы.

 

Рассмотрим пример использования блока GATE:

режим отказа

GATE SF 167

GATE LS 265

GATE FU 19

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

167 не будет заполнена; блокировать транзакт до тех пор, пока ключ 265 не установлен,

блокировать транзакт до тех пор, пока устройство 19 не освободится);

режим перехода

GATE FI 34,ALTR

(т. е. если устройство 34 прервано, то перейти к ALTR).

Блок TEST. Блок TEST описывает условие, которое проверяет при входе в него

транзакта и определяет направление дальнейшего движения транзакта в зависимости от

этого условия, которое записывается в виде алгебраического соотношения двух

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

TEST блок. В случае невыполнения соотношений транзакт направляется в блок, метка

которого указана в поле С. Если поле С пусто, то транзакт блокируется блоком до

выполнения соотношения.

 

Проверяемое соотношение записывается в поле операций сразу за блоком TEST. При

этом можно использовать следующие мнемонические обозначения операций сравнения: L

— «меньше чем»; LE — «меньше или равно»; Е — «равно»; NE — «не равно»;

G — «больше чем»; GE — «больше или равно».

Соотношение рассматривается между первым • и вторым аргументами,

записываемыми в полях А и В соответственно. Аргументы должны принадлежать к

стандартным числовым. атрибутам.

Если поле С не пусто, то транзакт всегда может войти в блок TEST и в зависимости от

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

поле С. Еста поле С пусто, то транзакт при невыполнении условия не сможет войти в блок

TEST и симулятор в каждый момент времени будет проверять, не изменилось ли

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

машинного времени на многократные проверки блокирующего условия.

Например:

TEST L S1,K10

TEST NE PF1,PF2

TEST GE Q2,FN1,CEH

Блок TRANSPER. Этот блок обычно используется для того, чтобы передать

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

быть выполнена логически, статистически, условно и безусловно. Вид передачи

определяется мнемоническим обозначением, указанным в поле А блока TRANSFER. При

безусловной передаче указывается один следующий блок (путь), а при условной

передаче—два или больше путей. Выбор того или иного пути определяется режимом

работы блока TRANSFER.

 

Поле В определяет первый (или единственный) из следующих

блоков. Если следующий блок поля В описан на следующей карте, то поле В может быть

оставлено пустым. Когда симулятор ПМДС встречает карту — описание блока

TRANSFER с пустым полем В, то он записывает в поле В этой карты номер следующего

блока.

Поле С определяет следующий блок и интерпретируется в соответствии с режимом

работы блока TRANSFER. Существуют различные режимы работы блока TRANSFER.

Если поле А блока TRANSFER пусто, то все транзакты, поступающие на этот блок,

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

TRANSFER,NEXT

Если в поле А блока TRANSFER стоит BOTH, то каждый транзакт, поступающий на

этот блок, проверяет два пути. Сначала проверяется блок, указанный в поле В, и если

транзакт не может войти в этот блок, он пытается войти в блок, указанный в поле С. Если

транзакт не может войти и в этот блок, он задерживается в блоке TRANSFER и повторяет

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

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

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

часто.

Например:

TRANSFER BOTH„SAM

SEIZE 52

SAM SEIZE 84

(транзакт блока TRANSFER пытается войти в блок SEIZE; если соответствующее

устройство занято, то он направляется в блок SAM; если транзакт не может войти в блок

SAM, то он остается в данном блоке TRANSFER и повторяет описанные выше операции

при каждом изменении текущего времени).

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

путей (блоков). Поле В определяет первый выбираемый блок, поле С — последний. Поле

D определяет индексную константу i. Эта константа дает пользователю возможность

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

С. Транзакт, вошедший в блок TRANSFER, далее пытается выйти через блок, указанный в

поле В, Если блок, указанный в поле В, занят, то транзакт пытается войти в блоки с

номерами Y + i, Y +2 i,..., Z, где Y— номер блока, указанного в поле В, Z — номер блока,

указанного в поле С. При этом Z - Y + М i где М — некоторое целое положительное число.

Если транзакт не может войти ни в один из этих блоков, он остается в блоке TRANSFER и

при изменении текущего времени повторяет все описанные выше операции. Если задан

режим ALL, пользователь должен проследить за тем, чтобы номера просматриваемых

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

Например:

TRANSFER ALL,FIRST,LAST,3

FIRST SEIZE 1

ASSIGN 12,K1„PB

TRANSFER,LAST+2

SEIZE 2

ASSIGN 12,K2,,PB

TRANSFER,LAST+2

LAST SEIZE 3

(транзакт пытается войти в блок FIRST; если он получает отказ, что определяется типом

блока FIRST, то транзакт пытается войти в блок FIRST+3; если и в этом блоке будет отказ,

то транзакт пытается войти в блок FIRST+6 (LAST); если транзакт не смог войти ни в

один из трех блоков, он остается в блоке TRANSFER и программа (система) переходит к

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

блоке TRANSFER, все проверки, перечисленные выше, производятся сначала, как и в

режиме BOTH, поэтому время счета также может значительно возрасти.

Если в поле А стоит SIM, то выбирается один из двух возможных путей. Каждый

входящий в блок транзакт содержит информацию для принятия решения. В каждом

транзакте есть индикатор SIM, установленный в 0 или 1. Если значение индикатора SIM

равно 1, то транзакт будет послан в блок указанный в поле С, а индикатор SIM будет

установлен в 0. Если xŸ_индикатор проверяется значение индикатора SIM этого транзакта. Если транзакт был задержан в

каком-либо из блоков GATE, его индикатор установлен в 1. Когда индикатор проверяется

в блоке TRANSFER, оказывается, что транзакт был задержан, и он отсылается к тому

блоку, где производилась первая проверка (CPU), и вся последовательность проверок

повторяется. При проверке (т. е. при прохождении блока TRANSFER) с индикатором SIM,

индикатор всегда сбрасывается в 0, поэтому если транзакт повторяет последовательность

проверок в тот же момент времени, т. е. без задержки, то после второй попытки он

пройдет, так как индикатор SIM устанавливается в 0 при первой попытке,

Например:

CPU GATE NU 1

GATE NU 2

САТЕ NU 15

TRANSFER SIM,,CPU

SEIZE 1,5

Рассмотрим статистический режим выбора. Если в поле А блока TRANSFER записана

десятичная дробь, то производится случайный выбор между блоками, описанными в поле

В и в поле С. Вероятность выбора блока С задается дробью. Например:

TRANSFER, 370,THIS,THAT

(т. е. режим выбора задан числом 370, при этом 37% всех транзактов, поступивших на

блок TRANSFER, будет передаваться на блок поля С, а 63% — на блок поля В).

Для каждого отдельного транзакта, естественно, выбирается только один из двух

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

TRANSFER. Кроме этого, пользователю предоставлены еще четыре режима выбора:

 

20 S – STORAGE (память)

21 L – LOGIC (логический), R – RESET (сбросить)

22 S – SET (установить)

23 GATE (впустить)

24 F – FACILITIES (устройства), N – NOT (не), U – USE (использовать)




Поделиться с друзьями:


Дата добавления: 2014-12-24; Просмотров: 706; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.072 сек.