На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (54) « Первая ... 36 37 [38] 39 40 ...  53 54  ( Перейти к последнему сообщению )  
> GPSS , Вопрос для знающих
    Есть задача и есть текст программы!Помогите описать программу!!!
    САПР состоит из ЭВМ и трех терминалов. Каждый из проектировщиков формирует задания на расчет в интерактивном режиме. Набор строки задания занимает 105с. После набора 10 строк задание считается сформированным и поступает на решение, при этом в течение 103с ЭВМ прекращает принимать другие задания. Анализ результата занимает у проектировщиков 30 с, после чего цикл повторяется. Данные по всем проектировщикам одинаковы.
    Смоделировать работу системы в течение 6 часов. Определить вероятность простоя проектировщика из-за занятости ЭВМ и коэффициент загрузки ЭВМ.

    GENERATE 10,5
    ONE STORAGE 10
    GATE FV PRO,UNI
    SEIZE PRO
    ENTER ONE
    RELEASE PRO
    GATE SNF ONE,OTP
    TERMINATE
    OTP LEAVE ONE,10
    FUNAVAIL PRO
    ADVANCE 30
    FAVAIL PRO
    TRANSFER,QEV
    UNI TERMINATE
    GENERATE 10,5
    ONE STORAGE 10
    GATE FV PROT,UNI
    SEIZE PROT
    ENTER ONE
    RELEASE PROT
    GATE SNF ONE,OTPR
    TERMINATE
    OTPR LEAVE ONE,10
    FUNAVAIL PROT
    ADVANCE 30
    FAVAIL PROT
    TRANSFER,QEV
    GENERATE 10,5
    ONE STORAGE 10
    GATE FV PROTO,UNI
    SEIZE PROTO
    ENTER ONE
    RELEASE PROTO
    GATE SNF ONE,OTPRA
    TERMINATE
    OTPRA LEAVE ONE,10
    FUNAVAIL PROTO
    ADVANCE 30
    FAVAIL PROTO
    TRANSFER,QEV
    QEV QUEUE RED
    SEIZE EVM
    DEPART RED
    ADVANCE 10,3
    RELEASE EVM
    TERMINATE
    GENERATE 500
    TERMINATE 1
    START 1
      Привет!
      Хотелось бы спросить, допустима ли такая запись? Среда не пускает. Может кто знает почему и как исправить?

      cre VARIABLE UNIFORM(1,10,50)
      .....
      simulate
      ....
      ASSIGN 2,v$cre
      ....


      Спасибо за ответы)
      Сообщение отредактировано: Frein -
        simulate - вообщем то лишний оператор (просто бесполезный. не ошибка.), а в остальном все верно. ищите ошибку в другом месте.
        впрочем сам текст ошибки был бы совсем не лишним
          Ошибка вот такая:
          Line 11, Col 1. Expecting right parenthesis.
          04/08/10 00:41:11 ASSIGN 2,v$cre


          кстати на всякий случай приведу весь код модели:
          cpu EQU 1
          b1 EQU 1

          pri VARIABLE P4
          tim VARIABLE P2
          cre VARIABLE UNIFORM(1,10,50)

          simulate

          Generate (Poisson(1,35)
          ASSIGN 2,v$cre
          ASSIGN 4,4
          MET1 ASSIGN 2-20
          ASSIGN 4-1
          PRIORITY v$pri
          Queue b1;
          Seize cpu;
          Depart b1;
          Advance 20
          Release cpu;
          TEST GE v$tim,0,MET1
          Terminate;

          Generate 5000;
          Terminate 1;
          Start 1;

          а делает эта модель по моему замыслу должна:
          Первоначальная заявка обслуживается в системе не более 20 с (квант времени) и если время обслуживания данной заявки (задаваемое как некоторая случайная величина, равновероятно распределенная на интервале 10 –50 с) не больше кванта, то заявка удаляется из системы, иначе поступает в очередь на дообслуживание. Приоритет заявок из второй очереди меньше приоритета первоначальных заявок, а повторное прерывание заявки уменьшает ее приоритет и по отношению к заявкам, имеющим одно прерывание.
          Сообщение отредактировано: Frein -
            Цитата Frein @
            Generate (Poisson(1,35)

            скобку закрой
              спасибо
                Ребята помогите, Пожалуйста, мне помогли с задачей, решили, а я дальше не могу ни чего понять, мне просто нужен отчет по работе, я сама много чего не понимаю, преподаватель сказал что нужна оформленная работа и все, получу долгожданный зачет))) БУДУ ВАМ ОЧЕНЬ БЛАГОДАРНА!!!)))
                хоть что нибудь))) блок схему нарисовать или таблицы)))

                1. В машинный зал с интервалом времени 5-15 мин заходят пользователи, желающие произвести расчеты на ЭВМ. В зале имеется одна ЭВМ, работающая в однопрограммном режиме. Время6 необходимое для решения задач, включая вывод результатов на печать, характеризуется интервалом 10-20 мин. Третья часть пользователей после окончания решения своей задачи производит вывод текста программы на перфоленту (продолжительность перфорации - 1-5 мин). В машинном зале не допускается, чтобы более семи пользователей ожидали своей очереди на доступ к ЭВМ. Вывод программы на перфоленту не мешает проведению расчетов на ЭВМ.

                Смоделировать процесс обслуживания 100 пользователей. Подсчитать число пользователей, не нашедших свободного места в очереди. Определить среднее число пользователей в очереди, а также коэффициенты загрузки ЭВМ и ленточного перфоратора.

                FUNC FUNCTION RN1,D2
                .667,0/1,1
                GENERATE 10,5,,100
                ASSIGN 1,FN$FUNC
                TEST L Q1,7,OUT
                QUEUE QPC
                SEIZE BYF
                DEPART QPC
                ADVANCE 15,5
                TEST E P1,0,MET1
                RELEASE BYF
                TERMINATE 1
                MET1 QUEUE QPRINT
                RELEASE BYF
                SEIZE PRINT
                DEPART QPRINT
                ADVANCE 3,2
                RELEASE PRINT
                TERMINATE 1
                OUT TERMINATE 1
                START 100


                2. Метод построения модели (структура модели, количество необходимых сегментов, возможные варианты решения задачи и т.д.).
                3. Таблица определений.
                4. Блок-схема (блок-схема структуры модели с использованием условных обозначений блоков и пояснениями).
                5. Листинг модели (с комментариями, если в задании требуется построить различные варианты модели, привести листинги для всех вариантов).
                6. Выходные данные (полученные результаты, графики, таблицы).
                7. Выводы (анализ выходных данных и рекомендации по улучшению модели (если необходимо)).
                  На маршруте работают два микроавтобуса (А и Б), каждый из которых имеет 10 мест. Микроавтобус А пользуется большей популярностью, нежели микроавтобус Б, поскольку водитель микроавтобуса А ездит аккуратнее и быстрее. Поэтому пассажир, подойдя к остановке, са¬дится в микроавтобус Б только в том случае, если микроавтобуса А нет. Микроавтобус отправляется на маршрут только в том случае, если все места в нем заняты. Пассажиры приходят к остановке через 0,5 ± 0,2 минут и, если нет микроавтобусов, становятся в очередь. Если очередь больше 30 человек, потенциальный пассажир уходит из очереди. Предполагает¬ся, что все пассажиры едут до конца маршрута. На прохождение мар¬шрута микроавтобус А тратит 20 ± 5 минут, микроавтобус Б - 30 ± 5 ми¬нут. После того, как пассажиры освободят микроавтобус (время осво¬бождения – 2 ± 1 минут), он едет в обратном направлении. Плата за проезд составляет 2 единицы стоимости. Автопредприятие столько же теряет (недополучает), если пассажир, придя на остановку, не ждет, а уходит (учесть это при определении затрат).
                  Найти оценку времени ожидания в очереди и времени, которое тратит пассажир на поездку.
                  Определить, при каком числе мест в микроавтобусах (не более 25) время ожидания в оче¬реди будет минимальным. Для этого значения числа мест определить выручку автопредприятия за день, если микроавтобусы работают 10 часов в сутки.
                  Помогите!!!!!!!!!!!!!!!!!!!!!!!!!!Очень очень надо!!!!!!!!!!!!!!!!!!!!!
                    Liza_Liza, такая помощь не бесплатна.
                      Цитата irinak @
                      Такой вопрос по GPSS:
                      Допустим есть два входных потока заявок с разными интенсивностями, заявки должны обслуживаться в устройстве с определенной интенсивностью. Имеется накопитель на две заявки. Причем, условие такое, что нужно чтобы в накопителе было равное представительство заявко каждого входного потока, т е одна заявка первого входного потока, вторая - со второго.
                      Честно, немного задумалась, может подскажите, как реализовать такое условие?
                      Спасибо)
                      ExpandedWrap disabled
                            generate    ,,,1
                            split   1,met2
                         
                        met1    advance (poisson(1,2))
                            split   1,met1
                        met3    match   met4
                            queue   qqq
                            seize   1
                            depart  qqq
                            advance 1
                            release 1
                            transfer    ,term
                         
                        met2    advance (poisson(2,2))
                            split   1,met2
                        met4    match   met3
                            queue   qqq
                            seize   1
                            depart  qqq
                            advance 1
                            release 1
                        term    terminate   1
                         
                            start   1000


                      очередь ограничивается либо тестом, либо вместо очереди ставим МКУ.
                      По правде не очень ясен смысл. если разные интенсивтости, то тогда на одной из точек синхронизации возникнет накопление транзактов. А если мы будем уничтожать лишние, то где гарантии, что не уничтожим нужные..
                        Цитата irinak @
                        Нужно чтобы в накопителе (к примеру, TURN3 STORAGE 2), заявки чередовались: т е заявка 1(с превого входного потока), заявка 2(со второго вх потока), заявка 1, заявка 2.
                        Логично, что потери будут, если приходит заявка1 , затем опять заявка 1, то последняя заявка 1 должна уйти на потери или другую метку.

                        ExpandedWrap disabled
                              generate    (poisson(1,2))
                              test e  ((x1=0)&(q$qqq<2)),1,nafig
                              savevalue   1,1
                              queue   qqq
                              seize   1
                              depart  qqq
                              advance 1
                              release 1
                              transfer    ,term
                           
                              generate    (poisson(2,3))
                              test e  ((x1=1)&(q$qqq<2)),1,nafig
                              savevalue   1,0
                              queue   qqq
                              seize   1
                              depart  qqq
                              advance 1
                              release 1
                           
                          term    terminate   1
                           
                          nafig   terminate
                           
                              start   1000


                        Добавлено
                        не думаю что сторидж подходит. т.к. тогда будет образовыватся вторая очередь.. перед накопителем
                          Спасибо, TEMENb !
                          А только вопрос:как я учту ограничение на 2 заявки? - очередь перед устройством ограничена 2-умя заявками, поэтому я и использую STORAGE.
                            ExpandedWrap disabled
                                  initial x1,1
                               
                              gentim  function    p1,d2
                                  1,2/2,3
                               
                              obrtim  function    p1,d2
                                  1,2/2,3
                               
                               
                                  generate    ,,,1
                                  split   1,,1
                              povt    advance (poisson(1,(fn$gentim)))
                                  split   1,povt
                               
                                  test e  ((x1=p1)&(q$qqq<2)),1,nafig
                                  savevalue   1,((p1=1)+1)
                                  queue   qqq
                                  seize   1
                                  depart  qqq
                                  advance fn$obrtim
                                  release 1
                                  terminate   1
                               
                              nafig   terminate
                               
                                  start   1000

                            :blush: :crazy:

                            Добавлено
                            это уже сделано. проверьте максимальную длинну очереди
                              irinak, разрешаю поставить мне плюсик :P
                                сохраните номер потока в параметре транзакта, а в нужный момент разделите обычным тестом.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (54) « Первая ... 36 37 [38] 39 40 ...  53 54


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