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

Метка 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 имеет следующий формат: