Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторная работа 2.-2013.doc
Скачиваний:
40
Добавлен:
27.03.2015
Размер:
276.99 Кб
Скачать

Метка storage а

метка– имя МУ;

поле А– емкость МУ (количество устройств, входящих в МУ).

Блок ENTERимеет следующий формат записи:

Enter a,b

Блок ENTERпозволяет вошедшему сообщению использовать МУ. Сообщение может быть задержано на входе в блок, если МУ заполнено или имеющейся емкос­ти недостаточно, или МУ в данный момент недоступно.

В поле Ауказывается номер или имя МУ, куда входит сообщение.

В поле Всодержится число занимаемых единиц МУ. Еслиполе Впусто, то предполагается что занимается од­на единица. Если это значение равно нулю, то сообщение никогда не задерживается на входе, а блок рассматривается как нерабочий.

Одно и то же сообщение может входить в неограниченное число МУ, а впоследствии освобождать их (или часть из них).

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

Leave a,b

Блок LEAVEосвобождает определенное число единиц МУ.Поле АблокаLEAVEопределяет номер или имя МУ.Поле В- число освобождаемых единиц МУ. Если это поле пусто, предполагается 1. Число осво­бождаемых единиц не должно превышать текущее содержимое МУ.

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

S$<имя (или номер) устройства> - текущее число занятых каналов в МУ;

SA$<имя (или номер) устройства> - среднее число занятых каналов в МУ;

SМ$<имя (или номер) устройства> - максимальное число занятых каналов в МУ;

SR$<имя (или номер) устройства>- коэффициент использования МУ;

SC$<имя (или номер) устройства>- общее число входов;

ST$<имя (или номер) устройства>- среднее время занятости одного канала в МУ.

6. Работа с блоками передачи управления. Блок TRANSFER является основным средством, позволяющим направить сообщение к любому блоку модели. Блок TRANSFER имеет следующий формат:

Transfer a,b,c,d

Поле А задает режим выбора следующего блока, к которому должно перейти сообщение. Существуют следующие режимы работы блока TRANSFER: безусловный (пробел); статистический (.); BOTH; ALL; PICK; функция (FN); параметр (Р); подпрограмма (SBR).

Поля В и С задают возможные значения номеров следующих блоков или их положение. Использование значений описано при рассмотрении определенных режимов выбора.

Безусловный режим выбора. Если операнд А пропущен, то блок TRANSFER работает в безусловном режиме. Входящее в блок TRANSFER сообщение переходит к блоку, указанному в поле В. Если сообщение в этот блок войти не может, попытка направить сообщение к какому-либо другому блоку не производится. Например,

TRANSFER ,NEXT

NEXT SEIZE 1

Сообщения, входящие в блок TRANSFER, сразу переходят к блоку NEXT.

Статистический режим выбора. Когда операнд А не является зарезервированным словом, блок TRANSFER работает в статистическом режиме выбора.

Значение аргумента, записанного после точки (.) в поле А, рассматривается как трехзначное число, показывающее (в частях от тысячи), какой процент входящих в блок сообщений следует направить к блоку, указанному в поле С. Остальные сообщения направляются к блоку, указанному в поле В, или к следующему по номеру блоку, если операнд В пропущен. Например,

TRANSFER .7, BLK1, BLK2

Из общего числа сообщений, входящих в блок TRANSFER, в среднем 0.7 будут пытаться войти в блок с меткой BLK2; остальные 0.3 будут пытаться войти в блок с меткой BLK1.

Режим BOTH. В поле А стоит зарезервированное слово ВOTH. В этом режиме каждое входящее сообщение сначала пытается перейти к блоку, указанному в поле В. Если это сделать не удается, сообщение пытается перейти к блоку, указанному в поле С. Если сообщение не сможет перейти ни к тому, ни к другому блоку, оно остается в блоке TRANSFER и будет повторять в том порядке попытки перехода при каждом просмотре списка текущих событий, до тех пор, пока не сможет выйти из блока TRANSFER. Ниже приведен фрагмент программы, иллюстрирующий работу режима ВOTH:

TRANSFER BOTH, TRY1, TRY2

TRY1 SEIZE 1

TRY2 SEIZE 2

Режим ALL. В поле А стоит зарезервированное слово ALL. В этом режиме каждое входящее сообщение прежде всего пытается перейти к блоку, указанному в поле В. Если сообщение в этот блок войти не может, то последовательно проверяются все блоки в определенном ряду в поисках первого, способного принять это сообщение, включая последний блок, указанный операндом С. Номер каждого проверяемого блока вычисляется как сумма номера предыдущего блока и шага, заданного операндом D. Приведем пример программы:

TRANSFER ALL, NEXT1, NEXT3, 3

NEXT1 SEIZE 1

NEXT2 SEIZE 2

NEXT3 SEIZE 3

В этой программе сообщение сначала пытается перейти к блоку с меткой NEXT1, в случае неудачи к блоку с меткой NEXT2. Если сообщение войти в блок с меткой NEXT2 не может, то пытается перейти к блоку с меткой NEXT3. Между блоками NEXT находится три блока (в поле D задано 3). Если сообщение не может перейти ни к одному из указанных блоков, оно остается в блоке TRANSFER и повторяет описанную выше процедуру при каждом просмотре списка текущих событий до тех пор, пока не выйдет из блока TRANSFER.

Условными являются только режимы BOTH и ALL. Во всех остальных режимах выбор следующего блока производится в момент входа сообщения в блок TRANSFER.

Режим PICK. В поле А стоит зарезервированное слово PICK. Этот режим аналогичен режиму ALL за исключением того, что блоки, указанные в полях В и С выбираются случайным образом с одинаковой вероятностью. Сообщение пытается перейти только к выбранному для него блоку. Если сообщение не может сразу перейти к выбранному блоку, то оно будет ждать в блоке TRANSFER до тех пор, пока не будет снято блокирующее условие. Например,

GENERATE 5,2

TRANSFER PICK, 3,5,1

TRANSFER ,NEXT1

TRANSFER ,NEXT2

TRANSFER ,NEXT3

NEXT1 SEIZE1

NEXT2 SEIZE2

NEXT3 SEIZE3

Сообщение, вошедшее в первый блок TRANSFER, пытается войти в один из трех блоков: NEXT1; NEXT2; NEXT3 с равной вероятностью: 1/3. В полях В и С блока TRANSFER заданы номера строк, на которые передается управление; в поле D – шаг.

Помимо блока TRANSFER, потоком сообщений может управлять блок TEST. Блок TEST имеет следующий формат: