Скачиваний:
85
Добавлен:
05.04.2013
Размер:
76.29 Кб
Скачать

Моделирование вычислительных систем

Лабораторные работы3

Имитационное моделирование

Моделирование приоритетных систем с пуассоновскими потоками заявок

Цель работы: изучение средств 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

В поле метки пишется номер или имя функции. В поле операции - FUNCTION. В каждой паре аргумент отделяется запятой от значения функции. Каждая пара отделяется друг от друга косой чертой (/).

Пример:

Первая функция 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 обозначен номер объекта или его символическое имя, которое отделяется от обозначения атрибута знаком $ .

  1. Для транзактов:

  • Pj - значение j-го параметра транзакта;

  • P*j - косвенная адресация: значение j-го параметра является адресом, номером(параметра), значение которого используется; допускается конструкция СЧА*j;

  • М1 - время пребывания транзакта в системе от момента выхода из блока GENERATE до момента входа в блок MARK или время между двумя блоками MARK;

  • МРj - разность между текущим системным временем и значением параметра Pj;

  • PR - приоритет транзакта.

Пример: P1, MP7, PR, P*4, MP*2

  1. Для блоков:

  • Nj - число транзактов, вошедших в блок j;

  • Wj - число транзактов, ожидающих входа в блок j.

Пример: N31, W73

  1. Для накопителей:

  • Sj - количество занятых единиц емкости;

  • Rj - количество свободных единиц емкости;

  • SRj - использование накопителя (в тысячных долях);

  • SAj - средняя занятость накопителя (округленно);

  • SMj - максимальная занятость накопителя;

  • SCj - количество входов в накопитель j;

  • STj - среднее время использования накопителя транзактом.

Пример: S$DISK, R$BUFFER, SM3, SC$CHANNL

  1. Для устройств:

  • Fj - статус устройства: 0- устройство j свободно, 1 - устройство j занято;

  • FRj - коэффициент использования устройства(в тысячных долях). Если устройство 1 используется 27% времени, то FR1=270;

  • FCj - количество транзактов, использовавших устройство j;

  • FTj - среднее время использования устройства одним транзактом (округленно).

Пример: FR$WERK3, FC$CPU

  1. Для очередей:

  • Qj - текущая длина очереди j;

  • QAj - средняя длина очереди j;

  • QMj - максимальная длина очереди j;

  • QCj - количество входов в очередь;

  • QZj - количество "нулевых" входов в очередь;

  • QTj - среднее время пребывания транзакта в очереди(округленно);

  • QXj - среднее время пребывания транзакта в очереди, исключая "нулевые" входы (округленно).

Пример: Q$TOWRK1, QM3, QC$QUEE2

  1. Для хранимых значений:

  • 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)

  1. Для вычисляемых атрибутов:

  • FNj - значение функции j;

  • Vj - значение переменной(формулы) j.

Пример: FN7, FN$PRIOR, V3, V$LNGTH

  1. Глобальные атрибуты:

  • 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

Построить модель обслуживания в системе с относительными приоритетами и с тремя Пуассоновскими потоками заявок на входе (с приоритетами 3, 2 и 1, соответственно), одном обслуживающем аппарате и очереди к нему:

Задание на выполнение работы

  1. Изучить представленные в работе теоретические сведения и пример моделирования.

  2. Исследовать и построить таблицу распределения Пуассоновского потока заявок (по аналогии с Лабораторной работой №1).

  3. Исследовать характеристики систем при трех Пуассоновских процессах на входе (см. Пример) для случаев:

  • бесприоритетная система;

  • система с относительными приоритетами;

  • система с относительными приоритетами, но с раздельными очередями для каждого приоритета.

Необходимо взять за основу модель из примера, заменив в ней функцию любыми другими значениями. Значения выбираются на усмотрение студента и их должно быть не менее 20 значений (в примере их 24). Совпадения всей последовательности в нескольких вариантах не допускается, иначе вариант не будет проверяться.

4