ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.12.2025
Просмотров: 561
Скачиваний: 0
|
TERMINATE 1 START 20000 |
В основном сегменте модели в блоке TERMINATE А = 1, нач значение счетчика = кол-ву заявок.
Представление обслуживающих приборов в моделях на GPSS. Блоки SEIZE и RELEASE. Их операнды.
Под обслуживающим прибором понимается элемент моделируемой системы, кот в любой момент времени может обслуживать только одну заявку, кот имитируется транзактом. Прибором может моделироваться как техническое устройство (телефон-автомат, принтер, процессор), так и человек-оператор (продавец, кассир). На обслуживание заявки затрачивается некот время.
Если в процессе обслуживания поступает новое требование, оно ставится в очередь последним в своем классе приоритета. Освободившийся после обслуживания прибор занимает заявка, стоящая в начале очереди.
В общем случае схема моделирования прибора должна включать занятие прибора транзактом SEIZE, задержку транзакта на время обслуживания ADVANCE и освобождение прибора RELEASE. В одной модели м.б. описано действие большого количества приборов, поэт каждому из них д.б. присвоено индивидуальное имя - числовое или символьное. Числовое имя, присваиваемое программистом, должно выбираться им из диапазона целых чисел 1...9999. Имя занимаемого или освобождаемого прибора определяется операндом А блоков SEIZE и RELEASE.
SEIZE A – точка входа в устройство, имя кот А.
RELEASE A – освобождение устройства, имя кот А.
Примеры:
МЕТ SEIZE KAN (блок SEIZE с именем МЕТ при входе транзакта имитирует занятие прибора, имеющего имя КАN);
RELEASE KAN2 (блок RELEASE при входе транзакта имитирует освобождение занятого прибора KAN2).
При попытке транзакта войти в блок SEIZE проверяется состояние прибора с именем А. Если прибор не занят, транзакт входит в блок SEIZE и без задержки переходит к следующему за ним блоку; при этом состояние прибора изменяется из «не занят» в «занят». Если прибор занят, транзакт остается в блоке, из кот пытался войти в блок SEIZE, и становится в очередь к данному прибору. По истечении времени обслуживания транзакт, занимавший прибор, входит в блок RELEASE. При этом состояние прибора, имя кот указано операндом А блока RELEASE, изменяется из «занято» в «не занято», а транзакту, стоящему первым в очереди на обслуживание данным прибором, разрешается вход в блок SEIZE.
Место транзакта в очереди зависит от его приоритета и времени поступления. Чем выше приоритет, тем ближе к началу очереди будет находиться транзакт. Внутри одного приоритетного класса транзакты размещаются в порядке возрастания времени их регистрации в данной очереди.
Моделирование процесса обслуживания заявок. Блок ADVANCE. Использование генератора случайных чисел для вычисления времени завершения обслуживания по параметрам данного блока.
Между блоками SEIZE и RELEASE могут находиться блоки, имитирующие содержание процесса обслуживания заявки. Для имитации задержки транзакта на время обслуживания применяется блок ADVANCE. Длина интервала времени задержки вычисляется по среднему времени и модификатору, задаваемым операндами А и В.
ADVANCE A,B – задержка
А – среднее время задержки, В – полуинтервал.
Пример: ADVANCE 200,25 (транзакты, входящие в блок, задерживаются на 200±25 единиц модельного времени).
Общее назначение блока ADVANCE - имитация задержки транзакта. Он может располагаться в любом месте модели. Блок ADVANCE не препятствует входу транзактов, т. е. перед ним очереди не образуется. Интерпретатор вычисляет время задержки для каждого из них индивидуально и выводит их из блока не в порядке поступления, а по истечении определенных для них интервалов времени задержки.
В некоторых примерах случайные интервалы времени подчиняются равномерному закону распределения вероятностей. Для получения случайных величин с другими распределениями в GPSS используются вычислительные объекты: переменные и функции.
Для получения случайной величины R с равномерным распределением на отрезке [0;1] в GPSS имеются встроенные генераторы случайных чисел. Для получения случайного числа путем обращения к такому генератору достаточно записать СЧА RN с номером генератора, например RN1. Но встроенные генераторы случайных чисел GPSS дают числа не на отрезке [0;1], а целые случайные числа, равномерно распределенные от 0 до 999, но их нетрудно привести к указанному отрезку делением на 1000.
Сбор статистики очереди. Блоки QUEUE и DEPART. Параметры блоков. Интерпретация статистической информации, полученной при моделировании с использованием указанных блоков.
В GPSS обеспечивается автоматический сбор статистических данных о каждой из очередей, таких как наибольшая длина очереди за время моделирования, средняя длина очереди, общее кол-во входов в очередь, кол-во входов с нулевой задержкой, процент «нулевых» входов от общего числа входов, среднее время пребывания в очереди с учетом «нулевых» входов и без их учета, а также текущее содержимое очереди (кол-во заявок, находящихся в очереди на момент вывода статистики). Для сбора статистики об очередях используются блоки QUEUE (СТАТЬ В ОЧЕРЕДЬ) и DEPART (ПОКИНУТЬ ОЧЕРЕДЬ).
QUEUE A,B
DEPART A,B
А – имя очереди (обязательно), В – указывает, на сколько единиц должен измениться счетчик содержимого очереди при входе транзактов в эти блоки, по умолч =1 (необязат)
При входе транзакта в блок QUEUE регистрируется событие «присоединение к очереди», а при входе транзакта в блок DEPART - «выход из очереди». Ожидая обслуживания прибором, транзакт явл элементом очереди до тех пор, пока не займет прибор. Исходя из этого, при моделировании прибора блок QUEUE должен находиться перед блоком SEIZE, а блок DEPART - после него.
Пример:
QUEUE QCPU
SEIZE CPU
DEPART QCPU
ADVANCE 30,12
RELEASE CPU
Наличие блоков QUEUE и DEPART программы указывает на то, что интерпретатор во время моделирования должен обеспечивать сбор данных об очереди QCPU к прибору CPU.
Выполнение подпрограммы блока DEPART включает уменьшение значения счетчика содержимого на величину, заданную операндом В, регистрацию текущего значения модельного времени, увеличение счетчика «нулевых» входов в очередь на число единиц, заданное операндом В, если модельное время в момент входа транзакта в блок DEPART равно времени его регистрации в блоке QUEUE, вычисление других статистических данных об очереди.
Приборы и очереди не требуют к-л предварительного объявления в модели. Прибор с заданным именем создается, как только интерпретатор встречает блоки SEIZE или RELEASE, в кот этот прибор упоминается, очередь при встрече блоков QUEUE или DEPART.
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OCHERED 3 0 998 517 0.207 3.110 6.453 0
QUEUE – имя очереди, MAX – максимальная длина очереди, CONT – содержимое очереди в момент окончания прогона модели, ENTRY – счетчик числа входов в очередь, ENTRY(0) – счетчик нулевых входов в очередь, AVE.CONT – среднее значение содержимого очереди, AVE.TIME – среднее время пребывания в очереди, AVE.(-0) – среднее время пребывания в очереди без учета нулевых входов, RETRY – кол-во транзактов в модели в момент созд отчета, ожидающих наступления определенных условий, зависящих от состояния данной очереди.
Пример простой модели на языке GPSS: система массового обслуживания с одним прибором и очередью. Стандартный отчет о моделировании, его интерпретация.
Парикмахерская с одним парикмахером при неограниченной приоритетной очереди. Заявки (клиенты) приходят через каждые 15+-10 мин. Мастер обслуживает клиентов в течение 12+-3 мин. Построить модель и определить параметры очереди и нагрузку парикмахера.
GENERATE 15,10 ;генерация транзактов, приход клиентов
QUEUE ochered ;моделирование входа в очередь
SEIZE parik ;попытка занять парикмахера
DEPART ochered ;выход из очереди
ADVANCE 12,3 ;задержка на обслуживание
RELEASE parik ;освобождение парикмахера
TERMINATE ;уходит
GENERATE 15000 ;управление временем моделирования
TERMINATE 1 ;завершение моделирования
;Отчет:
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 998 0 0
2 QUEUE 998 0 0
3 SEIZE 998 0 0
4 DEPART 998 0 0
5 ADVANCE 998 0 0
6 RELEASE 998 0 0
7 TABULATE 998 0 0
8 TERMINATE 998 0 0
9 GENERATE 1 0 0
10 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
PARIK 998 0.797 11.980 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OCHERED 3 0 998 517 0.207 3.110 6.453 0
QUEUE – имя очереди, MAX – максимальная длина очереди, CONT – содержимое очереди в момент окончания прогона модели, ENTRY – счетчик числа входов в очередь, ENTRY(0) – счетчик нулевых входов в очередь, AVE.CONT – среднее значение содержимого очереди, AVE.TIME – среднее время пребывания в очереди, AVE.(-0) – среднее время пребывания в очереди без учета нулевых входов, RETRY – кол-во транзактов в модели в момент созд отчета, ожидающих наступления определенных условий, зависящих от состояния данной очереди.
STORAGE – символьное имя МКУ, CAP – емкость МКУ, определенная командой storage, ENTRIES – число входов в МКУ, AVL – доступность МКУ в момент созд отчета, AVE.C – среднее число занятых каналов, UTIL – коэф-т использования МКУ.
Из отчета видно, что поступило 998 клиента (GENERATE 998), обслужено 988 (RELEASE 998). Среднее время обслуж составило 11.980 мин, коэф-т использования канала = 0.797. в очереди за время моделирования нах в ожидании обслуж не более 3 человек, а среднее знач длины очереди составило 3.110.
Логика работы моделирующей системы GPSS. Цепи текущих и будущих событий. Условия переноса транзактов из одной цепи в другую.
При моделировании сложных систем необходимо детально представлять логику работы интерпретатора, чтобы правильно отразить в модели поведение изучаемой системы. Большое значение для понимания особенностей работы интерпретатора имеет рассмотрение механизмов продвижения транзактов в модели и изменения модельного времени.
В любой момент модельного времени место транзакта в модели м.б. определено двояко. Во-первых, он находится в каком-то конкретном блоке. Во-вторых, транзакт состоит в одной или нескольких цепях GPSS.
Цепь представляет собой список, в кот интерпретатор вносит транзакты по мере выполнения программы модели. Интерпретатор рассматривает каждый транзакт как элемент одной или нескольких цепей. Каждый транзакт м.б. представлен как звено в цепи. Цепи являются открытыми, имеют начало и конец. Положение транзакта в цепи зависит от того, как скоро он должен вернуться в модель для продолжения движения. Последовательность обработки связана с временем возникновений событий при выполнении моделирования.
В GPSS World имеются 8 видов цепей: цепь текущих событий; цепь будущих событий; цепь задержки; цепь пользователя; цепь парности; цепь прерывания; цепь ожидания захвата; цепь повторных проверок.
2 вида цепей обязательно формируются интерпретатором для каждой модели - цепь текущих событий (ЦТС) и цепь будущих событий (ЦБС). Др создаются по мере необходимости при создании определенных моделирующих элементов.
ЦТС содержит транзакты, движение кот по блокам планируется в текущий момент времени, а также транзакты, движение кот заблокировано ввиду условий в модели. ЦТС формируется с учетом приоритетов транзактов. Транзакты в ЦТС могут находиться в одном из двух состояний: активном, т. е. продвигаться в данный момент интерпретатором, либо приостановленном.
ЦБС состоит из транзактов, движение кот не планируется в текущий момент времени. Это возможно в следующих случаях:
Транзакт попал в блок ADVANCE с ненулевым временем задержки.
Транзакт должен войти в модель в более поздний момент времени через блок GENERATE .
Уровень приоритета не влияет на место транзакта в ЦБС.
Т.о., транзакты в модели располагаются одновременно и в блоках, и в цепях. Интерпретатор изменяет состояние модели при просмотре ЦТС от начала к концу. Он выбирает транзакт и двигает его по модели до тех пор, пока не возникнет одна из трех ситуации: