Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по GPSSW_новый.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
569.86 Кб
Скачать

Лабораторная работа № 5 Изучение средств отображения и обработки результатов моделирования в среде gpssw Лабораторное задание

  1. Запустите 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. Использование таких больших значений дает гарантию, что при розыгрыше случайных чисел в соответствии с экспоненциальным распределением будут получаться удовлетворительные результаты.

  1. Начните прогон модели командой Start 1. Результатом моделирования станет отчет в окне Report. Просмотрите его. В приложении вы увидите перевод всех терминов отчета на русский язык.

  2. Обсудим результаты: в течение времени моделирования в системе появлялось 89 клиентов. Из этого числа 68 клиентов остались на обслуживании, т.е. обслужено только 76% клиентов. Прибор WASHR работал со средней загрузкой 0,544. Среднее время мытья машины для 69 случаев равно 378 единицам времени, или 3, 78 мин. Таким образом, существует некоторое отклонение от среднего времени. равного 4 мин. С другой стороны, 89 клиентов, вошедшие в систему, неплохо согласуются с ожидаемым числом, равным 96. Статистика по многоканальному устройству показывает: несмотря на то, что 24% клиентов не обслужено из-за нехватки места, нагрузка многоканального устройства равна только 0,222.

  3. Проведите моделирование для случаев двух и трех мест на стоянке для автомобилей – введите в блок STORAGE 2 и 3 . Посмотрите, как уменьшается число необслуженных клиентов.

  4. Задача. Проведите моделирование простейшей телефонной станции на 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. Там транзакт попыта­ется опять занять линию, т.е. имитируется повторное дозванивание абонента.

  1. Запустите трансляцию, а затем выполните START 200. Разберитесь в предоставляемой в процессе моделирования гистограмме. Какие выводы можно по ней сделать? Получите отчет и перепишите его в свой отчет по лабораторной работе, расшифровав его в соответствии с приложением.

  2. Добавьте еще 2 линии в нашу телефонную станцию, добавив оператор

SETS STORAGE 4

Посмотрите, как изменилась гистограмма в процессе моделирования.

  1. Завершите сеанс моделирования без сохранения полученных файлов.

  2. В среде 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.

  1. Прежде чем начать ручное моделирование, мы должны ввести в модель активный транзакт. Этого можно добиться заданием контрольного останова. Откомпилируем модель и откроем окно блоков. Щелчком мыши выберем блок GENERATE. Поместим в него останов, нажав Place.

  2. Теперь можно начать моделирование командой START 1000, оно немедленно остановиться. В окне журнала появится сообщение об останове. Вернитесь в окно блоков и удалите останов, для чего щелкните по блоку GENERATE и затем по иконке Remove.

  3. Теперь у нас имеется активный транзакт. Выберите для него параметр. Для этого выберем Command/Custom и в диалоговом окне напечатаем Assign Price,99.95. Подтвердим команду – OK. Теперь активный транзакт имеет параметр Price со значением 99.95. Убедимся в этом с помощью команды SHOW, напечатав в диалоговом окне P$Price (параметр по имени Price). В окне журнала увидим значение 99.95.

  4. Повторим некоторые другие возможности ручного моделирования. Выполним Command/Custom и в диалоговом окне напечатаем TRACE. Таким образом, мы включаем индикатор трассировки активного транзакта.

  5. Теперь последовательными нажатиями F5 продолжим моделирование. При этом каждый вход в блок регистрируется в журнале. Если изменится время или номер транзакта, появятся соответствующие сообщения. В данном случае мы увидим короткую трассу, поскольку будет прослеживаться только один транзакт – вставленный блок TRACE сработал однократно и исчез. Если нужна трассировка всех транзактов, придется вставить TRACE в модель и перетранслировать ее. Выполните десяток шагов и просмотрите содержимое журнала.

  6. Выйдите из GPSSW без сохранения сделанных изменений в модели.

  7. Оформите отчет.