КАТЕГОРИИ: Архитектура-(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) |
Блоки, изменяющие маршруты транзактов
В приведенных выше примерах транзакты, выходящие из любого блока, всегда поступали в следующий блок. В более сложных моделях возникает необходимость направления транзактов к другим блокам в зависимости от некоторых условий. Эту возможность обеспечивают блоки изменения маршрутов транзактов. Блок TRANSFER (передать) служит для передачи входящих в него транзактов в блоки, отличные от следующего. Блок имеет девять режимов работы, из которых рассмотрим здесь лишь три наиболее часто используемых. В этих трех режимах блок имеет следующий формат: имя TRANSFER A,B,C
Смысл операндов в полях A, B и C зависит от режима работы блока. В режиме безусловной передачи поля A и C пусты, а в поле B указывается имя блока, к которому безусловным образом направляется транзакт, вошедший в блок TRANSFER. Например:
TRANSFER,FINAL
В режиме статистической передачи операнд A определяет вероятность, с которой транзакт направляется в блок, указанный в поле C. С вероятностью 1-A транзакт направляется в блок, указанный в поле B (в следующий, если поле B пусто). Вероятность в поле A может быть задана непосредственно десятичной дробью, начинающейся с точки. Например, блок
TRANSFER.75,THIS,THAT
Если же поле A начинается не с десятичной точки и не содержит одного из ключевых слов —признаков других режимов работы блока, то его значение рассматривается как количество тысячных долей в вер оятности передачи. Например, предыдущий блок TRANSFER можно записать также в следующем виде:
TRANSFER 750,THIS,THAT
В режиме логической передачи в поле A записывается ключевое слово BOTH (оба). Транзакт, поступающий в блок TRANSFER, сначала пытается войти в блок, указанный в поле B (или в следующий блок, если поле B пусто), а если это не удается, т.е. блок B отказывает транзакту во входе, то в блок, указанный в поле C. Если и эта попытка неудачна, то транзакт задерживается в блоке TRANSFER до изменения условий в модели, делающего возможным вход в один из блоков B или C, причем при одновременно возникшей возможности предпочтение отдается блоку B. Например: TRANSFER BOTH,MET1,MET2
Блок TEST (проверить) служит для задержки или изменения маршрутов транзактов в зависимости от соотношения двух СЧА. Он имеет следующий формат: имя TEST X A,B,C
Вспомогательный операнд X содержит условие проверки соотношения между СЧА и может принимать следующие значения: L (меньше); LE (меньше или равно); E (равно); NE (не равно); GE (больше или равно); G (больше). Поле A содержит первый, а поле B —второй из сравниваемых СЧА. Если проверяемое условие A X B выполняется, то блок TEST пропускает транзакт в следующий блок. Если же это условие не выполняется, то транзакт переходит к блоку, указанному в поле C, а если оно пусто, то задерживается перед блоком TEST. Например, блок
TEST LE P$TIME,C1
не впускает транзакты, у которых значение параметра с именем TIME больше текущего модельного времени. Блок
TEST L Q$LINE,5,OUT
направляет транзакты в блок с именем OUT, если текущая длина очереди LINE больше либо равна 5. Для задержки или изменения маршрута транзактов в зависимости от состояния аппаратных объектов модели служит блок GATE (впустить), имеющий следующий формат: имя GATE X A,B
Вспомогательный операнд X содержит код состояния проверяемого аппаратного объекта, а в поле A указывается имя или номер этого объекта. Если проверяемый объект находится в заданном состоянии, то блок GATE пропускает транзакт к следующем у блоку. Если же заданное в блоке условие не выполняется, то транзакт переходит к блоку, указанному в поле B, а если это поле пусто, то задерживается перед блоком GATE. Операнд X может принимать следующие значения: U (устройство занято); NU (устройство свободно); I (устройство захвачено); NI (устройство не захвачено); SE (МКУ пусто); SNE (МКУ не пусто); SF (МКУ заполнено); SNF (МКУ не заполнено); LS (ЛП включен), LR (ЛП выключен). Например, блок
GATE SNE BUF3
отказывает во входе транзактам, поступающим в моменты, когда в МКУ с именем BUF3 все каналы обслуживания свободны. Блок
GATE LR 4,BLOK2
направляет транзакты в блок с именем BLOK2, если в момент их Блоки рассматриваемой группы используются при моделировании различных СМО с потерями заявок. Воспользуемся, например, блоками TRANSFER для моделирования двухканальной СМО с отказами и повторными попытками (рис. 12).
STO2 STORAGE 2 EXP FUNCTION RN1,C24 0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915 .7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3 .92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9 .99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8 GENERATE 100,FN$EXP ENT1 TRANSFER BOTH,,REFUS ENTER STO2 ADVANCE 160,FN$EXP LEAVE STO2 TERMINATE 1 REFUS TRANSFER.1,,OUT ADVANCE 250,FN$EXP TRANSFER,ENT1 OUT TERMINATE 1 Рис. 12
Транзакты, поступающие в модель, попадают в блок TRANSFER с именем ENT1, работающий в логическом режиме. Если в момент поступления транзакта в МКУ STO2 хотя бы один канал свободен, то блок TRANSFER направит транзакт в следующий блок, т.е. в блок ENTER. Если же в момент поступления оба канала МКУ заняты, и поэтому блок ENTER отказывает во входе, то транзакт будет направлен в блок TRANSFER с именем REFUS, работающий в статистическом режиме. С вероятностью 0,9 транзакты из этого блока передаются в следующий блок, задерживаются в нем на случайное время и с помощью блока TRANSFER, работающего в безусловном режиме, передаются вновь на вход модели в блок с именем ENT1. С вероятностью 0,1 транзакты из блока с именем REFUS передаются в блок TERMINATE с именем OUT для уничтожения. Следует заметить, что для уничтожения транзактов, получивших отказ в обслуживании, понадобился отдельный блок TERMINATE для фиксации в стандартном отчете количества потерянных транзактов с помощью счетчика блока с именем OUT (СЧА N$OUT). Для моделирования той же СМО может быть использован также блок TEST (рис. 13). В этом варианте модели транзакт проходит в блок ENTER, если текущее число занятых каналов (СЧА S$STO2) меньше 2.
STO2 STORAGE 2 EXP FUNCTION RN1,C24 0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915 .7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3 .92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9 .99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8 GENERATE 100,FN$EXP ENT1 TEST L S$STO2,2,REFUS ENTER STO2 ADVANCE 160,FN$EXP LEAVE STO2 TERMINATE 1 REFUS TRANSFER.1,,OUT ADVANCE 250,FN$EXP TRANSFER,ENT1 OUT TERMINATE 1 Рис. 13
При использовании блока GATE модель принимает вид, показанный на рис. 14. В этом варианте транзакт проходит в блок ENTER, если условие “МКУ STO2 не заполнено” истинно.
STO2 STORAGE 2 EXP FUNCTION RN1,C24 0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915 .7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3 .92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9 .99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8 GENERATE 100,FN$EXP ENT1 GATE SNF STO2,REFUS ENTER STO2 ADVANCE 160,FN$EXP LEAVE STO2 TERMINATE 1 REFUS TRANSFER.1,,OUT ADVANCE 250,FN$EXP TRANSFER,ENT1 OUT TERMINATE 1 Рис. 14
Дата добавления: 2017-02-01; Просмотров: 52; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |