1 / 40

Технология GPSS

Технология GPSS. Транзактно -ориентированное моделирование. Особенности GPSS World. Модель описывается в терминах транзактов – элементов потока обслуживания. Симулятор и другое ПО GPSS World : Обеспечивает заданный маршрут продвижения транзактов ;

havard
Download Presentation

Технология GPSS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. Классификация объектов • Объекты аппаратной категории – элементы оборудования, которые управляются транзактами (одноканальные, многоканальные, логические ключи); • Объекты вычислительной категории; • Запоминающие объекты; • Группирующие категории

  5. Операторы GPSS - GENERATE Ввод транзактов в модель – блок GENERATE GENERATE [A],[B],[C],[D],[E] A – средний интервал времени; В – половина поля допуска равномерно распределенного интервала; С – смещение интервалов; D – ограничитель транзактов; E – уровень приоритета транзактов.

  6. Операторы GPSS - GENERATE Примеры. • Транзакт входит в модель каждые 12 минут с отклонением в 4 минуты: GENERATE 12,4 • Приход в модель через каждые 20 минут с отклонением 3 минут 5 транзактов: GENERATE 20,3,,5

  7. Операторы GPSS - GENERATE Другие распределения – используются функции типовых распределений вероятностей: GENERATE Exponential(1,0,10) 1 – номер генератора случайных чисел; 0 – смещение; 10 – среднее значение. GENERATE Normal(1,10,3) 1 – номер генератора случайных чисел; 10– среднее значение; 3 – стандартное отклонение.

  8. Операторы GPSS - TERMINATE Вывод транзактов из модели – блок TERMINATE TERMINATE [A] A – величина уменьшения счетчика завершения. Работает вместе с блоком START, который задает величину счетчика транзактов. Блок TERMINATE уменьшает счетчик транзактов на величину A.

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

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

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

  12. Пример 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 – запуск модели

  14. Пример 1 – запуск модели Стандартный отчет содержит следующую информацию: • Начальное (START TIME) и конечное (END TIME) модельное время; • Число блоков модели (BLOCKS); • Число устройств (FACILITIES и STORAGES); • Информация о именах; • Информация о канале обслуживания; • Список текущих событий; • Список будущих событий.

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

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

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

  18. Сбор статистики Об очередях можно узнать следующую информацию: • 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_QTABLE 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 – число каналов, свободных при окончании моделирования; • MIN – минимальное число каналов, которые использовались при моделировании; • MAX – максимальное число каналов, которые использовались при моделировании; • AVL – состояние устройства в момент окончания моделирования; • AVE.C. – среднее число занятых каналов; • UTIL – коэффициент использования устройства.

  25. Многоканальные устройства В процессе моделирования доступны параметры устройства: • R – число свободных каналов; • S – текущее содержимое; • SA – среднее содержимое; • SC – счетчик числа входов; • SE – занятость; • SF – степень заполнения; • SM – максимальное содержимое; • SR – коэффициент использования; • ST – среднее время задержки на единицу емкости.

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

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

  30. Условный переход Для формирования условного блока используется: 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_TTABLE 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 Serve2 TRANSFER BOTH,Mast1,Mast3 ServeAllTRANSFER 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 ; аналогично задаются группы блоков Master2 и Master3 . . . ExitTranTERMINATE 1 ; уход клиента START 100; запуск модели для 100 клиентов

  34. Пример – обеденные перерывы (версия 1) RELEASE Master1 TRANSFER ,ExitTran ; аналогично задаются группы блоков Master2 и Master3 . . . ExitTranTERMINATE 1 ; уход клиента START 100; запуск модели для 100 клиентов

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

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

  37. Пример – обеденные перерывы (версия 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 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 ADVANCE 5 TRANSFER ,Dinner3 EX START 103 ; запуск модели для 100 клиентов

  40. Задания В качестве усложнения модели можно предложить следующие: • Предусмотреть приход клиентов для получения различных услуг (из заданного списка) (не все мастера могут предоставить каждую услугу); • Согласно квалификации мастеров и оказанным услугам рассчитать стоимость оказания услуг.

More Related