Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Моделирование на GPSS

ст-
     ройство. Если устройство, указанное в поле A блока SEIZE, уже заня-
     то каким-либо транзактом, то никакой другой транзакт не может войти
     в этот блок и остаётся в предыдущем блоке.  Транзакты,  задержанные
     (заблокированные) перед блоком SEIZE, остаются в списке текущих со-
     бытий и при освобождении устройства обрабатываются с учетом приори-
       тетов и очередности поступления.
       Каждое устройство имеет следующие  СЧА:  F  -  состояние  уст-
     ройства (0 - свободно,1 - занято); FR - коэффициент использования в
     долях 1000; FC - число занятий устройства; FT - целая часть средне-
       го времени занятия устройства.
           Воспользуемся блоками SEIZE и RELEASE для моделирования  одно-
     канальной СМО с ожиданием (рис.  7).  Теперь блок ADVANCE находится
     между блоками SEIZE и RELEASE, моделирующими занятие и освобождение
     устройства с именем 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 - теку
Пред.678910След.
скачать работу

Моделирование на GPSS

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ