- •Введение
- •Лабораторная работа № 1 ознакомление c интерфейсом пользователя системы gpssw
- •1. Редактирование в среде gpssw
- •2. Блоки (операторы) gpss-модели
- •4. Лабораторное задание
- •Лабораторная работа № 2 Практическая работа в gpssw. Первая программа. Лабораторное задание
- •Лабораторная работа № 3 Изучение средств наблюдения за процессом моделирования в среде gpssw Лабораторное задание
- •Лабораторная работа № 4 Изучение средств отладки моделей в среде gpssw Отладка модели
- •Лабораторное задание
- •Лабораторная работа № 5 Изучение средств отображения и обработки результатов моделирования в среде gpssw Лабораторное задание
- •Лабораторная работа № 6
- •Содержание отчета
- •Методические указания к выполнению работы
- •Лабораторная работа № 7
- •Содержание отчета
- •Методические указания к выполнению работы
- •Лабораторная работа № 8
- •Содержание отчета
- •Методические указания к выполнению работы
- •Лабораторная работа № 9 моделирование сетей массового обслуживания
- •Приложение 1.Содержимое окон Окно блоков
- •Окно устройств
- •Окно многоканальных устройств
- •Окно очередей
- •Окно таблиц
- •Окно графиков
- •Окно параметров сча
- •Окно отчета
- •Приложение 2.Системные числовые атрибуты (сча)
- •Список литературы
Лабораторная работа № 5 Изучение средств отображения и обработки результатов моделирования в среде gpssw Лабораторное задание
Запустите GPSSWи введите следующую GPSS-модель:
SPACE STORAGE 1
* Сегмент 1
GENERATE (Exponential(1,0,500))
TRANSFER Both,,Bybye
ENTER SPACE
QUEUE WASHR
SEIZE WASHR
DEPART WASHR
LEAVE SPACE
ADVANCE (Exponential(1,0,400))
RELEASE WASHR
Bybye TERMINATE
*
* Сегмент 2
*
GENERATE 48000
TERMINATE 1
С помощью данной GPSS-модели необходимо решить, какое число мест на стоянке следует отвести для автомобилей, ожидающих мойки. Поток машин является пуассоновским со значением среднего интервала, равным 5 мин. Время мойки экспоненциально со значением среднего, равным 4 мин. Если клиенты поступают и не застают свободного места для ожидания, они уезжают и моют автомобиль в другом месте.
Для моделирования стоянки машин используется (первый сегмент модели) многоканальное устройство Space. Когда транзакт-клиент входит в систему, он попадает в блок TRANSFER, работающий в режиме BOTH. В этом режиме, если транзакт не может войти в следующий блок, он поступает в блок с меткой Bybye.
Второй сегмент модели обеспечивает моделирование работы мойки в течение восьмичасового рабочего дня. Заметим, что единицей модельного времени в модели выбрана 0,01 мин. При такой маленькой единице времени средние интервалы времени поступления и обслуживания равны соответственно 500 и 400. Использование таких больших значений дает гарантию, что при розыгрыше случайных чисел в соответствии с экспоненциальным распределением будут получаться удовлетворительные результаты.
Начните прогон модели командой Start 1. Результатом моделирования станет отчет в окне Report. Просмотрите его. В приложении вы увидите перевод всех терминов отчета на русский язык.
Обсудим результаты: в течение времени моделирования в системе появлялось 89 клиентов. Из этого числа 68 клиентов остались на обслуживании, т.е. обслужено только 76% клиентов. Прибор WASHR работал со средней загрузкой 0,544. Среднее время мытья машины для 69 случаев равно 378 единицам времени, или 3, 78 мин. Таким образом, существует некоторое отклонение от среднего времени. равного 4 мин. С другой стороны, 89 клиентов, вошедшие в систему, неплохо согласуются с ожидаемым числом, равным 96. Статистика по многоканальному устройству показывает: несмотря на то, что 24% клиентов не обслужено из-за нехватки места, нагрузка многоканального устройства равна только 0,222.
Проведите моделирование для случаев двух и трех мест на стоянке для автомобилей – введите в блок STORAGE 2 и 3 . Посмотрите, как уменьшается число необслуженных клиентов.
Задача. Проведите моделирование простейшей телефонной станции на 2 линии. Вызовы на станцию приходят равномерно в интервале [40;160] сек. Если линия занята, то при повторении звонка в течение 4-6 мин. происходит дозванивание. Длительность разговора 2-4 мин. Требуется получить таблицу распределения общего времени дозванивания и разговора. Сколько времени уйдет на обслуживание 200 звонков?
Программа моделирования системы на GPSS будет выглядеть следующим образом:
SETS STORAGE 2
TRANSIT TABLE M1,100,100,20
GENERATE 100,60
AGAIN GATE SNF SETS,OCCUPIED
ENTER SETS
ADVANCE 180,60
LEAVE SETS
TABULATE TRANSIT
TERMINATE 1
OCCUPIED ADVANCE 300,60
TRANSFER ,AGAIN
Рассмотрим эту программу подробно:
В первой строке - определение емкости многоканального устройства SETS (2 канала), представляющего телефонные линии.
Таблица по имени TRANSIT определена так, что может быть создана текущая гистограмма длительностей звонков. Прежде, чем транзакт будет выведен через блок TERMINATE, будет протабулировано текущее модельное время (СЧА M1), представляющее интервал от первого появления звонка до окончания разговора.
Генерирование транзакта производится каждые 40-160 секунд.
Блок GATE, пересылает транзакт в блок OCCUPIED, если обе линии заняты. Это происходит, если многоканальное устройство SETS переполнено, для моделирования паузы, которую выдерживает звонящий, прежде чем опять повторить вызов.
Каждый транзакт, прошедший через блок ENTER, имитирует успешное дозванивание абонента.
Блок ADVANCE имитирует разговор в течение 120-240 сек.
При входе транзакта в блок LEAVE становится доступной для другого транзакта одна из линий.
Блок TABULATE добавляет длительность звонка к переменным гистограммы, накапливающимся в таблице TRANSIT.
Транзакт приходит в помеченный меткой OCCUPIED блок ADVANCE, когда он пытается безуспешно занять одну из уже занятых линий. Это моделирует паузу перед очередным перезваниванием неудачливого абонента.
Блок TRANSFER пересылает каждый транзакт в блок GATE, помеченный меткой AGAIN. Там транзакт попытается опять занять линию, т.е. имитируется повторное дозванивание абонента.
Запустите трансляцию, а затем выполните START 200. Разберитесь в предоставляемой в процессе моделирования гистограмме. Какие выводы можно по ней сделать? Получите отчет и перепишите его в свой отчет по лабораторной работе, расшифровав его в соответствии с приложением.
Добавьте еще 2 линии в нашу телефонную станцию, добавив оператор
SETS STORAGE 4
Посмотрите, как изменилась гистограмма в процессе моделирования.
Завершите сеанс моделирования без сохранения полученных файлов.
В среде GPSS любой оператор (кроме GENERATE) может быть вставлен временно в существующую модель (так называемое РУЧНОЕ моделирование). Такой оператор не становится постоянным элементом программы. Проверим это. Откроем файл sample2.gps:
; GPSS World Sample File - SAMPLE2.GPS
*************************************************************
* *
* Barber Shop Simulation *
* *
*************************************************************
GENERATE 300,100 ;Create next customer.
QUEUE Barber ;Begin queue time.
SEIZE Barber ;Own or wait for barber.
DEPART Barber ;End queue time.
ADVANCE 400,200 ;Haircut takes a few minutes.
RELEASE Barber ;Haircut done. Give up the barber.
TERMINATE 1 ;Customer leaves.
Прежде чем начать ручное моделирование, мы должны ввести в модель активный транзакт. Этого можно добиться заданием контрольного останова. Откомпилируем модель и откроем окно блоков. Щелчком мыши выберем блок GENERATE. Поместим в него останов, нажав Place.
Теперь можно начать моделирование командой START 1000, оно немедленно остановиться. В окне журнала появится сообщение об останове. Вернитесь в окно блоков и удалите останов, для чего щелкните по блоку GENERATE и затем по иконке Remove.
Теперь у нас имеется активный транзакт. Выберите для него параметр. Для этого выберем Command/Custom и в диалоговом окне напечатаем Assign Price,99.95. Подтвердим команду – OK. Теперь активный транзакт имеет параметр Price со значением 99.95. Убедимся в этом с помощью команды SHOW, напечатав в диалоговом окне P$Price (параметр по имени Price). В окне журнала увидим значение 99.95.
Повторим некоторые другие возможности ручного моделирования. Выполним Command/Custom и в диалоговом окне напечатаем TRACE. Таким образом, мы включаем индикатор трассировки активного транзакта.
Теперь последовательными нажатиями F5 продолжим моделирование. При этом каждый вход в блок регистрируется в журнале. Если изменится время или номер транзакта, появятся соответствующие сообщения. В данном случае мы увидим короткую трассу, поскольку будет прослеживаться только один транзакт – вставленный блок TRACE сработал однократно и исчез. Если нужна трассировка всех транзактов, придется вставить TRACE в модель и перетранслировать ее. Выполните десяток шагов и просмотрите содержимое журнала.
Выйдите из GPSSW без сохранения сделанных изменений в модели.
Оформите отчет.
