Технология GPSS. Транзактно-ориентированное моделирование

Содержание

Слайд 2

Особенности GPSS World Модель описывается в терминах транзактов – элементов потока

Особенности GPSS World

Модель описывается в терминах транзактов – элементов потока обслуживания.
Симулятор

и другое ПО GPSS World:
Обеспечивает заданный маршрут продвижения транзактов;
Планирует события, происходящие в модели, путем регистрации времени наступления каждого события и выполнения их в нарастающей временной последовательности;
Регистрирует статистическую информацию;
Обеспечивает продвижение модельного времени.
Слайд 3

Классификация объектов Динамические объекты – транзакты (создаются, перемещаются по блокам, уничтожаются);

Классификация объектов

Динамические объекты – транзакты (создаются, перемещаются по блокам, уничтожаются);
Операционные блоки

– задают логику функционирования модели системы и определяют пути следования транзактов;
В блоках могут происходить события:
1) создание и уничтожение транзактов;
2) изменение числового атрибута объекта;
3) задержка транзакта на определенный
период времени;
4) изменение маршрута движения транзакта.
Слайд 4

Классификация объектов Объекты аппаратной категории – элементы оборудования, которые управляются транзактами

Классификация объектов

Объекты аппаратной категории – элементы оборудования, которые управляются транзактами (одноканальные,

многоканальные, логические ключи);
Объекты вычислительной категории;
Запоминающие объекты;
Группирующие категории
Слайд 5

Операторы GPSS - GENERATE Ввод транзактов в модель – блок GENERATE

Операторы GPSS - GENERATE

Ввод транзактов в модель – блок GENERATE
GENERATE [A],[B],[C],[D],[E]
A

– средний интервал времени;
В – половина поля допуска равномерно распределенного интервала;
С – смещение интервалов;
D – ограничитель транзактов;
E – уровень приоритета транзактов.
Слайд 6

Операторы GPSS - GENERATE Примеры. Транзакт входит в модель каждые 12

Операторы GPSS - GENERATE

Примеры.
Транзакт входит в модель каждые 12 минут с

отклонением в 4 минуты: GENERATE 12,4
Приход в модель через каждые 20 минут с отклонением 3 минут 5 транзактов:
GENERATE 20,3,,5
Слайд 7

Операторы GPSS - GENERATE Другие распределения – используются функции типовых распределений

Операторы GPSS - GENERATE

Другие распределения – используются функции типовых распределений вероятностей:

GENERATE Exponential(1,0,10)
1 – номер генератора случайных чисел;
0 – смещение;
10 – среднее значение.
GENERATE Normal(1,10,3)
1 – номер генератора случайных чисел;
10 – среднее значение;
3 – стандартное отклонение.
Слайд 8

Операторы GPSS - TERMINATE Вывод транзактов из модели – блок TERMINATE

Операторы GPSS - TERMINATE

Вывод транзактов из модели – блок TERMINATE
TERMINATE [A]
A

– величина уменьшения счетчика завершения.
Работает вместе с блоком START, который задает величину счетчика транзактов. Блок TERMINATE уменьшает счетчик транзактов на величину A.
Слайд 9

Операторы GPSS – одноканальное устр-во Такое устройство может обслуживать только одно

Операторы GPSS – одноканальное устр-во

Такое устройство может обслуживать только одно требование;
Требование

обслуживается с определенной задержкой.
Устройства могут иметь имена – числовые или символические.
Занять устройство.
SEIZE A
A – имя занимаемого устройства.
Транзакт не может занять устройство, если оно обслуживает другой транзакт. Команда выполнится, когда устройство будет освобождено.
Освободить устройство.
RELEAZE A
A – имя освобождаемого устройства.
Слайд 10

Операторы GPSS – задержка по времени Задержка продвижения транзакта – блок

Операторы GPSS – задержка по времени

Задержка продвижения транзакта – блок ADVANCE.
ADVANCE

A,B
A – среднее время задержки на обслуживание;
В – половина поля допуска равномерно распределенной случайной величины.
Классическая последовательность блоков:
SEIZE – ADVANCE - RELEASE
Слайд 11

Операторы GPSS – захват устройства При захвате устройства происходит приоритетное начало

Операторы GPSS – захват устройства

При захвате устройства происходит приоритетное начало обслуживания

определенного транзакта или прерывание предыдущих операций - блок PREEMPT.
PREEMPT A
A – имя устройства.
Освобождение устройства осуществляет блок RETURN
RETURN A
A – имя устройства.
Слайд 12

Пример 1 - парикмахерская *LINE-LOC OPERATION A,B,C,D,E,F,G COMMENTARY ; простой проект

Пример 1 - парикмахерская

*LINE-LOC OPERATION A,B,C,D,E,F,G COMMENTARY
; простой проект с одним

парикмахером и
; без отслеживания параметров транзактов
GENERATE 8,5 ; генерация прихода клиента
SEIZE Master ; проверка занятости мастера
; и начало обслуживания, если мастер свободен
ADVANCE 15,8 ; обслуживание клиентов
RELEASE Master ; освобождение парикмахера
TERMINATE 1 ; уход клиента
START 100 ; запуск модели для 100 клиентов
Слайд 13

Пример 1 – запуск модели

Пример 1 – запуск модели

Слайд 14

Пример 1 – запуск модели Стандартный отчет содержит следующую информацию: Начальное

Пример 1 – запуск модели

Стандартный отчет содержит следующую информацию:
Начальное (START TIME)

и конечное (END TIME) модельное время;
Число блоков модели (BLOCKS);
Число устройств (FACILITIES и STORAGES);
Информация о именах;
Информация о канале обслуживания;
Список текущих событий;
Список будущих событий.
Слайд 15

Пример 1 – запуск модели Информация об устройстве: Имя FACILITY; Количество

Пример 1 – запуск модели

Информация об устройстве:
Имя FACILITY;
Количество фактов занятия устройства

ENTRIES;
Коэффициент использования канала обслуживания UTIL;
Среднее время обслуживания заявки AVE.TIME;
Состояние устройства в момент окончания моделирования AVAIL;
Номер транзакта, который занимает устройство OWNER;
Количество транзактов, которые ожидают отбработки PEND.
Слайд 16

Параметры устройства Параметры устройства можно получить и в процессе моделирования: F

Параметры устройства

Параметры устройства можно получить и в процессе моделирования:
F – состояние

устройства;
FC – счетчик обслуженных заявок;
FR – коэффициент использования;
FT – среднее время использования устройства одним транзактом;
FV – состояние доступности и пр.
Обратиться к параметру можно: Имя_пар$Имя_устр
Слайд 17

Сбор статистики Основные статистические параметры обычно связаны с параметрами ожидания, т.е.

Сбор статистики

Основные статистические параметры обычно связаны с параметрами ожидания, т.е. нужна

очередь.
QUEUE A, [B]
A – имя очереди;
B – число единиц, на которое увеличивается очередь.
Выход из очереди:
DEPART A, [B]
A – имя очереди;
B – число единиц, на которое увеличивается очередь.
Слайд 18

Сбор статистики Об очередях можно узнать следующую информацию: Q – текущая

Сбор статистики

Об очередях можно узнать следующую информацию:
Q – текущая длина очереди;
QA

– средняя длина очереди;
QC – общее число входов в очередь;
QM – максимальная длина очереди;
QT – среднее время пребывания в очереди (с учетом нулевых входов);
QX – среднее время пребывания в очереди (без учета нулевых входов);
QZ – число входов транзактов, время нахождения которых в очереди равно 0.
Слайд 19

Табулирование Для наглядного показа параметров можно создавать таблицу: Определить таблицу: Имя

Табулирование

Для наглядного показа параметров можно создавать таблицу:
Определить таблицу:
Имя TABLE A, B,

C, D
A – аргумент, который будет табулироваться;
B – верхний предел первого интервала;
C – ширина интервала;
D – число интервалов.
Собственно запись в таблицу:
TABULATE A
A – имя таблицы.
Слайд 20

Пример – добавление очереди *LINE-LOC OPERATION A,B,C,D,E,F,G COMMENTARY Tab_Q TABLE QX$QU,10,10,20

Пример – добавление очереди

*LINE-LOC OPERATION A,B,C,D,E,F,G COMMENTARY
Tab_Q TABLE QX$QU,10,10,20
GENERATE 8,5 ; генерация

прихода клиента
QUEUE QU ; клиент встает в очередь
SEIZE Master ; проверка занятости мастера
DEPART QU ; начало обслуживания
TABULATE Tab_Q ; табулирование параметра
ADVANCE 15,8 ; обслуживание клиентов
RELEASE Master ; освобождение парикмахера
TERMINATE 1 ; уход клиента
START 100 ; запуск модели для 100 клиентов
Слайд 21

Пример – просмотр таблицы

Пример – просмотр таблицы

Слайд 22

Пример – просмотр таблицы

Пример – просмотр таблицы

Слайд 23

Многоканальные устройства Многоканальное устройство управляется следующим образом: Задается устройство и его

Многоканальные устройства

Многоканальное устройство управляется следующим образом:
Задается устройство и его емкость:
Имя STORAGE

A
A – имя многоканального устройства;
Занятие канала на обслуживание:
ENTER A,[B]
A – имя занимаемого устройства;
B – число занимаемых приборов.
Освобождение канала:
LEAVE A,[B]
A – имя освобождаемого устройства;
B – число освобождаемый приборов.
Слайд 24

Многоканальные устройства Отчет содержит следующую информацию о многоканальном устройстве: REM –

Многоканальные устройства

Отчет содержит следующую информацию о многоканальном устройстве:
REM – число каналов,

свободных при окончании моделирования;
MIN – минимальное число каналов, которые использовались при моделировании;
MAX – максимальное число каналов, которые использовались при моделировании;
AVL – состояние устройства в момент окончания моделирования;
AVE.C. – среднее число занятых каналов;
UTIL – коэффициент использования устройства.
Слайд 25

Многоканальные устройства В процессе моделирования доступны параметры устройства: R – число

Многоканальные устройства

В процессе моделирования доступны параметры устройства:
R – число свободных каналов;
S

– текущее содержимое;
SA – среднее содержимое;
SC – счетчик числа входов;
SE – занятость;
SF – степень заполнения;
SM – максимальное содержимое;
SR – коэффициент использования;
ST – среднее время задержки на единицу емкости.
Слайд 26

Пример – 3 парикмахера Masters STORAGE 3 ; 3 мастера Tab_Q

Пример – 3 парикмахера

Masters STORAGE 3 ; 3 мастера
Tab_Q TABLE QX$QU,2,2,10
GENERATE 8,5
QUEUE

QU
ENTER Masters
DEPART QU
TABULATE Tab_Q
ADVANCE 20,8
LEAVE Masters
TERMINATE 1
START 100 ; запуск модели для 100 клиентов
Слайд 27

Параметры транзактов Транзакты могут иметь параметры, значения которых можно им назначать:

Параметры транзактов

Транзакты могут иметь параметры, значения которых можно им назначать:
Pj –

значение j-ого параметра активного транзакта;
XN1 – номер активного транзакта;
PR – приоритет активного транзакта;
MPj – время прохождения некоторого участка;
M1 – время пребывания в модели активного транзакта.
Назначить значение параметра:
ASSIGN A,B
A – номер модифицируемого параметра;
B – величина параметра.
Слайд 28

Модификация потоков транзактов Переход транзакта к любому блоку обеспечивает блок: TRANSFER

Модификация потоков транзактов

Переход транзакта к любому блоку обеспечивает блок:
TRANSFER [A], [B],

[C], [D]
A – способ перехода.
Остальные параметры зависят от параметра A.
Например, безусловный переход:
TRANSFER ,B
B – метка блока, куда должен перейти транзакт.
Вероятностный переход:
TRANSFER A,[B],C
A – вероятность передачи транзакта в блок С (в долях тысячи);
B – метка блока, куда перейдет транзакт с вероятностью 1-А;
С - метка блока, куда перейдет транзакт с вероятностью А.
Слайд 29

Модификация потоков транзактов Режим BOTH – транзакт пытается перейти к блоку,

Модификация потоков транзактов

Режим BOTH – транзакт пытается перейти к блоку, метка

которого указана в операнде B. Если этот блок занят, то он пытается перейти к блоку C.
TRANSFER BOTH, B, C,
Режим ALL – проверяется блок, указанный в блоке B. Если он занят, то последовательно проверяются все блоки, пока не будет достигнут блок, заданный в операнде С. Местоположение каждого проверяемого блока определяется с помощью шага, заданного в параметре D.
TRANSFER ALL, B, C, D
И другие режимы.
Слайд 30

Условный переход Для формирования условного блока используется: TEST X A,B,[C] X

Условный переход
Для формирования условного блока используется:
TEST X A,B,[C]
X – операция отношения

(G,L, GE, LE, NE, E);
A, B – операнды отношения;
С – метка блока, куда переходит транзакт, если ответ отрицательный.
Слайд 31

Пример – обеденные перерывы (версия 1) Tab_Q TABLE QX$QU,5,5,10 Tab_T TABLE

Пример – обеденные перерывы (версия 1)

Tab_Q TABLE QX$QU,5,5,10
Tab_T TABLE P1,1,1,3
GENERATE 8,5 ;

генерация прихода клиента
QUEUE QU ; клиент встает в очередь
MARK 2 ; в P2 сохраняется модельное время
TEST GE P2,180,ServeAll ;если время до 12, то
;работают 3 парикмахера
TEST LE P2,270,ServeAll ;если время после 13.30, то
;работают 3 парикмахера
TEST GE P2,210,Serve1 ; если после 12 до 12.30 –
;обедает парикмахер 1
TEST GE P2,240,Serve2 ; если после 12.30 до 13.00 –
; обедает парикмахер 2
Слайд 32

Пример – обеденные перерывы (версия 1) TRANSFER BOTH,Mast1,Mast2 Serve1 TRANSFER BOTH,Mast2,Mast3

Пример – обеденные перерывы (версия 1)

TRANSFER BOTH,Mast1,Mast2
Serve1 TRANSFER BOTH,Mast2,Mast3
Serve2 TRANSFER BOTH,Mast1,Mast3


ServeAll TRANSFER ALL,Mast1,Mast3,8
Mast1 SEIZE Master1 ; клиент пытается попасть к
;парикмахеру 1
DEPART QU
TABULATE Tab_Q
ASSIGN 1,1
TABULATE Tab_T
ADVANCE 15,8
Слайд 33

Пример – обеденные перерывы (версия 1) RELEASE Master1 TRANSFER ,ExitTran ;

Пример – обеденные перерывы (версия 1)

RELEASE Master1
TRANSFER ,ExitTran
; аналогично

задаются группы блоков Master2 и Master3
. . .
ExitTran TERMINATE 1 ; уход клиента
START 100 ; запуск модели для 100 клиентов
Слайд 34

Пример – обеденные перерывы (версия 1) RELEASE Master1 TRANSFER ,ExitTran ;

Пример – обеденные перерывы (версия 1)

RELEASE Master1
TRANSFER ,ExitTran
; аналогично

задаются группы блоков Master2 и Master3
. . .
ExitTran TERMINATE 1 ; уход клиента
START 100 ; запуск модели для 100 клиентов
Слайд 35

Обслуживание заявок

Обслуживание заявок


Слайд 36

Пример – обеденные перерывы (версия 2) Версия 1 показывает, что в

Пример – обеденные перерывы (версия 2)

Версия 1 показывает, что в заданные

временные интервалы к отдельным парикмахерам не направляются клиенты. Версия 2 предполагает, что обеденный перерыв – это внеочередной клиент, который более приоритетен по сравнению с другими клиентами. Начало версии 2 похоже (без проверок на время)
Tab_Q TABLE QX$QU,5,5,10
Tab_T TABLE P1,1,1,3
Tab_D TABLE P3,240,2,100
GENERATE 8,5 ; генерация прихода клиента
QUEUE QU ; клиент встает в очередь
ServeAll TRANSFER ALL Mast1,Mast3,8
Слайд 37

Пример – обеденные перерывы (версия 2) Mast1 SEIZE Master1 DEPART QU

Пример – обеденные перерывы (версия 2)

Mast1 SEIZE Master1
DEPART QU
TABULATE

Tab_Q
ASSIGN 1,1
TABULATE Tab_T
ADVANCE 15,8
RELEASE Master1
TRANSFER ,ExitTran
; аналогично по Mast2 и Mast3
Слайд 38

Пример – обеденные перерывы (версия 2) GENERATE 240,,,1 ;3 группы Dinner1

Пример – обеденные перерывы (версия 2)

GENERATE 240,,,1 ;3 группы
Dinner1 TEST E F$Master1,0,loop1

PREEMPT Master1
MARK 2
ASSIGN 3,P2
TABULATE Tab_D
ADVANCE 30
RETURN Master1
TERMINATE 1
TRANSFER ,gen2 ;переход к блоку для 2 мастера
loop1 ADVANCE 5
TRANSFER ,Dinner1
Слайд 39

Пример – обеденные перерывы (версия 2) TERMINATE 1 TRANSFER ,EX loop3

Пример – обеденные перерывы (версия 2)

TERMINATE 1
TRANSFER ,EX
loop3

ADVANCE 5
TRANSFER ,Dinner3
EX START 103 ; запуск модели для 100 клиентов