Задание на лабораторные работы (1086521), страница 15
Текст из файла (страница 15)
Блок 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 требований во втором устройстве с временем обработки 72 мин.
Программа решения примера 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 в режиме сообщений:
-
EXAMINE gr17,,chan2
В поле <A> задается имя группы (в программе gr17) для анализа принадлежности входящих транзактов к этой группе. Поле <B> пусто. В поле <C> указывается имя блока (в программе chan2 — метка второго устройства), к которому отправляются транзакты, если они не являются членами группы, заданной в поле <A>. Если в поле <A> задать имя группы gr3, то транзакты после блока EXAMINE перейдут к следующему по номеру блоку — к блоку TERMINATE под номером 350. Когда группа сообщений не определена, то входящие в блок EXAMINE транзакты будут отправляться по метке, указанной в поле <C>.
Блок EXAMINE может находиться в любом фрагменте программы, но этот фрагмент не должен быть связан со счетчиком числа завершений. В программе работа блоков под номерами 300-350 не связана с оператором START 100.
Задание к примеру 4. Произвести различный перевод транзактов во 2-е устройство с помощью блока EXAMINE и блока GENERATE. Определить предельный интервал времени, задаваемый в поле <A> блока GENERATE (под номером 300 программы 4), при котором во 2-е устройство не будет происходить передача транзактов.
Пример 5. Числовой режим блока EXAMINE. В систему поступают требования каждые 4 мин. и направляются на обработку в 1-е устройство с временем обработки 9 мин. Произвести обработку 100 требований в первом устройстве, а также, используя свойства блока EXAMINE в числовом режиме, осуществить обработку 22 требований во втором устройстве с временем обработки 72 мин. В группу под именем gr1 записать число 678, а в группу под именем gr3 записать число 67.
Перевод транзактов во 2-е устройство с помощью блока EXAMINE можно осуществлять либо по группе gr1, либо по группе gr3. Программа решения примера 5 приводится как программа 5.
Программа 5 | |
simulate 10 generate 4 20 savevalue mmm1,gn$gr1 30 join gr1,678 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,67 320 EXAMINE gr1,6778,chan2 350 terminate start 100 end |
Здесь опять подобрано поле <A> блока GENERATE под номером 300: в поле <A> установлено число 40. Формат записи блока EXAMINE в числовом режиме:
-
EXAMINE gr1,6778,chan2
В поле <A> задается имя анализируемой числовой группы (в программе группа gr1). В поле <B> задается значение, которое ищется в группе, заданной в поле <A> (в программе число 6778). В поле <C> задается метка альтернативного блока, к которому направляются транзакты, если значение поля<B> не является членом числовой группы, заданной в поле <A>. В программе число 6778 не является членом группы gr1, поэтому транзакты будут направляться к блоку по метке chan2 — во 2-е устройство под номером 200. Если значение, заданное полем <B>, входит в группу, заданную полем <A>, то вошедший транзакт в блок EXAMINE переходит к следующему по номеру блоку. Переход к следующему по номеру блоку — к блоку TERMINATE под номером 350 может произойти в двух случаях: когда в поле <A> задана группа gr1 и в поле <B> задано число 678; когда в поле <A> задана группа gr3 и в поле <B> задано число 67. В обоих случаях второе устройство использоваться не будет.
Задание к примеру 5. Проанализировать результаты моделирования по программе 5 при различных полях — <A>, <B> блока EXAMINE в числовом режиме. Отметить когда не будет происходить передача транзактов во 2-е устройство.
Лабораторная работа №10
Анализ узла телефонной связи
в системе GPSS/PC
Цель работы: моделирование работы узла телефонной связи в системе GPSS/PC. Определение операционных характеристик заданной телефонной станции как многоканальной системы массового обслуживания. Приобретение навыков построения гистограмм и экспериментальных функций распределения в системе MATLAB.
Постановка задачи.
На частном узле телефонной связи имеются 200 параллельных телефонов, 30 внутренних линий, 30 внешних линий, 8 сигнализаторов и 1 оператор. В среднем телефонные звонки длятся 150 секунд и распределены по нормальному закону со стандартным отклонением в 30 секунд. Время между поступлением внешних звонков обратно пропорционально количеству параллельных телефонов (2500 разделить на количество параллельных телефонов) и распределено по экспоненциальному закону. Время между поступлением внутренних звонков обратно пропорционально количеству свободных параллельных телефонов (1260 разделить на количество свободных параллельных телефонов плюс 1). Направление этих звонков может быть внутренним (66.6%) и внешним (33.3%).
Для звонков, поступающих с внутренних телефонов, оператор не нужен. Для внутренних звонков требуется сигнализатор и внутренняя линия, для внешних звонков — внешняя линия. При звонке 15% параллельных телефонов занято, 20% — не отвечают.
Время, требуемое для сигнализации, равно 7±2 секунд, для звонка через параллельный телефон 6±2 секунд. Звонящий слушает сигнал "занято" 4±1 секунду. Работа оператора занимает 9±3 секунды.
Необходимо смоделировать работу частного узла телефонной связи в течение 1 часа, а также:
1. Определить коэффициент использования оператора, сигнализаторов, внутренних и внешних линий, параллельных телефонов.
2. Определить количество внутренних и внешних звонков, обрабатываемых каждую минуту.
3. Определить, достаточно ли внутренних и внешних линий, сигнализаторов?
Примечание:
1) Данная задача взятая на Интернет портале
http://www.gpss.ru,
адаптирована к версии GPSS/PC v.2.
2) Значения функций оператора function сформировать самостоятельно, причем так, чтобы они были разными для каждого компьютера, где выполняется работа.
Листинг программы
SIMULATE
* МОДЕЛЬ ЧАСТНОЙ ТЕЛЕФОННОЙ СТАНЦИИ
* ЕДИНИЦА ИЗМЕРЕНИЯ ВРЕМЕНИ - СЕКУНДА
********************************************
Transit TABLE M1,0,20,40
*****************************
Extensions STORAGE 200
Extlines STORAGE 30
Intlines STORAGE 30
Signals STORAGE 8
Operator STORAGE 2
** ПАРАМЕТРЫ СИСТЕМЫ **
External FVARIABLE 2500/200;
Internal FVARIABLE 1260/(1+R$Extensions)
*******************************************************
** ФОРМИРОВАНИЕ ТАБЛИЦ КОЛИЧЕСТВА ЗВОНКОВ **
Callsext TABLE S$Extlines,0,1,20
Callsint TABLE S$Intlines,0,1,20
exp1 FUNCTION RN1,C45
0,0/0.1813,0.2/0.3297,0.4/0.4512,0.6/0.5507,0.8
0.6321,1.0/0.6988,1.2/0.7534,1.4/0.7981,1.6/0.8347,1.8
0.8647,2.0/0.8892,2.2/0.9093,2.4/0.9257,2.6/0.9392,2.8
0.9502,3.0/0.9592,3.2/0.9666,3.4/0.9727,3.6/0.9776,3.8
0.9817,4.0/0.9850,4.2/0.9877,4.4/0.9899,4.6/0.9918,4.8
0.9933,5.0/0.9945,5.2/0.9955,5.4/0.9963,5.6/0.997,5.8
.9975,6.0/0.9980,6.2/0.9983,6.4/0.9986,6.6/0.9989,6.8
0.9991,7.0/0.9993,7.2/0.9994,7.4/0.9995,7.6/0.9996,7.8
0.9997,8.0/0.9997,8.2/0.9998,8.4/0.9998,8.6/0.9998,8.8
******