Блоки, относящиеся к статистической категории
Блоки, относящиеся к статистической категории
Используются два типа объектов:
- очереди
- таблицы
QUEUE A,B
Этот блок аналогичен блоку ENTER и осуществляет сбор статистики об очереди. Номер очереди в которую заносится транзакт задается в поле А. При записи нового транзакта в очередь определяется длина интервала времени, в течение которого длина очереди оставалась неизменной.
При входе транзакта в данный блок текущая длина очереди увеличивается на число единиц, указанное в поле В. Затем происходит сравнение с максимальной длиной очереди, достигнутой до этого момента времени. Если оно больше старого значения, то оно его заменяет. Кроме того, счетчик общего числа единиц прошедших через очередь увеличивается на тоже число единиц.
DEPART A,B
Аналогичен блоку LEAVE.
Поле А интерпретируется как номер очереди.
Поле В задает количество единиц на которое уменьшается длина очереди.
Рекомендуемые материалы
Моделирующая программа вычисляет длину интервала времени в течение которого транзакт находился в очереди и если длина получается равной нулю, то указанное в поле В число единиц добавляется к счетчику, регистрирующему число транзактов прошедших через блок без задержки.
QTABLE A,B,C,D
С помощью этой команды можно заносить в таблицу время пребывания транзакта в очередь.
А – номер очереди
В – начальное значение
С – шаг таблицы
D – количество шагов
Сбор статистики:
QUEUE Queue1
SEIZE 1
DEPART Queue1
ADVANCE 10
RELEASE 1
QTABLE Q1,0,5,100
TABULATE A,B
Используется для создания таблиц нескольких типов.
Для занесения информации в таблицы с помощью специального блока TABULATE необходимо с помощью QTABLE или TABLE задавать характеристики таблицы.
При входе транзакта в блок TABULATE моделирующая программа записывает в соответствующую таблицу статистическую информацию.
Поле А определяет номер этой таблицы. В поле В заносится число единиц, добавляемых к числу наблюдений того интервала, в который попадает при данном обращении аргумент. Если В == 0, то полагается В == 1.
Предусмотрено несколько режимов табулирования, которые указываются в поле А. Знак минус за величиной, указанной в поле А, указывает на то, что в таблицу заносится не само значение, а разность между значением этой величины и последним значением, занесенным в таблицу. Такой режим называется разностным.
Если в поле А стоит мнемоническое обозначение RT, то при в ходе в блок TABULATE, который связан с таблицей, именно таким образом автоматическое обращение к классу частот не производится. Вместо этого число единиц заданное в блоке TABULATE добавляется к счетчику числа входов. Поэтому при описании блока в поле D должен быть определен временной интервал.
Если в поле А стоит мнемоническое обозначение IA, то моделирующая программа определяет время, прошедшее с момента последнего обращения к этой таблице. И такая таблица представляет собой распределение промежутков времени между моментами поступления транзактов в данную точку программы.
Задача. Простейшая телефонная система имеет две линии связи. Звонки, которые приходят извне, поступают каждые 100+-60 секунд. Когда линия занята, абонент набирает номер повторно через 5+-1 минуты. Требуется осуществить табулирование распределения времени, которое необходимо каждому абоненту, чтобы установить связь и произвести разговор. Сколько времени понадобится, для реализации 200 разговоров. Продолжительность разговора 3+-1 минуты.
200 SETS STORAGE 2
210 TRANSIT TABLE M1,100,100,20
220 GENERATE 100,60
230 AGAIN GATE SNF SETS, OCCUPIED
240 ENTER SETS
250 ADVANCE 100,50
260 LEAVE SETS
270 TABULATE TRANSIT
280 TERMINATE 1
290 OCCUPIED ADVANCE 300,60
300 TRANSFER ,AGAIN
Комментарии:
200: память с именем SETS с общей емкостью 2 ед. берется для имитирования двух телефонных линий.
210: определяется таблица TRANSIT. Когда транзакт попадает в блок TABULATE, то его время прибывания в модель записывается в СЧА M1, т.е. длительность времени, отсчитанного с первого звонка абонента до тех пор пока абонент не закончит разговор.
220: транзакт, который имитирует вызов, создается каждые 100+-60 секунд.
230: блок GATE пересылает блоку с меткой OCCUPIED, когда все линии заняты. Такая ситуация возможна, когда память заполнена и абонент должен ждать, прежде чем звонить повторно.
240: если память не занята, либо не занято только одно место, то транзакт проходит через блок ENTER, занимая тем самым место в памяти. Если все места в памяти заняты, то GATE не пропускает дальше транзакт. Каждый транзакт, пришедший в блок LEAVE, имитирует вызов, который был успешно осуществлен.
Вместе с этой лекцией читают "9.3 Гражданская война в России".
250: транзакт входит в блок ADVANCE, где задерживается на продолжительность разговора.
260: когда транзакт входит в блок LEAVE, он освобождает одно место в памяти с именем SETS, т.е. происходит имитация вновь освободившейся линии.
270: TABULATE добавляет длительность проведенного разговора к гистограмме.
280: выводит транзакт из системы, после того, как разговор завершен.
290: транзакт переходит в блок ADVANCE с меткой OCCUPIED, когда он пытался и не сумел занять в памяти SETS, т.е. происходит имитация абонента, который должен подождать, прежде чем заново начать набирать номер.
300: блок TRANSFER посылает каждый транзакт в блок GATE помеченный как AGAIN. Там транзакт снова пытается занять место в памяти. Т.е. абонент пытается перезвонить.