Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Упражнение 1. Первая программа
Для открытия Главного Окна системы нужно последовательно нажать кнопки Пуск/Программы и щелкнуть по пункту GPSS World. Для открытия файла с моделью выберем File/ Open. После раскрытия папки Sample Models и указания типа интересующих нас файлов (с расширением .gps) высвечивается список моделей. Для поиска конкретной модели можно воспользоваться горизонтальной прокруткой. Щелчок по выбранному файлу выделяет его. Нажатием [ОК] открываем Окно Моделей и в нем - программу выбранной модели. Выберите в папке Sample Models файл sample 1. gps. Операторы программы не содержат номеров строк. Однако GPSS/ W использует порядковые номера строк для указания места ошибок и других функций. По этим номерам работают команды Search/ Go To Line . . . Считанный файл с программой непосредственно не готов к прогону - требуется его компиляция. Изучим некоторые установки и пункты меню и правила работы с ними. Главное Меню - начальная среда GPSS/W. Панель инструментов содержит стандартные иконки текстовый редакторов и дополнительных пояснений не требует. Пункт File можно использовать для вывода текста модели в Окно Модели. Из текста компиляцией создается отдельный объект - Имитация. С этого момента все взаимодействия заносятся в Окно Журнала или в окна различных сущностей. Вставим блок BUFFER после GENERATE. Для этого, установив мышью курсор на GENERATE, через меню Edit/ Insert Line добавим пустую строку. Курсор будет выставлен в начале новой строки непосредственно перед строкой с QUEUE Barber. Напечатаем в новой строке BUFFER. Старайтесь размещать типы блоков («глаголы» GPSS) один под другим - это не обязательно, но сделает программу более читаемой. Используем команду File/ Save As. . . для сохранений модели в файле с другим именем. Появится окно диалога. Введем в него имя tmp вместо текущего имени и нажмем Save. Имя файла вверху Окна Модели меняется на tmp. Закроем этот файл. В режиме открытия файла убеждаемся в том, что он был сохранен в папке Samples. Не забудьте удалить этот файл после завершения сеанса, чтобы не засорять «образцовую» папку. То же относится ко всем «технологическим отходам» процесса освоения GPSS/ W. По аналогичным соображениям для собственной практической работы создайте отдельную папку. Установки модели задаются через Edit/ Settings. Все Установки - штатные или измененные - привязываются к конкретной модели и производным от нее объектам, в частности, к Имитации. Ознакомьтесь с содержанием страницы Simulation. Обратите внимание на возможность переключения режимов знаков * и # - По умолчанию первый из них является признаком косвенной адресации, а второй знаком умножения. Будем иметь эту возможность в виду для собственных разработок, но пока оставим все как есть - иначе штатные примеры работать не будут. Заглянем на страницу Reports для ознакомления со средствами управления содержанием Отчета. Щелкнув по ОК, выйдем из блокнота Установок. Выберем Command/ Create Simulation. По данной команде выполняется компиляция модели - создается Имитация. При этом автоматически открывается Окно Познакомимся с Окном Блоков. Выберем Window/Simulation Window/Blocks Window. Появится детальный вид блоков в новом окне - см. рис. 1. Состояние окна для большей информативности дано на конец моделирования. После открытия Окна Блоков вы находитесь в детальном его режиме. Для перехода к обзорному следует выполнить команду View/ Entity Details. Режим детальности переключается повторным выбором этой команды независимо от активного окна. Одновременно могут быть открыты несколько окон. Команды Window/ Tile и Window/ Cascade позволяют расположить открытые окна рядом и с частичным наложением соответственно. Щелчок мышью по любому месту окна делает его активным и выводит - при частичном перекрытии окон - на передний план. Вы можете изменить статус, размеры и положение активного окна стандартными средствами Windows. Статус меняется щелчком по одной из кнопок в верхнем правом углу окна - сворачивание, частичное и полноэкранное представление; размер регулируется протаскиванием мышью за угол или сторону. Окно перемещается протаскиванием заголовка. Выберем, наконец, Command/ START. Когда откроется диалог, заменим 1 на расчетное число обработанных транзактов (скажем, 5000) и нажмем ОК. Имитация запустится. Щелкнем мышью по любому месту в Окне Блоков, чтобы сделать его активным и наблюдать динамику модели. Свернем окно, щелкнув по [-] в его верхнем правом углу. Внизу Главного Окна (выше статусной строки) появится иконка свернутого окна, щелчок мышью по которой позволяет быстро восстановить его. Восстановим окно и затем закроем его, щелкнув по [х] в верхнем правом углу. Напомним, что открытые (хотя бы и свернутые) окна многократно замедляют моделирование. Поэтому всегда закрывайте окна, которыми не пользуетесь в данный момент.
Рисунок 1. Окно Блоков После закрытия окон моделирование ускорится и быстро завершится. Автоматически откроется Окно Отчета. Для удобства рассмотрения расширьте окно протягиванием мышью его границы. Распечатайте отчет нажатием кнопки с изображением принтера. Изучите отчет. Обратите внимание на расчетное число заявок, прошедших блок TERMINATE, и большое скопление заявок в очереди. Последнее объясняется тем, что система при заданных параметрах не справляется с нагрузкой. Для завершения сеанса выберите команды File/ Exit. На вопрос о сохранении изменений ответьте No. Обсудим эту простейшую имитацию. Формально она относится к моделированию одноканальной системы обслуживания с неограниченной очередью, а содержательно - к классической задаче моделирования работы парикмахерской, хотя, разумеется, может иметь другие интерпретации. Клиенты прибывают в среднем каждые 300 с модельного времени. Парикмахер тратит на стрижку в среднем 400 с. Значит, теоретический коэффициент загрузки системы р - 400/300 = 1.33 . Снова запустим GPSS World. Выберем команды File/ Open, откроем папку Sample Models и в ней - Samplel. gps. Откомпилируем эту модель: Command/ Create Simulation. Перед началом моделирования закажем график одной из характеристик модели в Окне Графиков. GPSS обеспечивает большой набор встроенной статистики, или СЧА. В данном случае имеет смысл рассмотреть Q $ Barber, представляющий длину очереди. Выберем команды: Window / Simulation Window / Plot Window . Появится диалоговый блок - рис. 2. Последовательно введем информацию в поля высвеченного шаблона: – в поле Label - наименование кривой (легенда); – в поле Expression - выводимая зависимость (в нашем случае Q$Barber); – в поле Title - наименование графика в целом; – в поле X - максимальное значение абсциссы (системного времени) 40000, а Предельное значение системного времени определялось из расчета завершения обслуживания 100 заявок, приходящих с интервалами 400 единиц времени. Отметим, что в полях наименований допустимо использование кириллических шрифтов. Рисунок 2. Диалог настройки графика Закончив ввод, щелкнем по кнопкам Plot и ОК. На экране увидим координатные оси. Собственно график появится после начала моделирования. Он показан на рис. 3. Введем команду START 100. Через несколько секунд (в зависимости от быстродействия компьютера) моделирование закончится. GPSS/ W выдаст в статусной строке (внизу Главного Окна) сообщения The Simulation has Ended и затем - Report is Complete. Отметим, что значение Q$ Barber на графике меняется скачкообразно. Отчет можно анализировать, прокручивая содержимое окна и изменяя его размеры либо выведя на печать. Закроем окно, щелкнув по [х]. Рассмотрим некоторые результаты. Сделаем активным Окно Журнала, выберем Command/ SHDW и напечатаем С1. В статусной строке будет выведено относительное системное время на момент окончания моделирования - то же, что в Журнале. Аналогичным образом посмотрим СЧА QM$ Barber - максимальную длину очереди в процессе моделирования. При желании можете проверить значения других СЧА. Рисунок 3. График изменения очереди GPSS/ W позволяет просматривать состояние модели многими различными способами. Каждый из основных типов сущностей GPSS имеет окно для отображения их динамики. Можно открыть Окно Выражений, которое содержит список заявленных PLUS-выражений - в простейших случаях переменных или СЧА. Выберем: Window/ Simulation Window/ Expressions Window и затребуем системное время, длину, очереди и номер активного транзакта. В поле Label напечатаем Clock, в поле Expression - АС1. Щелкнув по соответствующим кнопкам, выберем опции View и Memorize. Первая из них позволит видеть значение выражения только в текущем прогоне, а вторая - использовать в будущих прогонах. Аналогичные операции нужно выполнить для остальных интересующих нас выражений. Соответственно в разделе New Expression наберем и введем метки и выражения: Barber Queue Q$Barber Закроем Окно Графиков и откроем Окно Устройств. Разместим два окна так, чтобы видеть оба, введем команду START 20000, NP и, остановив процесс по F4, пронаблюдаем результаты моделирования работы сильно загруженного парикмахера. Закроем Окна Выражений и Устройств и откроем Окно Блоков. Используем это окно для ввода контрольных остановов на траектории транзактов. Для останова выберем блок DEPART. Щелкнем по иконке этого блока, а затем по иконке с изображением красного светофора Place (Поместить) отладочной панели. Сделаем активным Окно Журнала. Передвинем это окно так, чтобы его можно было видеть вместе с Окном Блоков. Теперь выберем Command/ Custom и введем в диалоговое окно команду трассировки Trace. С этого момента каждый вход данного активного транзакта в новый блок вызовет появление в журнале (и Окне Журнала) трассировочного сообщения. Дело в том, что блок Trace был создан в режиме ручного моделирования, то есть для разового использования. Он не становится постоянной частью модели и не повлияет на прохождение других транэактов. Выполним несколько шагов моделирования повторным нажатием F5 и посмотрим в Окне Журнала сообщений трассировки. Журнал можно распечатать в любой момент, сделав активным Окно Журнала и выполнив команду File/ Print. Теперь удалим контрольный останов. Для этого сделаем активным Окно Блоков, щелкнем мышью по блоку DEPART, а затем по иконке Remove отладочной панели. Один или несколько остановов можно удалить также, выбрав: |
Последнее изменение этой страницы: 2019-04-11; Просмотров: 372; Нарушение авторского права страницы