ТЕМА (1086517), страница 12

Файл №1086517 ТЕМА (Учебное пособие) 12 страницаТЕМА (1086517) страница 122018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 12)

Отметим, что транзакты цепи будущих событий в строке 4, если рассматривать их слева направо, имеют смысловые значения, записанные в табл.13.3.

Таблица 13.3. Смысловые значения транзактов в цепи будущих событий (строка 4, рис.13.6).

Смысловые значение транзактов в цепи будущих событий

Номер транзакта

Смысловое значение

3

Второй клиент идет в парикмахерскую

1

Первый клиент стрижется

2

Транзакт-таймер

(от строки 4 к строке 5). Интерпретатор продвигает таймер к значению 27 - времени движения транзакта (транзакт 3), находящегося в начале строки 4 цепи будущих событий. Далее он перемещает транзакт из ЦБС в прежде пустую ЦТС. Следующий транзакт в ЦБС (транзакт 1) имеет время движения, отличное от 27. Следовательно, второе выполнение фазы коррекции таймера завершается. Начинается следующее выполнение просмотра.

Второе выполнение фазы просмотра (от строки 5 к строке 6). Взяв транзакт 3 из начала строки 5 цепи текущих событий, интерпретатор двигает его в блок 1 (блок GENERATE), затем определяет, можно ли сразу переместить его в блок 2. Временно приостановив обработку транзакта 3, интерпретатор планирует приход следующего транзакта в блок 1 (GENERATE). В соответствии с интервалом прихода 17 (третье разыгранное значение из распределения 18 - 6 в табл. 13.1) транзакт 4 выбирается из вершины пассивного буфера и помещается в ЦБС; планируется его вход в блок 1 в момент времени 44. Она занимает в ЦБС положение между транзактом 1 и 2 в соответствии с принципом упорядочения в ЦБС.

Интерпретатор возобновляет движение транзакта 3, завершая его выполнением подпрограммы блока QUEUE. Здесь транзакт безуспешно пытается выйти из блока QUEUE и войти в блок SEIZE. Устройство JOE находится в состоянии "занято", поэтому вход в этот блок запрещен. Интерпретатор оставляет транзакт 3 в блоке QUEUE и в ЦТС, планируя войти в блок 3 "Как можно раньше". Далее интерпретатор должен продолжать работу со следующим транзактом в строке 5 цепи текущих событий. Но такого транзакта не существует. Поэтому следующим шагом является выполнение фазы коррекции таймера. Заметим, что таймер все равно надо было бы продвинуть, даже если бы цепь текущих событий была не пустой.

Отметим, что транзакты в строке 6 на рис.13.6 имеют смысл, указанный в табл. 13.4.

Таблица 13.4. Смысловые значения транзактов в цепях текущих и будущих событий (строка 6, рис. 13.6).

Смысловые значение транзактов в цепях текущих и будущих событий

Цепь

Номер транзакта

Распределение времени обслуживания, мин

ЦТС

3

Второй клиент ждет в очереди

ЦБС

1

Первый клиент стрижется

ЦБС

4

Третий клиент идет в парикмахерскую

ЦБС

2

Тразакт-таймер

Третье выполнение фазы коррекции таймера (от строки 6 к строке 7). Интерпретатор продвигает значение модельного времени к 32 - времени движения транзакта (транзакт 1), стоящего первым в строке 6 цепи будущих событий. Далее он перемещает транзакт 1 в цепь текущих событий, где тот занимает место последнего элемента среди элементов того же приоритетного класса. Отметим, что в строке 7 в ЦТС транзакт 1 располагается за транзактом 3 (транзакт 3 уже стоит в цепи текущих событий в начале третьего выполнения фазы коррекции таймера).

Следующий транзакт ЦБС (транзакт 4) имеет значение времени движения, отличное от 32. Следовательно, выполняется следующая фаза просмотра. При этом транзакты, находящиеся в строке 7 цепи текущих событий, имеют смысл, указанный в табл. 13.5.

Таблица 13.5. Смысловые значения транзактов в цепи текущих событий.

Смысловые значения транзактов в цепи текущих событих

Номер транзакта

Смысловое значение

3

Второй клиент ждет в очереди

1

Первый клиент только что закончил завершил стрижку

Третье выполнение фазы просмотра (от строки 7 к строке 8). Выбрав транзакт 3 из начала строки 7 ЦТС, интерпретатор терпит неудачу в попытке ввести транзакт в блок 3 (SEIZE) и вывести его из блока 2. Во входе в блок 3 отказано, поскольку прибор все еще не освободился. Поэтому транзакт 3 остается в блоке QUEUE и в ЦТС, причем планируется его вход в блок 3 "как можно раньше". Переходим к следующему транзакту строки 7 ЦТС (транзакту 1). Интерпретатор перемещает его из блока 5 в блок 6 (RELEASE) и далее из блока 6 в блок 7 (TERMINATE), где он выводится из модели и возвращается в вершину пассивного буфера.

Теперь, поскольку транзакт 1 вызвал выполнение подпрограммы блока RELEASE, интепретатор вновь просматривает цепь текущих событий. Снова выбирается транзакт 3, и он снова пытается выйти из блока 2 и войти в блок 3. На этот раз попытка оказывается успешной.

Выполнение последовательности SEIZE-ADVANCE-RELEASE вызывает необходимость зедержать транзакт на 12 единиц времени в соответствии с распределением 16 ± 4 (второе значение из табл.13.2). Транзакт 3 помещается в ЦБС; планируется вывести его из блока 5 и поместить в блок 6 в момент времени "текущий + 12" или 44. Заметим, что в ЦБС транзакт 3 попадает в один узел с транзактом 4, который также имеет время движения, равное 44. Поскольку транзакт 4 уже находится в ЦБС, транзакт 3 помещается позади него. Напомним, что если в ЦБС возникает узел времени, то входящий транзакт попадает в цепь как последний элемент среди транзактов того же значения времени движения.

Поскольку транзакт 3 вызвал выполнение блока SEIZE, интерпретатор заново просматривает цепь текущих событий. На этот раз цепь пуста. Поэтому на следующем этапе необходимо выполнить фазу коррекции таймера. В это время транзакты в цепи будущих событий в строке 8 имеют смысл, указанный в табл. 13.6.

Таблица 13.6.

Смысловые значения транзактов в цепи будущих событих

Номер транзакта

Смысловое значение

3

Второй клиент стрижется

4

Третий клиент едет в парикмахерскую

2

Транзакт-таймер

Четвертое выполнение фазы коррекции таймера (от строки 8 к строке 9). Интерпретатор продвигает время к значению 44 - времени движения транзакта (транзакта 4), стоящего первым в строке 8 цепи будущих событий. Затем он перемещает транзакт 4 из ЦБС в ранее пустую ЦТС. Следующий транзакт в ЦБС (транзакт 3) также имеет значение времени движения, равное 44. Он также перемещается в цепь текущих событий, где помещается за транзактом 4 в качестве последнего элемента внутри своего класса приоритетов. Следующий транзакт в цепи будущих событий (транзакт 2) имеет время движения, отличное от 44. Таким образом, четвертая коррекция таймера завершается.

Прежде чем продолжить, давайте снова посмотрим, какой смысл придается двум транзактам, стоящим в строке 9 цепи текущих событий (табл. 13.7).

Таблица 13.7. Смысловые значения транзактов в цепи текущих событий.

Смысловые значения транзактов в цепи текущих событих

Номер транзакта

Смысловое значение

4

Третий клиент только что пришел в парикмахерскую

3

Второй клиент только что закончил стрижку

Четвертое выполнение фазы просмотра (от строки 9 к строке 10). Выбрав транзакт 4, стоящий в начале строки 9 ЦТС, интерпретатор помещает его в блок 1, далее определяет, можно ли его переместить из блока 1 в блок 2. Временно прекратив обработку транзакта 4, интерпретатор планирует время прихода его последователя в блок 1 (GENERATE). Транзакт 1 выбирается из вершины транзактов пассивного буфера и помещается в цепь будущих событий, причем планируется время входа в блок 1 в момент времени "текущий + 15", т.е. 59 (в соответствии с табл.13.1, четвертое значение для распределения 18 ± 6 равно 15).

Заметим, что это снова транзакт 1, который вернулся в модель из пассивного буфера. Транзакт, который прежде уже был в модели и символизировал собой первого клиента, теперь вернулся "в игру", символизируя четвертого клиента того же дня.

В качестве конкретного примера одновременных событий в GPSS рассмотрим пример моделирования 2А и соответствующие состояния цепей, показанные на рис. 13.6. В строке 9 на рис.13.6 в цепи текущих событий мы видим два события, запланированных на одно и то же модельное время 44. Первым из этих событий, [4,КМР,НЕТ, 0,1], является приход клиента в парикмахерскую. Вторым из этих событий, [3,КМР,5,0,6], является завершение обслуживания клиента, находящегося в кресле парикмахера. На самом деле следующий клиент входит в дверь как раз в момент, когда обслуживаемый клиент поднимается из кресла парикмахера.

Посмотрим теперь, как эта реальная ситуация моделируется в примере 2А. При просмотре цепи текущих событий интерпретатор GPSS сначала обнаруживает транзакт 4. Транзакт 4 последовательно входит в блок GENERATE, затем в блок QUEUE и должен там задержаться. Фактически, интерпретатор осуществляет вход следующего клиента в дверь и присоединяет его к очереди. Далее, продолжая просмотр цепи текущих событий, интерпретатор выбирает транзакт 3. Этот транзакт вводится в блоки RELEASE и TERMINATE, что означает "клиент уходит из парикмахерской". Здесь, следовательно, произошли два события - приход клиента и завершение обслуживания. Последовательность обработки была: приход клиента, а затем завершение обслуживания просто потому, что транзакт 4 оказался впереди транзакта 3 в цепи текущих событий. Если бы относительная последовательность этих двух событий в ЦТС оказалась инверсной, то и обработка этих событий была бы инверсной.

Конечно, в этой точке система еще не окончательно изменяет свое состояние в момент модельного времени 44. Сейчас возникло условие, при котором произошло событие "перевод состояния парикмахера в положение свободно". Поскольку как часть завершения обслуживания выполняется обработка блока RELEASE, интерпретатор заново просматривает цепь текущих событий. В результате интерпретатор снова выбирает транзакт 4, продвигая его в тот же момент модельного времени через блоки SEIZE и DEPART и вводя его в блок ADVANCE. Следовательно, произойдет событие "занятия". На этом и завершатся действия в момент времени 44.

Должно быть ясно, что когда возникают временные узлы в примере моделирования 2А, то последовательность, в которой обрабатываются вовлеченные события, зависит от случая. Однако и не требуется никакого формального контроля в этой простой модели, поскольку интерпретатор заново просматривает ЦТС после обработки блока RELEASE. Если бы это было не так, модель была бы неверной, так как хотя и существовали бы в момент времени 44 ожидающий клиент и освободившийся парикмахер, никакие действия не были бы предприняты для того, чтобы клиент перешел на обслуживание к парикмахеру. Интерпретатор, следовательно, построен таким образом, что в этой модели ему безразлична последовательность возникновения одновременных событий.

В примере моделирования 2А легко поменять условия таким образом, что последовательность, в которой будут записаны состояния в цепях на рис.13.6 в момент времени 44, станет небезразличной. Предположим, что прибывающий клиент решает остаться только в том случае, если он немедленно может начать обслуживаться у парикмахера, и что модель модифицируется таким образом, чтобы учесть это предположение (отметим, что мы еще не изучили способа, как это сделать).

В этом случае, если приход возникнет раньше события завершения, пришедший клиент не останется на обслуживание, а если последовательность событий будет обратной, останется. При таких условиях очень важно разработать модель таким образом, чтобы в случае возникновения временных узлов завершение обслуживания всегда происходило раньше прихода заявки. Очевидно, что именно такой будет последовательность событий, если принять меры к тому, чтобы обеспечить условие расположения транзакта "завершение обслуживания" ближе к началу ЦТС, чем транзакт "приход заявки".

Уже упоминалось, что относительное расположение транзактов в ЦТС определяется уровнем приоритетов. Если бы транзакт "завершение обслуживания" имел более высокий приоритет, чем транзакт "приход заявки", то имела бы место желаемая последовательность обработки событий. Позднее мы увидим, каким образом может устанавливаться уровень приоритетов для того, чтобы избежать проблем, которые возникли бы в связи с временными узлами.

Характеристики

Тип файла
Документ
Размер
3,47 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

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