На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (54) « Первая ... 14 15 [16] 17 18 ...  53 54  ( Перейти к последнему сообщению )  
> GPSS , Вопрос для знающих
    Абалдеть... и правда просто. СПАСИБО! Ну, блин, наш препод! Примеры не правильные приводил!

    Но у меня ещё один тупик.

    Нужно вывести транзакты из цепи пользователя, причём кол-во выводимых транзактов 50+-20. В UNLINK вроде функцию нельзя записывать? Или я страшно туплю???

    14 LINK PERRON,FIFO
    15 GENERATE 300,100
    17 UNLINK PERRON,POSADKA,_(?)_
    18 POSADKA ADVANCE 150
    19 TERMINATE

    Я так понимаю, нужно ввести в модель что-то типа ячейки... Или как? :wall:
      (DUniform(1,30,70))
      (30+41#RN1\1000)

      И первое и второе выражение дают значение от 30 до 70, с равномерным законом распредиления с использованием первого генератора случайных чисел.
      Использовать можно так: предварительно схоранить в парамер, а потом в анлинке использовать параметр, или искользовать напрямую в анлинке. Использовать в кавычках обязательно!

      Добавлено
      хух.. сурово вас в КГТУ учат )
        Ой, ёлки... что это: "Out of memory"? :wacko:

        И что за такое DUniform? :huh:

        Жесть...
        Ну что здесь не так?

        1 PAS FUNCTION RN1,C2
        0,2/1,4
        3 STOR1 EQU 1
        4 STOR2 EQU 2
        5 STOR3 EQU 3
        6 STOR1 STORAGE 35
        7 STOR2 STORAGE 35
        8 STOR3 STORAGE 35
        9 GENERATE 3,1
        10 ASSIGN 1,1
        11 SELECT MIN 1,1,3,,S
        12 ENTER P1
        13 ADVANCE 400
        14 LEAVE P1
        15 LINK PERRRON,FIFO
        16 GENERATE 300,100
        18 UNLINK PERRON,POSADKA,(DUniform(1,30,70)) - ???
        19 POSADKA ADVANCE 150
        20 TERMINATE
        21 GENERATE 400,150
        22 ADVANCE 3,2
        23 SPLIT FN$PAS,PERRON
        24 TERMINATE
        25 PERRON SELECT MIN 1,1,3,,S
        26 ENTER P1
        27 ADVANCE 400
        28 LEAVE P1
        29 TERMINATE
        30 GENERATE 72000
        31 TERMINATE 1
        32 START 1
          Цитата Nymphadora @
          "Out of memory"?
          это откуда? - весь текст отчета в студию
          18 UNLINK PERRON,POSADKA,(DUniform(1,30,70)) - ???
          строка как строка ничего криминального

          возможно, ошибка возникает если пытаетесь выводить количество транзактов, из списка, болеше, чем в нем находится.
          Тогдавместо строки
          18 UNLINK PERRON,POSADKA,(DUniform(1,30,70)) - ???
          следует написать
          ASSIGN var,(DUniform(1,30,70))
          UNLINK PERRON,POSADKA,(V$funk)
          и добавить в самое начало модели
          funk VARIABLE ((P$var'GE'CH$PERRON)#CH$PERRON + (P$var'L'CH$PERRON)#P$var)

          DUniform - дискретное равномерное распределение в границах [30,70] или [30,70)
            Eugen, GPSS/PC + кривое задание )
            Пассажиры прибывают с интервалом 0,3 сек, а поезд приезжает каждые 30 сек, вмещает по 30-70 человек. Как результат - афигенное переполнение перона ну и собсно аут оф мемори ))
              причем тут моделирование и ошибка out of memory? люди по 1000000000 транзактов генерят и ничего
                Цитата Eugen @
                причем тут моделирование и ошибка out of memory? люди по 1000000000 транзактов генерят и ничего

                В верде - никаких проблем. только думает долго. а ПС выдает аут оф мемори.

                Добавлено
                Собсно текст.

                ExpandedWrap disabled
                  qqq      variable   (30+41#RN1\1000)
                  PAS      FUNCTION   RN1,C2
                           0,2/1,4
                  STOR1    EQU        1
                  STOR2    EQU        2
                  STOR3    EQU        3
                  STOR1    STORAGE    35
                  STOR2    STORAGE    35
                  STOR3    STORAGE    35
                  10       GENERATE   3,1
                  30       SELECT MIN 1,1,3,,S
                  40       ENTER      p1
                  50       ADVANCE    400
                  60       LEAVE      p1
                  70       LINK       1,FIFO
                  75       terminate
                  80       GENERATE   300,100
                  90       assign     1,v$qqq
                  100      UNLINK     1,met1,p1
                  110 met1 ADVANCE    150
                  120      TERMINATE
                  130      GENERATE   400,150
                  140      ADVANCE    3,2
                  150      SPLIT      FN$PAS,met2
                  160      TERMINATE
                  170 met2 SELECT MIN 1,1,3,,S
                  180      ENTER      P1
                  190      ADVANCE    400
                  200      LEAVE      P1
                  210      TERMINATE
                  220      GENERATE   72000
                  230      TERMINATE  1
                           START      1
                  помогите пожалуйста... у меня есть задачка.. я вроде бы как то ее сделал.. отчет выдает.. но не знаю правильно ли она работает? проверьте пожалуйста!

                  задача: в вычислительном центре в обработку принимаются 3 класса заданий: А, В, С. Исходя из наличия памяти в ЭВМ задания классов А и В могут решаться одновременно, а задача класса С монополизирует ЭВМ. ну там про время тыры пыры не столь важно... Задачи класса С запускается в ЭВМ если она полностью свободна. Задачи класса А и В могут дозагружаться к решающей задаче.

                  у меня опасения больше всего вызывает 3ий блок... я в нем попытался реализовать проверку свободны ли буферы и если да то загружаем задание С которые у нас выполняется монопольно

                  ExpandedWrap disabled
                    buf1 STORAGE 3
                    buf2 storage 3
                     
                    TABL1 TABLE M1,10,10,20
                    TABL2 TABLE M1,900,10,20
                    TABL3 TABLE M1,1200,100,200
                    generate 20,5
                    queue och1
                    povtor gate snf buf1,metka
                    enter buf1
                    advance 20,5
                    leave buf1
                    depart och1
                    tabulate TABL1
                    terminate
                    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                    generate 20,10
                    queue och1
                    metka gate snf buf2,zanyt
                    enter buf2
                    advance 21,3
                    leave buf2
                    depart och1
                    tabulate TABL2
                    terminate
                    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                    generate 20,10
                    queue och1
                    gate snf buf1,h
                    h gate snf buf2
                    enter buf1
                    advance 21,3
                    leave buf1
                    depart och1
                    tabulate TABL3
                    terminate
                    zanyt advance 61,11
                    transfer, povtor
                    generate 4800
                    terminate 1
                    start 1
                    Цитата
                    gate snf buf1,h
                    h gate snf buf2
                    enter buf1
                    advance 21,3
                    здесь не правильно
                    Цитата
                    buf1 STORAGE 3
                    buf2 storage 3
                    что это, для чего Вам МКУ. Сколько ед.памяти МКУ должна занять задача класса С что ее приняли на обработку? все 6 или от каждого МКУ по 1 ед.памяти?
                      Eugen да наверно все 6... типо тогда будет монопольно и ниче не подгрузится... никакая другая задача... ну вот реализовать как это.. чет не могу пока придумать :(

                      а насчет
                      ExpandedWrap disabled
                        gate snf buf1,h
                        h gate snf buf2
                        enter buf1
                        advance 21,3


                      у меня тоже были смонения...а в чем тут ошибка тогда?
                      Сообщение отредактировано: flatline -
                        ExpandedWrap disabled
                          TEST E (S$buf1 + S$buf2),0  ;S - текущее содержимое памяти. Только когда оба bufХ будут свободны транзакт пройдет вниз
                          ENTER buf1,3
                          ENTER buf2,3
                          ADVANCE ..
                          LEAVE buf2,3
                          LEAVE buf1,3

                        Здесь статистика queue och1 собирается по времени ожидания в очереди + время обработки на ЭВМ
                        Цитата
                        queue och1
                        povtor gate snf buf1,metka
                        enter buf1
                        advance 20,5
                        leave buf1
                        depart och1

                        обычно depart ставится сразу за enter. В этом случае статистика собирается о времени ожидания в очереди
                        queue och1
                        povtor gate snf buf1,metka
                        depart och1
                        enter buf1
                        advance 20,5
                        leave buf1
                          Eugen смотри вот текст проги
                          ExpandedWrap disabled
                            buf1 STORAGE 4
                            buf2 storage 4
                            TABL1   TABLE M1,10,10,20
                            TABL2   TABLE M1,900,10,20
                            TABL3   TABLE M1,1200,100,200
                            generate 20,5
                            queue och1
                            povtor gate snf buf1,metka
                            enter buf1,3
                            advance 20,5
                            leave buf1,3
                             
                            tabulate TABL1
                            terminate
                            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                            generate 20,10
                            queue och1
                            metka gate snf buf2,zanyt
                            enter buf2,3
                            advance 21,3
                            leave buf2,3
                            depart och1
                            tabulate TABL2
                            terminate
                            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                            generate 20,10
                            queue och1
                            TEST E(S$buf1+S$buf2),0
                            enter buf1,3
                            enter buf2,3
                            advance 21,3
                            leave buf2,3
                            leave buf1,3
                            depart och1
                            tabulate TABL3
                            terminate
                            zanyt advance 61,11
                            transfer, povtor
                            generate 4800
                            terminate 1
                            start 1


                          я изменил storage +1 добавил к нему так как у меня не получалось выставлять нужное мне время... ды к вот... работает но меня пугает отчет...

                          ExpandedWrap disabled
                            LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY
                                                1    GENERATE           239             0       0
                                                2    QUEUE              239             0       0
                            POVTOR              3    GATE               239             1       0
                                                4    ENTER              238             0       0
                                                5    ADVANCE            238             1       0
                                                6    LEAVE              237             0       0
                                                7    TABULATE           237             0       0
                                                8    TERMINATE          237             0       0
                                                9    GENERATE           239             0       0
                                               10    QUEUE              239             0       0
                            METKA              11    GATE               239            10       0
                                               12    ENTER              229             0       0
                                               13    ADVANCE            229             1       0
                                               14    LEAVE              228             0       0
                                               15    DEPART             228             0       0
                                               16    TABULATE           228             0       0
                                               17    TERMINATE          228             0       0
                                               18    GENERATE           238             0       0
                                               19    QUEUE              238           238       0
                                               20    TEST                 0             0       0
                                               21    ENTER                0             0       0
                                               22    ENTER                0             0       0
                                               23    ADVANCE              0             0       0
                                               24    LEAVE                0             0       0
                                               25    LEAVE                0             0       0
                                               26    DEPART               0             0       0
                                               27    TABULATE             0             0       0
                                               28    TERMINATE            0             0       0
                            ZANYT              29    ADVANCE              0             0       0
                                               30    TRANSFER             0             0       0
                                               31    GENERATE             1             0       0
                                               32    TERMINATE            1             0       0


                          P.S. 19 строчка... в очереди зависло 238 транзактов... :(
                            Цитата
                            STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
                            BUF1 4 1 0 3 714 1 2.942 0.735 238 1
                            BUF2 4 1 0 3 687 1 2.984 0.746 238 10


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

                            Добавлено
                            эксперимента ради, увеличте время прихода в первом и втором дженерейте до 60 - и вы увидете, что транзакты успешно пройдут двадцатый блок.
                              TEMENb а ты как думаешь задача правильно решена?
                                Для этого надо сесть и разобрать задачу. сори. с временем проблемки )
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (54) « Первая ... 14 15 [16] 17 18 ...  53 54


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0498 ]   [ 15 queries used ]   [ Generated: 18.06.25, 21:20 GMT ]