слайды_gpss
.pdfБлоки работы с транзактами
GENERATE - генерирует последовательность
транзактов
Примеры.
GENERATE 25,10
интервал времени генерации транзактов будет равен случайному числу, равномерно распределенному в интервале от 15 до 35 единиц модельного времени .
GENERATE 25,FN$EXP
интервал времени генерации транзактов будет равен произведение числа 25 и текущего значения функции EXP.
GENERATE ,,,25
генерируются 25 транзактов в момент времени, равный 0.
TERMINATE - уничтожает активный транзакт
ADVANCE - задерживает продвижение активного
транзакта на заданное время
Примеры.
ADVANCE 10
продвижение активного транзакта будет задержано на 10 единиц модельного времени
ADVANCE 15,5
время задержки будет равно случайному числу, равномерно распределенному в интервале от 10 до 20 единиц модельного времени
ADVANCE 10,FN$TOBR
время задержки будет равно произведению числа 10 и текущего значения функции с именем TOBR
Блоки работы с приборами
SEIZE - активный транзакт занимает прибор или встает к
нему в очередь.
Особенности выполнения.
1.При попытке транзакта войти в блок SEIZE всегда проверяется, свободен ли прибор и находится ли в состоянии «готов к использованию».
2.Если прибор свободен и готов, он занимается. Транзакт, занявший прибор, пытается перейти к следующему по номеру блоку. Прибор остается занятым до тех пор, пока занимающий его транзакт не войдет в соответствующий блок RELEASE..
3.Блок SEIZE отказывает во входе транзакту, если прибор занят или находится в состоянии «не готов к использованию». При этом устанавливается его индикатор задержки и транзакт помещается в список задержки прибора в конец своего приоритетного класса Пример.
SEIZE Server
Активный транзакт пытается занять прибор с именем Server.
RELEASE - активный транзакт освобождает занятый
прибор.
Особенности выполнения.
1.Транзакт освобождает прибор и пытается войти в следующий по порядку блок.
2.Следующий транзакт выбирается из очереди к данному прибору. Если в очереди транзакты отсутствуют, прибор становится не занятым. 3.Выбранный из очереди транзакт входит в блок SEIZE.
Пример использования.
RELEASE WorkStation
Освобождается прибор с именем WorkStation. Следующий транзакт из очереди входит в блок SEIZE.
Пример модели обслуживания с одним прибором и неограниченной очередью.
Распределение интервалов времени между заявками входного потока подчиняется равномерному закону в интервале 7±5 единиц времениВремя обслуживания подчиняется
равномерному распределению в интервале 6±4 единицИсследовать
среднее время нахождения заявок в системе
среднее время нахождения заявок в очереди
к прибору
в зависимости от интенсивности входного
потока и интенсивности обслуживания.
ФОРМАЛИЗОВАННАЯ МОДЕЛЬ ОБСЛУЖИВАНИЯ(СМО без потерь)
ИМИТАЦИОННАЯ МОДЕЛЬ НА ЯЗЫКЕ
GPSS
TIME TABLE |
M1,0,20,3 |
GENERATE |
(Exponential(1,0,5)) |
QUEUE |
SERVER |
SEIZE |
SERVER |
DEPART |
SERVER |
ADVANCE |
(Exponential(1,0,30)) |
RELEASE |
SERVER |
TABULATE TIME |
|
TERMINATE 1 |
|
START |
10000 |
|
|
ФОРМАЛИЗОВАННАЯ МОДЕЛЬ ОБСЛУЖИВАНИЯ(СМО с потерями)
ИМИТАЦИОННАЯ МОДЕЛЬ НА ЯЗЫКЕ
GPSS
TIME |
TABLE |
M1,0,20,30 |
|
GENERATE |
(Exponential(1,0,5)) |
SERVER STORAGE |
5 |
|
|
TEST E |
SF$SERVER,0,MET1 |
|
ENTER |
SERVER,1 |
|
ADVANCE |
(Exponential(1,0,30)) |
|
LEAVE |
SERVER,1 |
|
TABULATE |
TIME |
|
TERMINATE 1 |
|
MET1 |
TERMINATE 1 |
|
|
START |
10000 |
|
|
|
Блоки работы с транзактами
ASSIGN - изменяет значение параметра активного транзакта.
Примеры.
ASSIGN 1,10
Параметру с именем 1 активного транзакта присваивается значение, равное 10.
ASSIGN CHANNEL,FN$CHANNEL
Параметру с именем CHANNEL активного транзакта присваивается текущее значение функции CHANNEL
ASSIGN 2+,-3
Значение, равное -3, добавляется к значению параметра с именем 2 активного транзакта(если такой параметр транзакта отсутствует, то он создается со значением, равным 0, до того, как будет произведено добавление. Тогда значение параметра сообщения становится равным -3).
ASSIGN TYPE_PC,«workstation»
Параметру транзакта с именем TYPE_PC активного присваивается строка символов workstation .
PRIORITY - изменяет приоритет активного транзакта. Примеры.
PRIORITY 10
Вошедшему в блок транзакту присваивается приоритет, равный 10
Определение функций Табличные функции
Оператор описания непрерывной функции
DISK FUNCTION RN1,С2 0,1/0.4,5/1,7
8 |
|
|
|
|
|
|
7 |
|
|
|
|
|
|
6 |
|
|
|
|
|
|
5 |
|
|
|
|
|
|
4 |
|
|
|
|
|
|
3 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
0 |
|
|
|
|
|
|
0 |
0,2 |
0,4 |
0,6 |
0,8 |
1 |
1,2 |
Оператор описания дискретной функции |
|||||||
CHANNEL FUNCTION P1,D3 |
|
|
|
||||
2,1/4,2/6,3 |
|
|
|
|
|
|
|
3,5 |
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
2,5 |
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
1,5 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
0,5 |
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Пример
ASSIGN DISK,(INT(FN$DISK)) ASSIGN CHANNEL,FN$CHANNEL
Библиотечные функции
ADVANCE (EXPONENTIAL(1,0,5))
Пример модели подсистемы вводавывода.
Распределение интервалов времени между запросами на ввод/вывод по экспоненциальному закону со средним значением 10 единицНомер устройства ввода/вывода определяется
равномерным распределением в интервале 1÷4Номер канала ввода/вывода определяется номером
устройства(к каналу 1 относятся устройства1 и2, к каналу 2 относятся устройства 3 и4)
Время выполнения канальной программы равно 2 единицы времениВремя позиционирования диска распределено равномерно
в интервале 5±3 единиц времениВремя выполнения операции ввода/вывода распределено
экспоненциально со средним значением 5 единиц времени
Исследовать зависимость среднего времени
выполнения запросов на ввод/вывод от интенсивности
запросов в течение 100000 единиц функционирования системы.
ФОРМАЛИЗОВАННАЯ МОДЕЛЬ ОБСЛУЖИВАНИЯ
DISK2
CHANNEL1
DISK1
DISK3
CHANNEL2
DISK4
АЛГОРИТМ ОБРАБОТКИ ЗАЯВОК ВВОДА/ВЫВОДА
Занять канал на время выполнения канальной программы
Освободить каналЗанять диск на время позиционирования головок
Занять диск и канал на время выполнения ввода/вывода
Освободить диск и канал
ИМИТАЦИОННАЯ МОДЕЛЬ НА ЯЗЫКЕ GPSS
DISK |
FUNCTION |
RN1,С2 |
0,1/1,5 |
|
|
CHANNEL FUNCTION |
P$DISK,D2 |
|
2,CHANNEL1/4,CHANNEL2 |
||
TIME |
TABLE |
M1,0,20,30 |
|
GENERATE |
(EXPONENTIAL(1,0,10)) |
|
ASSIGN |
DISK,(INT(FN$DISK)) |
|
ASSIGN |
CHANNEL,FN$CHANNEL |
* занять канал |
|
|
|
QUEUE |
P$CHANNEL |
|
SEIZE |
P$CHANNEL |
|
DEPART |
P$CHANNEL |
|
ADVANCE |
2 |
|
RELEASE |
P$CHANNEL |
* занять диск |
|
|
|
QUEUE |
P$DISK |
|
SEIZE |
P$DISK |
|
DEPART |
P$DISK |
|
ADVANCE |
5,3 |
* занять диск и канал |
|
|
|
PRIORITY |
1 |
|
QUEUE |
P$CHANNEL |
|
SEIZE |
P$CHANNEL |
|
DEPART |
P$CHANEL |
|
ADVANCE |
(EXPONENTIAL(1,0,5)) |
|
RELEASE |
P$CHANNEL |
|
RELEASE |
P$DISK |
|
TABULATE |
TIME |
|
TERMINATE |
|
|
GENERATE |
100000 |
|
TERMINATE |
1 |
* |
|
|
|
START |
1 |
|
|
|