рефераты

рефераты

 
 
рефераты рефераты

Меню

Реферат: Моделирование на GPSS рефераты

устройства с именем SYSTEM, и поэтому в нем может находиться только

один транзакт. Транзакты, выходящие из блока GENERATE в моменты за-

нятости устройства, не смогут войти в блок SEIZE и будут оставаться

       в блоке GENERATE, образуя очередь в списке текущих событий.

         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

                SEIZE       SYSTEM

                ADVANCE     80,FN$EXP

                RELEASE     SYSTEM

                TERMINATE   1

                              Рис. 7

             Для моделирования захвата  (прерывания) одноканального  уст-

       ройства вместо  блоков  SEIZE и RELEASE используются соответственно

       блоки PREEMPT (захватить) и RETURN (вернуть).  Блок  PREEMPT  имеет

       следующий формат:

                    имя    PREEMPT      A,B,C,D,E

           В поле  A  указывается  имя или номер устройства,  подлежащего

       захвату.  В поле B кодируется условие захвата. Если это поле пусто,

       то  захват  возникает,  если обслуживаемый транзакт сам не является

       захватчиком.  Если же в поле B записан операнд PR, то захват возни-

       кает,  если  приоритет  транзакта-захватчика  выше,  чем  приоритет

       обслуживаемого транзакта.

           Поля C,  D  и E определяют поведение транзактов,  обслуживание

       которых было прервано.  Поле C указывает имя блока, в который будет

       направлен прерванный транзакт. В поле D может быть указан номер или

       имя параметра прерванного транзакта,  в который записывается время,

       оставшееся  этому  транзакту  до  завершения  обслуживания  на уст-

       ройстве.  При отсутствии операнда в поле E прерванный транзакт сох-

       раняет  право  на  автоматическое  восстановление  на устройстве по

       окончании захвата.  Если же в поле E указан операнд RE, то транзакт

       теряет такое право.

           Блок RETURN имеет единственный операнд A,  содержащий имя  или

       номер устройства, подлежащего освобождению от захвата.

           Блоки PREEMPT и RETURN могут быть использованы для моделирова-

       ния СМО с абсолютными приоритетами. В простейших случаях, при одном

       уровне захвата,  в блоке PREEMPT используется единственный  операнд

       A.  При  этом прерванный транзакт переводится симулятором из списка

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

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

       тий с предварительно вычисленным временем занятия устройства  для 

       продолжения обслуживания.

        

          Для создания в модели  многоканальных устройств (МКУ)  они долж-

       ны  быть предварительно определены с помощью операторов определения

       STORAGE (память), имеющих следующий формат:

                         имя    STORAGE    A

       Здесь  имя - имя МКУ,  используемое для ссылок на него;  A – емко-

       cть (количество каналов обслуживания) МКУ, задаваемая константой.

            Для занятия и освобождения каналов обслуживания МКУ  использу-

       ется пара блоков ENTER (войти) и LEAVE (покинуть),  имеющих следую-

       щий формат:

                         имя    ENTER    A,B

                         имя    LEAVE    A,B

           В поле A указывается номер или имя МКУ, в поле B  число кана-

       лов МКУ,  занимаемых при входе в блок ENTER или  освобождаемых  при

       входе в блок LEAVE. Обычно поле B пусто, и в этом случае по умолча-

       нию занимается или освобождается один канал.

           При входе транзакта в блок ENTER текущее содержимое МКУ увели-

       чивается на число единиц,  указанное в поле B .    Если свободная 

       емкость МКУ меньше значения поля B, то транзакт не может войти в

       блок ENTER и остается в предыдущем блоке, образуя очередь в списке

       текущих событий.

           При входе транзакта в блок LEAVE текущее содержимое МКУ умень-

      шается на число единиц, указанное в поле B. Не обязательно освобож-

      дается такое же число каналов МКУ,  какое занималось при входе дан-

      ного транзакта в блок ENTER, однако текущее содержимое МКУ не долж-

      но становиться отрицательным.

           Многоканальные устройства имеют следующие СЧА: S - текущее со-

      держимое МКУ; R - свободная емкость МКУ; SR - коэффициент использо-

      вания в долях 1000; SA - целая часть среднего содержимого МКУ; SM -

      максимальное содержимое МКУ;  SC - число занятий МКУ;  ST  -  целая

      часть среднего времени занятия МКУ.

           Воспользуемся блоками ENTER-LEAVE и оператором STORAGE для мо-

      делирования двухканальной СМО с ожиданием (рис.  8).  Если  текущее

      содержимое МКУ с именем STO2 меньше 2,  т.е.  в блоке ADVANCE нахо-

      дится один или ни одного транзакта, то очередной транзакт, поступа-

      ющий в модель через блок GENERATE, может войти в блок ENTER и затем

      в блок ADVANCE.  Если же текущее содержимое МКУ равно 2, то очеред-

      ной  транзакт  остается в блоке GENERATE,  образуя очередь в списке

      текущих событий. По истечении задержки одного из двух обслуживаемых

      транзактов в блоке ADVANCE и после входа его в блок LEAVE первый из

      заблокированных транзактов сможет войти в блок ENTER.

         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

                ENTER       STO2

                ADVANCE     160,FN$EXP

                LEAVE       STO2

                TERMINATE   1

                              Рис. 8

           К аппаратным объектам относятся также логические переключатели

      (ЛП),  которые могут находиться в  двух  состояниях:  "включено"  и

      "выключено".  В  начале  моделирования все ЛП находятся в состоянии

      "выключено".  Отдельные переключатели могут быть установлены в  на-

      чальное состояние "включено" с помощью оператора INITIAL (инициали-

      зировать), имеющего следующий формат:

                        

                         INITIAL    LS$ имя

                         INITIAL    LS j

      Здесь имя и j - соответственно имя и номер ЛП,  устанавливаемого  в

      начальное состояние "включено".

           Для включения, выключения и инвертирования логических переклю-

      чателей в процессе моделирования служит блок LOGIC (установить ЛП),

      имеющий следующий формат:

                         имя    LOGIC X    A

          В поле A указывается имя или номер ЛП. Вспомогательный операнд

      X указывает вид операции,  которая производится с логическим перек-

      лючателем при входе транзакта в блок:  S - включение,  R - выключе-

      ние, I - инвертирование. Например:

                          LOGIC S    9

                          LOGIC R    FLAG

          Логические переключатели  имеют  единственный  СЧА с названием

      LS. Значение СЧА равно 1, если ЛП включен, и 0, если он выключен.

            2.3. Блоки для сбора статистических данных

          Два последних  примера в предыдущем параграфе представляют со-

      бой законченные модели одноканальной и многоканальной СМО с  ожида-

      нием.  Однако  такие модели разрабатываются обычно для исследования

      различных характеристик,  связанных с ожиданием заявок  в  очереди:

      длины  очереди,  времени ожидания и т.п.,  а в приведенных примерах

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

      исследователю. Для регистрации статистической информации о процессе

      ожидания транзактов в модели должны  присутствовать  статистические

      объекты: очереди или таблицы.

           Объекты типа очередь создаются в  модели  путем  использования

      блоков  - регистраторов очередей:  QUEUE (стать в очередь) и DEPART

      (уйти из очереди), имеющих следующий формат:

      

                        имя 0QUEUE     A,B

                        имя   DEPART    A,B

           В поле A указывается номер или имя очереди, а в поле B - число

      единиц,  на которое текущая длина очереди увеличивается  при  входе

      транзакта  в  блок QUEUE или уменьшается при входе транзакта в блок

      DEPART.  Обычно поле B пусто, и в этом случае его значение по умол-

      чанию принимается равным 1.

           Для сбора  статистики о транзактах,  заблокированных перед ка-

      ким-либо блоком модели,  блоки QUEUE и DEPART  помещаются  перед  и

      после этого блока соответственно.  При прохождении транзактов через

      блоки QUEUE и DEPART соответствующим образом  изменяются  следующие

      СЧА  очередей:  Q - текущая длина очереди;  QM - максимальная длина

      очереди;  QA - целая часть средней длины очереди;  QC - общее число

      транзактов,  вошедших в очередь;  QZ - число транзактов,  прошедших

      через очередь без ожидания (число "нулевых"  входов);  QT  -  целая

      часть среднего времени ожидания с учетом "нулевых" входов; QX - це-

      лая часть среднего времени ожидания без учета "нулевых" входов.

           Дополним приведенную на рис. 7 модель одноканальной СМО блока-

      ми QUEUE и DEPART (рис. 9). Теперь транзакты, заблокированные перед

      блоком SEIZE из-за занятости устройства SYSTEM,  находятся в  блоке

      QUEUE, внося свой вклад в статистику о времени ожидания, накаплива-

      емую в статистическом объекте типа "очередь"  с  именем  LINE.  При

      освобождении устройства первый из заблокированных транзактов войдет

      в блок SEIZE и одновременно в  блок  DEPART,  прекращая  накопление

      статистики об ожидании этого транзакта.

               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

                QUEUE       LINE

                SEIZE       SYSTEM

                DEPART      LINE

                ADVANCE     80,FN$EXP

                RELEASE     SYSTEM

                TERMINATE   1

     

                              Рис. 9

           Очень часто исследователя интересует не только среднее  значе-

      ние  времени  ожидания в очереди,  но и дисперсия этого времени,  а

      также  статистическое  распределение  выборки   времени   ожидания,

      представляемое  обычно  графически  в виде гистограммы.  Имея такое

      распределение,  можно оценить вероятность того,  что время ожидания

      превысит  или не превысит некоторое заданное значение.  Для сбора и

      обработки данных о выборочном распределении времени ожидания в оче-

      реди служат статистические объекты типа Q-таблица.

           Для создания в модели такой таблицы она должна быть  предвари-

      тельно  определена с помощью оператора определения QTABLE (Q-табли-

      ца), имеющего следующий формат:

                      имя    QTABLE    A,B,C,D

      Здесь имя - имя таблицы,  используемое для ссылок на нее; A - номер

      или имя очереди, распределение времени ожидания в которой необходи-

      мо получить;  B - верхняя граница первого частотного интервала таб-

      лицы; C - ширина частотных интервалов; D - количество частотных ин-

      тервалов.

           Диапазон всевозможных  значений  времени  ожидания  в очереди,

      указанной в поле A,  разбивается на ряд частотных интервалов, коли-

      чество  которых  указано в поле D.  Первый из этих интервалов имеет

      ширину от минус бесконечности до  величины,  указанной  в  поле  B,

      включительно. Второй интервал включает значения, большие, чем вели-

      чина первой границы в поле B, но меньшие или равные B+C, и т.д. Все

      промежуточные  интервалы имеют одинаковую ширину,  указанную в поле

      C.  Наконец, последний интервал включает все значения, большие, чем

      последняя  граница.  Значения операндов B,  C и D должны задаваться

      целыми константами.  Операнд B может быть неположительным, хотя для

      Q-таблицы это не имеет смысла,  так как время не может быть отрица-

      тельным. Операнды C и D должны быть строго положительными.

           При прохождении транзакта через блоки QUEUE и DEPART его время

      ожидания фиксируется,  и к счетчику частотного интервала таблицы, в

      который попало это время, добавляется 1. Одновременно в таблице на-

      капливается информация для вычисления среднего значения  и  средне-

      квадратического отклонения (корня из дисперсии)  времени  ожидания.

      По  окончании моделирования среднее значение и среднеквадратическое

      отклонение времени ожидания, а также счетчики попаданий в различные

      частотные интервалы выводятся в стандартный отчет GPSS/PC.

           Таблицы, как и другие объекты GPSS/PC,  имеют СЧА:  ТС - общее

      число транзактов,  вошедших в очередь,  связанную с таблицей;  TB -

      целая  часть среднего времени ожидания в очереди;  TD - целая часть

      среднеквадратического отклонения времени ожидания в очереди.

           Дополним модель из примера на рис. 9 оператором QTABLE для по-

      лучения  распределения  времени  ожидания  в  очереди с именем LINE

      (рис. 10).

         WTIME  QTABLE      LINE,50,50,10

         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

                QUEUE       LINE

                SEIZE       SYSTEM

                DEPART      LINE

                ADVANCE     80,FN$EXP

                RELEASE     SYSTEM

                TERMINATE   1

                              Рис. 10

           Оператор определения таблицы с именем WTIME разбивает ось вре-

      мени на 10 частотных интервалов.  Первый интервал включает значения

      от  0 до 50,  второй - от 50 до 100,  третий - от 100 до 150 и т.д.

      Последний,  десятый,  интервал включает значения,  превышающие 450.

      Если,  например,  время  ожидания  некоторого  транзакта  в очереди

      составило 145 единиц модельного времени,  то  к  счетчику  третьего

      частотного интервала будет добавлена 1.  Следует заметить,  что ин-

      формация в таблицу с именем WTIME заносится автоматически, при вхо-

      де транзактов в блоки QUEUE и DEPART, и никаких специальных мер для

      этого принимать не требуется.

           Таблицы в GPSS/PC могут использоваться в более общем случае не

      только для табулирования времени ожидания в очереди, но и для полу-

      чения  выборочных распределений произвольных СЧА любых объектов мо-

      дели.  Для определения таблиц служит оператор TABLE (таблица), фор-

      мат которого совпадает с форматом оператора QTABLE. Отличие состоит

      лишь в том,  что в поле A оператора TABLE записывается  стандартный

      числовой атрибут,  выборочное распределение которого необходимо по-

      лучить,  а операнды B,  C и D определяют разбиение на частотные ин-

      тервалы диапазона всевозможных значений этого СЧА.

           Занесение информации в таблицу, определяемую оператором TABLE,

      уже не может быть выполнено симулятором автоматически, как в случае

      Q-таблиц. Для этого используется специальный блок TABULATE (табули-

      ровать), имеющий следующий формат:

                        имя    TABULATE    A

Страницы: 1, 2, 3, 4, 5, 6, 7, 8