Чёрненький В.М. - Учебное пособие по GPSS, страница 7
Описание файла
PDF-файл из архива "Чёрненький В.М. - Учебное пособие по GPSS", который расположен в категории "". Всё это находится в предмете "имитационное моделирование дискретных процессов" из 7 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "имитационное моделирование дискретных процессов" в общих файлах.
Просмотр PDF-файла онлайн
Текст 7 страницы из PDF
Черненький. Адаптированное описание системы имитационного моделирования GPSS28Если список пользователя CHANNEL пуст (индикатор компоновки списка пользователявыключен) ,транзакт перейдет к блоку с именем LABEL_CH и индикатор компоновкибудет включен. Следующие транзакты, входящие в блок LINK, будут помещены в списокпользователя.
Индикатор компоновки выключится, когда блок UNLINK определит, чтосписок пользователя пуст.Блок UNLINKНазначение. Блок считывает транзакты из списка пользователя.Синтаксис. UNLINK [X] A,B,[C],[D],[E],[F]ОперандXНазначениеОперация сравнения для операндов D и Е.AСписок пользователя, из которого будет считанодин или несколько транзактов.BБлок, куда переходят считанные транзакты.CМаксимальное количество транзактов, которыебудут считаныDОпределяет условия считывания транзактов изочередиEИспользуется совместно с операндом D и X дляопределения условия считывания транзактов изспискаFЗначениеУсловнаяоперацияотношенияИмя,число,СЧАИмя,число,СЧАИмя,число,СЧА,ALLИмя,число,СЧА,BACKИмя,число,СЧАЗначение по умолчаниюEОбязательный операнд.Обязательный операндALLНетНетНетОсобенности выполнения.1.
Блок UNLINK считывает транзакты из списка пользователя и направляет ихв указанный блок. Транзакты, которые необходимо исключить, можно выбирать, также можно наложить ограничение на количество исключаемыхтранзактов.2. Если транзакт входит в блок UNLINK, когда в списке нет транзактов, индикатор компоновки списка пользователя сбрасывается.3. Можно ограничить число считываемых из списка транзактов с помощьюоперанда С. Если операнд С опущен, то берется ALL.4. Если операнды D, Е и условный оператор опущены, исключаются все транзакты с начала списка, пока список не будет исчерпан, или не будет достигнут предел исключаемых транзактов (операнд С).5. Операнд D может быть булевой переменной, номером параметра или словом «BACK».Если операнд D является булевой переменной, он вычисляется относительно транзакта, находящегося в списке пользователя, и если результат ненулевой, транзакт исключается.Если в операнде D указано BACK, транзакты исключаются, начиная сконца списка пользователя, пока не будет достигнут предел.ОглавлениеВ.М.
Черненький. Адаптированное описание системы имитационного моделирования GPSS29В противном случае операнд вычисляется относительно транзакта, находящегося в списке пользователя, и используется в качестве номера параметра, значение которого возвращается членом списка пользователя, как конечный результат.
Это конечное значение сравнивается с результатом вычисления операнда Е.Если операнд D задает параметр, а Е не используется, параметр транзакта из списка пользователя сравнивается с таким же параметром активного транзакта. Если они равны, транзакт, находящийся в списке, считываетсяиз списка.6. Операнд Е используется только в том случае, если используется операторотношения. В этом случае обязательно требуется операнд D. Список пользователя проверяется, начиная с начала.
Если условие, заданное операторомотношения, выполняется для операндов D и Е, исключается каждый транзакт, (вплоть до предела (операнд С)). Если в операнде Е используется СЧАтранзакта, он вычисляется относительно активного транзакта.7. оператор отношения используется для определения соотношения между атрибутом транзакта (операнд D) и значением операнда Е. Если отношениевыполняется, то транзакт считывается из списка. В качестве оператора отношения могут быть использованы Е, G, GE, L, LE или NE.
По умолчанию вкачестве оператора отношения используется Е (равно).8. Операнд 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Назначениеимя занимаемого прибораЗначениеИмя,Значение по умолчаниюОбязательный операндОглавлениеВ.М. Черненький. Адаптированное описание системы имитационного моделирования GPSS30BCУсловия занятия прибораБлок, куда должен перейти прерванный транзактDПараметр прерванного транзакта, в который записывается оставшееся время, если транзакт удаляется из списка будущих событийРежим удаленияEчисло,СЧАPRИмя,число,СЧАИмя,число,СЧАREРежим прерыванияНетНетНетОсобенности выполнения.Если прибор находится в состоянии «не готов к использованию», то транзакт помещаются в список задержки прибора в конец своего приоритетного класса.2.Операнд В задает приоритетный режим (PR) или режим прерывания, если операндопущен.3.При работе в приоритетном режиме транзакт, занимающий уже прибор, можетбыть прерван только транзактом, приоритет которого выше приоритета данного транзакта.
Если приоритет входящего транзакта ниже, то он помещается в список задержки вконец своего приоритетного класса.4.В режиме прерывания, если прибор уже используется, поступивший транзакт помещается в список отложенных прерываний. Транзактам из списка отложенных прерываний право занять прибор предоставляется раньше, чем транзактам из списков прерываний или задержки.5.Прерванный транзакт теряет управление прибором , но может претендовать на дообслуживание, когда прервавший его транзакт входит в соответствующий блокRETURN(если только не задан операнд Е).6.Прерванные транзакты помещаются в список прерываний в порядке приоритета.7.Операнд С задает блок, куда должен попытаться перейти прерванный транзакт вэтот же момент модельного времени.8.Если прерываемый транзакт находится в списке будущих событий(вошел в блокеADVANCE), то для него выполняются следующие действия:•вычисляется остаток времени, в течение которого транзакт должен был находитьсяв блоке ADVANCE, равный разнице планируемого времени выхода транзакта из блокаADVANCE и текущего значения абсолютного условного времени; Операнд D задаетномер параметра прерванного транзакта, куда записывается вычисленный остаток времени.
Если такой параметр не существует, то он создается.•транзакт удаляется из списка будущих событий;•транзакт рассматривается, как находящийся в состоянии прерывания и помещаетсяв список прерывания;•счетчик прерываний увеличивается на единицу.9.Прерываемый транзакт может находиться в списке текущих событий (например,когда блок ADVANCE имеет нулевую задержку). В этом случае удаление транзакта изсписка текущих событий и перевод его в состояние прерывания производится не сразу.Сначала устанавливается индикатор состояния прерывания. Транзакт, занимающий прибор, будет обрабатываться интерпретатором как обычно и перейдет в состояние прерывания только тогда, когда оно войдет в блок ADVANCE с ненулевой задержкой.10.Поле Е задает один из следующих режимов:-режим удаления(RE).
Задание этого режима означает, что прерванный транзакт более непретендует на пользование прибором. Прерванный транзакт пытается войти в блок, заданный полем С (если в поле Е стоит RE, то должно быть указано и поле С). При ис-1.ОглавлениеВ.М. Черненький. Адаптированное описание системы имитационного моделирования GPSS31пользовании RE прерванный транзакт не должен входить в блоки RELEASE и RETURN,связанные с прерванным транзактом;-если режим RE не задан, т.е. поле Е - пусто, то прерванный транзакт по возвращении всписок текущих событий будет вновь пытаться занять прибор.11.Прерванный транзакт борется за прибор, даже если он перемещен операндом С(если RE не используется в операнде Е). Если прерванный транзакт все еще борется заприбор, то попытка транзакта войти в блок TERMINATE приводит к ошибке. Такойтранзакт перед входом в блок TERMINATE должен войти в блок RELEASE или блокRETURN.12.Транзакт может быть прерван на любом количестве приборов и продолжать циркулировать в модели при выполнении следующих двух условий:-транзакт вошел в блок ADVANCE с положительным временем;-транзакту не разрешается покинуть блоки ASSEMBLE, GATHER или MATCH до тех пор,пока в них не войдет заданное число транзактов из того же семейства.13.Прибор может быть захвачен любое количество раз, но не два раза подряд однимтранзактом.14.При использовании операндов C, D, E следует учитывать следующее:-при задании полей D и (или) E, поле С также должно быть задано;-если приоритетный режим не задан (PR в операнде B), то операнды C, D и (или) E игнорируются.Примеры.1.PREEMPT UNITВ режиме прерывания, если прибор UNIT уже занят, поступивший транзакт помещается в список отложенных прерываний2.PREEMPT UNIT,PR,NODE2,P_TimeВ приоритетном режиме, если приоритет поступившего транзакта выше приоритетатранзакта, .занимающего уже прибор, возникает прерывание.
Если приоритет входящеготранзакта ниже, то он помещается в список задержки в конец своего приоритетного класса. Прерванный транзакт пытается перейти в блок с меткой NODE2, а остаток временидо окончания обслуживания будет помещен в параметр транзакта с именем P_Time.Блок RETURNНазначение. Блок позволяет активному транзакту освободить занятый прибор или исключить транзакт из списка прерываний прибора.Синтаксис. RETURN AОперандAНазначениеИмя освобождаемого прибораЗначениеИмя,число,СЧАЗначение по умолчаниюОбязательный операндПример использования.RETURN WorkStationОсвобождается прибор с именем WorkStationРасширенные описания блоковБлок TRANSFER (полное описание)Назначение.
Блок передает транзакт на указанный блок.Синтаксис. TRANSFER [A],[B],[C],[D]ОглавлениеВ.М. Черненький. Адаптированное описание системы имитационного моделирования GPSS32ОперандНазначениеAРежим блокаBНомер или метка блока.Номер или имя параметра в режиме РCНомер или метка блока.Приращение в режимах FN и PDПриращение номера блока для режима ALLЗначениеBOTH,ALL,PICK,FN,P,SBR,SIM,Имя, число,СЧАИмя,число,СЧАИмя,число,СЧАИмя,число,СЧАЗначение по умолчаниюРежим безусловнойпередачиНетНет0 для режима P1Особенности выполнения.Блок TRANSFER может функционировать в одном из 9 режимов.
Операнд А используетсядля определения режима, в котором функционирует блок. Значение операндов В и Сзависит от режима. Если не задан операнд, определяющий блок, куда будет передан транзакт, то используется блок, следующий за блоком TRANSFER.1. Режим безусловной передачиКогда операнд А отсутствует, блок TRANSFER функционирует в режиме безусловной передачи. В этом режиме активный транзакт всегда переходит к блоку, заданному в операнде В.TRANSFER ,NO_SERVПри входе транзакта в блок TRANSFER, он передается в блок с меткой NO_SERV.2.