Главная » Все файлы » Просмотр файлов из архивов » Документы » Краткое руководство по моделированию на языке GPSS

Краткое руководство по моделированию на языке GPSS, страница 6

2017-12-27СтудИзба

Описание файла

Документ из архива "Краткое руководство по моделированию на языке GPSS", который расположен в категории "". Всё это находится в предмете "имитационное моделирование дискретных процессов" из 7 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "имитационное моделирование дискретных процессов" в общих файлах.

Онлайн просмотр документа "Краткое руководство по моделированию на языке GPSS"

Текст 6 страницы из документа "Краткое руководство по моделированию на языке GPSS"

Синтаксис. MATCH A

Операнд

Назначение

Значение

Значение по умолчанию

A

Имя или номер блока MATCH, сопряженного с данным.

Имя / число/ СЧА

Обязательный параметр

Пример.

PROC1 MATCH PROC2

:

:

:

PROC2 MATCH PROC1

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

Останов процесса моделирования

Процедура останова модели включает 3 компонента:

  • счетчик останова

  • занесение начального значения в счетчик останова

  • изменение значения счетчика останова.

Останов моделирования происходит, когда содержимое счетчика останова пронимает значение 0.

Счетчик останова – системный параметр. Работа со счетчиком останова выполняется с помощью оператора START и блока TERMINATE.

Оператор START завершает описание программы моделирования и в параметре А содержит начальное значение счетчика останова.

Изменение содержимого счетчика останова выполняется блоком TERMINATE, содержащим параметр А. При поступлении активного транзакта на блок TERMINATE происходит не только его уничтожение, но и выполняется вычитание из счетчика останова содержимого параметра А блока TERMINATE.

Пример управления окончанием моделирования по числу транзактов:

GENERATE 1000

<сегмент модели>

TERMINATE 1

START 20

Моделирование завершится, когда через сегмент модели пройдет 20 транзактов. Эта величина первоначально задается оператором START и уменьшается каждый раз при входе транзакта в блок TERMINATE. После поступления 20 транзактов на блок TERMINATE счетчик останова станет равным 0 и моделирование завершится.

Пример управления окончанием моделирования по времени:

GENERATE 15,5

<сегмент модели>

TERMINATE

GENERATE 720

TERMINATE 1

START 1

Основной сегмент модели содержит блоки TERMINATE, у которых отсутствует параметр А. Для останова по времени создается отдельный сегмент, содержащий указанные блоки. Моделирование завершится, когда модельное время будет равно 720 единицам модельного времени, поскольку именно в этот момент времени из генератора выйдет первый транзакт, и счетчик останова обнулится.

ПРИЛОЖЕНИЕ

Список дополнительных блоков и расширений

Блоки работы со списками пользователя

Блок LINK

Назначение. Блок помещает активный транзакт в список пользователя.

Синтаксис. LINK A,B[,C]

Операнд

Назначение

Значение

Значение по умолчанию

A

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

Имя, число, СЧА

Обязательный параметр

B

Дисциплина помещения нового транзакта в список пользователя.

LIFO, FIFO, СЧА транзакта

Обязательный параметр

C

Имя блока, куда переходит транзакт, если индикатор компоновки списка пользователя находится в выключенном состоянии (сброшен)

Имя, число, СЧА

Нет

Особенности выполнения.

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

  2. Транзакт остается в списке пользователя до тех пор, пока какой-либо другой транзакт не войдет в блок UNLINK и не считает его из списка.

  3. Если в операнде В указано FIFO (первым вошел, первым вышел), транзакты помещаются в конец списка.

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

  5. Если в операнде В не используется LIFO или FIFO, то применяется СЧА транзакта - PR, M1 или Р. Может быть использована косвенная адресация. Если задано PR, транзакты помещаются в список пользователя в приоритетном порядке. Если задан номер параметра, транзакт помещается в список пользователя позади тех транзактов, значение соответствующего параметра которых меньше, чем у входящего транзакта.

  6. Если задан операнд С, то используется флаг «Индикатор компоновки». Если индикатор компоновки списка пользователя выключен(сброшен) , блок LINK не поместит транзакт в список . Вместо этого транзакт перейдет к блоку указанному в операнде С, после чего индикатор компоновки будет включен (установлен). Следующие транзакты, входящие в блок LINK, будут помещены в список пользователя. Индикатор компоновки управляется блоками LINK и UNLINK. Он выключается (сбрасывается), когда блок UNLINK определяет, что список пользователя пуст.

Примеры.

1. LINK CHANEL,FIFO

Транзакт, вошедший в блок LINK , будет добавлен в конец очереди с именем CHANEL.

2. LINK CHANNEL,PR,LABEL_CH

Если список пользователя CHANNEL пуст (индикатор компоновки списка пользователя выключен) ,транзакт перейдет к блоку с именем LABEL_CH и индикатор компоновки будет включен. Следующие транзакты, входящие в блок LINK, будут помещены в список пользователя. Индикатор компоновки выключится, когда блок UNLINK определит, что список пользователя пуст.

Блок UNLINK

Назначение. Блок считывает транзакты из списка пользователя.

Синтаксис. UNLINK [X] A,B[,C][,D][,E][,F]

Операнд

Назначение

Значение

Значение по умолчанию

X

Операция сравнения для операндов D и Е.

Условная операция отношения

E

A

Список пользователя, из которого будет считан один или несколько транзактов.

Имя,

число, СЧА

Обязательный операнд.

B

Блок, куда переходят считанные транзакты.

Имя,

число, СЧА

Обязательный операнд

C

Максимальное количество транзактов, которые будут считаны

Имя,

число,

СЧА,

ALL

ALL

D

Определяет условия считывания транзактов из очереди

Имя,

число, СЧА, BACK

Нет

E

Используется совместно с операндом D и X для определения условия считывания транзактов из списка

Имя,

число,

СЧА

Нет

F

Нет

Особенности выполнения.

  1. Блок UNLINK считывает транзакты из списка пользователя и направляет их в указанный блок. Транзакты, которые необходимо исключить, можно выбирать, также можно наложить ограничение на количество исключаемых транзактов.

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

  3. Можно ограничить число считываемых из списка транзактов с помощью операнда С. Если операнд С опущен, то берется ALL.

  4. Если операнды D, Е и условный оператор опущены, исключаются все транзакты с начала списка, пока список не будет исчерпан, или не будет достигнут предел исключаемых транзактов (операнд С).

  5. Операнд D может быть булевой переменной, номером параметра или словом «BACK».

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

Если в операнде D указано BACK, транзакты исключаются, начиная с конца списка пользователя, пока не будет достигнут предел.

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

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

  1. Операнд Е используется только в том случае, если используется оператор отношения. В этом случае обязательно требуется операнд D. Список пользователя проверяется, начиная с начала. Если условие, заданное оператором отношения, выполняется для операндов D и Е, исключается каждый транзакт, (вплоть до предела (операнд С)). Если в операнде Е используется СЧА транзакта, он вычисляется относительно активного транзакта.

  2. Оператор отношения используется для определения соотношения между атрибутом транзакта (операнд D) и значением операнда Е. Если отношение выполняется, то транзакт считывается из списка. В качестве оператора отношения могут быть использованы Е, G, GE, L, LE или NE. По умолчанию в качестве оператора отношения используется Е (равно).

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

Примеры.

1. UNLINK CHANNEL,LABEL_CH,1

Считывается один транзакт из начала списка CHANNEL и он направляется в блок с именем LABEL_CH. Транзакт, вошедший в UNLINK, переходит к следующему блоку.

2. UNLINK BUFFER,FAC_2,1,BACK

Считывается из списка пользователя с именем BUFFER один транзакт с конца списка и он направляется в блок с именем FAC_2.

3. UNLINK E P$BUF,MET_1,ALL,COND,P$COND,MET_2

Считываются из списка пользователя, номер которого записан в параметре BUF вошедшего транзакта, и направляются в блок с именем MET_1 все транзакты, содержимое параметра COND которых равно содержимому одноименного параметра вошедшего транзакта. Если таких транзактов в списке нет, то вошедший транзакт будет направлен в блок с именем MET_2, в противном случае - к следующему блоку.

Приборы с прерыванием

Блок PREEMPT

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

Синтаксис. PREEMPT A [,B][,C][,D][,E]

Операнд

Назначение

Значение

Значение по умолчанию

A

имя занимаемого прибора

Имя, число,

СЧА

Обязательный операнд

B

Условия занятия прибора

PR

Режим прерывания

C

Блок, куда должен перейти прерванный транзакт

Имя, число,

СЧА

Нет

D

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

Имя, число,

СЧА

Нет

E

Режим удаления

RE

Нет

Особенности выполнения.

  1. Если прибор находится в состоянии «не готов к использованию», то транзакт помещаются в список задержки прибора в конец своего приоритетного класса.

  2. Операнд В задает приоритетный режим (PR) или режим прерывания, если операнд опущен.

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

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

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

  6. Прерванные транзакты помещаются в список прерываний в порядке приоритета.

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

  8. Если прерываемый транзакт находится в списке будущих событий(вошел в блоке ADVANCE), то для него выполняются следующие действия:

  • вычисляется остаток времени, в течение которого транзакт должен был находиться в блоке ADVANCE, равный разнице планируемого времени выхода транзакта из блока ADVANCE и текущего значения абсолютного условного времени; Операнд D задает номер параметра прерванного транзакта, куда записывается вычисленный остаток времени. Если такой параметр не существует, то он создается.

  • транзакт удаляется из списка будущих событий;

  • транзакт рассматривается, как находящийся в состоянии прерывания и помещается в список прерывания;

  • счетчик прерываний увеличивается на единицу.

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

  2. Поле Е задает один из следующих режимов:

- режим удаления(RE). Задание этого режима означает, что прерванный транзакт более не претендует на пользование прибором. Прерванный транзакт пытается войти в блок, заданный полем С (если в поле Е стоит RE, то должно быть указано и поле С). При использовании RE прерванный транзакт не должен входить в блоки RELEASE и RETURN, связанные с прерванным транзактом;

- если режим RE не задан, т.е. поле Е - пусто, то прерванный транзакт по возвращении в список текущих событий будет вновь пытаться занять прибор.

  1. Прерванный транзакт “борется” за прибор, даже если он перемещен операндом С (если RE не используется в операнде Е). Если прерванный транзакт все еще “борется” за прибор, то попытка транзакта войти в блок TERMINATE приводит к ошибке. Такой транзакт перед входом в блок TERMINATE должен войти в блок RELEASE или блок RETURN.

  2. Транзакт может быть прерван на любом количестве приборов и продолжать циркулировать в модели при выполнении следующих двух условий:

- транзакт вошел в блок ADVANCE с положительным временем;

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее