Главная
»
Информационные системы
»
Моделирование систем
»
Задание структуры системы массового обслуживания.
Задание структуры системы массового обслуживания.
Задание структуры системы массового обслуживания
Структуру СМО можно описать следующими блоками
Для создания транзактов, входящих в модель, служит блок
GENERATE (генерировать), имеющий следующий формат: имя GENERATEA,B,C,D,E .В поле A задается среднее значение интервала времени между моментами поступления в модель двух последовательных транзактов. Если этот интервал постоянен, то поле B не используется. Если же интервал поступления является случайной величиной, то в поле B указывается модификатор среднего значения.В поле C задается момент поступления в модель первого транзакт. Поле D задает общее число транзактов, которое должно быть создано блоком GENERATE. Если это поле пусто, то блок генерирует неограниченное число транзактов до завершения моделирования.В поле E задается приоритет, присваиваемый генерируемым транзактам. Для присваивания параметрам начальных значений или изменения этих значений служит блок ASSIGN (присваивать), имеющий следущий
формат:имя ASSIGN A,B,C .В поле A указывается номер или имя параметра, в который заносится значение операнда B. Если в поле A после имени (номера) параметра стоит знак + или -, то значение операнда B добавляется или вычитается из текущего содержимого параметра. В поле С может быть указано имя или номер функции-модификатора.Например, блок ASSIGN 5,0записывает в параметр с номером 5 значение0.Для записи текущего модельного времени в заданный параметр транзакта служит блок MARK (отметить), имеющий следующий формат: имя MARK A.В поле A указывается номер или имя параметра транзакта, в который заносится текущее модельное время при входе этого транзакта в блок MARK. Для изменения приоритета транзакта служит блок PRIORITY (приоритет), имеющий следующий формат: имя PRIORITY A,B.В поле A записывается новый приоритет транзакта. В поле B может содержаться ключевое слово BU, при наличии которого транзакт,вошедший в блок, помещается в списке текущих событий после всех остальных транзактов новой приоритетной группы. Для удаления транзактов из модели служит блок TERMINATE (завершить), имеющий следующий формат:имя TERMINATE A ,Значение поля A указывает, на сколько единиц уменьшается содержимое так называемого счетчика завершений при входе транзакта в данный блок TERMINATE.Начальное значение счетчика завершений устанавливается управляющим оператором START (начать), предназначенным для запуска прогона модели. Поле A этого оператора содержит начальное значение счетчика. Например, простейший сегмент модели, состоящий всего из двух блоковGENERATE и TERMINATE и приведенный на рис. 1, в совокупности
с управлящим оператором START моделирует процесс создания случайного потока транзактов, поступащих в модель со средним интервалом в 100 единиц модельного времени, и уничтожения этих транзактов. Начальное значение счетчика завершений равно 1000. Каждый транзакт,проходящий через блок TERMINATE, вычитает из счетчика единицу, и таким образом моделирование завершится, когда тысячный по счету транзакт войдет в блок TERMINATE. При этом точное значение таймера в момент завершения прогона непредсказуемо. Следовательно, в приведенном примере продолжительность прогона устанавливается не по модельному времени, а по количеству транзактов, прошедших через модель.
GENERATE 100,40
TERMINATE 1
START 1000
В моделях систем массового обслуживания заявки обслуживаются приборами (каналами) СМО в течение некоторого промежутка времени прежде, чем покинуть СМО. Для задержки транзактов на определенный отрезок модельного времени, служит блок ADVANCE (задержать), имеющий следующий формат:имя ADVANCE A,B
Операнды в полях A и B имеют тот же смысл, что и блока GENERATE. Следует отметить, что транзакты,входящие в блок ADVANCE, переводятся из списка текущих событий в список будущих событий, а по истечении вычисленного времени задержки возвращаются назад, в список текущих событий, и их продвижение по блок-схеме продолжается. Если вычисленное время задержки равно 0, то транзакт в тот же момент модельного времени переходит в следующий блок, оставаясь в списке текущих событий.
Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.