Unlink chain,can,1 terminate

Транзакты, выходящие из блока GENERATE, поступают в блок QUEUE. После внесения соответствующих изменений в статис гаку, собираемую по данной очереди, транзакт входит в блок LINK. Так как в блоке LINK существует альтернативный выход, проверяется состояние индикатора списка CHAIN (имя которого опгеделя:чтся операндом А блока LINK). Если индикатор этого списка установлен в «0», транзакт немедленно устанавливает его в «1» и переходит к альтернативному блоку, то есть в данной модели - к блоку SEIZE. Если индикатор списка установлен в «1», то транзакт, входящий в блок LINK, без дальнейших проверок заносится в СП CHAIN. Так как в операнде В задан алгоритм FIFO, транзакт помещается в конец этого СП.

Отметим, что транзакты, занесенные в СП, не проходят даль­нейшей обработки до тех пор, пока они не будут удалены из списка Другими транзактами, входящими в блок UNLINK. После удаления из СП транзакт поступает к блоку, указанному в операнде В блока UNLINK.

Когда транзакт входит в блок SEIZE, проводится корректировка статистики, связанной с заданным в этом блоке устройством. Потом транзакт переходит к блоку DEPART, где корректируется статистика очереди, а потом переходит к блоку ADVANCE, в котором он остает­ся на протяжении времени, определяемом операндами блока AD­VANCE.

После выхода из блока ADVANCE транзакт входит в блок RELEASE. Освобождается указанное в блоке устройство и коррек­тируется связанная с ним статистика. После этого транзакт переме­щается к блоку UNLINK.

При перемещении транзакта к блоку UNLINK просматривается СП, имя которого задано в операнде А:

1) если СП пуст, то есть CH$CHAIN =0, то индикатор списка устанавливается в «0» и транзакт переходит к следующему по номеру блоку, то есть к TERMINATE;

2) если СП не пуст, то есть CH$CHAIN ≠ 0, то первый транзакт этого списка удаляется, помещается в СТС и направляется к блоку, указанному в операнде В блока UNLINK (в данной модели это блок SEIZE, помеченный меткой CAN). А транзакт, вошедший в блок UNLINK, перемещается к блоку TERMINATE.

Рассмотренная модель не сложна, но хорошо иллюстрирует не­сколько важных моментов:

1) в этой системе активными могут быть только те транзакты, которые выходят из блока GENERATE, или тот транзакт, который в данный момент занимает устройство. Все остальные транзакты нахо­дятся в СП CHAIN;

2) так как все задержанные транзакты, то есть транзакты, нахо­дящиеся в очереди к устройству FC_1, будут помещены в СП CHAIN, интерпретатор не будет тратить время на изменение индика­торов задержки всех этих транзактов при каждом изменении положе­ния устройства. Экономия времени зависит от длины очереди: чем длиннее очередь, тем больше времени будет сэкономлено благодаря блокам LINK - UNLINK, которые используются для управления оче­редями к разным объектам;

3) пользователь имеет возможность динамически формировать свои списки независимо от списков задержки, которые поддержива­ются системой GPSS;

4) использование блоков LINK - UNLINK дает возможность синхронизировать движение разных транзактов в модели, например, задерживать в списке транзакты до тех пор, пока какой-либо другой транзакт не выведет их из списка с помощью блока UNLINK.

Пример 4.56

Рассмотрим работу мультиплексора (см. главу 5), который под­ключен к высокоскоростному каналу (ВК) связи и работает в режиме разделения времени с четырьмя низкоскоростными каналами (НК), опрашивая их циклически. На один опрос каждого из НК мультип­лексор тратит 50 мс, время переключения между НК - 10 мс. Если в опрашиваемом НК есть сообщение, оно передается по ВК в течение 500+60 мс. За один опрос передается одно сообщение. Время возник­новения сообщений в четырех НК равномерно распределено в интер­вале 1500±500мс, и сообщения равновероятно могут появляться на любом канале.

Необходимо определить загрузку ВК при передаче по нему 1000 сообщений.

Программа:

* За основу взята программа из книги Дж. Мартина

* «Системный анализ передачи данных», т. 2


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: