2.2. Блоки, связанные с аппаратными объектами

Все примеры моделей, рассматривавшиеся выше, пока еще не явля-

ются моделями систем массового обслуживания, так как в них не учте-

на основная особенность СМО: конкуренция заявок на использование

некоторых ограниченных ресурсов системы. Все транзакты, входящие в

эти модели через блок GENERATE, немедленно получают возможность

"обслуживания" в блоке ADVANCE, который никогда не "отказывает"

транзактам во входе, сколько бы транзактов в нем не находилось.

 Для моделирования ограниченных ресурсов СМО в модели должны

присутствовать аппаратные объекты: одноканальные или многоканальные

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

 использовании блоков SEIZE (занять) и RELEASE (освободить), име-

ющих следующий формат:

 имя   SEIZE A

  имя  RELEASE A

В поле A указывается номер или имя устройства. Если транзакт

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

занятым и остаётся в этом состоянии до тех пор, пока этот же тран-

закт не пройдёт соответствующий блок RELEASE, освобождая уст-

ройство. Если устройство, указанное в поле A блока SEIZE, уже заня-

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

в этот блок и остаётся в предыдущем блоке. Транзакты, задержанные

(заблокированные) перед блоком SEIZE, остаются в списке текущих со-

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

тетов и очередности поступления.

Каждое устройство имеет следующие СЧА: F - состояние уст-

ройства (0 - свободно,1 - занято); FR - коэффициент использования в

долях 1000; FC - число занятий устройства; FT - целая часть средне-

го времени занятия устройства.

Воспользуемся блоками SEIZE и RELEASE для моделирования одно-

канальной СМО с ожиданием (рис. 7). Теперь блок ADVANCE находится

между блоками SEIZE и RELEASE, моделирующими занятие и освобождение

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

один транзакт. Транзакты, выходящие из блока GENERATE в моменты за-

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

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

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

SEIZE SYSTEM

ADVANCE 80,FN$EXP

RELEASE SYSTEM

TERMINATE 1

Рис. 7

 Для моделирования захвата (прерывания) одноканального уст-

ройства вместо блоков SEIZE и RELEASE используются соответственно

блоки PREEMPT (захватить) и RETURN (вернуть). Блок PREEMPT имеет

следующий формат:

  имя PREEMPT A,B,C,D,E

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

захвату. В поле B кодируется условие захвата. Если это поле пусто,

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

захватчиком. Если же в поле B записан операнд PR, то захват возни-

кает, если приоритет транзакта-захватчика выше, чем приоритет

обслуживаемого транзакта.

 Поля C, D и E определяют поведение транзактов, обслуживание

которых было прервано. Поле C указывает имя блока, в который будет

направлен прерванный транзакт. В поле D может быть указан номер или

имя параметра прерванного транзакта, в который записывается время,

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

ройстве. При отсутствии операнда в поле E прерванный транзакт сох-

раняет право на автоматическое восстановление на устройстве по

окончании захвата. Если же в поле E указан операнд RE, то транзакт

теряет такое право.

 Блок RETURN имеет единственный операнд A, содержащий имя или

номер устройства, подлежащего освобождению от захвата.

 Блоки PREEMPT и RETURN могут быть использованы для моделирова-

ния СМО с абсолютными приоритетами. В простейших случаях, при одном

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

A. При этом прерванный транзакт переводится симулятором из списка

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

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

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

продолжения обслуживания.

Для создания в модели  многоканальных устройств (МКУ)  они долж-

ны быть предварительно определены с помощью операторов определения

STORAGE (память), имеющих следующий формат:

 имя   STORAGE A

Здесь  имя - имя МКУ, используемое для ссылок на него; A – емко-

cть (количество каналов обслуживания) МКУ, задаваемая константой.

Для занятия и освобождения каналов обслуживания МКУ использу-

ется пара блоков ENTER (войти) и LEAVE (покинуть), имеющих следую-

щий формат:

 имя   ENTER A,B

 имя  LEAVE A,B

 В поле A указывается номер или имя МКУ, в поле B  число кана-

лов МКУ, занимаемых при входе в блок ENTER или освобождаемых при

входе в блок LEAVE. Обычно поле B пусто, и в этом случае по умолча-

нию занимается или освобождается один канал.

 При входе транзакта в блок ENTER текущее содержимое МКУ увели-

чивается на число единиц, указанное в поле B .   Если свободная

емкость МКУ меньше значения поля B, то транзакт не может войти в

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

 текущих событий.

 При входе транзакта в блок LEAVE текущее содержимое МКУ умень-

шается на число единиц, указанное в поле B. Не обязательно освобож-

дается такое же число каналов МКУ, какое занималось при входе дан-

ного транзакта в блок ENTER, однако текущее содержимое МКУ не долж-

но становиться отрицательным.

Многоканальные устройства имеют следующие СЧА: S - текущее со-

держимое МКУ; R - свободная емкость МКУ; SR - коэффициент использо-

вания в долях 1000; SA - целая часть среднего содержимого МКУ; SM -

максимальное содержимое МКУ; SC - число занятий МКУ; ST - целая

часть среднего времени занятия МКУ.

Воспользуемся блоками ENTER-LEAVE и оператором STORAGE для мо-

делирования двухканальной СМО с ожиданием (рис. 8). Если текущее

содержимое МКУ с именем STO2 меньше 2, т.е. в блоке ADVANCE нахо-

дится один или ни одного транзакта, то очередной транзакт, поступа-

ющий в модель через блок GENERATE, может войти в блок ENTER и затем

в блок ADVANCE. Если же текущее содержимое МКУ равно 2, то очеред-

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

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

транзактов в блоке ADVANCE и после входа его в блок LEAVE первый из

заблокированных транзактов сможет войти в блок ENTER.

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

ENTER STO2

ADVANCE 160,FN$EXP

LEAVE STO2

TERMINATE 1

Рис. 8

К аппаратным объектам относятся также логические переключатели

  (ЛП), которые могут находиться в двух состояниях: "включено" и

"выключено". В начале моделирования все ЛП находятся в состоянии

"выключено". Отдельные переключатели могут быть установлены в на-

чальное состояние "включено" с помощью оператора INITIAL (инициали-

зировать), имеющего следующий формат:

 INITIAL LS$ имя

INITIAL LS j

Здесь имя и j - соответственно имя и номер ЛП, устанавливаемого в

начальное состояние "включено".

Для включения, выключения и инвертирования логических переклю-

чателей в процессе моделирования служит блок LOGIC (установить ЛП),

имеющий следующий формат:

 имя  LOGIC X A

В поле A указывается имя или номер ЛП. Вспомогательный операнд

X указывает вид операции, которая производится с логическим перек-

лючателем при входе транзакта в блок: S - включение, R - выключе-

ние, I - инвертирование. Например:

LOGIC S 9

LOGIC R FLAG

Логические переключатели имеют единственный СЧА с названием

LS. Значение СЧА равно 1, если ЛП включен, и 0, если он выключен.


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


Наверх