Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
020879_C5238_shpory_po_modelirovaniyu_sistem.docx
Скачиваний:
14
Добавлен:
17.03.2015
Размер:
1.45 Mб
Скачать

52. Gpss. Перевод оку / мку в недоступное состояние и восстановление доступности.

Для мод-я неисправностей устройств (ОКУ и МКУ) и других ситуаций в GPSS предусмотрены блоки, реализующие недоступность и доступность устройств. При использовании этих блоков статистика устройств не искажается.

Перевод в недоступное и доступное состояние:

Для ОКУ:

FUNAVАIL A, [B], [C], [D], [E], [F], [G], [H]

Блок делает недост-м ОКУ с именем или номером, указываемым операндом А.

Операнд В – режим обработки транзакта занимающего ОКУ во время недост-ти:

- СО – режим продолжения – продолжить обработку транзакта во время недоступности;

- RE – режим удаления – прервать и переместить транзакт в С

- по умолчанию – прервать и переместить в список прерываний.

Оп-д С – метка блока, куда будет перемещен транзакт в режиме RE.

Оп-д D – номер или имя парам-ра транзакта, занимавшего ОКУ.

Оп-д Е – режим обработки тр-ов, находящихся в списке прерываний:

- СО – режим продолжения: продолжить запланированные транзакты из из списка прерываний

- RE – режим удаления: удалить и направить в блок F.

- по умолчанию – остановить ранее прерванные транзакты и запретить занимать во время недост-ти ОКУ.

Оп-д F – метка блока, к к-рому будт направлены транзакты при режиме RE.

Оп-д G – режим обр-ки тр-ов, находящихся в к моменту перевода ОКУ а недост-ое сост. в списке отложенных прерываний, т.е. ожидающих выполнения с прерыванием:

- СО – режим продолжения;

- RE – удаление, перемещение в Н;

- по умолчанию – аналогично.

Перевод в доступное состояние: FAVAIL A

А – ОКУ, которое переводиться в доступное состояние.

Для МКУ:

Перевод в недост. сост.: SUNAVAIL A

Перевод в дост. сост.: SAVAIL A

А – имя или номер МКУ переходящее в другое состояние. При переходе МКУ в состояние недост-ти, транзакты находящиеся в нем продолжают обслуживаться, а которые пытались занять МКУ помещаются в список задержки МКУ.

53. Gpss. Косвенная адресация. Пример косвенной адресации.

Идея косвенной адресации состоит в том, что каждый транзакт в некотором своем параметре содержит номер того или иного объекта, а в операндах блоков, адресующихся к объектам, записывается ссылка на этот параметр транзакта. При косвенной адресации СЧА определяются как СЧА*параметр. Это означает следующее:

- СЧА*j, j – номер параметра активного транзакта (положительное целое число), содержащего номер нужного блока;

- СЧА*имя, имя – имя параметра активного транзакта, содержащего номер нужного блока.

Например, Q*3 – текущее значение длины очереди, номер которой является значением 3 параметра 3 активного транзакта, SR*Rem – коэффициент использования памяти, номер которой содержится в параметре с именем Rem активного транзакта.

Пример:

SEIZE P*X1

Занять ОКУ, номер которого содержится в параметре; номер этого параметра определяется значением ячейки Х1.

SAVEVALUE 1, X*P2

Поместить в ячейку с номером 1, значение содержащееся в ячейке, номер которой определяется значением параметра 2 транзакта.

54. Gpss. Работа с копиями транзактов. Синхронизация движения транзактов.

Работа с копиями транзактов. Кроме блока GENERATE, для создания транзактов используется блок SPLIT(расщепить). Но, в отличи от GENERATE, блок SPLIT не создает самостоятельных транзактов, а лишь генерирует заданное число копий вход. транзакта.

SPLIT A, [B], C

А – число создаваемых копий одного семейства.

B – номер блока, к к-рому переходят копии транзакта. Значение операнда В вычисляется для каждой копии отдельно. Порождающий транзакт направляется в след блок. Порождающий транзакт и его копии являются равноправными и могут проходить снова через любое кол-во блоков SPLIT.

C – может быть задан номер параметра, используемого для присвоения копиям последовательных номеров.

Синхронизация движения транзактов.

Блок ASSEMBLE (объединить) используется для объединения заданного числа транзактов, принадлежащих одному семейству, в один транзакт. После сборки из блока ASSEBLE выходит только один транзакт, к-рый переходит в след по номеру блок.

ASSEMBLE А

А – число транзактов одного семейства, участвующих в сборке.

Блок GATHER(собрать) предназаначен для сбора заданного кол-ва транзактов одного семейства, движущихся по одному и тому же пути. Отличие от блока ASSEMBLE состоит в том, что в нем транзакты не уничтожаются, а после сбора все направляются к след блоку.

GATHER А

А – задает число транзактов, принадлежащих к одному семейству, которое нужно собрать при их движении по одному и тому же пути.

Блок MATCH (синхронизировать) предназначен для синхронизации движения транзактов одного семейства, продвигающимся по разным путям. Для синхронизации необходимы два блока MATCH, находящихся в соответствующих местах модели и называемых сопряженными.

Name MATCH A

А – указывается метка или номер сопряженного ему блока.