На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (54) « Первая ... 48 49 [50] 51 52 ... Последняя »  ( Перейти к последнему сообщению )  
> GPSS , Вопрос для знающих
    Или может быть кто-нибудь подскажет как реализовать несколько источников транзактов???
      Народ кто нито сможет откоментить прогу? блин очень надо завтра сдавать надо(
      Вот прога :
      Generate 30,25
      queue CPU
      seize display
      advance 50,30
      release display
      seize CP
      advance 100,50
      release CP
      depart CPU
      advance 30,10
      advance 60,20
      savevalue 1+,1
      terminate

      Generate 70,5,,,1
      queue CPU
      seize display
      advance 50,30
      release display
      preempt CP,PR
      advance 100,50
      return CP
      depart CPU
      advance 30,10
      advance 60,20
      savevalue 2+,1
      terminate

      Generate 60,2,,100,2
      queue CPU
      seize display
      advance 50,30
      release display
      preempt CP,PR
      advance 100,50
      return CP
      depart CPU
      advance 30,10
      advance 60,20
      savevalue 3+,1
      terminate

      generate 12000
      TERMINATE 1
      start 1


      Задание :
      В специализированной вычислительной системе периодически выполняется три вида заданий, которые характеризуются уровнями приоритета: нулевым, первым и вторым. Каждый новый запуск задания оператор производит при помощи дисплея, работая на нем 50+-30 секунд. После запуска задания оно требует для своего выполнения 100+-50 секунд времени работы процессора, причем задания более высокого приоритета прерывают выполнение задач более низкого приоритета. Результаты обработки задания выводятся на печать без прерываний в течение 30+-10 секунд, после чего производится их анализ в течение 60+-20 секунд, и задание запускается снова. Можно считать, что при работе дисплея и при выводе результатов на печать процессор не используется.
      Смоделировать процесс работы системы при условии, что задание второго уровня приоритета выполняется 100 раз. Подсчитать число циклов выполнения остальных заданий и определить коэффициенты загрузки технических средств системы.
        Откуда Вы взяли цифры в блоках generate
        Generate 30,25 - откуда взяли 30 и 25
        Generate 70,5,,,1 - откуда 70 и 5
        Generate 60,2,,100,2 - откуда 60 и 2
          Допускаю что ошибки есть... код взят с GPSS .. ребя очень надо откоментить, послде завтра уже экзамен, завтра надо сдать курсач
            отписался на почту
              Здавствуйте есть задача, нужна помощь.
              ЭВМ обслуживает три терминала по круговому циклическому алгоритму, предоставляя каждому терминалу 30 с. Если в течение этого времени задание обрабатывается, то обслуживание завершается; если нет, то остаток задачи становится в специальную очередь, которая использует свободные циклы терминалов, т. е. задача обслуживается, если на каком-либо тер-минале нет заявок. Заявки на терминалы поступают через 30±5 с и имеют длину 300±50 знаков. Скорость обработки заданий ЭВМ равна 10 знаков/с.
              Смоделировать 5 ч работы ЭВМ. Определить загрузку ЭВМ, параметры очереди неоконченных заданий. Определить величину цикла терминала, при которой все заявки будут обслужены без специальной очереди.

              Вот код но я не понимаю где тут длин знаков и скорость обработки ЭВМ указаны подскажи пожалуйста.

              ExpandedWrap disabled
                generate 30,5 ;terminal 1
                link 1,fifo
                generate 30,5 ;terminal 2
                link 2,fifo
                generate 30,5 ;terminal 3
                link 3,fifo
                      
                met1 queue och1                                    ;ставим заявку в очередь
                     seize EOM                                     ;занимаем устройство ЕОМ
                     depart och1                                   ;выводи заявку из очереди
                     assign 1,(25+10#rn1/1000)                     ;задаем время обработки как первый параметр
                     test le p1,30,met2                            ;проверяем время обработки, если >30 идем в met2, если <=30 входим в блок test
                     advance p1                                    ;задержка транзакта на время р1
                     release EOM                                   ;освобождение устройства ЕОМ
                     terminate 1                                   ;удаление транзакта
                met2 advance 30                                    ;задержка транзакта на 30с
                     assign 1-,30                                  ;вычитание из р1 30с
                     release EOM                                   ;освобождение устройства ЕОМ
                     link och,fifo                                 ;помещаем транзакт в список пользователя och
                  
                     generate ,,,1
                     assign 1,0
                met  assign 1,((p1@3)+1)
                     test g ch*1,0,met4                            ;проверка длины списка пользователя, если >0 входим в блок test, если <=0 переходим на met4
                     unlink p1,met1,1                              ;вывод транзакта из списка пользователя
                     transfer ,met5
                met4 test g CH$och,0,met5                          ;проверка длины списка och, если >0 входим в блок test, если <=0 переходим на met5
                     unlink och,met1,1
                met5 advance 1
                     transfer ,met
                 
                GENERATE 18000                                     ;время моделирования 5 часов
                TERMINATE 1
                START 1
                Всем привет, вообщем такая проблема:
                С интервалом времени 5 ± 2 мин детали поштучно поступают к станку на обработку и до начала обработки хранятся на рабочем столе, который вмещает 3 детали. Если свободных мест на столе нет, вновь поступающие детали укладываются в тележку, которая вмещает 5 деталей. Если тележка заполняется до нормы, ее увозят к другим станкам, а на ее место через 8 ± 3 мин ставят порожнюю тележку. Если во время отсутствия тележки поступает очередная деталь и не находит на столе места, она переправляется к другому станку. Рабочий берет детали на обработку в первую очередь из тележки, а если она пуста — со стола. Обработка деталей производится за 10 ± 5 мин.

                Смоделировать процесс обработки на станке 100 деталей. Подсчитать число деталей поштучно переправленных к другому станку.
                Показал преподу этот код, говорит тут минимум 2 generat'a должно быть, но как так не понимаю где, или понимаю но при построение схемы незнаю как её строить с ними.
                [Spoiler]
                generate 300,120

                test L q$table_q,3,cart
                queue table_q
                assign 5,1
                transfer ,meet

                cart test L q$cart_q,5,clear_cart
                queue cart_q
                priority 5
                assign 5,2
                transfer ,meet

                clear_cart gate LR 1,other
                logic s 1
                advance 480,180
                depart cart_q,q$cart_q
                logic r 1
                terminate 0

                meet seize proc
                test E p5,2,dep_1
                test G q$cart_q,1,adv
                depart cart_q
                adv advance 600,300
                release proc
                terminate 1

                dep_1 depart table_q
                transfer ,adv

                other savevalue other_advanced+,1
                terminate 0

                start 100
                  kant1288 Здаров,можеш скинуть свой курсач потвоему варианту,а то у меня оч похож
                    Всем доброго времени суток. Прошу вашей помощи в следующей задаче (Нет, не очередной ловец халявы: я уже попытался написать код, но мой преподаватель говорит, что не правильно )
                    Прошу помощи в этом нелегком деле :3

                    Постановка задачи: Рассмотрим систему массового обслуживания с заданным числом устройств обслуживания п= 5, действующих параллельно и использующих одну общую очередь. Интервалы времени между поступлениями требований экспоненциально распределены со средним значением 5 (все интервалы времени в этой задаче измеряются в минутах). Требование, поступившее, когда в системе есть свободное устройство, немедленно поступает на обслуживание, Требование, поступившее, когда все устройства заняты, становится в очередь. Когда тре-бование (первый раз) попадает на обслуживание, время его обслуживания равномерно распределено между а = 2 и b = 2,8. Но по завершении первого обслуживания может оказаться, что требование не удовлетворено (вероят¬ность возникновения такой ситуации p = 0,2). Если обслуживание было удов-летворительным, требование покидает систему, в противном случае обслу-живание будет продолжаться. Удовлетворено ли требование обслуживанием, следует определять по его завершении. Если требование не удовлетворено завершившимся обслуживанием и в очереди больше нет других требований, начинается повторное обслуживание этого требования на том же устройстве. Если же по завершении неудовлетворительного обслуживания в очереди еще имеются требования, неудовлетворенное требование должно присоединиться к очереди.
                    В исходном состоянии в системе нет требований и устройства являются свободными. Моделирование должно выполняться в течение 480 мин. Вычислите среднее и максимальное общее время в системе (включая задержки в очереди и время обслуживания требования) и число удовлетворенных об¬служиванием требований, покинувших систему в процессе моделирования. Кроме того, вычислите среднюю и максимальную длину очереди, среднее по времени и максимальное число занятых устройств обслуживания.
                    Считаете ли вы работу системы рациональной? Если нет, то предложите пути улучшения ее эффективности. Обоснуйте свой ответ.
                    1. Ustr storage 5 ;Задаем 5-устройств действующих параллельно
                    2. generate (Exponential(1,0,5)) ;поступление требований экспонециально в среднем 5 мин
                    3. assign 1,0 ;создадим параметр, чтобы отметить было ли требование в очереди, или нет
                    4. gate sf Ustr,ustr1 ;если все устройства заняты, то требования в очередь, если нет - на ustr1
                    5. ustr5 queue Ochered ;реалтзация поступления в очередь
                    6. assign 1,1 ;отмечаем требование(присваиваем параметру значение 1)
                    7. ustr1 enter Ustr ;вход в устройство
                    8. test e p1,1,ustr3 ;проверяем параметр если он равен 1 то уменьшаем очередь
                    9. depart Ochered ;уменьшаем очередь
                    10. ustr3 seize postupl ;задает поступление
                    11. advance 2.4,0.4 ;обслуживание равномерно распределено 2.4+/-0.4(от 2 до 2.8))
                    12. release postupl ;переход к след. блоку
                    13. transfer 0.2,ustr4,ustr2 ;Вероятность не удовлетворенности 0.2, не удовлетворенные требования
                    14. ;уходят на ustr2,оставшиеся 0.8 на ustr4
                    15. ustr2 test E Q$Ochered,0,ustr1 ;Проверка очереди на наличие требований, если в очереди есть требования то присоедениться к очереди (ustr5)
                    16. transfer ,ustr3 ;иначе переход на повторное обслуживание в этом же устройстве
                    17. ustr4 leave Ustr ;освобождаем устройство
                    18. savevalue Koltrebov+,1 ;кол-во требований прошедших через модель
                    19. savevalue vremya+,QM1 ;общее время обслуженных требований в модели
                    20. terminate ;выход из системы
                    21. generate 480 ;генерация в течение 480 мин
                    22. terminate 1 ;уменьшение счетчика конца моделирования на 1
                    23. start 1 ;задание значения счетчика моделирования равным 1
                      ETQW, вопервых.
                      нет нужды специально показывать, как устройство курсирует по очереди.
                      вот такой код вполне соответствует условию

                      Цитата
                      Рассмотрим систему массового обслуживания с заданным числом устройств обслуживания п= 5, действующих параллельно и использующих одну общую очередь. Интервалы времени между поступлениями требований экспоненциально распределены со средним значением 5 (все интервалы времени в этой задаче измеряются в минутах). Требование, поступившее, когда в системе есть свободное устройство, немедленно поступает на обслуживание, Требование, поступившее, когда все устройства заняты, становится в очередь.

                      ExpandedWrap disabled
                        Ustr storage 5 ;Задаем 5-устройств действующих параллельно
                        generate (Exponential(1,0,5)) ;поступление требований экспонециально в среднем 5 мин
                        ustr1 queue Ustr
                        enter Ustr ;вход в устройство
                        depart Ustr
                        ...


                      Добавлено
                      ETQW, не хочу сказать, что этот код не верен
                      ExpandedWrap disabled
                        advance 2.4,0.4

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

                      Добавлено
                      итого.
                      задача должна выглядеть так

                      ExpandedWrap disabled
                        объявление емкости мку
                        генерация транзактов
                        стать в глобальную очередь, для получения общей статистики пребывания транзактов в системе (это избавляет нас от кучи ненужных счетчиков)
                        поступление в очередь
                        поступление в мку
                        задержка на время выполнения
                        выход из мку
                        с определенной вероятностью отправляем обратно в очередь
                        покинуть глобальную очередь
                        транзакт покидает систему
                         
                        generate 480 ;генерация в течение 480 мин
                        terminate 1 ;уменьшение счетчика конца моделирования на 1
                        start 1 ;задание значения счетчика моделирования равным 1


                      вам осталось только заменить мой русский текст на жпсс операторы построчно и нести к преподу.
                      удачи.
                      Сообщение отредактировано: TEMENb -
                        Здравствуйте.
                        Проблема такая.
                        Вот код программы.

                        GENERATE 10,5

                        QUEUE myq
                        TRANSFER 0.5,MACHINE1,MACHINE2
                        DEPART myq

                        MACHINE1 SEIZE mach1
                        ADVANCE 15,5
                        RELEASE mach1
                        TRANSFER ,TST

                        MACHINE2 SEIZE mach2
                        ASSIGN 1,1
                        ADVANCE 3,2
                        RELEASE mach2

                        TST TEST E P1,1,TABUL

                        MACHINE3 SEIZE mach3
                        ADVANCE 3,2
                        RELEASE mach3

                        TABUL TERMINATE
                        GENERATE 100000
                        TERMINATE 1
                        START 1

                        Выдает ошибку в строке TEST E P1,1,TABUL ("reference to a non-existent parameter").
                        Значение параметру транзакта P1 задается в строке ASSIGN 1,1.
                        Что сделано неправильно?
                          selflessslaeyr, вы забыли про транзакты, которые пришли с метки MACHINE1. у них первый параметр не задан.
                            Помогите разобраться в задаче: есть три билетные кассы (работают параллельно). К ним приходят люди по эксп. закону со средним 4. Обслуживание каждой кассы 3.333 в среднем по тому же закону. Проблема в том, что код (см. ниже) работает как то некорректно. Надо чтобы люди приходили и занимали свободную кассу ну или ту в которой очередь меньше (если возможно)

                            SIMULATE
                            GENERATE (EXPONENTIAL(1,0,4))

                            TRANSFER BOTH,XX,MM
                            MM TRANSFER BOTH,YY,ZZ


                            XX QUEUE OCHER1
                            SEIZE KASSA1
                            DEPART OCHER1
                            ADVANCE (EXPONENTIAL(1,0,10/3))
                            RELEASE KASSA1
                            TRANSFER ,OUT


                            YY QUEUE OCHER2
                            SEIZE KASSA2
                            DEPART OCHER2
                            ADVANCE (EXPONENTIAL(1,0,10/3))
                            RELEASE KASSA2
                            TRANSFER ,OUT


                            ZZ QUEUE OCHER3
                            SEIZE KASSA3
                            DEPART OCHER3
                            ADVANCE (EXPONENTIAL(1,0,10/3))
                            RELEASE KASSA3
                            TRANSFER ,OUT

                            OUT TERMINATE


                            GENERATE 2400
                            TERMINATE 1
                              Цитата Lazio @

                              TRANSFER BOTH,XX,MM
                              MM TRANSFER BOTH,YY,ZZ

                              неверно построена выборка.
                              я бы написал так

                              Цитата
                              TEST E 0,((Q$OCHER3<Q$OCHER2)+(Q$OCHER3<Q$OCHER1)),ZZ
                              TEST L Q$OCHER1,Q$OCHER2,YY


                              ну или так
                              Цитата

                              TEST L Q$OCHER1,Q$OCHER2,MET1
                              TEST L Q$OCHER1,Q$OCHER3,ZZ
                              TRANSFER ,XX
                              MET1 TEST L Q$OCHER2,Q$OCHER3,ZZ
                              TRANSFER ,YY


                              Но правильней всего будет использовать оператор SELECT
                              например вот так
                              Цитата

                              OCHER1 EQU 1
                              OCHER2 EQU 2
                              OCHER3 EQU 3

                              GENERATE (EXPONENTIAL(1,0,4))

                              ASSIGN 1,XX
                              ASSIGN 2,YY
                              ASSIGN 3,ZZ

                              SELECT MIN NUM,1,3,,Q
                              TRANSFER ,P*NUM

                              XX QUEUE OCHER1
                              SEIZE KASSA1
                              DEPART OCHER1
                              ADVANCE (EXPONENTIAL(1,0,10/3))
                              RELEASE KASSA1
                              TRANSFER ,OUT


                              YY QUEUE OCHER2
                              SEIZE KASSA2
                              DEPART OCHER2
                              ADVANCE (EXPONENTIAL(1,0,10/3))
                              RELEASE KASSA2
                              TRANSFER ,OUT


                              ZZ QUEUE OCHER3
                              SEIZE KASSA3
                              DEPART OCHER3
                              ADVANCE (EXPONENTIAL(1,0,10/3))
                              RELEASE KASSA3
                              TRANSFER ,OUT

                              OUT TERMINATE


                              GENERATE 2400
                              TERMINATE 1


                              Добавлено
                              или даже вот так

                              Цитата

                              GENERATE (EXPONENTIAL(1,0,4))

                              SELECT MIN 1,1,3,,Q

                              QUEUE P1
                              SEIZE P1
                              DEPART P1
                              ADVANCE (EXPONENTIAL(1,0,10/3))
                              RELEASE P1

                              OUT TERMINATE


                              GENERATE 2400
                              TERMINATE 1

                              start 1


                              Добавлено
                              а вот вариант на отлично )

                              Цитата

                              P_COUNT EQU 3

                              GENERATE (EXPONENTIAL(1,0,4))

                              SELECT MIN 1,1,P_COUNT,,Q

                              ASSIGN 2,RN1
                              MET1 ASSIGN 2,(P2@P_COUNT)
                              ASSIGN 2,(P2+1)
                              TEST E Q*2,Q*1,MET1


                              QUEUE P2
                              SEIZE P2
                              DEPART P2
                              ADVANCE (EXPONENTIAL(1,0,10/3))
                              RELEASE P2

                              OUT TERMINATE


                              GENERATE 2400
                              TERMINATE 1

                              start 1
                                Нужна помощь в решении задачи, отчет, код, ну и скрины результатов моделирования, оплату гарантирую, возможно предоплата! 365574850 моя аська или scype n1ver1986
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0741 ]   [ 14 queries used ]   [ Generated: 27.07.24, 13:46 GMT ]