Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мим.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.24 Mб
Скачать

120 Remove gr1,,p23,,,chan2

Блок REMOVE в числовом режиме удаляет числовые значения из соответствующих групп.

В поле <A> указывается имя группы (в программе gr1), из которой удаляется числовое значение. В числовом режиме поле <B> пусто. В поле <C> задается число (числовое значение параметра p23), входящее в числовую группу (в программе группа gr1). Поля <D>, <E> пусты. В поле <F> задается метка блока (в программе chan2), в который отправляются часть транзактов, вошедших в блок REMOVE. В некоторых версиях GPSS использование поля <F> может быть только при выполнении ряда условий по отношению рассматриваемой группы.

140 Remove gr1,,21

Блок REMOVE работает только в режиме удаления числа 21 из числовой группы gr1.

Задание к примеру 2. Произвести удаление из числовой группы блоком REMOVE различных числовых значений с использованием поля <F> (передача в устройство 2 по метке chan2). Попытаться удалить число, не принадлежащее какой-либо числовой группе. Установить блок REMOVE формата 120 (программы 2 с номером 120) в отдельной части программы с независимым блоком GENERATE.

Пример 3. Простейший режим сообщений блока REMOVE. В систему поступают требования каждые 4 мин. и направляются на обработку в 1-е устройство с временем обработки 9 мин. Произвести обработку 100 требований в первом устройстве, а также через группу сообщений осуществить обработку 22 требований.

Для решения примера в программе следует предусмотреть блок создания группы сообщений — блок JOIN, а также блок удаления сообщений из группы сообщений — блок REMOVE.

Программа решения примера 3 приводится как программа 3.

Программа 3

simulate

10 generate 4

20 savevalue mmm1,gt$gr2

30 join gr2

40 remove gr2,23,,,,chan2

50 chan1 seize 1

60 advance 9

70 release 1

80 savevalue mmm2,gt$gr2

100 terminate 1

200 chan2 seize 2

210 advance 3

220 release 2

230 savevalue mmm3,gt$gr2

250 exit terminate

start 100

end

В программе предусмотрены блоки SAVEVALUE для сохранения информации о состоянии группы сообщений. Количество транзактов, отправляемых во 2-е устройство, определяется полем <B> блока REMOVE, в котором следует записать число на единицу больше требуемого.

Формат записи блока REMOVE:

40 REMOVE <A>,<B>, , , ,<F>

В поле <A> задается имя группы (gr2), которая определяется блоком под номером 30 — JOIN. В поле <B> задается число (в программе 23), по которому происходит удаление транзактов из группы и отправление их в устройство по метке. Поля <C>,<D>,<E> не используются. В поле <F> указывается метка блока, в который отправляются транзакты из группы сообщений (в программе chan2). Таким образом, с помощью блока REMOVE можно необходимое количество транзактов отправлять по метке в заданную точку программы.

Работа блока REMOVE предусматривает также вспомогательное поле <X>, в котором задается условие сравнения стандартных числовых атрибутов в полях <D> и <E>. Здесь укажем, что приведенная программа работает без изменения, если условие сравнения будет соответствовать отношению числовых значений полей <D> и <E>.

Задание к примеру 3. Проверить режим сообщений блока REMOVE для различных чисел. Определить минимально задаваемое число в поле <B>, когда еще будет осуществляться перевод транзактов во 2-е устройство.

Пример 4. Режим сообщений блока EXAMINE. В систему поступают требования каждые 4 мин. и направляются на обработку в 1-е устройство с временем обработки 9 мин. Произвести обработку 100 требований в первом устройстве, а также, используя свойства блока EXAMINE в режиме сообщений, осуществить обработку 22 требований во втором устройстве с временем обработки 72 мин.

Программа решения примера 4 приводится как программа 4.

Программа 4

simulate

10 generate 4

20 savevalue mmm1,gt$gr2

30 join gr2

40 chan1 seize 1

50 advance 9

60 release 1

100 terminate 1

200 chan2 seize 2

210 advance 7,2

220 release 2

250 terminate

300 generate 40

310 join gr3

320 EXAMINE gr17,,chan2

350 terminate

start 100

end

Блок EXAMINE переводит 22 транзакта (см. файл стандартного отчета) во 2-е устройство по метке chan2. Заданное количество транзактов — 22 подобрано с помощью блока GENERATE 40 (под номером 300). Формат записи блока EXAMINE в режиме сообщений: