рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Блоки для работы со списками пользователя - раздел Связь, Методические указания по моделированию систем и сетей связи на GPSS/PC Блоки Для Работы Со Списками Пользователя. Так Как Заблокированные Транзакты ...

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

Для экономии машинного времени заблокированные транзакты целесообразно помещать в так на- зываемые 1списки пользователя 0и оставлять их там до тех пор, пока не выполнятся условия, позволяюшие дальнейшее продвижение этих тран- зактов.

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

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

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

Для ввода транзактов в список пользователя служит блок LINK ввести в список, который может быть использован в двух режимах условном и безусловном. Ограничимся рассмотрением лишь безусловного режима, в котором блок LINK имеет следующий формат 1имя 0 LINK A,B В поле A задается имя или номер списка пользователя, в который безусловным образом помещается транзакт, вошедший в блок. Поле B определяет, в какое место списка пользователя следует поместить этот транзакт. Если в поле B записано ключевое слово FIFO, то тран- закт помещается в конец списка, если LIFO - в начало списка.

В дру- гих случаях транзакты упорядочиваются в соответствии с вычисленным значением поля B, где обычно записывается один из СЧА транзактов, таких как PR, M1 или P. Если поле B содержит СЧА PR, то транзакты упорядочиваются по убыванию приоритета.

В остальных случаях произ- водится упорядочение по возрастанию указанного СЧА. Например, блок LINK 5,FIFO помещает транзакты в список пользователя с номером 5 в порядке их поступления в блок. Блок LINK BUFER,P ORDER помещает транзакты в список пользователя с именем BUFER, упорядочи- вая их по возрастанию параметра с именем ORDER. Условия, при которых транзакт помещается в список пользовате- ля, в безусловном режиме проверяются средствами, предусмотренными разработчиком модели. Например, направить транзакт в список пользо- вателя в случае занятости устройства можно так, как показано на рис. 16. Если устройство с именем FAC4 занято, то блок GATE не впускает транзакт в блок SEIZE, а направляет его в блок LINK с име- нем WAIT, и транзакт вводится в конец списка пользователя с именем BUFER. Ш1 GATE NU FAC4,WAIT SEIZE FAC4 WAIT LINK BUFER, FIFO Ш1.5 Рис. 16 Для вывода одного или нескольких транзактов из списка пользо- вателя и помещения их обратно в список текущих событий служит блок UNLINK вывести из списка, имеющий следующий формат 1имя 0 UNLINK X A,B,C,D,E,F В поле A указывается имя или номер списка пользователя.

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

В поле C указывается число выводимых транзактов или ALL для вывода всех находящихся в списке транзактов. Операнды в полях D и E вместе со вспомогательным операндом X определяют способ и условия вывода транзактов из списка пользовате- ля. Если поля D и E пусты, то и операнд X не используется, а тран- закты выводятся с начала списка пользователя.

Если поле D содержит ключевое слово BACK, то поле E и вспомогательный операнд X не используются, а транзакты выводятся с конца списка. В остальных случаях значение поля D интерпретируется как номер параметра тран- зактов, находящихся в списке пользователя, а из списка выводится заданное число тех транзактов, у которых значение этого параметра по отношению к значению операнда в поле E удовлетворяет условию, заданному вспомогательным операндом X. Операнд X принимает те же значения, что и в блоке TEST. В поле F указывается имя блока, куда переходит транзакт, выхо- дящий из блока UNLINK, если из списка пользователя не выведен ни один транзакт.

Если это поле пусто, то выводящий транзакт переходит в следующий блок независимо от количества выведенных транзактов. Например, блок UNLINK 5,NEXT,1 выводит из списка пользователя с номером 5 один транзакт с начала списка и направляет его в блок с именем NEXT. Блок UNLINK BUFER,ENT1,1,BACK выводит из списка пользователя с именем BUFER один транзакт с конца списка и направляет его в блок с именем ENT1. Блок UNLINK E P UCH,MET2,ALL,COND,P COND,MET3 выводит из списка пользователя, номер которого записан в параметре UCH выводящего транзакта, и направляет в блок с именем MET2 все транзакты, содержимое параметра COND которых равно содержимому од- ноименного параметра выводящего транзакта.

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

Следует отметить следующие особенности выполнения блока UNLINK. Во-первых, если поля D и E содержат ссылки на СЧА транзак- тов, то поле D вычисляется относительно транзактов в списке пользо- вателя, а поле E - относительно активного транзакта. Во-вторых, после вывода транзактов из списка симулятор продолжает или начинает продвижение транзакта с наивысшим приоритетом, а при равенстве при- оритетов отдает предпочтение транзакту-инициатору вывода.

Каждый список пользователя имеет следующие СЧА CH - текущая длина списка CA - средняя длина списка целая часть CM - макси- мальная длина списка CC - общее число транзактов, вошедших в список CT - целая часть среднего времени пребывания транзакта в списке. Воспользуемся рассмотренными блоками для моделирования много- канальной СМО с ожиданием транзактов в списке пользователя рис. 17 . Если МКУ с именем STO2 не заполнено, блок GATE впускает вновь прибывший транзакт в блок ENTER, и в МКУ занимается один канал.

Если же МКУ заполнено, то блок GATE направляет транзакт в блок LINK с именем WAIT, помещающий транзакт в конец списка пользователя с именем BUFER, моделирующего очередь к МКУ. Каждый транзакт, покида- ющий МКУ по завершении обслуживания и освобождающий один канал, проходит блок UNLINK и выводит один транзакт с начала списка если список не пуст, направляя его в блок с именем ENT1 на занятие ка- нала в МКУ. Ш1 STO2 STORAGE 2 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP GATE SNF STO2,WAIT ENT1 ENTER STO2 ADVANCE 160,FN EXP LEAVE STO2 UNLINK BUFER,ENT1,1 TERMINATE 1 WAIT LINK BUFER,FIFO Ш1.5 Рис. 17 Заметим, что для изменения дисциплины обслуживания на позже пришел - раньше обслужен достаточно или заменить в поле B блока LINK FIFO на LIFO, или записать в поле D блока UNLINK операнд BACK. Следует также обратить внимание на то, что блоки QUEUE-DEPART для сбора статистики об ожидающих транзактах не используются, так как почти все те же данные можно получить из статистики о списке поль- зователя. Рассмотрим еще один пример, иллюстрирующий использование списков пользователя для организации нестандартных дисциплин обслу- живания.

Пусть в одноканальной СМО с ожиданием требуется организо- вать такую дисциплину, при которой приоритет отдается заявкам с на- именьшим временем обслуживания.

Такая модель будет иметь вид, пока- занный на рис. 18. В параметр TSRV поступающих в модель транзактов в блоке ASSIGN записывается случайное время обслуживания, вычисляемое с использо- ванием функции EXP. Если устройство SYSTEM свободно, то блок GATE впускает транзакт в блок SEIZE, и устройство занимается на время P TSRV. Если же в момент поступления транзакта устройство занято, то блок GATE направляет транзакт в блок LINK, который вводит тран- Ш1 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP ASSIGN TSRV,80,EXP GATE NU SYSTEM,WAIT SFAC SEIZE SYSTEM ADVANCE P TSRV RELEASE SYSTEM UNLINK LINE,SFAC,1 TERMINATE 1 WAIT LINK LINE,P TSRV Ш1.5 Рис. 18 закт в список пользователя LINE, упорядочивая транзакты по воз- растанию времени обслуживания, записанного в параметре P TSRV. Блок UNLINK по освобождении устройства выводит с начала списка транзакт с наименьшим временем обслуживания, обеспечивая тем самым заданную дисциплину. 3. УПРАВЛЯЮЩИЕ ОПЕРАТОРЫ GPSS PC Для управления прогоном модели используются управляющие опера- торы GPSS PC. С одним из них - оператором START - мы уже сталкива- лись при рассмотрении блока TERMINATE. Оператор START начать име- ет следующий формат START A,B,C,D Поле A содержит константу, задающую начальное значение счетчи- ка завершений.

В поле B может быть записано ключевое слово NP - признак подавления формирования стандартного отчета по завершении моделирования.

Если поле B пусто, то по окончании прогона модели формируется отчет со стандартной статистической информацией о всех объектах модели см. разд. 5 . Поле C не используется и сохранено для совместимости со старыми версиями GPSS. Поле D может содержать 1 для включения в отчет списков текущих и будущих событий.

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

Оператор SIMULATE моделировать устанавливает предел реально- го времени, отводимого на прогон модели.

Если прогон не завершится до истечения этого времени, то он будет прерван принудительно с вы- дачей накопленной статистики в отчет. Оператор SIMULATE имеет единственный операнд A, содержащий предельное время моделирования в минутах, задаваемое константой. Оператор размещается перед оператором START, начинающим лимитиро- ванный прогон.

Оператор RMULT установить значения генераторов позволяет пе- ред началом прогона установить начальные значения генераторов слу- чайных чисел RN, определяющие генерируемые ими последовательности. Поля A-G оператора могут содержать начальные значения генераторов соответственно RN1-RN7, задаваемые константами. Начальные значения генераторов, не установленные операторами RMULT, совпадают с номе- рами генераторов. Оператор RESET сбросить сбрасывает всю статистическую инфор- мацию, накопленную в процессе прогона модели.

При этом состояние аппаратных, динамических и запоминающих объектов, а также генерато- ров случайных чисел сохраняется, и моделирование может быть возоб- новлено с повторным сбором статистики. Оператор не имеет операндов. С оператором RESET связано различие между относительным СЧА C1 и абсолютным СЧА AC1 модельным временем. Таймер относительно- го времени C1 измеряет модельное время, прошедшее после последнего сброса статистики оператором RESET, а таймер абсолютного времени AC1 - модельное время, прошедшее после начала первого прогона моде- ли. Если не использовалось ни одного оператора RESET, то значения этих таймеров совпадают.

Оператор RESET устанавливает таймер C1 в ноль и не влияет на таймер AC1. Оператор RESET используется обычно при моделировании нестацио- нарных процессов, когда требуется собрать статистику по отдельным интервалам стационарности или исключить влияние переходного периода на собираемую статистическую информацию.

Пусть, например, в модели, приведенной на рис. 18, необходимо отбросить статистику, собираемую на первой тысяче транзактов. Это может быть сделано способом, показанным на рис. 19. Первый оператор START начинает прогон модели длиной 1000 тран- зактов переходный период. Поскольку статистика, накопленная на этом периоде, не используется, в поле B оператора указан признак подавления формирования отчета NP. Оператор RESET сбрасывает накоп- ленную статистику, не изменяя состояния модели.

Второй оператор START начинает основной прогон модели с формированием отчета по за- вершении прогона. Ш1 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP ASSIGN TSRV,80,EXP GATE NU SYSTEM,WAIT SFAC SEIZE SYSTEM ADVANCE P TSRV RELEASE SYSTEM UNLINK LINE,SFAC,1 TERMINATE 1 WAIT LINK LINE,P TSRV START 1000,NP RESET START 10000 Ш1.5 Рис. 19 Оператор CLEAR очистить очищает модель, подготавливая ее к повторному прогону.

При этом сбрасывается вся накопленная в преды- дущем прогоне статистика, из модели удаляются все транзакты, и она приводится к исходному состоянию, как перед первым прогоном. Уста- навливаются в ноль сохраняемые величины и матрицы, что следует учи- тывать при использовании этих объектов для хранения исходных дан- ных. Исключение составляют генераторы случайных чисел, которые не возвращаются к своим начальным значениям, что позволяет повторить прогон модели на новой последовательности случайных чисел.

Оператор не имеет операндов. Оператор CLEAR используется обычно для организации нескольких независимых прогонов модели на разных последовательностях случайных чисел. Перед повторением прогона можно при необходимости переопре- делить отдельные объекты модели, например емкости многоканальных устройств. Пусть, например, требуется повторить прогон модели, приведен- ной на рис. 17, три раза при емкости МКУ, равной 1, 2 и 3. Это мо- жет быть выполнено так, как показано на рис. 20. После каждой очистки модели оператором CLEAR оператор STORAGE устанавливает но- вое значение емкости МКУ с именем STO2. Оператор END закончить завершает 1сеанс 0работы с GPSS PC и возвращает управление в операционную систему.

Оператор не имеет операндов. Ш1 STO2 STORAGE 1 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP GATE SNF STO2,WAIT ENT1 ENTER STO2 ADVANCE 160,FN EXP LEAVE STO2 UNLINK BUFER,ENT1,1 TERMINATE 1 WAIT LINK BUFER,FIFO START 10000 CLEAR STO2 STORAGE 2 START 10000 CLEAR STO2 STORAGE 3 START 10000 Ш1.5 Рис. 20 Как правило, управляющие операторы не включаются в исходную программу, т.е. не имеют номеров строк, а вводятся пользователем непосредственно с клавиатуры ПК. 4.

– Конец работы –

Эта тема принадлежит разделу:

Методические указания по моделированию систем и сетей связи на GPSS/PC

Исследование характеристик таких мо- делей может проводиться либо аналитическими методами, либо путем имитационного моделирования 1-6 . Имитационная… При его реализации на ЭВМ производится накопление статистических данных по тем… По окончании моделирования на- копленная статистика обрабатывается, и результаты моделирования по- лучаются в виде…

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Блоки для работы со списками пользователя

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

ОБЩИЕ СВЕДЕНИЯ О GPSS PC
ОБЩИЕ СВЕДЕНИЯ О GPSS PC. Исходная программа на языке GPSS PC, как и программа на любом языке программирования, представляет собой последовательность опе- раторов. Операторы GPSS PC записываются и

ОСНОВНЫЕ БЛОКИ GPSS PC И СВЯЗАННЫЕ С НИМИ ОБЪЕКТЫ
ОСНОВНЫЕ БЛОКИ GPSS PC И СВЯЗАННЫЕ С НИМИ ОБЪЕКТЫ. Блоки, связанные с транзактами С транзактами связаны блоки создания, уничтожения, задержки транзактов, изменения их атрибутов и создания копий тра

Блоки для сбора статистических данных
Блоки для сбора статистических данных. Два последних примера в предыдущем параграфе представляют со- бой законченные модели одноканальной и многоканальной СМО с ожида- нием. Однако такие модели раз

Косвенная адресация
Косвенная адресация. В рассматривавшихся до сих пор примерах моделей ссылки на раз- личные объекты GPSS PC производились исключительно по данным им произвольным именам. Такая 1адресация 0объ

Обработка одновременных событий
Обработка одновременных событий. Так как модельное время в GPSS целочисленно, то оказывается вполне вероятным одновременное наступление двух или более событий, причем вероятность этого тем больше,

Загрузка интегрированной среды
Загрузка интегрированной среды. Пакет GPSS PC включает в себя два основных модуля модуль GPSSPC.EXE, представляющий интегрированную среду, в которой произ- водится ввод, редактирование, отладка и в

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

Редактирование текста модели
Редактирование текста модели. Удалить строки из исходной программы можно командой DELETE удалить, указав в полях A и B начальный и конечный номера удаляе- мой последовательности. Для удалени

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

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

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги