На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (54) « Первая ... 6 7 [8] 9 10 ...  53 54  ( Перейти к последнему сообщению )  
> GPSS , Вопрос для знающих
    Спасибо, попробую. А режим IA, он вообще откуда взялся. Из GPSS/H ?
      может GPSS/H, а может GPSS/РС, а может Turbo GPSS.. может даже GPSS'95 student )))
      откуда мне знать? ;)
        Здравствуйте, у меня один большой вопрос по этой задаче.
        Еще раз, условие:
        В системе передачи данных осуществляется обмен пакетами данных между пунктами А и В по дуплексному каналу связи. Пакеты поступают в пункты системы от абонентов с интервалами времени 10 ± 3 мс. Передача пакета занимает 10 см. В пунктах имеются буферные регистры, которые могут хранить два пакета (включая передаваемый). В случае прихода пакета в момент занятости регистров пунктам системы предоставляется выход на спутниковую полудуплексную линию связи, которая осуществляет передачу пакетов данных за 10 ± 5 мс. При занятости спутниковой линии пакет получает отказ.
        Смоделировать обмен информацией в системе передачи данных в течение 1 мин. Определить частоту вызовов спутниковой линии и ее загрузку. В случае возможных отказов определить необходимый для безотказной работы системы объем буферных регистров.
        Вот немного модифицированный мной код из того же самого поста:
        ExpandedWrap disabled
                     SIMULATE
          001        INPUT "Емкость буфера A", &CAPA=2
          002        INPUT "Емкость буфера B", &CAPB=2
          003 BUFA   STORAGE      &CAPA               ; буферный регистр на пункте А
          004 BUFB   STORAGE      &CAPB               ; буферный регистр на пункте В
           
          005        SAVEVALUE    PAKAB,0
          006        SAVEVALUE    PAKBA,0
          007        SAVEVALUE    CALLSAT,0
          008        SAVEVALUE    PAKSAT,0
          009        SAVEVALUE    OTAKZSAT,0
          *********A->B**********************************************
          010        GENERATE     10,3            ; поступление пакетов в пункт А
          020        GATE SNF     BUFA,SAT        ; если буфер заполнен то выход на спутник SAT
          030        ENTER        BUFA            ; Заполнение буфера в пункте А
          040        SEIZE        AB              ; занять устройство - линию от A к B
          050        LEAVE        BUFA            ; освобождение буфера пункта А
          060        ADVANCE      10              ; передача пакета
          065        SAVEVALUE    PAKAB+,1        ; увеличение числа переданных пакетов из А в В
          ;066        ENTER        BUFB            ; Заполнение буфера в пункте В
          070        RELEASE      AB              ; осовободить устройство - линию от A к B
          ;071        LEAVE        BUFB            ; освобождение буфера пункта В
          080 OUT    TERMINATE                    ;            
          085 OTKAZ  SAVEVALUE    OTKAZSAT+,1     ; отказ передачи, увеличение числа отказов
          090        TRANSFER     ,OUT          
           
          **********B->A*********************************************
          100        GENERATE     10,3            ; поступление пакетов в пункт В
          110        GATE SNF     BUFB,SAT        ; если буфер заполнен то выход на спутник SAT
          120        ENTER        BUFB            ; Заполнение буфера в пункте В
          140        SEIZE        BA              ; занять устройство - линию от В к А
          160        LEAVE        BUFB            ; освобождение буфера пункта В
          170        ADVANCE      10              ; передача пакета
          175        SAVEVALUE    PAKBA+,1        ; увеличение числа переданных пакетов из B в A
          ;176        ENTER        BUFA            ; Заполнение буфера в пункте А
          180        RELEASE      BA              ; осовободить устройство - линию от В к А
          ;181        LEAVE        BUFA            ; освобождение буфера пункта А
          190        TRANSFER     ,OUT            ;
           
          **********SATELLITE****************************************
          195 SAT    SAVEVALUE    CALLSAT+,1      ; увеличение числа частоты вызова спутника
          200        GATE NU      LINES,OTKAZ     ; если линия спутника не занята то вниз иначе на отказ
          210        SEIZE        LINES           ; занять устройство - спутниковую линию связи
          220        ADVANCE      10,5            ; передача пакета
          225        SAVEVALUE    PAKSAT+,1       ; увеличение числа переданных пакетов через спутник
          230        RELEASE      LINES           ; осовободить устройство - спутниковую линию связи
          240        TRANSFER     ,OUT            ;          
           
          ***************************************************************************************
          500        GENERATE     60000           ; работа системы в течние 1 мин = 60000 мс
          550        TERMINATE    1               ;
          555        START 1
          560        END

        В таком виде результаты моделирования вполне логичны. Видите закоментенные строки? Если их раскоментить, то результаты моделирования ни в какие ворота не лезут. Собственно, вопрос: а почему оно так?
        Если я правильно понял условие, буферы используются как для входящих, так и для исходящих пакетов, т.е. при передаче одного пакета занимаются буферы обоих сторон. Если это так, то что не правильно?
        Спасибо заранее!
        ЗЫ Это все для GPSS/PC делалось

        Добавлено
        Еще интерессный вопрос (скорее, риторический): почему в GPSS/PC не работает такой кусок кода?
        ExpandedWrap disabled
          040        *какой-то код
          045        GATE LR      BVT,MET5        
          050        *опять какой-то код
          055 MET5   TEST GE      P1-V$M,100,MET6  
          060        *тут тоже что-то есть

        Ругается на несуществующее имя блока MET5...
        Причем после вот такого шаманства все работает:
        ExpandedWrap disabled
          040        *какой-то код
          045        GATE LR      BVT,MET5
          050        *опять какой-то код
          055 MET5   ADVANCE      0                ; черная магия, не редактировать
          060        TEST GE      P1-V$M,100,MET6  
          065        *тут тоже что-то есть
        Сообщение отредактировано: Petroid -
          Ну прежде всего, перед тем как отвечать на ваши вопросы, надо ответить, что жпсс - язык загадочный, а жпсс/рс - это загадка для наимудрейших мужей!!

          Цитата
          GPSS - это больше, чем язык программирования. Это не только система имитационного моделирования а, прежде всего, это неординарное явление в мире программирования конца 60-х/начала 70-х годов.
          (с) цитатко из очень умной книжки по имитационному моделированию.

          предупреждаю сразу. программу подробненько не смотрел, более того, условие задачи не читал.
          касаемо
          Цитата Petroid @
          ;066 ENTER BUFB ; Заполнение буфера в пункте В
          070 RELEASE AB ; осовободить устройство - линию от A к B
          ;071 LEAVE BUFB ; освобождение буфера пункта В

          вероятней всего что статистика и должна поменяться. и насколько точно она будет отображать суровую действительность зависит только от понимания модели автором. ИМХО я б убрал, строки 66 и 71 вообще, и пояснил преподу, что типа сообщение дошло, буферизация не требуется. Возможно автор задачи на это и расчитывал.

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

          transfer both,met1,met2
          met1 seize 1
          ..............
          met2 advance
          seize 2

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

          Возможно в вашей модели транзакт не может перейти по метке. А возможно вы гдето ткнули табулятор... а РС их не любит.. незнаю даже почему.. наверно детские страхи... загадочный он этот РС......

          Добавлено
          Цитата
          005 SAVEVALUE PAKAB,0
          006 SAVEVALUE PAKBA,0
          007 SAVEVALUE CALLSAT,0
          008 SAVEVALUE PAKSAT,0
          009 SAVEVALUE OTAKZSAT,0

          может конечно я старомоден, но для инициализации переменных используется блок INITIAL, а блок SAVEVALUE используется для присвоения значения в процесе моделироватия.
          Хотя конкретно в этом тексте задачи негативных последствий сия запись не несет.. но и позитивных тоже.. мусор ))

          Добавлено
          нумеруются обычно только функциональные блоки.. хотя это тоже не ошибка.

          так же РС рекомендует использовать идентификаторы не длиннее пяти символов. т.е. на "PAKSAT" он уже вполне может ругнуться.. хотя может и не ругнуться ;)

          Добавлено
          //------------
          да, так и есть. сия задачка валяется у меня в архивах. написана на жпсс ворде.. и с активным использованием косвенной адресации ))
          для получаемого сообщения буфер использован небыл.. а задача была сдана без замечаний )
            Спасибо за ответ!
            Собственно, мои предположения оправдались.
            Сдал сегодня в таком виде (с убранными строками 66, 71, 176 и 181). Тоже без замечаний :D

            Воистину, GPSS/PC - наизагадочнейшее явление... Сегодня практически тот же код заработал без advance 0 ...

            ЗЫ Просто я привык к C/C++, и лично мне advance без параметров показался шаманством вроде if(false){}; :rolleyes:

            Добавлено
            Цитата TEMENb @
            вероятней всего что статистика и должна поменяться. и насколько точно она будет отображать суровую действительность зависит только от понимания модели автором

            Статистика меняется кардинально! Количество обслуженных основным каналом связи пакетов понижается до малоправдоподобной величины 0,33% зато количество потерянных пакетов возрастает до 62% :blink:
              Цитата Petroid @
              if(false){};

              )))
                ;066 ENTER BUFB ; Заполнение буфера в пункте В
                070 RELEASE AB ; осовободить устройство - линию от A к B
                ;071 LEAVE BUFB ; освобождение буфера пункта В


                Рассмешили меня этим кодом :D
                  а что смешного?
                  Если буфер заполнен входящим сигналом. то пакет не выйдет из устройства. Может в этой задаче небыло такой задумки, но впринципе такой код вполне возможен.
                    Подскажите пожалуйста как проводить факторный анализ, т.е. по какому принципу вводить значения в нем, value1 и value2. и еще откуда брать данные для:
                    1. Средняя длительность прохождения через систему
                    2. Средневзвешенное время ожидания в очереди
                    3. линейная выпуклая комбинация всех факторов
                      Цитата jaguar555 @
                      по какому принципу вводить значения в нем, value1 и value2

                      скорее всего у вас там есть какой то параметр (F), который нужно оптимизировать. вводите значения методом научного тыка и смотрите на изменения. В особо тяжких случаях можно нарисовать график F(value1;value2) по результатам моделирования.

                      Цитата jaguar555 @
                      1. Средняя длительность прохождения через систему

                      блоки MARK, TABLE, TABULATE, и СЧА М1 тебе в помощь ))

                      Цитата jaguar555 @
                      2. Средневзвешенное время ожидания в очереди

                      статистика по очереди

                      Цитата jaguar555 @
                      3. линейная выпуклая комбинация всех факторов

                      незнаю что это такое...
                        В методичке нашла программу. В состав GPSS-модели входит 16 терминалов. Время подготовки пользователем запроса распределено равномерно в интервале [500,1500]. Время обслуживания запроса вычислительной системой распределено по нормальному закону со средним 500 и среднеквадратичным отклонением 50. Организовать моделирование в течение 100000 единиц модельного времени.

                        TERM STORAGE 16
                        NRAS FUNCTION RN5,C25
                        0,-5/.00003,4/.00135,-3/.00621,-2.5
                        .02275,-2/.06681,-1.5/.11507,-1.2/.15899,-1
                        .21186,-.8/.2425,-.6/.34458,-.4/.42074,-.2
                        .5,0/.57926,.2/.65542,.4/.72575,.6/.78814,.8
                        .8413,1/.88493,1.2/.93313,1.5/.97725,2
                        .9979,2.5/.99865,3/.99997,4/1,5
                        NORM FVARIABLE 500 + 50 *FN$NRAS
                        GENERATE ,,,16
                        BAHT ENTER TERM,1
                        ADVANCE 1000,500
                        LEAVE TERM,1
                        QUEUE OCHER
                        SEIZE COMP
                        DEPART OCHER
                        ADVANCE V$NORM
                        RELEASE COMP
                        TRANSFER ,BAHT
                        GENERATE 580
                        TERMINATE 1
                        START 1


                        Возникает ошибка

                        Line 9, Col 24. Syntax error. Unidentified character.
                        NORM FVARIABLE 500 + 50 *FN$NRAS
                        **** Model Translation Aborted ****

                        Может у меня версия GPSS не подходящая? (у меня версия 5.2.2)
                          все дело в том, что умножение в жпсс выглядит так - "#", а не так - "*".

                          Добавлено
                          Цитата
                          TERM STORAGE 16
                          NRAS FUNCTION RN5,C25
                          0,-5/.00003,4/.00135,-3/.00621,-2.5
                          .02275,-2/.06681,-1.5/.11507,-1.2/.15899,-1
                          .21186,-.8/.2425,-.6/.34458,-.4/.42074,-.2
                          .5,0/.57926,.2/.65542,.4/.72575,.6/.78814,.8
                          .8413,1/.88493,1.2/.93313,1.5/.97725,2
                          .9979,2.5/.99865,3/.99997,4/1,5
                          NORM FVARIABLE 500 + 50 #FN$NRAS
                          GENERATE ,,,16
                          BAHT ENTER TERM,1
                          ADVANCE 1000,500
                          LEAVE TERM,1
                          QUEUE OCHER
                          SEIZE COMP
                          DEPART OCHER
                          ADVANCE V$NORM
                          RELEASE COMP
                          TRANSFER ,BAHT
                          GENERATE 580
                          TERMINATE 1
                          START 1


                          и как жпсист жпэсисту советую - старайтесь делать поменьше либших пробелов ;)
                            GPSS - то понятно. А какая среда?
                            это явно не GPSS WORLD собственно и не GPSS/PC.
                            Дык что ж это за зверь то такой?
                              я умею GPSS/PC и GPSS world, и даже некое самопальное чудо GPSS'95.

                              То что в архиве вижу впервые. Вообщем как и половину операторов программы, написаной выше.

                              Это вроде как turbo GPSS - вроде основа та же, но налеплено кучу наворотов которые дадо учить и в которых надо разбираться.
                              Дык по турбо жпсс у меня хоть мануал был ))

                              Похоже это именно тот случай, когда спасение утопающих - дело рук самих утопающих.
                              Сори.
                                Тут
                                Кстати ссылка на этот ресурс находится на этой же страницце. и даже выделена красным восклиццательным знаком ))
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (54) « Первая ... 6 7 [8] 9 10 ...  53 54


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0539 ]   [ 15 queries used ]   [ Generated: 17.06.25, 23:34 GMT ]