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

Блоки, ориентированные на сообщения

Читайте также:
  1. Алгоритм обработки одного блока сообщения
  2. БИТ-ОРИЕНТИРОВАННЫЕ ПРОТОКОЛЫ
  3. Блоки, изменяющие порядок прохождения блоков сообщениями
  4. ГОУ ВПО «МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ» (МИИТ)
  5. Гуманистически ориентированные направления западной философии XX в. (экзистенциализм, неотомизм, неопротестантизм)
  6. Диалоговые окна для обмена сообщениями
  7. Известно, что при сильном плаче (слезоотделении) вследствие наличия анатомического сообщения между глазницей и носовой полостью появляются прозрачные выделения из носа.
  8. Количественные характеристики выходного сообщения
  9. Личностно-ориентированные технологии обучения.
  10. Международные пассажирские сообщения
  11. Механизм оформления выходного сообщения

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

4.3.3.1. Блок GENERATE

Блок GENERATE является источником потока сообщений в модели. В данном блоке производится подготовка сообщений и запуск их в мо­дель через интервалы времени, заданные пользователем. Кроме задания правильной временной последовательности, пользователь может в блоке GENERATE задать некоторую информацию об атрибутах сообщений.

Блок GENERATE имеет следующий формат записи:

GENERATE [<A>],[<B>],[<C>],[<D>],[<E>]

В поле А указывается время, которое определяет интервал между моментами генерации сообщений блоком GENERATE. Операнд А может быть именем, положительным целым числом или непосредственно СЧА. Нельзя использовать в качестве операнда параметры сообщения.

В поле В задается модификатор, который изменяет значения ин­тервала генерации сообщений по сравнению с интервалом, указанным в поле А. Операнд В может быть именем, положительным целым числом или непосредственно СЧА. Нельзя использовать в качестве операнда пара­метры сообщения.

При вычислении разницы значений, заданных в полях А и В, по­лучается нижняя граница интервала, а при вычислении суммы - верхняя граница. После генерации очередного сообщения выбирается число из полученного интервала, и это будет значение времени, через которое следующее сообщение выйдет из блока GENERATE.

Пример: GENERATE 25,10

В этом случае генерация сообщений производится по равномерно­му закону из интервала – (15,35).

Следует обратить внимание на то, что сообщения генерируются с заданными интервалами только в том случае, если у блоков, следующих за блоком GENERATE (например: GATE, TEST, SEIZE или ENTER), не вы­ставлены блокирующие условия. Каждое последующее сообщение формиру­ется только тогда, когда сообщение из блока GENERATE входит в сле­дующий блок.

Из-за возможных воздействий на модель при изменении заданного интервала генерации сообщений нежелательно, чтобы после блока GENERATE следовал блок, создающий блокирующее условие.

В поле С задается начальная задержка. Начальная задержка от­носится к моменту формирования первого сообщения в блоке GENERATE как при первом просчете модели, так и после выполнения операции CLEAR. Начальная задержка – это момент времени, в который первое сгенерированное сообщение должно выйти из блока GENERATE; поля А и В на задержку сообщения влияния не имеют. Начальная задержка может быть меньше, равна или больше среднего времени, заданного в поле А. Операнд С может быть именем, положительным целым числом или непос­редственно СЧА. Нельзя использовать в качестве операнда параметры сообщения.

В поле D задается предел генерации. Эта величина представляет собой максимальное число сообщений, которое будет создано в блоке GENERATE. Операнд D может быть именем, положительным целым числом или непосредственно СЧА. Нельзя использовать в качестве операнда параметры сообщения. Если поле D пусто, блок генерирует неограни­ченное число сообщений. Предел генерации инициализируется повторно операцией CLEAR.

Поле Е определяет приоритет сообщений. Операнд Е может быть именем, положительным целым числом или непосредственно СЧА. Нельзя использовать в качестве операнда параметры сообщения. Если поле Е не задано, приоритет по умолчанию равен 0.

При повторном описании блока GENERATE при помощи нового опе­ратора описания блока интерпретатор GPSS просматривает все находя­щиеся в данный момент модели сообщения и проверяет, есть ли среди них сообщения, связанные с повторно описываемым блоком GENERATE (таких сообщений может и не быть, если данный блок уже создал за­данное число сообщений). Эти сообщения, если они есть, уничтожают­ся. Операнды нового блока GENERATE заменяют операнды предыдущего блока GENERATE, и затем создается новое сообщение, используя специ­фикации нового блока.

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

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

1) выполнены операции, заданные оператором CLEAR, и произво­дится повторный запуск всех блоков GENERATE;

2) блок GENERATE описан повторно.

4.3.3.2. Блок TERMINATE

Блок TERMINATE имеет следующий формат записи:

TERMINATE [<A>]

Блок TERMINATE удаляет из модели входящие сообщения.

В поле А задается число единиц, на которое этот блок изменяет содержимое счетчика завершений, определяющего момент окончания мо­делирования. Операнд А может быть именем, положительным целым чис­лом или СЧА. По умолчанию значение, определяемое полем А, равно 0. Если поле А пусто, то сообщение уничтожается, а содержимое счетчика не изменяется.

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

Стандартным числовым атрибутом, связанным с описываемым опе­ратором, является TG1 – число, равное текущему значению счетчика завершений. TG1 возвращает содержимое счетчика завершений, которое уменьшается блоком TERMINATE при заданном операнде А. Эта величина первоначально задается оператором START и указывает на завершение моделирования, когда становится равной 0.

4.3.3.3. Блок ADVANCE

Блок ADVANCE имеет следующий формат записи:

ADVANCE <A>,[<B>]

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

В поле В указывается способ модификации среднего значения, заданного в поле А. Операнд В может быть именем, положительным це­лым числом или СЧА.

4.3.3.4. Блок ASSIGN

Блок ASSIGN имеет следующий формат записи:

ASSIGN <A>,<B>,[<C>]

Блок ASSIGN заменяет, увеличивает или уменьшает текущее зна­чение параметра сообщения на заданное значение.

В поле А задается номер параметра, которому присваивается значение. Операнд А может быть именем, положительным целым числом, СЧА и следующими за ними знаками +, –. Если значение параметра нуж­но увеличить или уменьшить, то справа в поле А ставится знак сложе­ния или вычитания.

Поле В определяет значение, которое следует добавить или вы­честь из значения параметра, заданного аргументом поля А, или заме­нить его. Если такой параметр не существует, то он создается. Опе­ранд В может быть именем, любым целым числом или СЧА.

Пример: ASSIGN 2000+,–3

В этом примере значение поля В, равное –3, добавляется к зна­чению параметра с номером 2000, который задан операндом А. Если та­кой параметр в сообщении отсутствует, то он создается со значением, равным 0, до того, как будет произведено добавление. Тогда значение параметра сообщения становится равным –3.

4.3.3.5. Блок MARK

Блок MARK имеет следующий формат записи:

MARK [<A>]

Блок MARK либо заменяет значение отметки времени сообщения на текущее значение абсолютного условного времени (операнд А не опре­делен), либо записывает значение условного времени в заданный пара­метр сообщения (при использовании операнда А).

Поле А содержит номер параметра, в который записывается зна­чение абсолютного условного времени. Если такого параметра не су­ществует, то он создается. Операнд А может быть именем, положитель­ным целым числом или СЧА.

Исходное значение времени создания сообщения может быть заме­нено на текущее значение абсолютного условного времени при прохож­дении сообщения через блок MARK. Каждое сообщение имеет следующие два стандартных числовых атрибута, связанных с временем прохождения участков модели данным сообщением:

1) М1 - время прохождения сообщением модели;

2) MPj (j<>1) - промежуточное время прохождение сообщением участка модели.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)