Студентам > Курсовые > Моделирование систем и сетей связи на GPSS
Моделирование систем и сетей связи на GPSSСтраница: 5/12
тами точек функции представляет числа
натурального ряда
(1,2,3,...,n), то такую дискретную функцию с целью
экономии памяти
и машинного времени удобно определить как
1списковую числовую функ-
1цию 0(тип L).
Пусть в модели на рис. 5 заявки, моделируемые
транзактами, с
равной вероятностью 1/3 должны относиться к одному из
трех классов
(типов) 1,2 и 3, а среднее время задержки обслуживания
заявок каж-
дого типа должно составлять соответственно 70, 80 и 90
единиц мо-
дельного времени. Это может быть обеспечено способом,
показанным на
рис. 6.
В блоке ASSIGN в параметр TYPE каждого
сгенерированного тран-
закта заносится тип заявки, получаемый с помощью
дискретной функции
CLASS. Аргументом функции является генератор случайных
чисел RN1, а
координаты ее таблицы представляют собой обратную функцию
распреде-
ления дискретной случайной величины "класс
заявки" с одинаковыми
вероятностями каждого из трех значений случайной
величины.
Поле A блока ADVANCE содержит ссылку на
списковую функцию
MEAN, аргументом которой служит параметр TYPE входящих в
блок тран-
зактов. В зависимости от значений этого параметра
(типа заявки)
среднее время задержки принимает одно из трех
возможных значений
функции MEAN: 70, 80 или 90 единиц.
Ш1
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
CLASS FUNCTION RN1,D3
.333,1/.667,2/1,3
MEAN FUNCTION P$TYPE,L3
1,70/2,80/3,90
GENERATE 100,FN$EXP
ASSIGN TYPE,FN$CLASS
ADVANCE FN$MEAN,FN$EXP
TERMINATE 1
Ш1.5
Рис. 6
Следует отметить, что в данном примере можно
было бы не
использовать параметр TYPE и обойтись одной дискретной
функцией,
возвращающей с равной вероятностью одно из трех
возможных значений
среднего времени задержки. Однако использование параметров
дает не-
- 19 -
которые дополнительные возможности, которые будут
рассмотрены поз-
же.
Транзакты могут входить в модель не только
через блок
GENERATE, но и путем создания копий уже существующих
транзактов в
блоке SPLIT (расщепить), имеющем следующий формат:
1имя 0 SPLIT
A,B,C
В поле A задается число создаваемых копий исходного
транзакта
(родителя), входящего в блок SPLIT. После выхода из
блока SPLIT
транзакт-родитель направляется в следующий блок, а
все транзак-
ты-потомки поступают в блок, указанный в поле B. Если
поле B пусто,
то все копии поступают в следующий блок.
Транзакт-родитель и его потомки, выходящие из блока
SPLIT, мо-
гут быть пронумерованы в параметре, имя или номер
которого указаны
в поле C. Если у транзакта-родителя значение этого
параметра при
входе в блок SPLIT было равно k, то при выходе из блока
оно станет
равным k+1, а значения этого параметра у транзактов-потомков
ока-
жутся равными k+2, k+3 и т.д.
Например, блок
SPLIT 5,MET1,NUM
создает пять копий исходного транзакта и направляет их
в блок с
именем MET1. Транзакт-родитель и потомки нумеруются в
параметре с
именем NUM. Если, например, перед входом в блок значение
этого па-
раметра у транзакта-родителя было равно 0, то при
выходе из блока
оно станет равным 1, а у транзактов-потомков значения
параметра NUM
будут равны 2, 3, 4, 5 и 6.
2.2. Блоки, связанные с аппаратными объектами
Все примеры моделей, рассматривавшиеся выше, пока
еще не явля-
ются моделями систем массового обслуживания, так как в
них не учте-
на основная особенность СМО: конкуренция заявок на
использование
некоторых ограниченных ресурсов системы. Все транзакты,
входящие в
эти модели через блок GENERATE, немедленно получают
возможность
"обслуживания" в блоке ADVANCE, который
никогда не "отказывает"
транзактам во входе, сколько бы транзактов в нем не
находилось.
Для моделирования ограниченных ресурсов СМО в
модели должны
присутствовать аппаратные объекты: одноканальные или
многоканальные
устройства. 1Одноканальные устройства
0создаются в текущей модели при
использовании блоков SEIZE (занять) и RELEASE
(освободить), имеющих
следующий формат:
- 20 -
.
Ш1
1имя 0 SEIZE A
Ш1.5
1имя 0 1
0RELEASE A
В поле A указывается номер или имя устройства.
Если транзакт
входит в блок SEIZE, то устройство, указанное в поле A,
становится
занятым и остаётся в этом состоянии до тех пор, пока
этот же тран-
закт не пройдёт соответствующий блок RELEASE,
освобождая уст-
ройство. Если устройство, указанное в поле A блока SEIZE,
уже заня-
то каким-либо транзактом, то никакой другой транзакт не
может войти
в этот блок и остаётся в предыдущем блоке. Транзакты,
задержанные
(заблокированные) перед блоком SEIZE, остаются в списке
текущих со-
бытий и при освобождении устройства обрабатываются с
учетом приори-
тетов и очередности поступления.
Каждое устройство имеет следующие СЧА: F -
состояние уст-
ройства (0 - свободно,1 - занято); FR - коэффициент
использования в
долях 1000; FC - число занятий устройства; FT - целая
часть средне-
го времени занятия устройства.
Воспользуемся блоками SEIZE и RELEASE для
моделирования одно-
канальной СМО с ожиданием (рис. 7). Теперь блок ADVANCE
находится
между блоками SEIZE и RELEASE, моделирующими занятие и
освобождение
устройства с именем SYSTEM, и поэтому в нем может
находиться только
один транзакт. Транзакты, выходящие из блока GENERATE в
моменты за-
нятости устройства, не смогут войти в блок SEIZE и будут
оставаться
в блоке GENERATE, образуя очередь в списке текущих
событий.
Ш1
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
SEIZE SYSTEM
ADVANCE 80,FN$EXP
RELEASE SYSTEM
TERMINATE 1
Ш1.5
Рис. 7
Для моделирования 1захвата (прерывания)
0одноканального уст-
ройства вместо блоков SEIZE и RELEASE используются
соответственно
блоки PREEMPT (захватить) и RETURN (вернуть). Блок
PREEMPT имеет
следующий формат:
1имя 0 PREEMPT
A,B,C,D,E
В поле A указывается имя или номер устройства,
подлежащего
захвату. В поле B кодируется условие захвата. Если это
поле пусто,
- 21 -
то захват возникает, если обслуживаемый транзакт сам
не является
захватчиком. Если же в поле B записан операнд PR, то
захват возни-
кает, если приоритет транзакта-захватчика выше, чем
приоритет
обслуживаемого транзакта.
Поля C, D и E определяют поведение транзактов,
обслуживание
которых было прервано. Поле C указывает имя блока, в
который будет
направлен прерванный транзакт. В поле D может быть указан
номер или
имя параметра прерванного транзакта, в который
записывается время,
оставшееся этому транзакту до завершения
обслуживания на уст-
ройстве. При отсутствии операнда в поле E прерванный
транзакт сох-
раняет право на автоматическое восстановление на
устройстве по
окончании захвата. Если же в поле E указан операнд RE,
то транзакт
теряет такое право.
Блок RETURN имеет единственный операнд A,
содержащий имя или
номер устройства, подлежащего освобождению от захвата.
Блоки PREEMPT и RETURN могут быть использованы для
моделирова-
ния СМО с абсолютными приоритетами. В простейших случаях,
при одном
уровне захвата, в блоке PREEMPT используется
единственный операнд
A. При этом прерванный транзакт переводится симулятором
из списка
будущих событий в так называемый 1список прерываний
0устройства, а по
окончании захвата устройства возвращается в список
будущих событий
с предварительно вычисленным временем занятия устройства
для про-
должения обслуживания.
Для создания в модели 1многоканальных
устройств (МКУ) 0они долж-
ны быть предварительно определены с помощью операторов
определения
STORAGE (память), имеющих следующий формат:
1имя 0 STORAGE A
Здесь 1имя - 0имя МКУ, используемое для
ссылок на него; A - емкость
(количество каналов обслуживания) МКУ, задаваемая
константой.
Для занятия и освобождения каналов обслуживания МКУ
использу-
ется пара блоков ENTER (войти) и LEAVE (покинуть),
имеющих следую-
щий формат:
Ш1
1имя 0 ENTER A,B
Ш1.5
1имя 0 LEAVE A,B
В поле A указывается номер или имя МКУ, в поле B
1- 0число кана-
лов МКУ, занимаемых при входе в блок ENTER или
освобождаемых при
входе в блок LEAVE. Обычно поле B пусто, и в этом случае
по умолча-
нию занимается или освобождается один канал.
При входе транзакта в блок ENTER текущее содержимое
МКУ увели-
чивается на число единиц, указанное в поле B 1.
0Если свободная ем-
кость МКУ меньше значения поля B, то транзакт не может
войти в блок
- 22 -
ENTER и остается в предыдущем блоке, образуя очередь в
списке теку-
щих событий.
При входе транзакта в блок LEAVE текущее содержимое
МКУ умень-
шается на число единиц, указанное в поле B. Не обязательно
освобож-
|