АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Блоки, изменяющие порядок прохождения блоков сообщениями

Читайте также:
  1. I. Порядок медицинского отбора и направления на санаторно-курортное лечение взрослых больных (кроме больных туберкулезом)
  2. III Общий порядок перемещения товаров через таможенную границу Таможенного союза
  3. V. ПОРЯДОК ОФОРМЛЕНИЯ РЕЗУЛЬТАТОВ ИНСПЕКТИРОВАНИЯ МЕСТ ПРИНУДИТЕЛЬНОГО СОДЕРЖАНИЯ
  4. А Порядок работы на станции при тахеометрической съемке. Вычислительная и графическая обработка результатов съемки.
  5. Административный порядок предоставления земельных участков, находящихся в государственной собственности.
  6. Акционерное общество как юридическое лицо: порядок образования, правовое положение
  7. Аудит учета производственных запасов. Порядок проведения инвентаризации материальных ценностей
  8. Аукционный порядок распределения земельных участков.
  9. Блоки, ориентированные на сообщения
  10. Борьба развивающихся стран за новый международный экономический порядок
  11. Брак: понятие, порядок и условия заключения и прекращения.

Обычно интерпретатор пытается продвинуть сообщение к следую­щему по номеру блоку. Однако существуют блоки, которые позволяют изменять номер следующего блока.

4.3.4.1. Блок TRANSFER

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

TRANSFER [<A>],[<B>],[<C>],[<D>]

Блок TRANSFER является основным средством, позволяющим напра­вить сообщение к любому блоку модели.

Поле А задает режим выбора следующего блока, к которому долж­но перейти сообщение.

Существуют следующие режимы работы блока TRANSFER:

- безусловный (пробел);

- статистический (.);

- BOTH.

Кроме того, операнд А может быть дробным числом, именем, положительным целым числом или СЧА.

Поля В и С задают возможные значения номеров следующих блоков или их положение. Использование значений описано при рассмотрении определенных режимов выбора. Операнды могут быть именем, положи­тельным целым числом или СЧА. Если поле В пусто, ассемблер записы­вает в нем номер блока, следующего за блоком TRANSFER.

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

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

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

Пример: BCD TRANSFER.709,BLK1,BLK2

Из общего числа сообщений, входящих в блок BCD, в среднем 0,709 будут пытаться войти в блок BLK2. Остальные 0,291 будут пытать­ся войти в блок BLK1.

Режим BOTH. Если в поле А стоит зарезервированное слово ВOTH, блок TRANSFER работает в режиме BOTH.

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

 

4.3.4.2. Блок TEST

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

TEST <X> <A>,<B>,[<C>]

Блок TEST определяет номер следующего блока для вошедшего в него сообщения в зависимости от того, выполняется требуемое условие или нет. Блок управляет потоком сообщений, проверяя выполнение ал­гебраических отношений между значениями СЧА, заданных в полях А и В.

Операнды А и В – сравниваемые величины, которые могут быть именем, любым целым числом или СЧА.

Если в полях А и В заданы СЧА, то они должны быть записаны как СЧАj (например: очередь Q1). Необходимо присвоить им номера в начале программы с помощью оператора EQU.

Во вспомогательном поле операции оператора описания блока TEST <X> – записывается один из шести условных операторов:

- 'L' – меньше. Отношение истинное, если значение аргумента поля А меньше значения аргумента поля В;

- 'LE' – меньше или равно. Отношение истинное, если значение аргумента поля А меньше или равно значению аргумента поля В;

- 'E' – равно. Отношение истинное, если значения обоих аргу­ментов равны;

- 'NE' – не равно. Отношение истинное, если значения аргумен­тов полей А и В не равны;

- 'G' – больше. Отношение истинное, если значение аргумента поля А больше значения аргумента поля В;

- 'GE' – больше или равно. Отношение истинное, если значение аргумента поля А больше или равно значению аргумента поля В.

Если отношение СЧА, заданных в полях А и В, истинно, сообще­ние переходит к следующему блоку. Если отношение ложно, сообщение переходит к блоку, номер которого задан полем С.

C – номер блока для входящего сообщения, если отношение вели­чин, заданных в полях А и В, ложно. Операнд C может быть именем, положительным целым числом или СЧА.

Блок TEST может работать в двух режимах:

1) в режиме безусловного входа. Если в поле С задан номер следующего блока, сообщения никогда не задерживаются на входе блока TEST. Если заданное в блоке TEST отношение истинно, то сообщение пытается перейти к следующему по номеру блоку. Если отношение лож­но, сообщение пытается перейти к блоку, заданному полем С. Выбор следующего блока производится только один раз (в момент входа сооб­щения в блок TEST);

2) в режиме условного входа. Если поле С блока TEST пусто (т.е. не указан альтернативный выход), сообщения не могут войти в блок TEST до тех пор, пока условия не изменятся таким образом, что отношение будет истинно. Если отношение истинно, сообщение входит в блок TEST и пытается перейти к следующему по номеру блоку.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)