Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


TERMINATE 7 страница




1) транзакт входит в блок, функцией которого является удаление транзакта из модели;

2) транзакт входит в блок, функцией которого является задержка транзакта на некоторое определенное в модели время;

3) транзакт «пытается» войти в следующий блок, однако блок «отказывается» принять его. В этом случае транзакт остается в том блоке, где находился, и позднее будет повторять свою попытку войти в следующий блок. Когда условия в модели изменятся, такая попытка может оказаться успешной, и транзакт сможет продолжить свое перемещение по блок-схеме.

Если возникло одно из описанных выше условий, обработка данного транзакта прекращается, и начинается перемещение другого транзакта. Таким образом, выполнение моделирования симулятором продолжается постоянно.

Каждое продвижение транзакта в модели является событием, которое должно произойти в определенный момент модельного времени. Для того чтобы поддерживать правильную временную последовательность событий, симулятор имеет таймер модельного времени, который автоматически корректируется в соответствии с логикой, предписанной моделью.

Таймер GPSS/PC имеет следующие особенности:

1) регистрируются только целые значения (все временные интервалы в модели изображаются целыми числами);

2) единица модельного времени определяется разработчиком модели, который задает все временные интервалы в одних и тех же, выбранных им единицах;

3) симулятор не анализирует состояние модели в каждый следующий момент модельного времени (отстоящий от текущего на единицу модельного времени), а продвигает таймер к моменту времени, когда происходит ближайшее следующее событие.

Центральной задачей, выполняемой симулятором, является определение того, какой транзакт надо выбрать следующим для продвижения в модели, когда его предшественник прекратил свое продвижение. С этой целью симулятор рассматривает каждый транзакт как элемент некоторого списка. В относительно простых моделях используются лишь два основных списка: список текущих событий и список будущих событий.

Список текущих событий включает в себя те транзакты, планируемое время продвижения которых равно или меньше текущего модельного времени (к последним относятся транзакты, движение которых было заблокировано ранее). Он организуется в порядке убывания приоритетов транзактов, а в пределах каждого уровня приоритета — в порядке поступления транзактов.

Список будущих событий включает в себя транзакты, планируемое время продвижения которых больше текущего времени, т.е. события, связанные с продвижением этих транзактов, должны произойти в будущем. Этот список организуется в порядке возрастания планируемого времени продвижения транзактов.

Симулятор GPSS/PC помещает транзакты в зависимости от условий в модели в тот или иной список и переносит транзакты из списка в список, просматривает списки, выбирая следующий транзакт для обработки, корректирует таймер модельного времени после обработки всех транзактов в списке текущих событий.

3.2.3 Основные операторы GPSSW и связанные с ними объекты.

Исходная программа на языке GPSSW, как и программа на любом языке программирования, представляет собой последовательность операторов. Операторы исходного текста GPSSW записываются и вводятся в ПК в следующем формате (в скобках указаны необязательные части):

[ имя ] операция операнды [; комментарии]

Отдельные операторы могут иметь имя для ссылки на эти операторы в других операторах. Если такие ссылки отсутствуют, то этот элемент оператора не является обязательным.

В поле операции записывается ключевое слово (название оператора), указывающее конкретную функцию, выполняемую данным оператором. Это поле оператора является обязательным.

В полях операндов записывается информация, уточняющая и конкретизирующая выполнение функции, определенной в поле операции. Эти поля в зависимости от типа операции содержат до семи операндов, расположенных в определенной последовательности и обозначаемых обычно первыми буквами латинского алфавита от А до G. В некоторых операторах операнды могут быть опущены, при этом устанавливаются их стандартные значения (по умолчанию). При записи операндов используется позиционный принцип: пропуск операнда отмечается запятой.

Необязательные комментарии в случае их присутствия отделяются от поля операндов точкой с запятой. Комментарии не могут содержать букв русского алфавита.

Ниже рассматриваются операторы, необходимые для начального ознакомления с основами моделирования в GPSSW.

1) Операторы связанные с транзактами.

С транзактами связаны операторы создания, уничтожения и задержки транзактов.

Для создания транзактов, входящих в модель, служит оператор GENERATE (генерировать), имеющий следующий формат:

имя GENERATE A,B,C,D,E

В поле А задается среднее значение интервала времени между моментами поступления в модель двух последовательных транзактов. Поле В показывает отклонение от среднего значения интервала. Если этот интервал постоянен, то поле В не используется. Если интервал поступления транзактов является случайной величиной с равномерным законом распределения вероятностей, то диапазон изменения интервала поступления имеет границы А-В, А+В.

Например,оператор GENERATE 100,40

создает транзакты через случайные интервалы времени, равномерно распределенные на отрезке [60;140].

В поле С задается момент поступления в модель первого транзакта. Если это поле пусто или равно 0, то момент появления первого транзакта определяется операндами А и В.

Поле D задает общее число транзактов, которое должно быть создано оператором GENERATE. Если это поле пусто, то блок генерирует неограниченное число транзактов до завершения моделирования.

В поле Е задается приоритет, присваиваемый генерируемым транзактам. Число уровней приоритетов неограничено, причем самый низкий приоритет — нулевой. Если поле Е пусто, то генерируемые транзакты имеют нулевой приоритет.

Для удаления транзактов из модели служит блок TERMINATE (завершить), имеющий следующий формат:

имя TERMINATE A

Значение поля А указывает, на сколько единиц уменьшается содержимое так называемого счетчика завершений при входе транзакта в данный оператор TERMINATE. Если поле А не определено, то оно считается равным 0, и транзакты, проходящие через такой блок, не уменьшают содержимого счетчика завершений.

Блок TERMINATE A с ненулевым полем А используется для управления временем моделирования (см. рис.3.4):

 

Рисунок 3.4 Управление временем моделирования в GPSSW.

 

Начальное значение счетчика завершений устанавливается управляющим оператором START А (начать), предназначенным для запуска прогона модели. Поле А этого оператора содержит начальное значение счетчика завершений. Прогон модели заканчивается, когда содержимое счетчика завершений обращается в 0. Таким образом, в модели должен быть хотя бы один блок TERMINATE с непустым полем А, иначе процесс моделирования никогда не завершится.

Для задержки транзактов на определенный отрезок модельного времени служит блок ADVANCE (задержать), имеющий следующий формат:

имя ADVANCE А,В

Операнды в полях А и В имеют тот же смысл, что и в соответствующих полях блока GENERATE. Следует отметить, что транзакты, входящие в блок ADVANCE, по истечении вычисленного времени задержки продолжают продвижение по блок-схеме. Если вычисленное время задержки равно 0, то транзакт в тот же момент модельного времени переходит в следующий блок.

GENERATE 100,40

ADVANCE 80,50

TERMINATE

 

Рис. 3.5

Например, в сегменте, приведенном на рис.3.5, транзакты, поступающие в модель из блока GENERATE через случайные интервалы времени, имеющие равномерное распределение на отрезке [60;140], попадают в блок ADVANCE. Здесь определяется случайное время задержки транзакта, имеющее равномерное распределение на отрезке [30;130]. По истечении времени задержки транзакт входит в блок TERMINATE, где и уничтожается.

2) Блоки, связанные с аппаратными объектами.

Все примеры моделей, рассматривавшиеся выше, пока еще не являются моделями систем массового обслуживания, так как в них не учтена основная особенность СМО: конкуренция заявок на использование некоторых ограниченных ресурсов системы (например, времени работы устройства). Все транзакты, входящие в эти модели через блок GENERATE, немедленно получают возможность «обслуживания» в блоке ADVANCE, который никогда не «отказывает» транзактам во входе, сколько бы транзактов в нем не находилось.

Для моделирования ограниченных ресурсов СМО в модели должны присутствовать аппаратные объекты: одноканальные или многоканальные устройства. Одноканальные устройства создаются в текущей модели при использовании блоков SEIZE (занять) и RELEASE (освободить), имеющих следующий формат:

имя SEIZE A

имя RELEASE А

В поле А указывается номер или имя устройства. Если транзакт входит в блок SEIZE, то устройство, указанное в поле А, становится занятым и остаётся в этом состоянии до тех пор, пока этот же транзакт не пройдёт соответствующий блок RELEASE, освобождая устройство. Если устройство, указанное в поле А блока SEIZE, уже занято каким-либо транзактом, то никакой другой транзакт не может войти в этот блок и остаётся в предыдущем блоке. Транзакты, задержанные (заблокированные) перед блоком SEIZE, остаются в списке текущих событий и при освобождении устройства обрабатываются с учетом приоритетов и очередности поступления.

Воспользуемся блоками SEIZE и RELEASE для моделирования одноканальной СМО (рис 3.6):

GENERATE 100.20

SEIZE SYSTEM

ADVANCE 80.10

RELEASE SYSTEM

TERMINATE 1

 

Рис.3.6

3) Операторы для сбора статистических данных

Для регистрации статистической информации о процессе ожидания транзактов в модели должны присутствовать статистические объекты: очереди или таблицы.

Объекты типа очередь создаются в модели путем использования операторов — регистраторов очередей: QUEUE (стать в очередь) и DEPART (уйти из очереди), имеющих следующий формат:

имя QUEUEА, В

имя DEPART А,В

В поле А указывается номер или имя очереди, а в поле В — число единиц, на которое текущая длина очереди увеличивается при входе транзакта в блок QUEUE или уменьшается при входе транзакта в блок DEPART. Обычно поле В пусто, и в этом случае его значение по умолчанию принимается равным 1. Для сбора статистики о транзактах, заблокированных перед каким-либо оператором модели, операторы QUEUE и DEPART помещаются перед и после этого блока соответственно.

4)Блоки, изменяющие маршруты транзактов.

В приведенных выше примерах транзакты, выходящие из любого блока, всегда поступали в следующий блок. В более сложных моделях возникает необходимость направления транзактов к другим блокам в зависимости от некоторых условий. Эту возможность обеспечивают операторы изменения маршрутов продвижения транзактов.

Оператор TRANSFER (передать) служит для передачи входящих в него транзактов в операторы, отличные от следующего. Оператор имеет девять режимов работы, из которых рассмотрим здесь лишь два наиболее часто используемых. В этих трех режимах оператор имеет следующий формат:

имя TRANSFER А,В,С

Смысл операндов в полях А, В и С зависит от режима работы оператора.

В режиме безусловной передачи поля А и С пусты, а в поле В указывается имя блока, к которому безусловным образом направляется транзакт, вошедший в блок TRANSFER. Например:

TRANSFER ,FIN

В режиме статистической передачи операнд А определяет вероятность, с которой транзакт направляется в оператор, указанный в поле С.

С вероятностью (1-А) транзакт направляется в оператор, указанный в поле В (или в следующий, если поле В пусто).

Вероятность в поле А может быть задана непосредственно десятичной дробью, начинающейся с точки.

Например, оператор

TRANSFER .75,THIS,THAT

с вероятностью 0,75 направляет транзакты в блок с именем THAT, a с вероятностью 0,25 — в блок с именем THIS.

С помощью перечисленных операторов возможно моделирование многих несложных производственных и экономических систем.

3.2.4 Примеры простых моделей в GPSSW.

В данном разделе рассматриваются простые системы с одноканальными устройствами, для моделирования которых используются операторы, рассмотренные в предыдущем разделе.

Пример 3.2Контролер проверяет качество изготовленных деталей. Время между поступлением деталей распределено равномерно со средним значением 10 минут и среднеквадратичным отклонением 10±5 минут. Время, затрачиваемое на контроль одной детали, также распределено равномерно и составляет 8±7 минут.

Промоделировать средствами GPSSW работу участка контроля. Определить среднее время, затрачиваемое на контроль 100 деталей, загрузку контролера, характеристики очереди деталей.

При составлении программы − модели за транзакты приняты детали, а обрабатывающим устройством является контролер.

Исходный текст программы модели представлен на рис. 3.6:

Операторы исходного текста программы Пояснения
GENERATE 10,5 Поступление деталей каждые 10±5 минут
QUEUEVHOD Занять очередь с именем VHOD
SEIZEKONTR Попытка занять контролера
DEPART VHOD Если попытка удалась, покинуть очередь деталей
ADVANCE 8,7 Задержка на время операции контроля
RELEASE KONTR Освобождение контролера
TERMINATE 1 Деталь (транзакт) удаляется из системы, одновременно из содержимого счетчика завершений вычитается единица

 

Рис. 3.6

Программа запускается управляющим оператором START 100.

После прогона модели выдается стандартный отчет (см. Таблица 3.2):

Содержимое стандартного отчета к примеру 3.2 Таблица 3.2

В нижней части отчета приводится статистика работы блоков модели (контролера и очереди), накопленная по результатам прогона. По данным отчета можно сделать следующие выводы:

· об обрабатывающем устройстве: на контроль всех 100 деталей будет затрачено в среднем 1014 минут, коэффициент загрузки контролера составит 0,808, на контроль одной детали затрачивается в среднем 8,199 минуты.

· статистика очереди: общее количество деталей, подвергнутых контролю, составило 100 штук, 46 из них поступили на контроль с нулевым временем простоя в очереди (т.е. контролер был не занят в момент их поступления). Максимальная длина очереди составила 5 деталей, средняя длина очереди ­ 0,496 детали, а среднее время простоя в очереди одной детали составило 5,027 минуты.

Особенность этой модели состоит в том, что в ней время моделирования определяется количеством транзактов, а время моделирования заранее неизвестно. Действительно, при запуске программы оператором

START 100 (надо обработать 100 транзактов) в счетчик завершений засылается число 100. Каждый транзакт, проходящий через оператор TERMINATE, вычитает из счетчика завершений 1, т.к. параметр А этого блока равен 1. Таким образом, моделирование завершится, когда 100-ый по счету транзакт войдет в оператор TERMINATE. При этом точное значение таймера в момент завершения прогона непредсказуемо. Следовательно, в приведенном примере продолжительность прогона устанавливается по количеству транзактов, прошедших через модель.

Пример 3.3Изменена цель предыдущей задачи: необходимо исследовать работу участка контроля за одну смену. т.е. задано время моделирования. Поскольку все временные интервалы должны быть представлены одинаковыми единицами измерения, время моделирования представим в минутах (длительность смены ­ 8 часов): 60*8=480 минут. В этом случае программа примет следующий вид (рис.3.7):

GENERATE 10,5
QUEUEVHOD
Сегмент 1: сохранившаяся часть программы
SEIZEKONTR

DEPART VHOD
ADVANCE 8,7
RELEASE KONTR
TERMINATE

Сегмент 2: сегмент времени моделирования.
GENERATE ,,480


Поделиться:

Дата добавления: 2014-11-13; просмотров: 99; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты