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

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

т от режима работы блока.
      В режиме безусловной передачи поля A и C пусты,  а  в  поле  B
      указывается имя блока,  к которому безусловным образом направляется
      транзакт, вошедший в блок TRANSFER. Например:
                        TRANSFER    ,FINAL
           В режиме статистической передачи операнд A определяет  вероят-
      ность,  с которой транзакт направляется в блок, указанный в поле C.
      С вероятностью 1-A транзакт направляется в блок, указанный в поле B
      (в следующий, если поле B пусто).
           Вероятность в поле A может быть задана  непосредственно  деся-
      тичной дробью, начинающейся с точки. Например, блок
                     TRANSFER    .75,THIS,THAT
      с вероятностью 0,75 направляет транзакты в блок с именем THAT,  а с
      вероятностью 0,25 - в блок с именем THIS.
           Если же  поле A начинается не с десятичной точки и не содержит
      одного из ключевых слов - признаков других режимов работы блока, то
      его  значение рассматривается как количество тысячных долей в веро-
      ятности передачи. Например, предыдущий блок TRANSFER можно записать
      также в следующем виде:
                     TRANSFER    750,THIS,THAT
           В режиме  логической  передачи  в поле A записывается ключевое
      слово BOTH (оба).  Транзакт,  поступающий в блок TRANSFER,  сначала
      пытается  войти  в блок,  указанный в поле B (или в следующий блок,
      если поле B пусто),  а если это не удается,  т.е. блок B отказывает
      транзакту во входе,  то в блок,  указанный в поле C. Если и эта по-
      пытка неудачна, то транзакт задерживается в блоке TRANSFER до изме-
      нения условий в модели, делающего возможным вход в один из блоков B
      или C,  причем при одновременно возникшей возможности  предпочтение
      отдается блоку B. Например:
                    TRANSFER    BOTH,MET1,MET2

           Блок TEST  (проверить) служит для задержки или изменения марш-
      рутов транзактов в зависимости от соотношения двух  СЧА.  Он  имеет
      следующий формат:
                       имя    TEST X    A,B,C
           Вспомогательный операнд  X содержит условие проверки соотноше-
      ния между СЧА и может принимать следующие значения:  L (меньше); LE
      (меньше или равно);  E (равно);  NE (не равно); GE (больше или рав-
      но); G (больше). Поле A содержит первый, а поле B - второй из срав-
      ниваемых СЧА.  Если проверяемое условие A X B выполняется,  то блок
      TEST пропускает транзакт в следующий блок.  Если же это условие  не
      выполняется,  то транзакт переходит к блоку, указанному в поле C, а
      если оно пусто, то задерживается перед блоком TEST.
      Например, блок
                      TEST LE    P$TIME,C1
      не впускает  транзакты,  у которых значение параметра с именем TIME
      больше текущего модельного времени. Блок
                      TEST L     Q$LINE,5,OUT
      направляет транзакты в блок с именем OUT, если текущая длина очере-
      ди LINE больше либо равна 5.

           Для задержки или изменения маршрута транзактов  в  зависимости
      от   состояния   аппаратных   объектов   модели  служит  блок  GATE
     (впустить), имеющий следующий формат:
                        имя    GATE X    A,B
           Вспомогательный операнд X содержит код состояния  проверяемого
      аппаратного  объекта,  а  в  поле A указывается имя или номер этого
      объекта. Если проверяемый объект находится в заданном состоянии, то
      блок GATE пропускает транзакт к следующему блоку.  Если же заданное
      в блоке условие не выполняется, то транзакт переходит к блоку, ука-
      занному  в  поле B,  а если это поле пусто,  то задерживается перед
      блоком GATE.
           Операнд X  может  принимать следующие значения:  U (устройство
      занято);  NU (устройство свободно);  I (устройство  захвачено);  NI
      (устройство не захвачено);  SE (МКУ пусто);  SNE (МКУ не пусто); SF
      (МКУ заполнено);  SNF (МКУ не заполнено);  LS (ЛП включен),  LR (ЛП
      выключен).
          Например, блок
                        GATE SNE    BUF3
      отказывает во входе транзактам,  поступающим в моменты, когда в МКУ
      с именем BUF3 все каналы обслуживания свободны. Блок
                        GATE LR     4,BLOK2
      направляет транзакты  в  блок  с  именем  BLOK2,  если  в момент их
      поступления ЛП с номером 4 включен.
           Блоки рассматриваемой  группы  используются  при моделировании
      различных СМО с потерями заявок.  Воспользуемся,  например, блоками
      TRANSFER для моделирования двухканальной СМО с отказами и повторны-
      ми попытками (рис. 12).

         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
         ENT1   TRANSFER    BOTH,,REFUS
                ENTER       STO2
                ADVANCE     160,FN$EXP
                LEAVE       STO2
                TERMINATE   1
         REFUS  TRANSFER    .1,,OUT
                ADVANCE     250,FN$EXP
                TRANSFER    ,ENT1
         OUT    TERMINATE   1

                              Рис. 12

          Транзакты, поступающие  в  модель,  попадают в блок TRANSFER с
      именем ENT1,  работающий в логическом режиме. Если в момент поступ-
      ления  транзакта  в  МКУ STO2 хотя бы один канал свободен,  то блок
      TRANSFER направит транзакт в следующий блок,  т.е.  в  блок  ENTER.
      Если же в момент поступления оба канала МКУ заняты,  и поэтому блок
      ENTER отказывает во входе,  то  транзакт  будет  направлен  в  блок
      TRANSFER с именем REFUS,  работающий в статистическом режиме. С ве-
      роятностью 0,9 транзакты из  этого  блока  передаются  в  следующий
      блок,  задерживаются  в  нем  на  случайное время и с помощью блока
      TRANSFER,  работающего в безусловном режиме,  передаются  вновь  на
      вход  модели в блок с именем ENT1.  С вероятностью 0,1 транзакты из
      блока с именем REFUS передаются в блок TERMINATE с именем  OUT  для
      уничтожения.
           Следует заметить,  что для уничтожения транзактов,  получивших
      отказ  в  обслуживании,  понадобился  отдельный  блок TERMINATE для
      фиксации в стандартном отчете количества  потерянных  транзактов  с
      помощью счетчика блока с именем OUT (СЧА N$OUT).
           Для моделирования той же СМО может быть использован также блок
      TEST (рис.  13).  В этом варианте модели транзакт проходит  в  блок
      ENTER, если текущее число занятых каналов (СЧА S$STO2) меньше 2.

         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
         ENT1   TEST L      S$STO2,2,REFUS
                ENTER       STO2
                ADVANCE     160,FN$EXP
                LEAVE       STO2
                TERMINATE   1
         REFUS  TRANSFER    .1,,OUT
                ADVANCE     250,FN$EXP
                TRANSFER    ,ENT1
         OUT    TERMINATE   1

                              Рис. 13

           При использовании блока GATE модель принимает вид,  показанный
      на рис.  14.  В этом варианте транзакт проходит в блок ENTER,  если
      условие "МКУ STO2 не заполнено" истинно.

         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
         ENT1   GATE SNF    STO2,REFUS
                ENTER       STO2
                ADVANCE     160,FN$EXP
                LEAVE       STO2
                TERMINATE   1
         REFUS  TRANSFER    .1,,OUT
                ADVANCE     250,FN$EXP
                TRANSFER    ,ENT1
         OUT    TERMINATE   1

                              Рис. 14

                 2.5. Блоки, работающие с памятью

          Для хранения  в  памяти отдельных числовых значений и массивов
      таких значений используются сохраняемые величины и матрицы сохраня-
      емых величин.
           Сохраняемые величины могут использоваться в модели для  хране-
      ния  исходных данных,  которые надо изменять при различных прогонах
      модели, промежуточных значений и результатов моделирования. В нача-
      ле  моделирования  все сохраняемые величины устанавливаются равными
      0. Для установки отличных от 0 начальных значений сохраняемых вели-
      чин используется оператор INITIAL, имеющий следующий формат:

                     INITIAL    X$ имя,значение
                     INITIAL    Xj    ,значение
      Здесь имя и j - соответственно имя и номер сохраняемой величины,  а
      значение - присваиваемое ей начальное значение (константа).
           Для изменения  сохраняемых  величин  в  процессе моделирования
      служит блок SAVEVALUE (сохранить величину),  имеющий следующий фор-
      мат:
                       имя    SAVEVALUE    A,B
      В поле A указывается номер или имя сохраняемой величины, в которую
      записывается значение операнда B. Если в поле A после имени (номера)

      сохраняемой величины стоит знак + или -,  то значение операнда B
      добавляется или вычитается из текущего содержимого сохраняемой
      величины. Например:
                       SAVEVALUE    5,Q$LINE

                       SAVEVALUE    NREF+,1

           Сохр
Пред.678910След.
скачать работу

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

 

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

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


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