4.2. Обработка одновременных событий

Так как модельное время в GPSS целочисленно, то оказывается

вполне вероятным одновременное наступление двух или более событий,

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

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

нескольких событий, или так называемый временной узел, может су-

щественно нарушить логику модели.

Рассмотрим, например, еще раз модель на рис. 14. Здесь может

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

на вход модели" и "завершение обслуживания в МКУ". Если не-

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

МКУ, то обработка временного узла зависит от последовательности

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

Предположим, что первым в списке расположен транзакт, освобож-

дающий канал МКУ. Тогда вначале будет обработан этот транзакт, т.е.

событие "завершение обслуживания в МКУ", причем условие "МКУ STO2

не заполнено", проверяемое в блоке GATE, станет истинным. Затем бу-

дет обработан транзакт, поступивший на вход модели, в блок GATE с

именем ENT1, из блока GENERATE или из блока TRANSFER в безусловном

режиме. При этом транзакт будет впущен в блок ENTER, и МКУ в тот же

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

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

Предположим теперь, что первым в списке текущих событий распо-

ложен транзакт, поступающий на вход модели. Так как условие "МКУ

STO2 не заполнено" ложно, то блок GATE направит этот транзакт в

блок с именем REFUS. Таким образом, в модели будет зафиксирован от-

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

обработки транзакта, освобождающего канал, МКУ станет доступным.

Порядок расположения транзактов, соответствующих рассматривае-

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

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

В результате статистика, связанная с отказами, окажется искаженной.

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

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

транзакт, освобождающий МКУ, всегда располагался первым. Этого мож-

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

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

PRIORITY 1

ADVANCE 160,FN$EXP

LEAVE STO2

TERMINATE 1

REFUS TRANSFER .1,,OUT

ADVANCE 250,FN$EXP

TRANSFER ,ENT1

OUT TERMINATE 1

Рис. 22

Транзакты, поступающие в модель через блок GENERATE, имеют ну-

левой приоритет. Такой же приоритет имеют транзакты, получившие от-

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

торно поступающие в блок с именем ENT1. Те же транзакты, что посту-

пают на обслуживание, повышают приоритет до 1 в блоке PRIORITY, и

после выхода из блока ADVANCE возвращаются из списка будущих в

список текущих событий, располагаясь в начале списка. Таким обра-

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

дет обработан правильно.

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

моделей со списками пользователя. Рассмотрим, например, еще раз мо-

дель на рис. 18. Здесь также возможен временной узел между события-

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

Пусть первым в списке текущих событий располагается вновь при-

шедший транзакт. Так как устройство с именем SYSTEM занято, то блок

GATE направит этот транзакт в блок LINK, и он будет введен в список

пользователя с именем LINE. Затем будет обработан транзакт, осво-

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

закт с начала списка пользователя и направит его в список текущих

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

SYSTEM.

Если же первым в списке текущих событий располагается тран-

закт, освобождающий устройство, то он выведет первый из ожидающих

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

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

обработан вновь пришедший транзакт, который пройдет через блок GATE

и займет устройство "без очереди". Транзакт-очередник, который был

выведен из списка пользователя, "застрянет" перед блоком SEIZE и

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

свою очередь, логику работы модели.

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

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

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

гался вновь пришедший транзакт. В рассматриваемом случае этого мож-

но добиться, используя блок PRIORITY с операндом BU (рис. 23).

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

через блок PRIORITY, который, оставляя неизменным приоритет тран-

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

просмотре списка в случае наличия временного узла начинает обраба-

тываться вновь поступивший транзакт. Так как устройство еще занято,

он направляется блоком GATE в список пользователя. При повторной

обработке обслуженного транзакта тот освобождает устройство и выво-

дит очередной транзакт из списка пользователя. Таким образом, пра-

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

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

ASSIGN TSRV,80,EXP

GATE NU SYSTEM,WAIT

SFAC SEIZE SYSTEM

ADVANCE P$TSRV

PRIORITY PR,BU

RELEASE SYSTEM

UNLINK LINE,SFAC,1

TERMINATE 1

WAIT LINK LINE,P$TSRV

Рис. 23


Информация о работе «Моделирование на 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 комментариев


Наверх