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

20 Gate snf nak1,exit

Если накопитель nak1 оказывается незаполненным, то транзакты следуют к следующему по номеру блоку — к блоку ENTER, в противном случае транзакт удаляется из системы в соответствии с полем <B>, в котором задано имя EXIT блока TERMINATE без параметров.

Блоки GATE в режиме NU — устройство свободно анализируют соответствующие устройства: если устройство свободно, то транзакт направляется к следующему по номеру блоку, если устройство не свободно, то транзакты направляются к блоку, имя которого указывается в поле <B> соответствующего блока GATE в режиме NU.

Задание к примеру 1:

  • Изменить емкость накопителя от 10 до 1. Объяснить результаты моделирования.

  • Изменить поле <A> блоков ADVANCE от 3 до 10.

  • Изменить поле <A> блока GENERATE от 8 до 4 (при исходных полях <A> блоков ADVANCE).

  • Изменить количество пар точек, задаваемых в операторе FUNCTION: 15, 25, 35.

  • Написать программу для моделирования ситуации, когда транзакты поступают в устройства с равной вероятностью.

  • Для исходной программы выполнить 2-3 прогона.

СПИСКИ СИСТЕМЫ GPSS/PC

Интерпретатором GPSS/PC сообщения (транзакты) заносятся в списки, в которых они хранятся в зависимости от типа списка.

В списке текущих событий находятся сообщения, соответствующие событиям, время наступления которых меньше или равно текущему модельному времени.

Список пользователя содержит сообщения, удаленные пользователем из списка текущих событий и помещенные в список пользователя как временно неактивные. Со списком пользователя связаны блоки LINK и UNLINK.

Перевод сообщений из списка текущих событий в список пользователя осуществляется блоком LINK. Удаление сообщений из списка пользователя производится блоком UNLINK.

Пример 2. Требования поступают в систему через 202 мин. и направляются во второй канал обслуживания в течение 70 мин. По прошествии 70 мин. требования направляются на обслуживание в первый канал. Каждый из каналов производит обслуживание со временем 197 мин. Предусмотреть вывод требований в списки пользователя и их возврат на обслуживание в каналы. Первый канал обслуживает требования, 100 из которых полностью обслуживаются и выводятся из системы, а остальные требования отправляются на дообслуживание во второй канал. В первом канале обслуживание предусмотреть по дисциплине FIFO ( первым пришел, первым обслужился). Смоделировать процесс обслуживания требований и собрать статистику о работе каналов, возникающих очередях, списках пользователя.

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

Программа 2

simulate

10 generate 20,2

20 assign 13,7

30 test G c1,70,que2

40 queue 1; 1-я очередь

50 link waz1,fifo,chan1

60 chan1 seize 1; 1-е устройство с меткой chan1

70 depart 1

80 advance 19,7

90 release 1

100 unlink G waz1,chan1,1,13,6,que2

150 terminate 1

200 que2 queue 2; 2-я очередь с меткой que2

210 seize 2; 2-е устройство

220 depart 2

230 advance 19,7

240 release 2

250 terminate

start 100

end

В программе 2 два блока, распределяющие транзакты по каналам: блок TEST в режиме сравнения "больше" (G) и блок UNLINK, который удаляет транзакты из списка пользователя сначала в первое устройство, а потом во второе устройство (точнее во вторую очередь). Следует отметить, что работа блоков LINK и UNLINK в сильной степени зависит от соотношения времени генерации транзактов и их временной задержки в устройствах. Реализация достижения момента в 70 мин. достигается при введении в поле <A> блока TEST системного числового атрибута С1 — текущего значения условного модельного времени. Один блок TERMINATE отсчитывает число завершений, заданного в операторе START (START 100). Другой блок TERMINATE выводит транзакты из системы без уменьшения счетчика числа завершений (поле <A> пусто).

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