|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Блоки, ориентированные на сообщенияПрактически все изменения состояния в моделях 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) - промежуточное время прохождение сообщением участка модели. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |