logo
Имитац

Моделирование многоканальных устройств (мку)

Многоканальное устройство (памяти) – особый объект языка для имитации разного рода накопителей, конвейеров, в которых одновременно могут находиться несколько транзактов. В отличие от одноканального устройства, для указания ёмкости (количества каналов) используется оператор описания памяти STORAGE. Как любой оператор описания он помещается между блоками SIMULATE и GENERATE. Формат оператора:

имя STORAGE А

Сначала определяется имя МКУ, А – ёмкость МКУ (количество каналов).

Блок ENTER (занять МКУ) позволяет вошедшему транзакту использовать много­канальное устройство. Транзакт может быть задержан на входе в блок, если многоканальное устройство заполнено, или имеющейся ёмкос­ти недостаточно, или устройство в данный момент недоступно. Формат записи:

ENTER A,[B]

Операнд А указывается номер или имя МКУ, определённое блоком STORAGE. В необязательном поле В содержится число занимаемых каналов. Если поле В пусто, то по умолчанию занимается од­ин канал. Одно и то же сообщение может входить в неограниченное число многоканальных устройств, а впоследствии освобождать их (или часть из них).

Блок LEAVE (покинуть устройство) имеет формат:

LEAVE A,[B]

Блок LEAVE освобождает определённое число единиц многоканаль­ного устройства, указанных в поле В. Если это поле пусто, по умолчанию предполагается равным 1. Число осво­бождаемых единиц не должно превышать текущее содержимое многоканального устройства. Транзакт не обязан освобождать столько же единиц каналов, сколько занимал. Поле А блока LEAVE определяет номер или имя многоканального ус­тройства.

Пример. Машины подъезжают на СТО с интервалом 4±2 мин. и обслуживаются у одного из 3-х свободных мастеров в течении 60±4 – 5 мин., затем покидают станцию. Можно промоделировать следующим образом.

SIMULATE

CTO STORAGE 3

GENERATE 4,2

ENTER CTO

ADVANCE 60,45

LEAVE CTO

TERMINATE