На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (54) « Первая ... 44 45 [46] 47 48 ...  53 54  ( Перейти к последнему сообщению )  
> 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


    В данном варианте не задается время моделирования, приходится указывать START больше 1, куда-то пропадают транзакты при обработке.
    Помогите пожалуйста исправить ошибки.
      Помогите
      У меня задача
      На комплектовочный конвейер сборочного цеха каждые 4-6 мин поступают 5 изделий первого типа и каждые 13-27 мин поступают 20 изделий второго типа. Конвейер состоит из секций, имеющих по 10 изделий каждого типа. Комплектация начинается только при наличии деталей обоих типов в требуемом количестве и длится 10 мин. При нехватке деталей секция конвейера остается пустой.

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

      Я сделал вот так

      NN1 STORAGE 10
      NN2 STORAGE 10
      MET1 GENERATE 5,1
      SPLIT 4
      QUEUE QUE1
      ENTER NN1
      DEPART QUE1
      TRANSFER ,MET3
      LEAVE NN1,10
      TERMINATE 9
      MET2 GENERATE 20.7
      SPLIT 19
      QUEUE QUE2
      ENTER NN2
      DEPART QUE2
      TRANSFER ,MET3
      LEAVE NN2,10
      TERMINATE 9
      MET3 SEIZE KAN
      ADVANCE 10
      RELEASE KAN
      TERMINATE
      GENERATE 480
      TERMINATE 1
      START 1

      правильный ли текст.
      У меня в результате выдает LEAVE 0 0 0 0
        Привет всем! При написании курсовой по GPSS столкнулась с проблемой, не могу написать корректно работающую программу.
        Задача:
        На обрабатывающий участок цеха поступают детали в среднем через 50 мин. Первичная обработка деталей производится на одном из двух станков. Первый станок обрабатывает деталь в среднем 40 мин. и имеет до 4% брака, второй соответственно 60 мин. и 8% брака. Все бракованные детали возвращаются на повторную обработку на второй станок. Детали, попавшие в разряд бракованных дважды, считаются отходами.
        Вторичную обработку проводят также два станка в среднем 100 мин. каждый. Причем первый станок обрабатывает имеющиеся в накопителе после первичной обработки детали, а второй станок подключается при образовании в накопителе задела больше трех деталей. Все интервалы времени распределены по экспоненциальному закону.
        Смоделировать обработку на участке 500 деталей. Определить загрузку второго станка на вторичной обработке и вероятность появления отходов. Определить возможность снижения задела в накопителе и повышения загрузки второго станка на вторичной обработке.

        Вот что у меня получилось написать:
        EXP FUNCTION RN1,C24
        0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
        .7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
        .92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
        .99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
        NAK3 STORAGE 1000
        GENERATE 50,FN$EXP
        ASSIGN 1,0
        TRANSFER .5,MET11,MET12
        MET11 QUEUE NAK1
        SEIZE KAN1
        DEPART NAK1
        ADVANCE 40,FN$EXP
        RELEASE KAN1
        TRANSFER .04,MET2,MET3
        MET12 QUEUE NAK2
        SEIZE KAN2
        DEPART NAK2
        ADVANCE 60,FN$EXP
        RELEASE KAN2
        TRANSFER .08,MET2,MET3
        MET2 ASSIGN 1,0
        PRIORITY 0
        ENTER NAK3
        TEST LE Q$NAK3,3,MET5
        TRANSFER ,MET4
        MET5 TRANSFER BOTH MET4,MET6
        MET3 TEST NE P$1,2,OTXOD
        ASSIGN 1+,1
        PRIORITY 2
        TRANSFER ,MET12
        OTXOD TERMINATE
        MET4 SEIZE KAN3
        LEAVE NAK3
        ADVANCE 100,FN$EXP
        RELEASE KAN3
        TRANSFER ,OUT
        MET6 SEIZE KAN4
        LEAVE NAK3
        ADVANCE 100,FN$EXP
        RELEASE KAN4
        TRANSFER ,OUT
        OUT TERMINATE 1
        START 500

        Пожалуйста помогите доработать программу.
          Здравствуйте..
          Задали курсовой проект по GPSS..
          "В системе передачи данных осуществляется обмен пакетами данных между пунктами A и B по дуплексному каналу связи. Пакеты поступают в пункты системы от абонентов с интервалами времени между ними 10 ± 3 мс. Передача пакета занимает 10 мс. В пунктах имеются буферные регистры, которые могут хранить два пакета (включая передаваемый). В случае прихода пакета в момент занятости регистров пунктами системы предоставляется выход на спутниковую полудуплексную линию связи, которая осуществляет передачу пакетов данных за 10 ± 5 мс. При занятости спутниковой линии пакет получает отказ.
          Смоделировать обмен информацией в системе передачи данных в течение 1 минуты. Определить частоту вызовов спутниковой линии и ее загрузку. В случае возможности отказов определить необходимый для безотказной работы системы объем буферных регистров."

          Полазив по интернету, нашел два варианта исполнения:
          1)
          ExpandedWrap disabled
            INITIAL X$LOST,0
            SAT_FREQ    TABLE   C1,10000,10000,6
            BUF_A   STORAGE 2
            BUF_B   STORAGE 2
                GENERATE    10,3
                GATE    SNF BUF_A,SAT
                ENTER   BUF_A
                ADVANCE 10
                LEAVE   BUF_A
                TRANSFER    ,KILL
             
                GENERATE    10,3
                GATE    SNF BUF_B,SAT
                ENTER   BUF_B
                ADVANCE 10
                LEAVE   BUF_B
                TRANSFER    ,KILL
             
            SAT TABULATE    SAT_FREQ,1
                GATE    NU SAT_LINE,OUT
                SEIZE   SAT_LINE
                ADVANCE 10,5
                RELEASE SAT_LINE
                TRANSFER    ,KILL
            OUT SAVEVALUE   LOST+,1
            KILL    TERMINATE
             
                GENERATE    1,,60000
                TERMINATE   1


          2)
          ExpandedWrap disabled
            BUFA    STORAGE      2
            BUFB    STORAGE      2
                SAVEVALUE    PAKAB,0
                SAVEVALUE    PAKBA,0
                SAVEVALUE    CALLSAT,0
                SAVEVALUE    PAKSAT,0
                SAVEVALUE    OTAKZSAT,0
             
                GENERATE     10,3
                GATE SNF     BUFA,SAT    
                ENTER        BUFA
                SEIZE        AB
                LEAVE        BUFA
                ADVANCE      10
                SAVEVALUE    PAKAB+,1
                RELEASE      AB
            OUT TERMINATE    
            OTKAZ   SAVEVALUE    OTKAZSAT+,1
                TRANSFER     ,OUT
             
                GENERATE     10,3
                GATE SNF     BUFB,SAT
                ENTER        BUFB
                SEIZE        BA
                LEAVE        BUFB
                ADVANCE      10
                SAVEVALUE    PAKBA+,1
                RELEASE      BA
                TRANSFER     ,OUT
             
             
            SAT SAVEVALUE    CALLSAT+,1
                GATE NU      LINES,OTKAZ
                SEIZE        LINES
                ADVANCE      10,5
                SAVEVALUE    PAKSAT+,1
                RELEASE      LINES
                TRANSFER     ,OUT
             
                GENERATE     60000
                TERMINATE    1
                START 1


          Первый как я считаю, какойто странный и работает некорректно..
          Второй уже получше.. и вроде корректен..

          Может быть кому-нибудь попадался такой вариант задания..??
          Если у кого есть какие наброски поделитель пожалуйста..
          или может у кого-нибудь имеется q-схема с более корректным вариантом, чем эти..??
            Здравствуйте!! Очень нужно мнение специалиста. Я смоделировал задачу но не совсем уверен что правильно. Помогите пожалуйста!!!!
            Вот постановка задачи:
            На маршруте работают два микроавтобуса (А и Б), каждый из которых имеет 12 мест. Микроавтобус А пользуется большей популярностью, нежели микроавтобус Б, поскольку водитель микроавтобуса А ездит аккуратнее и быстрее. Потому пассажир, подойдя к остановке, садится в микроавтобус Б только в том случае, если микроавтобуса А нет. Микроавтобус отправляется на маршрут только в том случае, если все места в нём заняты. Пассажиры приходят к остановке через 1 ± 0,2 минут и, если нет микроавтобусов, становятся в очередь. Если очередь больше 35 человек, потенциальный пассажир уходит из очереди. Предполагается, что все пассажиры едут до конца маршрута. На прохождение маршрута микроавтобус А тратит 25 ± 6 минут, микроавтобус Б – 30 ± 10 минут. После того, как пассажиры освободят микроавтобус (время освобождения – 4 ± 1 минут), он едет в обратном направлении. Плата за проезд составляет 1 единиц стоимости. Автопредприятие столько же теряет (недополучает), если пассажир, придя на остановку, не ждёт, а уходит (учесть это при определении затрат). Определить выручку автопредприятия за день, если микроавтобусы работают 10 часов в сутки.
            А от и модель:
            Please EQU 12

            initial X$Pass,0
            initial X$Cherga,0
            initial X$Vtratu,0
            initial X$CASH,0
            initial X$Kilk_A,0
            initial X$Kilk_B,0

            Bus_A STORAGE 25
            Bus_B STORAGE 25

            ;VAR FVARIABLE (X$Pass#2)-(X$Vtratu#2)
            VAR FVARIABLE ((N$mit_10 + N$mit_11)) - (N$mit_12)
            GENERATE 1,0.2
            GATE SF Bus_A,mit_1
            GATE SF Bus_B,mit_2
            savevalue Cherga+,1
            TEST G X$Cherga,30,mit_9
            savevalue Cherga-,1
            transfer ,mit_12
            mit_12 advance 0
            savevalue Vtratu+,1
            TERMINATE

            mit_9 assign s4et4ik,2000
            mit_3 GATE SF Bus_A,mit_1
            GATE SF Bus_B,mit_2
            ADVANCE 0.1
            LOOP s4et4ik,mit_3


            mit_1 TEST G X$Cherga,0,mit_4
            savevalue Cherga-,1

            mit_4 ENTER Bus_A
            savevalue Kilk_A,0
            GATE SF Bus_A
            ADVANCE 25,6
            ADVANCE 4,1
            transfer ,mit_10
            mit_10 advance 0
            savevalue Pass+,1
            ADVANCE 25,6
            LEAVE Bus_A
            TERMINATE


            mit_2 TEST G X$Cherga,0,mit_5
            savevalue Cherga-,1

            mit_5 ENTER Bus_B
            savevalue Kilk_B,0
            GATE SF Bus_B
            ADVANCE 30,10
            ADVANCE 4,1
            transfer ,mit_11
            mit_11 advance 0
            savevalue Pass+,1
            ADVANCE 30,10
            LEAVE Bus_B
            TERMINATE

            GENERATE 600
            ;SAVEVALUE CASH,(X$Pass#2-X$Vtratu#2)
            savevalue CASH,V$VAR
            TERMINATE 1
            ;start 1
              Здравствуйте!!!помогите пожалуйста не могу понять где ошибка.Сама задача:Вычислительная система содержит три ЭВМ, работа которых организована по следующему алгоритму: с интервалом 30±2 с задания поступают в очередь на обработку первой ЭВМ, время обработки составляет 30 с. После задание поступает одновременно во вторую и третью ЭВМ, время обработки которых соответственно 14±5 с. и 16±1с. Окончание обработки задания на любой ЭВМ означает снятие ее с решения с той и другой машины. Смоделировать 7 ч. работы системы. Определить необходимую емкость накопителей перед всеми ЭВМ, коэффициенты загрузки ЭВМ и функцию распределения времени обслуживания заданий.
              Текст программы:savevalue KOL,0 инициализация переменной KOL
              savevalue K1,0 инициализация переменной K1
              savevalue K2,0 инициализация переменной K2
              savevalue K3,0 инициализация переменной K3
              savevalue ENTER_NAK1,0 инициализация переменной ENTER_NAK1
              savevalue ENTER_NAK2,0 инициализация переменной ENTER_NAK2
              savevalue ENTER_NAK3,0 инициализация переменной ENTER_NAK3
              nac1 storage 1 объявление емкости накопителя 1
              nac2 storage 1 объявление емкости накопителя 2
              nac3 storage 1 объявление емкости накопителя 3
              time1 table ft$1,25,1,6 инициализация таблицы time1
              time2 table ft$2 ,10,1,6 инициализация таблицы time2
              time3 table ft$3 ,13,1,5 инициализация таблицы time3
              generate 30 генерирование заявок
              savevalue KOL+,1 сохранение количества сгенерированных заявок
              enter nac1,1 занятие накопителя 1
              savevalue ENTER_NAK1+,1 сохранение количества заявок вошедших в
              накопитель 1
              seize 1 занятие устройства 1(ЭВМ1)
              leave nac1,1 освобождение накопителя 1
              advance 30 задержка заявки в устройстве на обработку
              savevalue K1+,1 сохранение количества заявок обработанных в ЭВМ1
              tabulate time1 вывод функции распределения времени обработки
              заявок в ЭВМ1
              release 1 освобождение ЭВМ1
              split 1,pcc3 переход от ЭВМ1 к ЭВМ2 и ЭВМ3
              pcc2 enter nac2,1 занятие накопителя у ЭВМ2
              savevalue ENTER_NAK2+,1 сохранение количества заявок вошедших в
              накопитель 2
              seize 2 занятие ЭВМ2
              leave nac2,1 освобождение накопителя 2
              advance 14,5 обработка заявки в ЭВМ2
              tabulate time2 вывод функции распределения времени обработки
              заявок в ЭВМ2
              out1 release 2 освобождение ЭВМ2
              gate U nac3,ONac3 проверка занятости накопителя 3
              leave nac3 освобождение накопителя 3
              ONac3 gate SF 3,O3 проверка занятости устройства 3, если оно еще
              занято, то
              release 3 освободить
              O3 savevalue K2+,1 сохранение количества заявок вышедших с устройства 3
              transfer ,out удаление транзакта, т.е. снятие задания
              pcc3 enter nac3,1 занятие накопителя у ЭВМ3
              savevalue ENTER_NAK3+,1 сохранение количества заявок вошедших в
              накопитель 3
              seize 3 занятие ЭВМ3
              leave nac3,1 освобождение накопителя 3
              advance 16,1 задержка заявки на обработку
              tabulate time3 вывод функции распределения времени обработки
              заявок в ЭВМ3
              out2 release 3 освобождение ЭВМ3
              gate U nac2,ONac2 проверка занятости накопителя 2
              leave nac2 освобождение накопителя 2
              ONac2 gate SF 2,O2 проверка занятости устройства 2, если оно еще
              занято, то
              release 2 освободить
              O2 savevalue K3+,1 сохранение количества заявок вышедших с
              устройства 3
              out terminate 2 удаление транзактов, т.е. снятие задания с ЭВМ2 и
              ЭВМ3
              generate 1
              terminate 1
              start 25200 начальное значение счетчика завершений
                Здравствуйте!!Помогите ,пожалуйста)есть прога в GPSS ,но она не запускается ,выдает ошибку,не могу понять в чем проблема.Если можете ПОДСКАЖИТЕ плиз!!!
                Вот задание

                Самолёты прибывают для посадки в район крупного аэропорта каждые 105 мин. Если взлётно-посадочная полоса свободна, прибывший самолет получает разрешение на посадку. Если полоса занята, самолет выполняет полет по кругу и возвращается к аэропорту через каждые 4 минуты. Если после пятого круга самолет не получает разрешения на посадку, он отправляется на запасной аэродром. В аэропорту через каждые 102 мин. К взлетно-посадочной полосе выруливают готовые к взлету машины и получают разрешение на взлет, если полоса свободна. Для взлета и посадки самолеты занимают полосу равно на 2 мин. Если при свободной полосе одновременно один самолет прибывает для посадки, а другой для взлета, полоса предоставляется взлетающей машине.
                Смоделировать работу аэропорта в течение суток. Подсчитать количество самолетов, которые взлетели, сели и были направлены на запасной аэродром. Определить коэффициент загрузки взлетно-посадочной полосы.
                А вот код проги

                line equ 1; основной аэродром
                line2 equ 2; запасной аэродром
                ready equ 3; очередь готовых на взлёт самолётов
                ;-------< самолёты, идущие на посадку >-----------
                generate 10,5 ; <- с приоритетом 0
                assign 2,0 ; инициализация второго параметра
                ;----------< попытка занять полосу >--------------
                LAND gate nu line,WAIT_LAND
                seize line
                advance 2
                release line
                transfer ,OUT
                ;--------< кольцо, где ждут 4 минуты >------------
                WAIT_LAND test L PS2,5,LAND2
                mark 1 ; транзакт запоминает время начала ожидания
                assign 2+,1 ; количество кругов ожидания
                test GE MPS1,4 ; время прошло - следующая попытка
                transfer ,LAND
                ;--------------< запасной аэродром >--------------
                LAND2 seize line2 ; для статистики
                release line2
                transfer ,OUT
                ;--------------< взлетающий самолёт >-------------
                generate 10,2,,,1 ; <- с приоритетом 1
                queue ready
                seize line
                depart ready
                advance 2
                release line
                ;--------------------< конец >--------------------
                OUT terminate
                ;--------< время моделирования = 1 сутки >--------
                generate 0,,1440
                terminate 1
                start 1
                  Здравствуйте! Помогите пожалуйста разобраться в тексте программы. Задание: ИМИТАЦИЯ РАБОТЫ БАНКА
                  Текст программы:

                  *Имитация работы банка*
                  GENERATE 300,100; Создание потока клиентов
                  QUEUE ZAPR; Вход в очередь
                  SEISE KASSA; Ожидание свободной кассы/окна
                  DEPART ZAPR; Выход из очереди
                  ADVANSE 400, 200; Обслуживание клиента
                  RELEASE KASSA; Освобождение кассы/окна
                  TERMINATE 1; Уход клиента
                  START 100; Имитация 100 клиентов

                  Вот что выдаёт:

                  04/06/11 12:19:35 Model Translation Begun.
                  04/06/11 12:19:35 Line 4, Col 6. Invalid identifier. Expecting a GPSS Verb.
                  04/06/11 12:19:35 SEISE KASSA; Ожидание свободной кассы/окна
                  04/06/11 12:19:35 Line 6, Col 8. Invalid number. Expecting a GPSS Verb.
                  04/06/11 12:19:35 ADVANSE 400, 200; Обслуживание клиента
                  04/06/11 12:19:35 **** Model Translation Aborted ****

                  Делала по примеру... Что здесь не правильно? :(
                    Добрый день! Помогите пожалуйста решить задачу по GPSS. В Принципе она легкая, но вот с количеством мест выходит загвоздка =(

                    Моделирование процесса функционирования автомойки
                    Исходные данные.
                    1. Автомойка имеет N мест на стоянке для автомоби¬лей. Если клиенты подъезжают и не застают свободного места для ожидания, они уезжают.
                    2. Поток автомобилей является пуассоновским с интенсив¬ностью λ. Время мойки автомобиля распределено экспоненциаль¬но с интенсивностью μ.
                    Цель. Разработать GPSS-модель и использовать ее для выбо¬ра оптимального числа мест N на стоянке так, чтобы число уе¬хавших машин было минимальным.
                    Перечень данных: λ = 5 авт/мин, μ = 4 авт/мин, 3 < N < 7.


                    В долгу не останусь =)
                      Помогите разобраться, даже препод не может понять в чем фигня, писал прогу сам препод =)

                      Условие задачи

                      Условие задачи
                      Рассмотрим пример работы компьютера, задействованного в управлении технологическим оборудованием. Для контроля состояния оборудования каждые 20 мин запускается одна из трех типов задач. Через каждые 5 мин работы процессора каждая задача выводит результаты работы в базу данных. При обращении двух и более задач к базе данных (БД) образуется очередь, которая обслуживается по правилу FIFO.
                      Общий объем памяти компьютера 1024Кбайт. В первоначальный момент запуска компьютера загружается ОС, ядро которой постоянно находится в памяти и занимает 200 Кбайт. Компьютер работает в мультипрограммном режиме и во время выполнения операций вывода в БД процессор может выполнять другую задачу, если она загружена в память. После последнего вывода в БД задача выгружается из памяти и завершает свою работу.
                      Периодически c интенсивностью λ=0,005 мин-1 и экспоненциальным распределением возникает аварийный режим оборудования, при котором немедленно запускается на выполнение задача четвертого типа, выводящая оборудование из аварийного режима. Она прерывает работу задачи, занимающей процессор, и позволяет закончить вывод в БД, если такой имеется, когда запущена задача 4-го типа. Прерванная задача выгружается из памяти. По окончании выполнения задачи четвертого типа, она выводит в БД результаты своей работы. Вытесненная задача c магнитного диска загружается в память и продолжает работу: загружает процессор, осуществляет вывод в базу данных. Необходимые данные для моделирования приведены в табл. 4.38.
                      Таблица 4.38
                      Тип задачи 1 2 3 4
                      Вероятность возникновения 0,5 0,35 0,15 –
                      Объем памяти, Кбайт 200 300 400 200
                      Время обработки ЦП, мин 15 20 25 5
                      Время вывода в БД, мин 3 5 7 2
                      Необходимо промоделировать работу компьютера в течение пяти суток и оценить размер очереди к памяти, ее загрузку и загрузку процессора.
                      Учитывая, что программа полностью прокомментирована, дадим только некоторые пояснения к ней. Задачи 1-го, 2-гo, 3-го типов имеют приоритет равный 0. Задача четвертого типа, обрабатывающая аварийную ситуацию, имеет приоритет 3. При ее появлении немедленно занимается процессор и, если в это время выполняется задача другого типа, то она прерывается и выгружается из памяти (операнд C блока PREEMPT направляет прерванный транзакт в блок c меткой SWAP).
                      Для запуска работы компьютера используется один транзакт c приоритетом 5, который занимает 2 единицы памяти (200 Кбайт) и имитирует загрузку ядра ОС в память.



                      Программа полностью работает, вот текст
                      Текст проги

                      TYPE FUNCTION RN1,D3 ; Тип задачи
                      .5,1/.85,2/1,3

                      VRAM FUNCTION P1,D3 ; Объем ОЗУ для задач 1, 2, 3 типов. Кратен ;100Кбайт
                      1,2/2,3/3,4

                      TIME_CP FUNCTION P1,D3 ; Время работы процессора для задач 1, 2, 3 типов
                      1,15/2,20/3,25

                      TIME_BD FUNCTION P1,D3 ; Время вывода в БД для задач 1, 2, 3 типов
                      1,3/2,5/3,7

                      RAM STORAGE 9 ; Объем ОЗУ 100*10 Кбайт

                      TOB FVARIABLE EXPONENTIAL(5,0,100) ; Показательное ;распределение со средним 200 минут
                      ************************************************************************
                      ;Появление задач
                      T_OST1 TABLE P3,0,1,30
                      T_OST TABLE P5,0,1,10
                      T_PRER TABLE M1,0,50,10
                      T_TYPE TABLE P1,1,1,3
                      TQ_RAM QTABLE Q_RAM,0,20,10
                      TQ_RAM1 QTABLE Q_RAM1,0,20,10
                      TQ_RAM3 QTABLE Q_RAM3,0,20,10
                      GENERATE 20 ;Время появления задач 1, 2, 3 типов
                      ;
                      ;Создание параметров транзактов и назначение параметрам значений
                      ASSIGN 1,FN$TYPE ;Определение типа задачи
                      TABULATE T_TYPE
                      ASSIGN 2,FN$VRAM ;Определение нужного объема ОЗУ для задачи данного ;типа
                      ASSIGN 3,FN$TIME_CP ; Определение требуемого времени процессора для ;задачи ;данного типа
                      ASSIGN 4,FN$TIME_BD ; Определение требуемого времени вывода в БД для ;задачи ;данного типа
                      ASSIGN 5,0 ; В этом параметре(№ 5) будет записан остаток времени работы с ;процессором прерванной задачи
                      ****************************************************************************
                      QUEUE Q_RAM ;Ждать освобождения памяти
                      ENTER RAM,P2 ; Занять память для задачи данного типа
                      DEPART Q_RAM ; Освободить очередь к памяти
                      CALC SEIZE CP ; Занять процессор
                      ADVANCE 5 ; Работать 5 минут
                      RELEASE CP ; Освободить процессор
                      SEIZE BD ; Начать вывод в БД
                      ADVANCE P4 ; Время вывода в БД
                      RELEASE BD ; Закончить вывод в БД
                      ASSIGN 3-,5 ; Сколько времени процессора еще требуется задаче ;данного типа?
                      TEST LE P3,0,CALC ; Задача закончилась?
                      LEAVE RAM,P2 ; Да, освободить ОЗУ
                      TERMINATE ; Завершить задачу (по умолчанию параметр А ;равен 0)
                      ***************************************************************************
                      ; Аварийная ситуация, появление задачи 4
                      ;T4 QTABLE Q_RAM3,0,5,25
                      ;INITIAL X$TIM,0
                      T4 TABLE V$TOB,0,100,10
                      ;ASSIGN 6,0
                      ;Perem VARIABLE 0
                      ;T4 TABLE (AC1-M1-X$Perem),0,100,20
                      GENERATE V$TOB,,,,3

                      TABULATE T4
                      ;SAVEVALUE 6,AC1

                      QUEUE Q_RAM3
                      ENTER RAM,2 ; Задача 4 занимает память
                      DEPART Q_RAM3
                      PREEMPT CP,PR,SWAP,5,RE ;Занять немедленно процессор, выгрузить ;прерванную задачу из памяти
                      ;PREEMPT CP,PR ;в параметр 5 заносится остаток времени занятия ;процессора прерванной задачей

                      ADVANCE 5 ; Работать 5 минут
                      ;RELEASE CP
                      RETURN CP ; Освободить процессор
                      SEIZE BD ;Занять БД
                      ADVANCE 2 ; Время вывода в БД - 2 мин
                      RELEASE BD ; Закончить вывод в БД
                      LEAVE RAM,2 ; Освободить память
                      ;TABULATE T4
                      ;SAVEVALUE Perem,AC1PREEMPT

                      TERMINATE ; Завершить задачу 4
                      ***************************************************************************
                      ; Удаленная из процессора задача завершает работу
                      SWAP TABULATE T_OST
                      TABULATE T_PRER
                      LEAVE RAM,P2 ; «Запись» на жесткий диск
                      PRIORITY 2 ; Более высокий приоритет дает прерванной задаче ;преимущество в занятии ресурсов


                      QUEUE Q_RAM1 ;Ждать освобождения памяти
                      ENTER RAM,P2 ; Занять память для задачи данного типа
                      DEPART Q_RAM1 ; Освободить очередь к памяти

                      CALC1 SEIZE CP ; Занять процессор

                      ADVANCE P5 ; Работать оставшееся время
                      RELEASE CP ; Освободить процессор
                      SEIZE BD ; Начать вывод в БД
                      ADVANCE P4 ; Время вывода в БД
                      RELEASE BD ; Закончить вывод в БД
                      TABULATE T_OST1
                      ASSIGN 3-,5 ; Сколько времени процессора еще требуется задаче ;данного типа?
                      ASSIGN 5,P3 ;Теперь время работы на процессоре считывается из ;параметра 5
                      TEST LE P3,0,CALC1 ; Задача закончилась?
                      LEAVE RAM,P2 ; Да, освободить ОЗУ


                      TERMINATE ; Завершить задачу
                      ****************************************************************************
                      *************************************************************************
                      ; Запуск компьютера в момент времени 0
                      GENERATE ,,,1,5
                      ENTER RAM,2 ; Загрузить в ОЗУ ядро ОС
                      ADVANCE 7200 ; Работать 5 суток (5*24*60 мин)
                      LEAVE RAM,2 ; Выгрузить ядро ОС из ОЗУ
                      TERMINATE 1 ; Завершить работу компьютера
                      ***************************************************************************
                      START 1


                      Суть в чем...
                      Работает компьютер, поступают некоторые задачи 3х типов, они занимают процессор и некоторое количество оперативной памяти
                      Но иногда возникает аварийная ситуация, в это время запускается программа 4ого типа, он прерывает текущую программу
                      и перенаправляет его к метке SWAP, где он выгружается из памяти, а из процессора она прерывается предыдущим PREEMPT'ом
                      и снова становиться в очередь за памятью чтобы доработать оставшееся время
                      PREEMPT CP,PR,SWAP,5,RE
                      Но когда мы ставим обычный PREEMPT без перехода на метку SWAP, т.е. весь блок от SWAP и до конца пропадает и программа как бы продолжает занимать память и ждет пока пока освободиться процессор после прерывания чтобы доработать оставшееся время
                      PREEMPT CP,PR
                      В первом случае все очереди возрастают в 2 раза, то есть система в целом работать начинает в 2 раза хуже, хотя по логике должно быть все наоборот, ну или на крайняк также
                      Все перепроверили, логика программы правильная, но этот факт объяснить никто не может

                      Профи и гуру помогите плиз, надеюсь достаточно понятно все обьяснил!
                        Уважаемый aeronx. Я написал Вашу модель. Все получилось. Пишите на oes2@mail.ru
                          Привет всем!

                          Вопрос такой:
                          в GPSS есть блоки SPLIT и ASSEMBLE которые позволяют соответственно разбивать транзакт на несколько и собирать из нескольких транзактов одного семейства один. Есть ли здесь кто-нибудь кто-знает аналогичные системы моделирования, в частности SimEvents из пакета MathLab. Каким образом там можно организовать то же самое (SPLIT - ASSEMBLE) ?

                          PS. Вообще, я удивлен тем, что в GPSS можно порождать сколько угодно транзактов из одного, причем указывать это можно в параметре транзакта. В SimEvents нужно целую подсистему нагородить, чтобы достичь того же, что в GPSS делается одной строкой.
                            Привет. Ребята, помогите пожалуйста с задачей по gpss world, завтра уже сдавать надо, пожалуйста.
                            На станцию технического обслуживания (СТО) согласно закону Эрланга второго порядка со средним временем прибытия 14 мин прибывают автомобили для технического обслуживания (36% автомобилей) и ремонта (64% автомобилей). На СТО есть два бокса для технического обслуживания и три бокса для ремонта. Выполнение простого, средней сложности и сложного ремонтов – равновероятно.
                            Время и стоимость выполнения работ по техническому обслуживанию и ремонту зависит от категории выполняемых работ (табл. 7.17).
                            После технического обслуживания 12% автомобилей поступают для выполнения ремонта средней сложности.
                            Построить гистограмму времени обслуживания автомобилей.
                            Оценить выручку СТО за пять дней работы.

                            Таблица 7.17
                            Категория работВремя ремонта, минСтоимость ремонта, руб.
                            Техническое обслуживаниеРавномерно распределено в интервале 10-55Равномерно распреде¬лено в интервале 100-400
                            Простой ремонтРавномерно распределено в интервале 12-45Равномерно распределено в интервале 50-450
                            Ремонт средней сложностиНормально распределено со средним 45 и средне¬квадратичным отклонением 5Равномерно распреде¬лено в интервале 100-1400
                            Сложный ремонтРавномерно распределено в интервале 80-150Равномерно распреде¬лено в интервале 350-2550
                              Привет! Умные, хорошо знающие gpss люди не оставьте в беде! Помогите решить задачу, курсовой сдавать надо, а я gpss совсем не понимаю((

                              Фирма «Happy New Year», работающая по системе «сегодня на сегодня», имеет в своем штате N актеров, играющих роль Деда Мороза, и M актрис, играющих роль Снегурочки. Время прихода заказов распределено по закону Эрланга третьего порядка со средним временем Т1 минут. Характеристики заказов приведены в табл. 17.

                              Таблица 17 - Варианты к заданию 17

                              Вид поздравления Вероятность прихода заказа на поздравление Время выполнения заказа (поздравления),минут Стоимость поздравления

                              С Дедом Морозом p1 t1±t4 s1
                              Со Снегурочкой p2 t2±t5 s2
                              С Дедом Морозом и Снегурочкой p3 t3±t6 s3

                              При заказе поздравления клиент указывает желаемый срок выполнения T2 (минут). Если поздравление выполняется позже заявленного срока, то клиенту предоставляется 20% скидка от начальной стоимости поздравления.
                              Заработная плата актера составляет z рублей в месяц. В начале своей работы фирма делает одноразовые затраты (костюмы, реквизит, лицензия, литературные тексты и прочее) на сумму S единиц стоимости. Фирма работает только один месяц в году (считать, что в другое время она не несет никаких затрат).
                              Найти оценку периода окупаемости T (в годах) фирмы по формуле
                              T=S/P, где
                              Р - прибыль, полученная за один год работы.

                              Определить величины N и M, при которых время окупаемости фирмы и соответствующее среднее время ожидания клиентом выполнения заказа будет минимальным. Если возможно снижение цен на услуги, то до какого уровня?
                              Варианты заданий приведены в табл. 17.1.
                              Таблица 17.1 - Варианты к заданию 17
                              Параметры Варианты
                              4
                              N 5
                              M 4
                              p1 0,25
                              p2 0,25
                              p3 0,5
                              T1 35
                              T2 175±15
                              t1±t4 70±20
                              t2±t5 55±15
                              t3±t6 80±10
                              s1 50
                              s2 60
                              s3 100
                              S 13000
                              z 400


                              Заранее благодарю не оставшихся равнодушными!)))
                                Здравствует.

                                Помогите пожалуйста разобраться. Я смоделировала СМО. Он выдает результаты, но я не понимаю что к чему. Мне нужны результаты нагрузки СМО.
                                Подскажите что к чему относиться (где нагрузка и вообще где что).

                                ExpandedWrap disabled
                                                GPSS World Simulation Report - 2.8.1
                                   
                                   
                                                     Thursday, May 05, 2011 17:25:13  
                                   
                                             START TIME           END TIME  BLOCKS  FACILITIES  STORAGES
                                                  0.000            500.000    30        0          1
                                   
                                   
                                                NAME                       VALUE  
                                            COUNT1                      10000.000
                                            NAK                         10001.000
                                            OUT                            27.000
                                            OUT1                           28.000
                                            QUE                         10002.000
                                            T1                             18.000
                                            T2                             22.000
                                            T3                             21.000
                                   
                                   
                                   LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY
                                                      1    GENERATE            40             0       0
                                                      2    TEST                40             0       0
                                                      3    ENTER               40             0       0
                                                      4    ADVANCE             40             0       0
                                                      5    LEAVE               40             0       0
                                                      6    TRANSFER            40             0       0
                                                      7    GENERATE            20             0       0
                                                      8    TEST                20             0       0
                                                      9    ENTER               20             0       0
                                                     10    ADVANCE             20             0       0
                                                     11    LEAVE               20             0       0
                                                     12    TRANSFER            20             0       0
                                                     13    GENERATE            10             0       0
                                                     14    TEST                10             0       0
                                                     15    ENTER               10             0       0
                                                     16    ADVANCE             10             0       0
                                                     17    LEAVE               10             0       0
                                  T1                 18    TEST                10             0       0
                                                     19    QUEUE               10             0       0
                                                     20    TRANSFER            10             0       0
                                  T3                 21    TRANSFER             2             0       0
                                  T2                 22    SEIZE                0             0       0
                                                     23    DEPART               0             0       0
                                                     24    ADVANCE              0             0       0
                                                     25    RELEASE              0             0       0
                                                     26    TERMINATE            0             0       0
                                  OUT                27    TERMINATE           60             0       0
                                  OUT1               28    TERMINATE           10             0       0
                                                     29    GENERATE             1             0       0
                                                     30    TERMINATE            1             0       0
                                   
                                   
                                  QUEUE              MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME   AVE.(-0) RETRY
                                   QUE                10   10     10      0     9.480    473.999    473.999   0
                                   
                                   
                                  STORAGE            CAP. REM. MIN. MAX.  ENTRIES AVL.  AVE.C. UTIL. RETRY DELAY
                                   COUNT1             50   50   0     5       70   1    0.252  0.005    0    0
                                   
                                   
                                  SAVEVALUE               RETRY       VALUE
                                   NAK                      0         10.000                            
                                   
                                   
                                  FEC XN   PRI         BDT      ASSEM  CURRENT  NEXT  PARAMETER    VALUE
                                      72    0        1000.000     72      0     29
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (54) « Первая ... 44 45 [46] 47 48 ...  53 54


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