2.4. Блоки, изменяющие маршруты транзактов

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

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

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

зависимости от некоторых условий. Эту возможность обеспечивают бло-

ки изменения маршрутов транзактов.

Блок 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

с вероятностью 0,75 направляет транзакты в блок с именем THAT, а с

вероятностью 0,25 - в блок с именем THIS.

Если же поле 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, если в момент их

поступления ЛП с номером 4 включен.

Блоки рассматриваемой группы используются при моделировании

различных СМО с потерями заявок. Воспользуемся, например, блоками

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


Информация о работе «Моделирование на GPSS»
Раздел: Информатика, программирование
Количество знаков с пробелами: 117295
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
113808
0
0

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

Скачать
13405
0
2

... возвращаются на ввод и во всех очередях обслуживаются первыми. Смоделировать работу вычислительного центра в течение 30 ч. Определить необходимую емкость буферов и функцию распределения времени обслуживания заданий. 1.1 Построение концептуальной модели объекта На первом этапе проведения моделирования необходимо построить концептуальную модель (Рис. 1), т.е. концептуальная (содержательная) ...

Скачать
36862
2
13

... в результате входа транзактов в блоки и выполнения блоками своих функций. В данной работе требуется с помощью пакета моделирования систем GPSS/PC исследовать модель заданной СМО. Задание На обрабатывающий участок цеха поступают детали в среднем через 50 мин. Первичная обработка деталей производится на одном из двух станков. Первый станок обрабатывает деталь в среднем 40 мин и имеет до ...

Скачать
8426
5
5

... А При входе в блок RELEASE освобождается устройство, номер которого указан в поле А. Устройство становится доступным для других транзактов. При моделировании работы устройств, когда новое требование пытается прервать обслуживание предыдущего, используются блоки PREEMPT (захватить устройство) и RETURN (вернуть устройство ранее прерванному требованию). Блок PREEMPT имеет следующий формат: ...

0 комментариев


Наверх