На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (54) « Первая ... 32 33 [34] 35 36 ...  53 54  ( Перейти к последнему сообщению )  
> GPSS , Вопрос для знающих
    Спасибо большое,теперь все получилось :thanks:
      Добрый день, господа.
      Сел я тут за GPSS и немножко офигел, т.к. ранее, никогда не писал на языке, на котором можно сделать только структуру :)
      В свете этого, выкладываю Вам на рассмотрение "свой" опус, который был мною скопипащен, отредактирован и адаптирован. Посомтрите, плз, если не сложно, соответствует ли код исходному заданию.

      Задание.

      ExpandedWrap disabled
        Распределенный банк данных системы сбора информации организован на базе ЭВМ,
        соединенных дуплексным каналом связи. Поступающий запрос обрабатывается на первой ЭВМ
        [B]и с вероятностью 50% необходимая информация обнаруживается на месте[/B]. В противном случае
        необходима посылка на вторую ЭВМ. Запросы поступают через 3 сек, первичная обработка
         запроса занимает 2 сек., выдача ответа требует 2 сек., передача по каналу связи занимает 3 сек.
        Временные характеристики первой ЭВМ аналогичны второй.
        Смоделировать прохождение 400 запросов. Определить необходимую ёмкость накопителей перед ЭВМ,
        обеспечивающую безотказную работу системы, и функцию распределения времени обслуживания заявки.


      ЗЫ я до сих пор не осознал реализации условия, выделенного жирным шрифтом. Понятно, что надо запихать его в проверку занятости/свободности приборов, но как это сделать - ума не приложу.

      ЗЫЫ И ещё вопрос, если у меня время "постоянное", т.е. не плавает от .. и до .., то обязательно ли писАть в ADVANCE 0 после запятой?


      Код.

      ExpandedWrap disabled
        evm1 Storage 1
        evm2 Storage 2
         
        Generate 3, 0                           ;3  сек
        QUEUE OCH                           ;очередь на обслуживание
        TEST G (R$evm1 + R$evm2),0  ;число свободных приборов> 0
        TRANSFER BOTH, ,label2      ; если может занять место на первом приборе - занимает,
                                                    ; Иначе на метку label2 и занимает там место
        ENTER evm1
        DEPART OCH
        ADVANCE 2,0                                 ;время обработки заявки
        LEAVE evm1
        ADVANCE 2                           ;ответ по перовму прибору
        LEAVE evm1
        TERMINATE
                                                    ; Работа второго прибора
        ADVANCE 3,0                         ; Время на передачу заявки от 1-го прибора до 2-го
        label2 ENTER evm2
        DEPART OCH
        ADVANCE 2,0                                  ;время обработки заявки
        LEAVE evm2
        ADVANCE 2                            ;время ответа по второму прибору
        LEAVE evm2
        TERMINATE
         
        GENERATE 400                        ; для 400 заявок
        TERMINATE 1
        START 1
      Сообщение отредактировано: Nort0n -
        Цитата Nort0n @
        ЗЫ я до сих пор не осознал реализации условия, выделенного жирным шрифтом. Понятно, что надо запихать его в проверку занятости/свободности приборов, но как это сделать - ума не приложу.

        не знаю для чего.. но если очень нужно -
        ExpandedWrap disabled
          test e f$ystr,0,met ;если устройство свободно - то дальше, иначе на метку


        ExpandedWrap disabled
          test e r$ystr,0,met ;если все каналы устройства заняты- то дальше, иначе на метку


        ExpandedWrap disabled
          test e s$ystr,0,met ;если все каналы устройства свободны - то дальше, иначе на метку



        Цитата Nort0n @
        ЗЫЫ И ещё вопрос, если у меня время "постоянное", т.е. не плавает от .. и до .., то обязательно ли писАть в ADVANCE 0 после запятой?

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

        Проверять правильность реализации не буду ибо время.
          Всем привет. Помогите пожалуйста разобраться с моделированием в среде GPSS.

          Есть задача:
          Моделирование работы операционной системы пакетного режима коллективного пользования с чередованием фаз. Все сводится к проектированию выполнения N числа задач в мультипрограммной системе

          Суть проблемы: в GPSS необходимо написать программу, выводящую динамическую временную диаграмму выполнения задач. Есть блок-схема выполнения задач и рисунок как это должно выглядеть.
          Вообщем-то сложность вся в построении этой диаграммы. Если кто-нибудь может помочь, пожалуйста свяжитесь со мной. Аська: 391037687 Мыло: extremez4z@yandex.ru или же на сайте в ЛС

          Заранее спасибо!
          Сообщение отредактировано: museik -
            Всем привет! Дали задание на GPSS/PС.
            Магистраль передачи данных состоит из двух каналов (основного и резервного) и общего накопителя. При нормальной работе сообщения передаются по основному каналу за 7±3 с. В основном канале происходят сбои через интервалы времени 200±35 с. Если сбой происходит во время передачи, то за 2 с запускается запасной канал, который передает прерванное сообщение с самого начала. Восстановление основного канала занимает 23±7 с. После восстановления резервный канал выключается и основной канал продолжает работу с очередного сообщения. Сообщения поступают через 9±4 с и остаются в накопителе до окончания передачи. В случае сбоя передаваемое сообщение передается повторно по запасному каналу.
            Смоделировать работу магистрали передачи данных в течение 1 ч. Определить загрузку запасного канала, частоту отказов канала и число прерванных сообщений. Определить функцию распределения времени передачи сообщений по магистрали.
            Ногами не бейте плиз, на заочке ниче не объясняют :(

            Вот что у меня получается:
            ExpandedWrap disabled
              SIMULATE
              10  GENERATE 3600; Передача сообщений в течение часа
              20  TERMINATE 1
              30  GENERATE 9,4; Поступление сообщений через 9±4 с
              40  GATE FNV 1,FACIL2; Проверка первого (основного) канала на недоступность
              50 FACIL1 SEIZE 1; Занимаем первый канал
              60  ADVANCE 7,3; Передача сообщения за 7±3 с
              70  RELEASE 1; Освобождение первого канала
              80  TERMINATE
              90  GENERATE 9,4,2; Сообщения идущие на второй (резервный) канал с задержкой в 2 с. ?????????
              100 FACIL2 SEIZE 2; Занимаем второй канал
              110  ADVANCE 7,3; Передача сообщения за 7±3 с
              120  RELEASE 2; Освобождение второго канала
              130  TERMINATE
              140  GENERATE 200,35; Генерация команд недоступности через интервалы времени 200±35 с
              150  FUNAVAIL 1,RE,FACIL2; Удаление транзакта с первого канала и перенаправление его на второй канал
              160  ADVANCE 23,7; Задержка в 23±7 (восстановление первого канала)
              170  FAVAIL 1; Снятие недоступности с первого канала
              180  TERMINATE
              START 1
              END


            В отчете данные очень странные, такое чувство, что каналы местами перепутаны. Или просто у меня не отключается второй канал после восстановления первого? Еще гложат сомнения на счет строки 90, правильно ли я задаю генерацию сообщений на второй канал?
            В общем, укажите плиз на ошибки, если можно. :blush:
              90 - совсем неправильно. нарушается логика модели. требуется ведьотправлять на второй те, которые должны были ити на первый. А вы выставили еще один поток.
              а первый... ну транзакты постоят потупят перед гейтом... канал освободится и они пойдут дальше. иными словами никакого перенаправления нету. банальная задержка в обслуживании.

              З.Ы.: РС - зло. Требуйте у препода werld. в разы меньше заморочек.
                TEMENb, спасибо! Требовать у нашего препода что-то бесполезно, с нами заочниками вообще разговор короткий. Я тогда еще подумаю.
                  ExpandedWrap disabled
                    140  GENERATE 200,35; Генерация команд недоступности через интервалы времени 200±35 с
                    150  FUNAVAIL 1,RE,FACIL2; Удаление транзакта с первого канала и перенаправление его на второй канал
                    160  ADVANCE 23,7; Задержка в 23±7 (восстановление первого канала)
                    170  FAVAIL 1; Снятие недоступности с первого канала
                    180  TERMINATE
                  тут мыслишь в правильном направлении.

                  А вообще... задача сложная.
                    Зато если не справлюсь, знаю к кому обратиться ;)
                      Люди, подскажите пожалуйста как символизируется оператор многоканального устройства?
                        смотря что ты имеешь ввиду
                        A storage B - емкость
                        enter A,B - вхождение
                        leave A,B - покидание
                          На ВЦ в обработку принимаются три класса задач: А, B, C. Исходя из наличия оперативной памяти ЭВМ, задачи A и B могут решаться одновременно, а задача С монополизирует ЭВМ. Задания поступают на решение: задание типа А через 30+-15 минут, типа В - 20+-10 мин., типа С - 25+-10 мин.. Для выполнения задач требуется: тип А - 15+-5 мин., тип В -15+-10 мин., тип С - 20+-15 мин. Помогите решить, горим сейчас.
                            десять баксов )
                              Добрый вечер.
                              Пробежалась я ctrl+F по страничке (предварительно нажав "все"), но задачи своей не нашла (тоже и с поиском в разделе ПОМОЩЬ СТУДЕНТАМ).

                              Задача следующая:
                              Смоделировать систему Mk|Em|9|Rk.
                              Рассматривать при моделировании следующий смлучай: на систему поступает k>=6 пуассоновских потоков заявок. Для каждого потока имеется отдельный накопитель, причем ограничение идет только на суммарное количество заявок во всех очередях. Число фаз обслуживания m>=18. После окончания обслуживания, заявка с вероятностью, зависящей от состояния k-очередей, поступает в одну из очередей, а с доп. вероятностью уходит из системы. Все параметры - в виде сохраняемых величин.

                              Саму задачу решать не надо, но пожалуйста, помогите с одним вопросом: как организовать очереди? Ну, т.е. писать QUEUE que1, QUEUE que2, QUEUE que3 и т.д. не прикольно, ведь k у меня может равняться и 50 и 100500.

                              Я записала следующее:
                              ExpandedWrap disabled
                                draw    FUNCTION    RN1 D6
                                .1,1/.2,2/.35,3/.5,4/.7,5/1,6
                                 
                                        GENERATE(exponential(1,0,21))   ; one stream    
                                    TEST L  Q$fall,5,out    ; testing the fortune of queue
                                    QUEUE   fall    ;
                                    QUEUE   FN$draw ; ceating of queues
                                    ENTER   aod,1   ; take a devise
                                    DEPART          ;
                                    DEPART  fall    ;


                              Что мне надо написать в первом DEPART? Или же что еще можно добавить?
                              Заранее спасибо.
                                здраствуйте темень, просмотрев весь форум понял что обращаться с проблемкой нужно к вам. Дело вот в чем у меня в курсовом есть такое правило: если ЭВМ не справляется с потоком данных 10+-2, то интенсивность потока уменьшается на 20+-4. т.е. если эвм занята то должен идти не поток 10+-2, а поток 20+-4. все остальные правила реализовал, осталось только это, преподователь помогать откащывается)))))) говорит используй блоки link unlink, начал использовать вот что получилось:
                                generate 10,2
                                link 1,fifo
                                generate 20,4,
                                link 2,fifo
                                generate 10,2,,1
                                transfer ,i1
                                i1 seize 1
                                advance(exponential(1,0,3)) (это время обработки данных в ЭВМ)
                                release 1
                                unlink 1,i1,1,F1
                                unlink 2,i1,1
                                generate 3600
                                terminate 1
                                start 1
                                но выдает ошибку,
                                Error Stop.
                                12/15/09 02:14:08 Halt. XN: 3. Block 10 Next.
                                12/15/09 02:14:08 Clock:13.830468. Next: UNLINK. Line 10.
                                12/15/09 02:14:08 unlink 1,i1,1,F1
                                12/15/09 02:14:08 Parameter number must be a positive integer.

                                говорит что F1 должен быть положительным целым, а это ведь булева функция, нов лекциях написанно что ставить ее unlink можно главное поле Е тогда не заролнять. Помогите плиз.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (54) « Первая ... 32 33 [34] 35 36 ...  53 54


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0664 ]   [ 15 queries used ]   [ Generated: 19.06.25, 11:55 GMT ]