Операторы, имитирующие работу аппаратной категории объектов.

В аппаратную категорию входят объекты трёх типов: устройства (ОКУ), памяти (МКУ) и логические ключи.

Устройство – это объект, который может находиться в одном из двух состояний: либо быть свободным, либо занятым только одним транзактом. Изменять состояние устройства можно с помощью блоков (см. Таблица 1.5).

Таблица 1.6 Операторы, изменяющие состояние устройства

Блок Описание
SEIZE A Занятие устройства
RELEASE A Освобождение устройства
PREEMPT A,B,C,D,E Занятие устройства по приоритету
RETURN A Освобождение устройства по приоритету
FUNAVAIL A,B,C,D,E,F,G,H Установление устройства в режим недоступности
FAVAIL A Установление устройства в режим доступности

В операнде А всех указанных выше блоков указывается идентификатор устройства, который может быть именем или номером с прямой или косвенной адресацией.

Блок занятия по приоритету относится к сложным блокам. В операнде В можно указать приоритетный режим PR. В операнде С можно указать метку, к которой направляется транзакт, обслуживание которого было прервано транзактом более высокого приоритета. В этом случае в операнде Е обязательно записывается символ RE. В операнде D можно указать идентификатор параметра, в который будет записано время, оставшееся на дообслуживание прерываемого транзакта. Если операнды С и Е «нулевые» (не заполнены), то транзакт, обслуживание которого прервано, будет обслужен после завершения обслуживания прервашего его транзакта.

Блок FUNAVAIL. Операнды B, C, D устанавливают режим для прерываемых транзактов. Операнды E, F – для транзактов, прерванных на данном устройстве ранее. Операнды G, H – для транзактов, ожидающих освобождения устройства. Если эти три категории транзактов не претендуют на дообслуживание после восстановления режима доступности, то в операндах B, E, H записываются символы RE (для каждой категории, независимо от других). В этом случае в операндах C, F, H указываются метки, к которым направляются данные категории транзактов. В операнде D можно указать идентификатор параметра, в который будет записано время, оставшееся на дообслуживание для прерываемого транзакта. Тысячилетие составление

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

Состояние памяти могут менять четыре блока (см. Таблица 1.6).

Таблица 1.7 Операторы, изменяющие состояние памяти

Блок Описание
ENTER A,B Занятие памяти
LEAVE A,B Освобождение памяти
SUNAVAIL A Установление памяти в режим недоступности
SAVAIL A Установление памяти в режим доступности

В операнде А всех блоков указывается идентификатор памяти. В операнде В первых двух блоков можно указать количество занимаемых и освобождаемых мест памяти одним транзактом. По умолчанию принимается один транзакт. Для использования памяти требуется обязательно её определить командой NAME STORAGE A, в поле метки которой указывается имя памяти, а в операнде А количество мест в памяти. Если количество мест не ограничено, то в операнде А записывается какое-то большое число, например, 1000000.

Имитация процессов коммутации в GPSS выполняется с использованием логических ключей, имеющих два состояния «Включено» – «Выключено». Работа логических ключей отображается блоком LOGIC r A, где А – имя логического ключа, r – внутренний оператор, принимающий значения I – переключить, R – выключить, S – включить. При входе транзакта в блок LOGIC происходит срабатывание соответствующего ключа. Ключи не имеют СЧА.

Примеры использования описанных выше блоков приведены в таблице 1.8.


 

Таблица 1.8 Примеры использования операторов, имитирующих работу аппаратной категории объектов

Пример использования оператора Комментарии
SEIZE PK Занятие устройства с именем PK
SEIZE P$NUMBER_OF_FACILITY Занятие устройства, номер которого записан в параметре NUMBER_OF_FACILITY
RELEASE P$NUMBER_OF_FACILITY Освобождение устройства, номер которого записан в параметре NUMBER_OF_FACILITY
PREEMPT FACILITY_1 Когда транзакт входит в блок PREEMPT, ему предоставляется право занять устройство, если оно в настоящий момент не занято с вытеснением
PREEMPT FACILITY_1,, FACILITY_2,101,RE Транзакт может в блок и занять устройство, если устройство еще не занято вытесняющим транзактом. Приоритеты транзактов игнорируются. Когда транзакт вытесняется все оставшееся в блоке ADVANCE время записывается в параметр 101 вытесненного транзакта. Вытесненный транзакт исключается из состязания за устройство и направляется к блоку с меткой FACILITY_2
PREEMPT FACILITY_1,PR, FACILITY_2 Транзакт может зайти в блок и занять устройство, если устройство не занято транзактом с равным или более высоким приоритетом. Любой вытесненный транзакт не исключается из состязания за устройство. Вытесненные транзакты могут продолжать двигаться в процессе моделирования и в данном случае направляются к блоку с меткой FACILITY_2
RETURN FACILITY_1 Если транзакт, занимающий устройство входит в блок RETURN, он освобождает данное устройство
FUNAVAIL  
FUNAVAIL  
ENTER STORAGE_1,2 Занятие в памяти двух мест одним транзактом
LEAVE STORAGE_1б2 Освобождение в памяти двух мест одним транзактом

 


 








Дата добавления: 2015-01-13; просмотров: 861;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.