ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.12.2025
Просмотров: 562
Скачиваний: 0
1. Транзакт входит в блок ADVANCE . Тогда интерпретатор отправляет его в ЦБС на место, соответствующее моменту активизации транзакта.
2. Возникает условие блокировки, т.е. транзакт не может войти в следующий блок. При этом транзакт остается в ЦТС,
3. Транзакт входит в блок TERMINATE при этом транзакт выводится из модели.
После этого интерпретатор выбирает для продвижения следующий транзакт и т.д. до конца ЦТС.
Когда в ЦТС не остается транзактов, кот м.б. продвинуты в модели в текущий момент модельного времени, интерпретатор изменяет модельное время так, чтобы оно стало равным планируемому времени движения первого транзакта в ЦБС. Этот, а также все др транзакты, движение кот м.б. возобновлено в тот же момент модельного времени, из ЦБС переносятся в ЦТС, где размещаются в порядке убывания приоритета. После завершения переноса транзактов начинается новый просмотр ЦТС интерпретатором. По завершении обработки всех транзактов из ЦТС интерпретатор вновь обращается к ЦБС и изменяет отсчет модельного времени, и т.д. Указанная последовательность действий производится при каждом новом значении модельного времени до тех пор, пока не будет выполнено условие прекращения моделирования.
Если при обращении к ЦБС в ней находится более одного транзакта с одинаковым планируемым временем выхода и с одинаковым приоритетом, возникает т.н. временной узел. Опасность временного узла состоит в возможном возникновении непредусмотренного вычислительного цикла.
ЦБС и ЦТС явл общими для всей системы моделирования. Они непосредственно не связаны к-л моделирующими элементами GPSS, кроме транзактов.
Имитационная модель GPSS. Объектная модель. Виды объектов: динамические, операционные, аппаратные, статистические, вычислительные, группирующие, запоминающие
Имитационная модель (ИМ) представляет собой комп программу, кот воспроизводит события, происходящие на реальном объекте, на основе технич принципов, кот используют СМО.
Для построения ИМ используют следующие языковые средства:
Язык программирования. «+»высокое быстродействие, невысокие требования к ресурсам комп.
Использование систем моделирования со встроенными языковыми средствами. «+»высокая скорость, меньшее время отладки. «-»медленнее работает (gpss).
Любая конструкция состоит из след полей: метка, ключевое слово, параметры, комментарии. Параметры перечисл через запятую, явл позиционными (смысл определяется его положением).
Модель состоит из объектов. Объекты GPSS можно разделить на 7 классов: динамические, операционные, аппаратные, статистические, вычислительные, запоминающие и группирующие.
Динамические объекты, соответствующие заявкам в системах массового обслуживания, наз транзактами. Транзакты могут иметь различные приоритеты.
Операционные объекты, наз блоками, соответствуют операторам-блокам исходной программы. Они формируют логику модели, давая транзактам указания: куда идти и что делать дальше.
Аппаратные объекты - это абстрактные элементы, на кот м.б. расчленено оборудование реальной системы. К ним относятся одноканальные и многоканальные устройства и логические переключатели.
Статистические объекты служат для сбора и обработки статистических данных о функционировании модели. К ним относятся очереди и таблицы.
К вычислительным объектам относятся переменные (арифметические и булевские) и функции. Они используются для вычисления некот величин, заданных арифметическими или логическими выражениями либо табличными зависимостями.
Запоминающие объекты обеспечивают хранение в памяти ПК отдельных величин, используемых в модели, а также массивов таких величин. К ним относятся сохраняемые величины и матрицы сохраняемых величин.
К объектам группирующего класса относятся списки пользователя и группы. Списки пользователя используются для организации очередей с дисциплинами, отличными от дисциплины "раньше пришел - раньше обслужен".
Обработка событий в имитационной модели. События: прибытие заявки, начало обслуживания, завершение обслуживания
ИМ на языке GPSS представляет собой список объектов (операторов и блоков), характеризующих процессы обработки заявок - пути их продвижения в моделируемой системе и сопровождающие это продвижение события. С помощью объектов языка описываются возникновение транзактов, их продвижение, задержки в очередях и устройствах, уничтожение и т.д. Последовательность записи объектов и специальные операторы управления задают маршруты перемещения транзактов между элементами модели.
При возникновении событий в процессе моделирования необходимо учитывать следующие обстоятельства:
Момент времени возникновения события должен быть независимой случайной величиной.
События должны возникать в некоторой хронологической последовательности.
3 основных события:
приход заявки (транзакта)
Разыгрывают случайное число в соответствии с распределением интервалов времени прибытия. Полученное событие интерпретируют как величина интервала модельного времени, кот должно пройти до прибытия следующей заявки.
Это значение складывают с текущим значением таймера модельного времени. Сумма является временем прибытия следующей заявки.
Проверка состояния обслуживающего прибора. Прибор свободен? НЕТ: поступления заявки на обслуживание в очередь. ДА: поступление заявки на обслуживание; это вызывает: а) переход обслуживающего прибора из свободного состояния в занятое; б) планирование события завершения обслуживания.
начало обслуживания
Причиной возникновения этого события может послужить основное событие прибытие заявки и прибор свободен. Другой вариант - произошло основное событие завершение обслуживания при этом, следующая заявка ожидает обслуживания. Вспомогательным является событие продвижение заявки в очереди.
завершение обслуживания
Завершение обслуживания планируется в тот момент, когда заявка поступает на обслуживание по схеме: получение случайного значения интервала времени обслуживания и суммирование с модельным временем - временем поступления заявки на обслуживание. Результат - время окончания обслуживания.
Проверка состояния очереди. Есть ли в очереди заявка, ожидающая обслуживания? НЕТ: переход обслуживающего прибора из занятого состояния в свободное ДА: поступление заявки на обслуживание; это вызывает: а) продвижение заявки в очереди; б) планирование события завершение обслуживания.
Логика работы моделирующей системы GPSS. Фазы ввода, просмотра и коррекции таймера.
Логика работы интерпретатора: Интерпретатор рассматривает каждый транзакт как элемент одной или нескольких цепей. Каждый транзакт м.б. представлен как звено в цепи. Цепи являются открытыми, имеют начало и конец. Положение транзакта в цепи зависит от того, как скоро он должен вернуться в модель для продолжения движения. Последовательность обработки связана с временем возникновений событий при выполнении моделирования.
Сущ цепи: текущих событий; будущих событий; пользователя; прерывания; парности.
Имеется только одна ЦТС и одна ЦБС.
ЦТС содержит транзакты, движение кот по блокам планируется в текущий момент времени, а также транзакты, движение кот заблокировано ввиду условий в модели.
ЦБС состоит из транзактов, движение кот не планируется в текущий момент времени. Это возможно в следующих случаях:
1. Транзакт попал в блок ADVANCE и в течение времени задержки нет попытки продвинуть его в следующий блок. 2. Транзакт должен войти в модель в более поздний момент времени через блок GENERATE .
Т.о., транзакты в модели располагаются одновременно и в блоках, и в цепях. Интерпретатор изменяет состояние модели при просмотре ЦТС от начала к концу. Он выбирает транзакт и двигает его по модели до тех пор, пока не возникнет одна из трех ситуации:
1. Транзакт входит в блок ADVANCE . Тогда интерпретатор отправляет его в ЦБС на место, соответствующее моменту активизации транзакта.
2. Возникает условие блокировки, т.е. транзакт не может войти в следующий блок. При этом транзакт остается в ЦТС,
3. Транзакт входит в блок TERMINATE при этом транзакт выводится из модели.
После этого интерпретатор выбирает для продвижения следующий транзакт и т.д. до конца ЦТС.
Логическая схема построения системы моделирования состоит из нескольких фрагментов, каждый из которых называется фазами.
Фаза ввода. После завершения трансляции модели и перед началом моделирования выполняйся фаза ввода, осуществляющая инициализацию модели. После завершения очередного модельного прогона интерпретатор возвращается на фазу ввода. На этой фазе обрабатываются все управляющие операторы, а также блоки GENERATE для задания момента прихода в модель первого транзакта.
Транзакты выбираются блоком GENERATE из пассивного буфера, представляющего собой стек со связанной организацией. При уничтожении в блоке TERMINATE транзакт возвращается в вершину пассивного буфера. Каждый транзакт имеет свой номер. Некот транзакты посетят модель несколько раз в процессе прогона, а некот могут вообще ни разу не войти в модель.
Фаза просмотра. (1)Перенести транзакт, находящийся в начале ЦТС, через возможное число блоков → (2)необходимо ли повторно просматривать ЦТС из-за того, что только что перемещенный транзакт вызвал работу определенных блоков? Если ДА, то на п.(1), если НЕТ, то (3)есть ли в ЦТС следующий транзакт? Если НЕТ, то перейти на (4)фазу коррекции таймера. Если ДА, то п(2).
Фаза коррекции таймера. (1)найти транцакт в ЦБС → (2)продвинуть значение таймера до значения времени движ этого транзакта → (3)перенести транзакт из ЦБС в ЦТС и поместить его в кач последнего эл-та в соотв классе приоритетов → (4)совпадает ли значение времени движ следующего транзакта в ЦБС с текущим значением времени? Если НЕТ, то перейти на фазу просмотра. Если ДА, то (5)перенести следующий транзакт из ЦБС в ЦТС и пометить его в кач последнего эл-та в соотв классе приоритетов → (4)
Связь отдельных сегментов модели путем использования одинаковых имен объектов на примере моделирования системы с одним прибором и очередью, но с разными типами заявок.
Задача «Станция технического обслуживания с учетом приоритета»
expf function rn1,c24
0,…1,8
SERVIS_VOLGA FUNCTION RN1,D5
0,360/0.25,360/0.5,300/0.75,300/1,150
SERVIS_MOSCVICH FUNCTION RN1,D5
0,240/0.25,240/0.5,180/0.75,120/1,60
SERVIS_GIGULI FUNCTION RN1,D5
0,270/0.25,270/0.5,180/0.75,180/1,120
WORK STORAGE 13
GENERATE 90,FN$EXPF,,,2
ASSIGN 2,1
ASSIGN 1,FN$SERVIS_VOLGA
TRANSFER ,SERVIS
GENERATE 60,FN$EXPF,,,1
ASSIGN 2,2
ASSIGN 1,FN$SERVIS_MOSCVICH
TRANSFER ,SERVIS
GENERATE 30,FN$EXPF
ASSIGN 2,3
ASSIGN 1,FN$SERVIS_GIGULI
TRANSFER ,SERVIS
SERVIS QUEUE GWORK
ENTER WORK
DEPART GWORK
ADVANCE P1,FN$EXPF
LEAVE WORK
TERMINATE 1
START 10000
Приоритетные дисциплины обслуживания заявок. Назначение приоритетов в блоках GENERATE и PRIORITY. Переход транзактов в блок, отличный от последующего. Блок TRANSFER в режиме безусловной передачи.
Каждому транзакту, входящему в модель, присваивается уровень приоритета, определенный пользователем. Он влияет на последовательность обработки транзактов интерпретатором, а значит, и на последовательность наступления событий в модели. Наиболее важными приоритетными очередями явл ЦТС, а также цепи задержки, связанные с приборами и МКУ. Изменяя приоритет, можно оказывать влияние на ход моделирования, разрешать ситуации, когда 2 или большее число событий происходят одновременно. Внутри одного приоритета транзакты обрабатываются в порядке «первым пришел - первым обслужен».
Значение приоритета д.б. целочисленным. Если приоритет создаваемого транзакта не задан по умолчанию он = 0.
Приоритет транзакта м.б. изменен в блоке PRIORITY. Новое значение приоритета определяется операндом А этого блока. Операнд В не явл обязательным и может принимать только одно значение -BU. Когда в поле В блока PRIORITY задано это значение, транзакт в результате выполнения подпрограммы блока занимает место в ЦТС последним в приоритетном классе, заданном операндом А.