Основные правила и операторы языка GPSS Для описания имитационной модели на языке GPSS полезно представить ее в виде схемы, на которой отображаются элементы СМО - устройства, накопители, узлы и источники . Описание на языке GPSS есть совокупность операторов (блоков), характеризующих процессы обработки заявок. Имеются операторы и для отображения возникновения заявок, задержки их в ОА, занятия памяти, выхода из СМО, изменения параметров заявок (например, приоритетов), вывода на печать накопленной информации, характеризующей загрузку устройств, заполненность очередей и т.п. Каждый транзакт, присутствующий в модели, может иметь до 12 параметров. Существуют операторы, с помощью которых можно изменять значения любых параметров транзактов, и операторы, характер исполнения которых зависит от значений того или иного параметра обслуживаемого транзакта. Пути продвижения заявок между ОА отображаются последовательностью операторов в описании модели на языке GPSS специальными операторами передачи управления (перехода). Для моделирования используется событийный метод. Соблюдение правильной временной последовательности имитации событий в СМО обеспечивается интерпретатором GPSSPC - программной системой, реализующей алгоритмы имитационного моделирования. Основные операторы языка GPSS Основные операторы языка GPSS приведены в виде примеров с конкретными значениями подполей в поле переменных. GENERATE 12,4,50,5,1 - генерация транзактов, интервалы времени между появлениями транзактов распределены равномерно в диапазоне [12-4, 12+4], первый транзакт появится с задержкой в 50 единиц модельного времени, всего будет создано 5 транзактов, приоритет транзактов равен единице. GENERATE 12,4,50,,1 - то же, но количество генерируемых транзактов неограничено. GENERATE 6, FN$FFF,50,5,1- то же, но интервал времени между появлениями транзактов есть целая часть произведения числа 6 на значение фунции FFF. SEIZE PLOT - занятие устройства PLOT приходящим на его вход транзактом; если устройство занято, то транзакт задерживается в очереди к этому устройству. RELEASE PLOT - освобождение устройства PLOT обслуженным транзактом. TERMINATE 3 - удаление транзакта из системы, при этом содержимое итогового счетчика уменьшается на 3 единицы, моделирование заканчивается, если содержимое счетчика станет равным или меньше нуля. ADVANCE A,B - задержка транзакта на время, определенное содержимым полей A и B, смысл величин, записываемых в этих подполях , такой же, как и в операторе GENERATE. QUEUE SQV- оператор организации очереди, длина очереди SQV увеличивается на единицу. DEPART SQV - то же, но длина очереди уменьшается на единицу. SIMULATE - начальная карта программы, если разработчик намерен выполнить прогон модели. Если эта карта отсутствует, то интерпретатор проверяет правильность записи модели на языке GPSS, но прогона модели не выполняет. START 100,,25 - занесение значения 100 в итоговый счетчик, вывод накопленных статистических данных производится с интервалом изменения содержимого итогового счетчика в 25 единиц. Пример моделирование СМО Необходимо смоделировать работу системы передачи данных, состоящей из нескольких серверов, обрабатывающих два потока пакетов различного типа. В таб.1 представлено распределение выполняемых операций по серверам А1, А2 и А3. Интервалы времени между поступлениями пакетов и времена выполнения операций распределены равномерно. Информация о временах поступления пакетов и выполнения операций заданы в таблицах 2 и 3. Таблица 1. Распределение операций по серверам Операция 1 | Операция 2 | Операция 3 | Операция 4 | Операция 5 | Операция 6 | А1 | А2 | А3 | А1 | А3 | А2 | Таблица 2. Интервалы времени поступления пакетов первого типа (мин.) | Интервалы времени поступления пакетов второго типа (мин.) | 30 + 5 | 20 + 5 | Таблица 3. Интервал времени выполнения операции 1 (мин.) | Интервал времени выполнения операции 2 (мин.) | Интервал времени выполнения операции 3 (мин.) | Интервал времени выполнения операции 4 (мин.) | Интервал времени выполнения операции 5 (мин.) | Интервал времени выполнения операции 6 (мин.) | 5 + 2 | 20 + 4 | 10 + 3 | 7 + 3 | 15 + 5 | 15 + 5 | Составим таблицу определений Элементы GPSS | Назначение | Транзакты: 1-й сегмент модели 2-й сегмент модели 3-й сегмент модели | Пакеты первого типа Пакеты второго типа Таймер | Серверы: А1 А2 А3 | Выполнение операции 1 и операции 4 операции 2 и операции 6 операции 3 и операции 5 | Очереди: АА1 АА2 АА3 | Общая очередь к серверу А1 Общая очередь к серверу А2 Общая очередь к серверу А3 | Единица времени в модели - 1 мин. Текст программы  В данном примере таймер настроен на выполнение моделирования в течение 8 часового рабочего дня. Для выполнения моделирования в течение 5 дней таймер должен быть откорректирован. Выходные данные Для трансляции модели необходимо выбрать Command->Create Simulation. После этого можно запустить процесс моделирования. Для этого нужно выбрать Command->Start. START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 480.000 36 3 0 NAME VALUE A10 10001.000 A2 10005.000 A3 10003.000 AA1 10000.000 AA2 10004.000 AA3 10002.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 15 0 0 2 QUEUE 15 0 0 3 SEIZE 15 0 0 4 DEPART 15 0 0 5 ADVANCE 15 0 0 6 RELEASE 15 0 0 7 QUEUE 15 4 0 8 SEIZE 11 0 0 9 DEPART 11 0 0 10 ADVANCE 11 1 0 11 RELEASE 10 0 0 12 QUEUE 10 1 0 13 SEIZE 9 0 0 14 DEPART 9 0 0 15 ADVANCE 9 0 0 16 RELEASE 9 0 0 17 TERMINATE 9 0 0 18 GENERATE 25 0 0 19 QUEUE 25 0 0 20 SEIZE 25 0 0 21 DEPART 25 0 0 22 ADVANCE 25 0 0 23 RELEASE 25 0 0 24 QUEUE 25 2 0 25 SEIZE 23 0 0 26 DEPART 23 0 0 27 ADVANCE 23 1 0 28 RELEASE 22 0 0 29 QUEUE 22 7 0 30 SEIZE 15 0 0 31 DEPART 15 0 0 32 ADVANCE 15 0 0 33 RELEASE 15 0 0 34 TERMINATE 15 0 0 35 GENERATE 1 0 0 36 TERMINATE 1 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY A10 40 0.530 6.355 1 0 0 0 0 0 A3 32 0.913 13.702 1 38 0 0 0 3 A2 26 0.924 17.057 1 29 0 0 0 11 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY AA1 1 0 40 28 0.082 0.988 3.293 0 AA3 4 3 35 2 2.169 29.741 31.543 0 AA2 11 11 37 1 4.189 54.342 55.851 0 Анализ результатов моделирования: В окне Report указываются: · START TIME (начальное время) · END TIME (время окончания) · BLOCKS (число блоков) · FACILITIES (число каналов обслуживания) · STORAGES (число накопителей) · ENTRIES (число входов) · UTIL. (коэффициент использования) · AVE.TIME (среднее время обслуживания) · AVAIL (доступность) · OWNER (возможное число входов) · DELAY (отказано) · MAX (максимальное содержание) · CONT. (текущее содержание) · ENTRY (число входов) · ENTRY (0) (число нулевых входов) · AVE.CONT (среднее число входов) · AVE.TIME (среднее время) Задание на работу Необходимо смоделировать работу указанной системы как системы массового обслуживания. Выполнить пошаговое моделирование и проанализировать последовательность обработки транзактов в модели. По результатам моделирования определить и проанализировать основные характеристики системы. Варианты заданий 1. Смоделировать работу СМО. Заявки поступают по равномерному закону с интервалом от 12 до 22 мин и встают в очередь. С вероятностью 0.3 они обрабатываются 10 мин, а с вероятностью 0.7 они обрабатываются 18 мин. Время моделирования - 100 часов. 2. Исследовать работу однопроцессорной ВС. Задания поступают в систему с интервалами, равномерно распределенными на отрезке времени 1,0 ± 0,5 мин, в раздел оперативной памяти с именем BUF1, откуда считываются центральным процессором, где происходит редактирование и трансляция за время 0.02 ± 0.01 сек, распределение равномерное. Время обработки зависит от объема программы. Время исполнения программы зависит от ее сложности и распределено по равномерному закону на интервале от 3 до 8 сек. После исполнения из центрального процессора программа и результаты обработки записываются в раздел памяти BUF2 и ставятся в очередь к печатающему устройству. Время печати распределено равномерно на временном интервале 0,5 ± 0.2 мин. Время моделирования - 8 часов. 3. Смоделировать работу СМО. Заявки поступают из двух источников. Интервал времени между поступлениями заявок из первого источника распределен по равномерному закону в диапазоне от 10 до 20 мин. Интервал времени между поступлениями заявок из второго источника также распределен по равномерному закону в диапазоне от 7 до 18 мин. Заявки встают в общую очередь. Затем они обслуживаются по равномерному закону от 3 до 6 мин. Время моделирования 10 часов. 4. Смоделировать работу магазина. Клиенты приходят по равномерному закону от 5 до 15 мин, встают в очередь. Продавец, отпускающий товар, обслуживает клиентов по равномерному закону с временем от 2 до 8 минут. Затем покупатели должны оплатить товар в кассе. Перед кассой своя очередь. Кассир обслуживает покупателей ровно 3 минуты. После этого покупатели покидают магазин. Время моделирования 12 часов. 5. Составить модель работы магазина. Покупатели приходят с интервалом, распределенным по равномерному закону в диапазоне от 1 до 5 минут. В магазине имеется две кассы. Выбрав товары, покупатели произвольно (случайно) выбирают одну из касс и становятся в очередь к кассе. Кассир первой кассы обслуживает покупателей по равномерному закону от 1 до 3 минут, а кассир второй кассы - от 2 до 3 минут. Время моделирования 6 часов. 6. На пункт техосмотра поступает поток заявок (автомобилей). Интервал времени между поступлениями заявок распределен равномерно на интервале от 10 до 40 минут. Время осмотра также распределено по равномерному закону и в диапазоне от 20 до 30, в очереди может находиться не более 5 автомобилей. Время моделирования 40 часов. 7. Составить модель работы небольшого магазина. Покупатели приходят с интервалом, распределенным по равномерному закону в диапазоне от 2 до 5 минут и встают в общую очередь. В магазине имеется одна касса. Если в очереди уже стоит 4 человека, очередной покупатель не становится в очередь. Кассир обслуживает покупателей по равномерному закону 1,5 ± 0.5 мин. Время моделирования 6 часов. БИБЛИОГРАФИЧЕСКИЙ СПИСОК 1. Павловский, Ю .Н. Имитационное моделирование : учеб. пособие для вузов / Ю. Н. Павловский, Н. В. Белотелов, Ю. И. Бродский .— М. : Академия, 2008 .— 236 с. : ил. — (Университетский учебник : Прикладная математика и информатика) 2. Пасько, Николай Иванович. Статистическое моделирование процессов и систем : учеб. пособие для вузов / Н. И. Пасько, А. Н. Иноземцев, С. Г. Зайков ; ТулГУ .— Тула : Изд-во ТулГУ, 2008 .— 112 с. 3. Строгалев, В.П. Имитационное моделирование : учеб.пособие для вузов / В.П.Строгалев,И.О.Толкачева .— М. : Изд-во МГТУ им.Н.Э.Баумана, 2008 .— 280с. : ил 4. Боев, В.Д. Моделирование систем.Инструментальные средства GPSS WORLD / В.Д.Боев .— СПб. : БХВ-Петербург, 2004 .— 348с. : ил. 5. Советов, Б.Я. Моделирование систем : учебник для вузов / Б.Я.Советов, С.А.Яковлев .— 4-е изд.,стер. — М. : Высш.шк., 2005 .— 342с. 6. Кудрявцев, Е.М. GPSS World.Основы имитационного моделирования различных систем / Е.М.Кудрявцев .— М. : ДМК, 2004 .— 320с. |