Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лабораторных работ 2003.docx
Скачиваний:
77
Добавлен:
12.03.2015
Размер:
8.67 Mб
Скачать
    1. Операторы, имитирующие работу аппаратной категории объектов.

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

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

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

Блок

Описание

1

SEIZEA

Занятие устройства

2

RELEASEA

Освобождение устройства

3

PREEMPT A,B,C,D,E

Занятие устройства по приоритету

4

RETURN A

Освобождение устройства по приоритету

5

FUNAVAIL A,B,C,D,E,F,G,H

Установление устройства в режим недоступности

6

FAVAILA

Установление устройства в режим доступности

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

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

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

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

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

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

Блок

Описание

1

ENTER A,B

Занятие памяти

2

LEAVE A,B

Освобождение памяти

3

SUNAVAILA

Установление памяти в режим недоступности

4

SAVAILA

Установление памяти в режим доступности

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

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

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

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

Пример использования оператора

Комментарии

SEIZEPK

Занятие устройства с именем PK

SEIZE P$NUMBER_OF_FACILITY

Занятие устройства, номер которого записан в параметре NUMBER_OF_FACILITY

RELEASE P$NUMBER_OF_FACILITY

Освобождение устройства, номер которого записан в параметре NUMBER_OF_FACILITY

PREEMPTFACILITY_1

Когда транзакт входит в блок PREEMPT, ему предоставляется право занять устройство, если оно в настоящий момент не занято с вытеснением

PREEMPTFACILITY_1,, FACILITY_2,101,RE

Транзакт может в блок и занять устройство, если устройство еще не занято вытесняющим транзактом. Приоритеты транзактов игнорируются. Когда транзакт вытесняется все оставшееся в блоке ADVANCEвремя записывается в параметр 101 вытесненного транзакта. Вытесненный транзакт исключается из состязания за устройство и направляется к блоку с меткойFACILITY_2

PREEMPTFACILITY_1,PR, FACILITY_2

Транзакт может зайти в блок и занять устройство, если устройство не занято транзактом с равным или более высоким приоритетом. Любой вытесненный транзакт не исключается из состязания за устройство. Вытесненные транзакты могут продолжать двигаться в процессе моделирования и в данном случае направляются к блоку с меткой FACILITY_2

RETURNFACILITY_1

Если транзакт, занимающий устройство входит в блок RETURN, он освобождает данное устройство

FUNAVAIL

FUNAVAIL

ENTERSTORAGE_1,2

Занятие в памяти двух мест одним транзактом

LEAVESTORAGE_1б2

Освобождение в памяти двух мест одним транзактом