Механики
Скачать 4.29 Mb.
|
относительными приоритетами Текст GPSS-модели с комментариями (выделены курсивом): Рассмотрим подробнее представленную GPSS- модель Модель включает в себя два модуля , каждый из которых моделирует процессы поступления и обслуживания заявок 1- го и 2- го классов и содер - жит стандартный набор операторов , используемых для моделирования простейшей одноканальной СМО с однородным потоком заявок Особенности данной модели , на которые следует обратить внимание , заключаются в следующем В первом операторе GENERATE в качестве пятого операнда , используемого для задания уровня приоритета формируемых транзактов ( заявок первого класса ), задано значение 2. Во втором операторе GENERATE значение пятого операнда не задано , что по умолчанию означает нулевой уровень приоритета формируемых транзактов ( заявок второго класса ). Таким образом , заявки 1- го класса имеют более высокий уровень приоритета по сравнению с заявками 2- го класса , что предо - ставляет им преимущественное право на занятие того или иного объекта модели : прибора ( в нашей модели ) или многоканального устройства При необходимости предоставить более высокий приоритет заявкам 2- го класса достаточно во втором операторе GENERATE задать значение пятого операнда большее , чем 2. Следует также обратить внимание на второй оператор GENERATE, где в поле операндов присутствует запятая , разделяющая операнды А и В , и точка , отделяющая дробную часть десятичного числа от целой части * Модуль 1: моделирование процессов поступления и обслуживания заявок 1-го класса GENERATE 30,,,,2; детерминированный поток и приоритет, равный 2 QUEUE QUzel_1; поступление заявки в очередь QUzel_1 SEIZE Uzel; занятие прибора Uzel DEPART QUzel_1; покидание очереди QUzel_1 ADVANCE (Exponential(1,0,2.5)+Exponential(2,0,2.5)+Exponential(3,0,2.5)); RELEASE Uzel; освобождение прибора Uzel TERMINATE 1; удаление из модели обслуженной заявки 1-го класса ****************************************** * Модуль 2: моделирование процессов поступления и обслуживания заявок 2-го класса GENERATE 15,5.5; равномерный поток и приоритет, равный 0 QUEUE QUzel_2; поступление заявки в очередь QUzel_2 SEIZE Uzel; попытка занять один из приборов устройства Uzel Exponential(4,0,2.5)+Exponential(5,0,2.5)+Exponential(6,0,2.5));_DEPART_QUzel_2;'>ADVANCE (Exponential(4,0,2.5)+Exponential(5,0,2.5)+Exponential(6,0,2.5)); DEPART QUzel_2; покидание очереди QUzel_2 RELEASE Uzel; освобождение прибора Uzel TERMINATE 1; удаление из модели обслуженной заявки 2-го класса 308 Раздел 6. Имитационное моделирование Необходимо помнить , что запятая в поле операндов используется только в качестве разделителя операндов , а точка – для отделения дробной части десятичного числа от целой части Оператор ADVANCE в обоих модулях GPSS- модели в качестве операнда A содержит выражение , реализующее формирование случайной задержки транзактов ( заявок ) в соответствии с распределением Эрланга 3- го порядка путём сложения трёх экспоненциально распределённых случай - ных величин Для уменьшения корреляции между случайными значения - ми , вырабатываемыми при обращении к библиотечной процедуре Exponential, используются разные генераторы равномерно распределён - ных величин , номера которых указаны в качестве первого параметра библиотечной процедуры Exponential. Следует обратить внимание на местоположение оператора DEPART во втором модуле GPSS- модели , который , в отличие от первого модуля , располагается после оператора ADVANCE. Таким способом можно в стандартном отчёте получить информацию не о времени ожидания заявок в очереди , как это сделано для заявок 1- го класса , а о времени пребывания заявок 2- го класса в системе ( в очереди и на обслуживании ). Это легко понять , если вспомнить , что функцией оператора DEPART является отметка времени и сбор статистики по времени между моментами прохождения транзакта через операторы QUEUE и DEPART. Описанная ситуация соответствует случаю , когда заявка , находясь на обслуживании в приборе , остаётся в накопителе , который она покидает только после завершения обслуживания Примером такой ситуации может служить модель передачи пакетов по каналу связи в сети передачи данных Пакет в процессе передачи по каналу связи остаётся в выходной буферной памяти передающего узла до тех пор , пока не будет получено подтверждение от принимающего узла о безошибочном приёме пакета Для одновременного сбора статистики по времени пребывания заявок в системе и по времени ожидания в очереди можно использовать две пары операторов QUEUE и DEPART, как это показано ниже для второго модуля рассматриваемой GPSS- модели Gis_U QTABLE Q_U,10,10,20 Gis_W QTABLE Q_W,10,10,20 * Модуль 2: моделирование процессов поступления и обслуживания заявок 2-го класса GENERATE 15,5.5; равномерный поток и приоритет, равный 0 QUEUE Q_U; регистрация момента занесения в очередь Q_U QUEUE Q_W; регистрация момента занесения в очередь Q_W SEIZE Uzel; попытка занять один из приборов устройства Uzel DEPART Q_W; регистрация момента покидания очереди Q_W ADVANCE (Exponential(4,0,2.5)+Exponential(5,0,2.5)+Exponential(6,0,2.5)); DEPART Q_U; регистрация момента покидания очереди Q_U RELEASE Uzel; освобождение прибора Uzel TERMINATE 1; удаление из модели обслуженной заявки 2-го класса Раздел 6. Имитационное моделирование 309 При этом для получения соответствующих гистограмм плотностей распределений достаточно в модели описать две таблицы с помощью команды QTABLE. Здесь пара операторов QUEUE Q_U и DEPART Q_U использу - ется для сбора статистики по времени пребывания транзактов ( заявок ), а пара операторов QUEUE Q_W и DEPART Q_W – для сбора статис - тики по времени ожидания заявок Команда START не включена в состав модели и для запуска процесса моделирования должна быть задана с использованием меню GPSS World. Подводя итог , следует отметить , что для реализации относительных приоритетов в GPSS не предусмотрены специальные операторы Един - ственным средством для отображения относительных приоритетов служит присвоение определённого уровня приоритета разным транзактам Однако для реализации абсолютных приоритетов в GPSS используются специаль - ные операторы , которые рассматриваются в следующей модели 6.7.8. Модель 4. А : одноканальная СМО с абсолютными приоритетами Положим , что в той же одноканальной СМО ( рис .6.14), обслужива - ние неоднородного потока заявок осуществляется на основе абсолютных приоритетов , допускающих прерывание обслуживания низкоприоритет - ной заявки при поступлении в систему высокоприоритетной заявки Текст GPSS-модели с комментариями (выделены курсивом): Краткое описание моделируемой СМО : • количество обслуживающих приборов – 1; • емкость накопителя – не ограничена ; • количество потоков ( классов ) заявок – 2; * Модуль 1: моделирование процессов поступления и обслуживания заявок 1-го класса GENERATE 30,,,,2; детерминированный поток и приоритет, равный 2 QUEUE QUzel_1; поступление заявки в очередь QUzel_1 PREEMPT Uzel; занятие прибора с вытеснением низкоприоритетной заявки DEPART QUzel_1; покидание очереди QUzel_1 ADVANCE (Exponential(1,0,2.5)+Exponential(2,0,2.5)+Exponential(3,0,2.5)); RETURN Uzel; освобождение прибора и возврат прерванной заявки TERMINATE 1; удаление из модели обслуженной заявки 1-го класса ****************************************** * Модуль 2: моделирование процессов поступления и обслуживания заявок 2-го класса GENERATE 15,5.5; равномерный поток и приоритет, равный 0 QUEUE QUzel_2; поступление заявки в очередь QUzel_2 SEIZE Uzel; попытка занять один из приборов устройства Uzel ADVANCE (Exponential(4,0,2.5)+Exponential(5,0,2.5)+Exponential(6,0,2.5)); DEPART QUzel_2; покидание очереди QUzel_2 RELEASE Uzel; освобождение прибора Uzel TERMINATE 1; удаление из модели обслуженной заявки 2-го класса 310 Раздел 6. Имитационное моделирование • поток заявок 1- го класса – детерминированный с интервалами между заявками 30 минут ; • поток заявок 2- го класса – случайный с равномерно распределён - ными интервалами между заявками от 9,5 до 20,5 минут ; • длительность обслуживания заявок 1- го и 2- го класса – случайная , распределённая по закону Эрланга 3- го порядка со средним значением 7,5 минут ; • дисциплина обслуживания – с абсолютными приоритетами Для моделирования абсолютных приоритетов в GPSS World используются специальные операторы : PREEMPT ( ЗАХВАТИТЬ ) и RETURN ( ВЕРНУТЬ ), позволяющие реализовать прерывание обслу - живания в приборе низкоприоритетного транзакта с последующим его восстановлением , а также оператор PRIORITY, позволяющий изменять приоритет транзакта в модели Оператор PREEMPT реализует захват прибора с вытеснением нахо - дящегося в приборе транзакта с более низким приоритетом ( прерывание обслуживания низкоприоритетной заявки ). Если при поступлении в этот оператор транзакта прибор с именем , указанным в операнде А , свободен , то оператор PREEMPT инициирует такие же действия , что и оператор SEIZE, то есть транзакт занимает при - бор независимо от уровня его приоритета Если же прибор занят , то срав - ниваются уровни приоритета поступившего транзакта и транзакта , находя - щегося в приборе Если уровень приоритета поступившего транзакта выше , чем находящегося в приборе , то в приоритетном режиме, призна - ком которого служит операнд В , имеющий значение PR, выполняется вытеснение из прибора ( прерывание обслуживания ) низкоприоритетного транзакта , и поступивший высокоприоритетный транзакт захватывает при - бор Отсутствие операнда по умолчанию означает режим прерывания, при котором захват прибора высокоприоритетным транзактом возможен толь - ко в том случае , если обслуживаемый транзакт не является захватчиком В этом случае поступивший транзакт помещается в список отложенных пре - рываний Транзактам из списка отложенных прерываний предоставляется возможность занять устройство раньше , чем вытесненным транзактам или транзактам из списка задержки Если уровень приоритета поступившего транзакта ниже , чем находящегося в приборе , то он помещается в список задержки прибора с учётом приоритета Таким образом , наличие двух режимов оператора PREEMPT предоставляет возможность смоделировать разные стратегии реализации абсолютных приоритетов Оператор RETURN реализует удаление из прибора обслуженного транзакта ( освобождение прибора ) и , при необходимости , возврат низко - приоритетного транзакта в прибор для продолжения обслуживания При этом очередной транзакт на обслуживание выбирается из списков в следующем порядке : сначала из списка отложенных прерываний , затем из Раздел 6. Имитационное моделирование 311 Рис.6.15. Разомкнутая СеМО 2 p 10 «0» 1 p 12 списка прерываний и , наконец , из списка задержки Заметим , что во втором модуле занятие прибора и его освобождение реализуется с помощью операторов SEIZE и RELEASE, поскольку формируемые там транзакты имеют самый низкий приоритет и не могут вытеснять никакие другие транзакты Использование вместо операторов SEIZE и RELEASE операторов PREEMPT и RETURN, а также операндов C, D и E в операторе PREEMPT позволяет смоделировать более сложные стратегии реализации абсолют - ных приоритетов , при которых , например , вытесненные транзакты могут быть направлены в другие блоки модели или исключены из состязания за прибор Следует помнить, что приоритетный захват возможен только для прибора, но невозможен для многоканального устройства! Как и в предыдущей модели , команда START должна быть задана с использованием меню GPSS World. Модель__5:_двухузловая_разомкнутая_СеМО_с_однородным_потоком_заявок'>6.7.9. Модель 5: двухузловая разомкнутая СеМО с однородным потоком заявок Положим , что линейная разомкнутая СеМО с однородным потоком заявок содержит два узла ( рис .6.15). В РСеМО из внешней среды , обозначенной на рисунке как «0», в узел 1 поступает простейший поток заявок со средним интервалом 100 секунд После обслуживания в узле 1 заявки с вероятностью 8 , 0 12 = p переходят на обслуживание в узел 2 и с вероятностью 2 , 0 10 = p покидают СеМО , возвращаясь во внешнюю среду Из условия линейности СеМО следует , что 1 12 10 = + p p , поскольку заявки в сети не теряются и не размножаются Длительность обслуживания заявок в узле 1, представляющем собой двухканальную СМО , – величина случайная , распределенная по равномер - ному закону в интервале от 10 до 20 секунд , то есть в интервале 15±5 с ( со средним значением 15 с ). Длительность обслуживания заявок в узле 2, представляющем собой одноканальную СМО , – величина случайная , распределенная по экспонен - циальному закону со средним значением 20 с Краткое описание рассматриваемой РСеМО : • количество потоков ( классов ) заявок : 1 = H ; • количество узлов в сети : 2 = n ; • количество обслуживающих приборов в узле 1: 2 1 = K ; • количество обслуживающих приборов в узле 2: 1 2 = K ; 312 Раздел 6. Имитационное моделирование • ёмкость накопителей в узлах сети – не ограничена , то есть в сети не может быть потерь заявок , что обусловливает линейность сети ; • поток заявок – простейший ; • средний интервал между поступающими в сеть заявками : c 100 = a ; • длительность обслуживания заявок в узле 1 распределена равно - мерно в интервале от 10 до 20 с (15±5 с ); • длительность обслуживания заявок в узле 2 распределена по экспоненциальному закону со средним значением 20 с Рассмотрим GPSS-модель разомкнутой СеМО и прокомментируем некоторые операторы модели Модуль 0 содержит описание двухканального устройства первого узла СеМО с именем Uz_1 и трех таблиц для формирования гистограмм плотностей распределений следующих случайных величин : Tw_1 – времени ожидания заявок в узле 1 СеМО ; Tw_2 – времени ожидания заявок в узле 2 СеМО ; T_U – полного времени пребывания заявок в СеМО Отметим , что для каждого узла в модели определяется так называе - *********************************************************************** * Модель 5: разомкнутая однородная СеМО с двумя узлами *********************************************************************** * Модуль 0: область описания Uz_1 STORAGE 2; задание числа приборов в узле 1 Tw_1 QTABLE 1,0,1,20; время ожидания в узле 1 Tw_2 QTABLE 2,50,50,20; время ожидания в узле 2 T_U TABLE M1,150,150,20; время пребывания в сети *********************************************************************** * Модуль 1: моделирование процессов поступления и обслуживания заявок в узле 1 GENERATE (Exponential(10,0,100)); формирование простейшего потока Met_1 QUEUE 1; регистрация момента поступления заявки в очередь узла 1 ENTER Uz_1; попытка занять один из приборов узла 1 DEPART 1; регистрация момента покидания заявки очереди узла 1 ADVANCE 15,5; задержка (обслуживание) заявки в узле 1 LEAVE Uz_1; выход обслуженной заявки из узла 1 TRANSFER .8,,Met_2; передача транзакта с вероятностью 0,8 в узел 2 TABULATE T_U TERMINATE 1; удаление из модели (СеМО) обслуженной заявки ********************************************************************** * Модуль 2: моделирование процесса обслуживания заявок в узле 2 Met_2 QUEUE 2; регистрация момента поступления заявки в очередь узла 2 SEIZE 2; попытка занять прибор узла 2 DEPART 2; регистрация момента покидания заявки очереди узла 2 ADVANCE (Exponential(50,0,20)); обслуживание заявки в узле 2 RELEASE 2; освобождение прибора и выход заявки из узла 2 |