
Му к лабам / GPSS - Лабораторная работа 3
.doc
Имитационное моделирование
Моделирование приоритетных систем с пуассоновскими потоками заявок
Цель работы: изучение средств GPSS для моделирования и исследование характеристик моделей приоритетного обслуживания, исследование Пуассоновских потоков событий, оценка точности моделирования.
Краткие сведения
Поток событий, наступающих одно за другим в случайные моменты времени, является Пуассоновским простейшим, если вероятность появления события К за время Т определяется законом Пуассона. Время Т между двумя событиями в Пуассоновском потоке распределено по экспоненциальному распределению интервалов, соответствующих появлению очередного события.
Рассмотрим систему, состоящую из одного обслуживающего прибора (им может быть процессор ЭВМ) с многомерным потоком заявок на входе. Преимущество при обслуживании заявок одного потока над заявками другого называется приоритетом. Различают три стратегии приоритетного обслуживания: бесприоритетная, с относительными приоритетами и абсолютными приоритетами.
При бесприоритетном (или равном у всех заявок приоритетом) обслуживании заявки всех потоков поступают в конец общей очереди. После завершения обслуживания заявки в приборе из очереди выбирается заявка, поступившая раньше других (первая в очереди).
Если после завершения обслуживания очередной заявки следующей выбирается заявка с самым высоким приоритетом, (приоритет учитывается только в момент загрузки обслуживающего аппарата) соответствующая дисциплина обслуживания называется с относительным приоритетом.
При обслуживании заявок с абсолютными приоритетами приоритет учитывается сразу в момент поступления заявки. Если на обслуживании находится заявка с более низким приоритетом, она снимается с обслуживания, а прибор занимает поступившая заявка. Заявка, обслуживание которой было прервано, может быть затем дообслужена либо с точки прерывания либо с начала, когда будут обслужены заявки с более высокими приоритетами.
Функции в GPSS
Для реализации различных функциональных зависимостей наряду с формулами, которые записываются в выражении для переменных, используются функции. Функции часто используются для генерации случайных величин со сложным законом распределения.
В GPSS имеются два типа функций - непрерывные и дискретные. В поле А записывается правило для образования значения аргумент функции. Аргументом функции могут быть любые стандартные числовые атрибуты, а также другие функции. В поле В - тип функции и количество пар координат: "аргумент - значение функции". Непрерывная функция кодируется буквой С, дискретная - буквой D. При задании дискретной функции аппроксимация между двумя точками - значениями функции выполняется горизонтальной линией ("ступенькой"). При попадании случайного значения аргумента в интервал значение функции останется постоянным.
При задании непрерывной функции применяется кусочно-линейная аппроксимация. В этом случае, при попадании значения аргумента в интервал, значение функции вычисляется методом линейной аппроксимации, т.е. по наклонному отрезку прямой, аппроксимирующему функцию на данном интервале.
PriorityFunc FUNCTION P1,D9
300,8/350,7/400,6/450,5/500,4/550,3/600,2/650,1/700,0
RateFunc FUNCTION RN1,C5
0,0/.3,30/.5,50/.7,110/1,130
PRIORITY FN$PriorityFunc
SAVEVALUE X$RATE,FN$RateFunc
Пример:
Первая функция PriorityFunc является дискретной и имеет девять пар "аргумент - значение". Аргументом является первый параметр транзакта P1.
В зависимости от значения параметра P1 значение функции изменяется от 8 до 0. При значении параметра P1 меньше или равном 300 значение функции равно 8. При значении функции от 301 до 350 значение функции - 7. Используется функция PriorityFunc в блоке PRIORITY для задания приоритета транзакту.
Вторая функция FFF описана как непрерывная с пятью парами значений. Аргументом функции является стандартный числовой атрибут RN1 датчик равномерно распределенных случайных чисел в диапазоне (0,1). Если аргумент больше 0, но меньше или равен 0.3, то значение функции равномерно изменяется от 0 до 30. В интервале аргумента больше 0.3 до 0.5 включительно значение функции пропорционально изменяется от 30 до 50 и т.д. Функция FFF используется для присвоения значения хранимой величине RATE.
Стандартные числовые и логические атрибуты
Стандартные числовые и логические атрибуты обеспечивают доступ к характеристикам объектов модели в процессе моделирования.
Приведем наиболее используемые стандартные числовые атрибуты GPSS. Через j обозначен номер объекта или его символическое имя, которое отделяется от обозначения атрибута знаком $ .
-
Для транзактов:
-
Pj - значение j-го параметра транзакта;
-
P*j - косвенная адресация: значение j-го параметра является адресом, номером(параметра), значение которого используется; допускается конструкция СЧА*j;
-
М1 - время пребывания транзакта в системе от момента выхода из блока GENERATE до момента входа в блок MARK или время между двумя блоками MARK;
-
МРj - разность между текущим системным временем и значением параметра Pj;
-
PR - приоритет транзакта.
Пример: P1, MP7, PR, P*4, MP*2
-
Для блоков:
-
Nj - число транзактов, вошедших в блок j;
-
Wj - число транзактов, ожидающих входа в блок j.
Пример: N31, W73
-
Для накопителей:
-
Sj - количество занятых единиц емкости;
-
Rj - количество свободных единиц емкости;
-
SRj - использование накопителя (в тысячных долях);
-
SAj - средняя занятость накопителя (округленно);
-
SMj - максимальная занятость накопителя;
-
SCj - количество входов в накопитель j;
-
STj - среднее время использования накопителя транзактом.
Пример: S$DISK, R$BUFFER, SM3, SC$CHANNL
-
Для устройств:
-
Fj - статус устройства: 0- устройство j свободно, 1 - устройство j занято;
-
FRj - коэффициент использования устройства(в тысячных долях). Если устройство 1 используется 27% времени, то FR1=270;
-
FCj - количество транзактов, использовавших устройство j;
-
FTj - среднее время использования устройства одним транзактом (округленно).
Пример: FR$WERK3, FC$CPU
-
Для очередей:
-
Qj - текущая длина очереди j;
-
QAj - средняя длина очереди j;
-
QMj - максимальная длина очереди j;
-
QCj - количество входов в очередь;
-
QZj - количество "нулевых" входов в очередь;
-
QTj - среднее время пребывания транзакта в очереди(округленно);
-
QXj - среднее время пребывания транзакта в очереди, исключая "нулевые" входы (округленно).
Пример: Q$TOWRK1, QM3, QC$QUEE2
-
Для хранимых значений:
-
Xj - j-е хранимое значение формата F;
-
XHj - j-е хранимое значение формата H;
-
MXj(a,b) - элемент матрицы формата F(a- номер строки, b - номер столбца);
-
MHj(a,b) - элемент матрицы формата Н(a- номер строки, b - номер столбца).
Пример: X3, X$PRIOR, X$LOSS, MX3(2,5)
-
Для вычисляемых атрибутов:
-
FNj - значение функции j;
-
Vj - значение переменной(формулы) j.
Пример: FN7, FN$PRIOR, V3, V$LNGTH
-
Глобальные атрибуты:
-
RN1-RN8 - датчики случайных чисел. Диапазон: от 0 до 0.99999 - в аргументах функции, и [0-999] - в остальных случаях;
-
С1 - текущее системное время.
Пример
GenF 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.83/.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.0/.9997,8.0
GENERATE 50,FN$GenF,,,3
TRANSFER ,StartPoint
GENERATE 20,FN$GenF,,,2
TRANSFER ,StartPoint
GENERATE 15,FN$GenF,,,1
StartPoint QUEUE DeviceQueue
SEIZE Device
DEPART DeviceQueue
ADVANCE 10,FN$GenF
RELEASE Device
TERMINATE 1
Задание на выполнение работы
-
Изучить представленные в работе теоретические сведения и пример моделирования.
-
Исследовать и построить таблицу распределения Пуассоновского потока заявок (по аналогии с Лабораторной работой №1).
-
Исследовать характеристики систем при трех Пуассоновских процессах на входе (см. Пример) для случаев:
-
бесприоритетная система;
-
система с относительными приоритетами;
-
система с относительными приоритетами, но с раздельными очередями для каждого приоритета.
Необходимо взять за основу модель из примера, заменив в ней функцию любыми другими значениями. Значения выбираются на усмотрение студента и их должно быть не менее 20 значений (в примере их 24). Совпадения всей последовательности в нескольких вариантах не допускается, иначе вариант не будет проверяться.