На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (54) « Первая ... 18 19 [20] 21 22 ...  53 54  ( Перейти к последнему сообщению )  
> GPSS , Вопрос для знающих
    Лады, выдаю, правда он ещё не доделан малость, но уже около 170 строк, да из за размера окна форума, коменты малость расстануться, может неудобно читать будет:
    ;***********************************************************
    ;буква "М_" в начале имени переменной будет говорить о том, что данная переменная является меткой
    ;буква "U_" в начале имени переменной будет говорить о том, что данная переменная является устройством
    ;буква "Q_" в начале имени переменной будет говорить о том, что данная переменная является очередью

    ;___________Переменные очередей узлов 1-
    2___________________________________________________________________________________
    INITIAL X$K1QDLIN,0 ;переменная, содержащая количество заявок, находящихся в очереди 3-х канального узла
    INITIAL X$K2U1QDLIN,0 ;переменные 2-х канального узла, содержащие количество заявок, находящихся в очередях
    INITIAL X$K2U2QDLIN,0 ;устройств 1 и 2 соответственно

    ;___________Функции расперделения заявок____________________________________________________________________________________
    tipe FUNCTION RN1,D2 ;дискретная фунцкия распеделения заявок 2-х типов
    0.58,M_TIP_A/1,M_TIP_B ;Заявки первого типа обслуживаются в 3-х канальном узле с общей очередью
    ;Второго типа в 2-х канальном узле с индивидуальными очердьми устройств
    KANAL1 FUNCTION RN1,D3 ;дискретная фунцкия распеделения заявок 1-го типа на обслуживание равновероятно
    0.33,M_K1U1/0.66,M_K1U2/1,M_K1U3 ;среди трёх устройств

    ;***********ОСНОВНОЙ БЛОК***************************************************************************************************
    GENERATE (Exponential(1,0,1)) ;генерация поступления заявок в СМО
    ASSIGN 12,(Exponential(1,0,5)) ;назначаем 12-му парметру заявки время, равное отключени/подключению резервного устройства
    TRANSFER ,FN$tipe ;распределение заявок по узлам, согласно их вероятности
    ;(по дискретной функции)

    ;___________распределение по типам заявок___________________________________________________________________________________
    M_TIP_A ASSIGN 10,(Exponential(1,0,1.923)) ;назначаем 10 парметру заявки время, которое она будет обслуживаться в устр-ах 1 узла
    M_QQUZEL1 QUEUE Q_UZEL1 ;заявки попадают в общую очередь, все обслуживаются
    SAVEVALUE K1QDLIN+,1 ;добавляем к длинне очереди общей очереди 3-х канального узла 1
    TRANSFER ,FN$KANAL1 ;расперделение на обслуживаник заявки типа А равновероятно по трём устройствам
    ;между тремя устройствами с общей очередью канала 1
    M_TIP_B ASSIGN 10,(Exponential(1,0,1.923)) ;назначаем 10 парметру заявки время, которое она будет обслуживаться в устр-ах 2 узла
    TRANSFER 0.5,M_K2U1,M_K2U2 ;расперделение на обслуживаник заявки типа В равновероятно
    ;между двумя устройствами с индивидуальными очередями канала 2

    ;___________Устройства канала 1_______________________________________________________________________________________________
    M_K1U1 ASSIGN 11,1 ;назначаем 11 параметру заявки 1(порядковый номер устройства)
    GATE FV U_K1UST1,M_RESERV ;проверка на доступность устройства 1, если не доступно, то в переход в блок резерва
    SEIZE U_K1UST1 ;признак занятости устройства обслуживания 1 в канале 1
    DEPART Q_UZEL1 ;выход заявки из общей очереди канала 1 на обслуживание
    SAVEVALUE K1QDLIN-,1 ;отнимаем от длинны очереди общей очереди 3-х канального узла 1
    ADVANCE (Exponential(1,0,1.923)) ;функция обслуживания заявки
    RELEASE U_K1UST1 ;осовбождение устройства 1
    TRANSFER ,OUT_OKU1 ;переход по метке OUT_OKU1
    M_K1U2 ASSIGN 11,2 ;назначаем 11 параметру заявки 2(порядковый номер устройства)
    GATE FV U_K1UST2,M_RESERV ;проверка на доступность устройства 2, если не доступно, то в переход в блок резерва
    SEIZE U_K1UST2 ;признак занятости устройства обслуживания 2 в канале 1
    DEPART Q_UZEL1 ;выход заявки из общей очереди канала 1 на обслуживание
    SAVEVALUE K1QDLIN-,1 ;отнимаем от длинны очереди общей очереди 3-х канального узла 1
    ADVANCE (Exponential(1,0,1.923)) ;функция обслуживания заявки
    RELEASE U_K1UST2 ;осовбождение устройства 2
    TRANSFER ,OUT_OKU1 ;переход по метке OUT_OKU1
    M_K1U3 ASSIGN 11,3 ;назначаем 11 параметру заявки 3(порядковый номер устройства)
    GATE FV U_K1UST3,M_RESERV ;проверка на доступность устройства 3, если не доступно, то в переход в блок резерва
    SEIZE U_K1UST3 ;признак занятости устройства обслуживания 3 в канале 1
    DEPART Q_UZEL1 ;выход заявки из общей очереди канала 1 на обслуживание
    SAVEVALUE K1QDLIN-,1 ;отнимаем от длинны очереди общей очереди 3-х канального узла 1
    ADVANCE (Exponential(1,0,1.923)) ;функция обслуживания заявки
    RELEASE U_K1UST3 ;осовбождение устройства 3
    TRANSFER ,OUT_OKU1 ;переход по метке OUT_OKU1

    ;___________Устройства канала 2_______________________________________________________________________________________________
    M_K2U1 QUEUE Q_UZEL2_1 ;поступление заявки в очередь устройства 1,двухкнального узла
    SAVEVALUE K2U1QDLIN+,1 ;добавляем к длинне очереди устройства 1-му из 2-х канального узла 1
    ASSIGN 11,4 ;назначаем 11 параметру заявки 4(порядковый номер устройства)
    GATE FV U_K2UST1,M_RESERV ;проверка на доступность устройства 4, если не доступно, то в переход в блок резерва
    SEIZE U_K2UST1 ;признак занятости устройства обслуживания 1 в канале 2
    DEPART Q_UZEL2_1 ;выход заявки из общей очереди канала 2 на обслуживание
    SAVEVALUE K2U1QDLIN-,1 ;отнимаем от длинны очереди устройства 1 из 2-х канального узла 1
    ADVANCE (Exponential(1,0,2.08333)) ;функция обслуживания заявки
    RELEASE U_K2UST1 ;осовбождение устройства 1
    TRANSFER ,OUT_OKU2 ;переход по метке OUT_OKU2
    M_K2U2 QUEUE Q_UZEL2_2 ;поступление заявки в очередь устройства 2,двухкнального узла
    SAVEVALUE K2U2QDLIN+,1 ;добавляем к длинне очереди устройства 2-му из 2-х канального узла 1
    ASSIGN 11,5 ;назначаем 11 параметру заявки 5(порядковый номер устройства)
    GATE FV U_K2UST1,M_RESERV ;проверка на доступность устройства 5, если не доступно, то в переход в блок резерва
    SEIZE U_K2UST2 ;признак занятости устройства обслуживания 2 в канале 2
    DEPART Q_UZEL2_2 ;выход заявки из общей очереди канала 2 на обслуживание
    SAVEVALUE K2U2QDLIN-,1 ;отнимаем от длинны очереди устройства 2 из 2-х канального узла 1
    ADVANCE (Exponential(1,0,2.08333)) ;функция обслуживания заявки
    RELEASE U_K2UST2 ;осовбождение устройства 2
    TRANSFER ,OUT_OKU2 ;переход по метке OUT_OKU2

    ;***********Моделирование возникновения отказак устройствам СМО************************************************************

    ;___________Генерация отказов______________________________________________________________________________________________
    GENERATE ,,,1 ;генерирование заявки для создания отказов устройств
    ASSIGN 15,0
    M_otkaz TEST NE P15,1,KILL_KOPY
    ADVANCE (Gamma(1,0,29.41176,2)) ;интервал времени отказа в доступе к устройству
    TRANSFER ,FN$tipeotk ;переход заявки к функции FN$tipeotk
    tipeotk FUNCTION RN1,D3 ;дискретная фунцкия распеделения заявок отказа
    0.75,M_OTK1/0.95,M_OTK2/1,M_OTK3 ;отказ 1-го устр-ва с вероятностью 0.75 или одновременно двух с
    ;вероятностью 0,2 ,или одновременно трёх, вероятность 0,05
    M_OTK1 TRANSFER ,M_MET0 ;переход заявки по метке otkaz_ustr
    M_OTK2 SPLIT 1,M_METK ;создание второй заявки-клона
    TRANSFER ,M_MET0 ;переход двух заявок по метке otkaz_ustr
    M_OTK3 SPLIT 2,M_METK ;создание второй и третий заявки-клонов
    TRANSFER ,M_MET0 ;переход трёх заявок по метке otkaz_ustr


    ;___________Равновероятное распределение заявок отказа______________________________________________________________________
    M_METK ASSIGN 15,1
    M_MET0 TRANSFER 0.2,,M_OTKU1
    TRANSFER 0.248,,M_OTKU2
    TRANSFER 0.335,,M_OTKU3
    TRANSFER 0.507,,M_OTKU4
    TRANSFER ,M_OTKU5

    ;___________Oтказы усторйств________________________________________________________________________________________________
    M_OTKU1 GATE FV U_K1UST1,M_MET0 ;проверка доступности отказываемое устройства, если устройство уже
    ;находится в отказе, то направление заявки на перераспределение отказа
    FUNAVAIL U_K1UST1,RE,M_RESERVREL,10 ;отказ устройства K1U1, перевод заявки из устройства в резервное устройство
    ADVANCE 35,15 ;время восстановления устройства K1U1
    FAVAIL U_K1UST1 ;восстановление работоспособности устройства K1U1
    TRANSFER ,M_otkaz ;переход заявки по метке otkaz для создания последующих отказов

    M_OTKU2 GATE FV U_K1UST2,M_MET0 ;проверка доступности отказываемое устройства, если устройство уже
    ;находится в отказе, то направление заявки на перераспределение отказа
    FUNAVAIL U_K1UST2,RE,M_RESERVREL,10 ;отказ устройства K1U2, перевод заявки из устройства в резервное устройство
    ADVANCE 35,15 ;время восстановления устройства K1U2
    FAVAIL U_K1UST2 ;восстановление работоспособности устройства K1U2
    TRANSFER ,M_otkaz ;переход заявки по метке otkaz для создания последующих отказов

    M_OTKU3 GATE FV U_K1UST3,M_MET0 ;проверка доступности отказываемое устройства, если устройство уже
    ;находится в отказе, то направление заявки на перераспределение отказа
    FUNAVAIL U_K1UST3,RE,M_RESERVREL,10 ;отказ устройства K1U3, перевод заявки из устройства в резервное устройство
    ADVANCE 35,15 ;время восстановления устройства K1U3
    FAVAIL U_K1UST3 ;восстановление работоспособности устройства K1U3
    TRANSFER ,M_otkaz ;переход заявки по метке otkaz для создания последующих отказов

    M_OTKU4 GATE FV U_K2UST1,M_MET0 ;проверка доступности отказываемое устройства, если устройство уже
    ;находится в отказе, то направление заявки на перераспределение отказа
    FUNAVAIL U_K2UST1,RE,M_RESERVREL,10 ;отказ устройства K2U1, перевод заявки из устройства в резервное устройство
    ADVANCE 35,15 ;время восстановления устройства K2U1
    FAVAIL U_K2UST1 ;восстановление работоспособности устройства K2U1
    TRANSFER ,M_otkaz ;переход заявки по метке otkaz для создания последующих отказов

    M_OTKU5 GATE FV U_K2UST2,M_MET0 ;проверка доступности отказываемое устройства, если устройство уже
    ;находится в отказе, то направление заявки на перераспределение отказа
    FUNAVAIL U_K2UST2,RE,M_RESERVREL,10 ;отказ устройства K2U2, перевод заявки из устройства в резервное устройство
    ADVANCE 35,15 ;время восстановления устройства K2U2
    FAVAIL U_K2UST2 ;восстановление работоспособности устройства K2U2
    TRANSFER ,M_otkaz ;переход заявки по метке otkaz для создания последующих отказов

    ;***********Блок резервных устройств*****************************************************************************************
    ;___________Переменные резервного устройства 1_______________________________________________________________________________
    INITIAL X$RES_U1M,1 ;при старте системы первое резервное устройство находится в "горячем" состоянии
    ;у первого устройста 3-х канального узла (позиция 1)
    INITIAL X$RES_U1S,1 ;переменная состояния устройства: 1 - "горячее",0 - "холодное"
    INITIAL X$RES_U1I,0 ;переменная использования резеврного устройства: 1 - используется, 0 - свободен


    ;___________Переменные резервного устройства 2_______________________________________________________________________________
    INITIAL X$RES_U2M,4 ;при старте системы второе резервное устройство находится в "горячем" состоянии
    ;у первого устройста 2-х канального узла (позиция 4)
    INITIAL X$RES_U2S,1 ;переменная состояния устройства: 1 - "горячее",0 - "холодное"
    INITIAL X$RES_U2I,0 ;переменная использования резеврного устройства: 1 - используется, 0 - свободен


    ;___________Переменные резервного устройства 3_______________________________________________________________________________
    INITIAL X$RES_U3M,0 ;при старте системы тертье резервное устройство находится в "холодном" состоянии
    ;(позиция 0)
    INITIAL X$RES_U3S,0 ;переменная состояния устройства: 1 - "горячее",0 - "холодное"
    INITIAL X$RES_U3I,0 ;переменная использования резеврного устройства: 1 - используется, 0 - свободен


    M_RESERVREL TEST NE P11,1,M_ES1 ;в этой и следующих 4-х строках проверяем из какого устройства пришла заявка
    TEST NE P11,2,M_ES2 ;в зависимотси от этого будет осуществлён переход по метке с последующим
    TEST NE P11,3,M_ES3 ;освобождением от прерванного осблуживания устройства,из которого прибыла заявка
    TEST NE P11,4,M_ES4
    TEST NE P11,5,M_ES5

    M_ES1 RELEASE U_K1UST1 ;осовбождение от прерванного осблуживания устройства 1 канала 1
    TRANSFER ,M_RESERV ;переход по метке M_RESERV
    M_ES2 RELEASE U_K1UST2 ;осовбождение от прерванного осблуживания устройства 2 канала 1
    TRANSFER ,M_RESERV ;переход по метке M_RESERV
    M_ES3 RELEASE U_K1UST3 ;осовбождение от прерванного осблуживания устройства 3 канала 1
    TRANSFER ,M_RESERV ;переход по метке M_RESERV
    M_ES4 RELEASE U_K2UST1 ;осовбождение от прерванного осблуживания устройства 4 канала 2
    TRANSFER ,M_RESERV ;переход по метке M_RESERV
    M_ES5 RELEASE U_K2UST2 ;осовбождение от прерванного осблуживания устройства 5 канала 2
    TRANSFER ,M_RESERV ;переход по метке M_RESERV

    M_RESERV MARK ;метка остчёта времени "просиживания" заявки в резерве
    M_TIME TEST NE P11,RES_U1M,M_U1RES ;после того,как заявка попала в блок резерва идёт серия проверок, находится ли
    TEST NE P11,RES_U2M,M_U2RES ;одно из трёх резервных устройств в "горячем" состоянии к отказавшему устройству
    TEST NE P11,RES_U3M,M_U3RES ;из которого и прибыла заявка, если да ,то заявка переходит по метке и осблуживается
    ;без ожидания откл./подкл. резервного устройства.
    TEST NE RES_U1S,0,M_U1RESH ;серия проверок на "холодный" резерв, т.е. если имеется свободный резерв то заявка
    TEST NE RES_U2S,0,M_U2RESH ;переходит в енго и ждёт время подключения резерва, затем обслуживается
    TEST NE RES_U3S,0,M_U3RESH

    TEST NE RES_U1I,0,M_U1RESF ;серия проверок на свободные резервы, это тот случай когда резерв отработал время
    TEST NE RES_U1I,0,M_U2RESF ;восстановления устройства, но остался в "горячем" состоянии, ожидая следующего
    TEST NE RES_U1I,0,M_U3RESF ;отказа в системе,найдя такой резер заявка переходит в него и ждёт время, равное
    ;вермени отключения+вермя подключения резервного устройства
    TEST LE M1,P12,M_TIMEOUT ;если вермя ожидания обслуживания в резерве заявки истекло, то она напраляевтся
    ;по метке M_TIMEOUT, на распределение в кратчайшую очередь, илиже теряется
    ADVANCE (Exponential(1,0,4))
    TRANSFER ,M_TIME ;переход по метке, с последующим повторение проверок устройств резерва

    M_TIMEOUT TEST G P11,3,M_QUZEL1
    TEST NE P11,4,M_QUZEL2U1
    TEST NE P11,5,M_QUZEL2U2

    M_QUZEL1 TEST G K1QDLIN,2,bej ;M_QQUZEL1
    TRANSFER ,M_LOST
    M_QUZEL2U1 TEST G K2U1QDLIN,2,bej ;M_K2U1
    TRANSFER ,M_LOST
    M_QUZEL2U2 TEST G K2U2QDLIN,2,bej ;M_K2U2
    TRANSFER ,M_LOST
    bej TERMINATE
    ;Резервное устройство 1
    M_U1RESF SAVEVALUE RES_U1M,0 ;снятие резерва номера устройства прошлого "горячего" состояния
    ADVANCE (Exponential(1,0,2)) ;ожидание время отключения резервного устройства 1
    SAVEVALUE RES_U1S,0 ;перевод резервного устройства 1 в "холодное" состояние
    TRANSFER ,M_TIME ;переход по метке M_TIME
    M_U1RESH ADVANCE (Exponential(1,0,2)) ;ожидание время подключения резервного устройства 1
    SAVEVALUE RES_U1M,P11 ;назначение резервному устройства номера устройства нового "горячего" состояния
    SAVEVALUE RES_U1S,1 ;перевод резервного устройства 1 в "горячее" состояние
    SAVEVALUE RES_U1I,1 ;Перевод устройства в режим "используется"
    TRANSFER ,M_TIME ;переход по метке M_TIME
    M_U1RES QUEUE Q_RES1 ;поступление заявки в очередь резервного устройства 1
    SEIZE U_RESERV1 ;признак занятости устройства резерва
    DEPART Q_RES1 ;выход заявки из очереди резервного устройства 1 на обслуживание
    TEST NE P11,1,M_ESL1 ;в этой и следующих 4-х строках проверяем из какого устройства пришла заявка
    TEST NE P11,2,M_ESL2 ;в зависимотси от этого будет осуществлён переход по метке с последующей
    TEST NE P11,3,M_ESL3 ;проверкой на истечение время восстановления отказавщего устройства, из которого
    TEST NE P11,4,M_ESL4 ;и прибыла заявка
    TEST NE P11,5,M_ESL5
    M_U1RESAD ADVANCE P10 ;время обслуживания заявки равно её 10 параметру
    RELEASE U_RESERV1 ;осовбождение резервного устройства 1
    TRANSFER ,OUT_RES1 ;переход по метке OUT_RES1

    M_ESL1 SAVEVALUE K1QDLIN-,1 ;отнимаем от длинны очереди общей очереди 3-х канального узла 1
    GATE FV U_K1UST1,FN$M_RELRES1 ;проверка на доступность устройства 1, если доступно,т.е. время восстановления
    TRANSFER ,M_U1RESAD ;устройства истекло, то перходим по метке M_RELRES1, в противном случае заявка
    M_ESL2 SAVEVALUE K1QDLIN-,1 ;просто переходит по метке M_U1RESAD, дяльше идут аналогичные проверки
    GATE FV U_K1UST2,FN$M_RELRES1 ;для оставшихся устройств,т.е. всего производится одна из пяти проверок,
    TRANSFER ,M_U1RESAD ;в зависимости от поступившей заявки.
    M_ESL3 SAVEVALUE K1QDLIN-,1 ;отнимаем от длинны очереди общей очереди 3-х канального узла 1
    GATE FV U_K1UST3,FN$M_RELRES1 ;
    TRANSFER ,M_U1RESAD ;
    M_ESL4 SAVEVALUE K2U1QDLIN-,1 ;отнимаем от длинны очереди устройства 1 из 2-х канального узла 1
    GATE FV U_K2UST1,FN$M_RELRES1 ;
    TRANSFER ,M_U1RESAD ;
    M_ESL5 SAVEVALUE K2U2QDLIN-,1 ;отнимаем от длинны очереди устройства 2 из 2-х канального узла 1
    GATE FV U_K2UST2,FN$M_RELRES1 ;
    TRANSFER ,M_U1RESAD ;
    M_RELRES1 SAVEVALUE RES_U1I,0 ;Переводим резервное устройство 1 в режим "Свободно"
    TRANSFER ,M_U1RESAD ;переход по метке M_U1RESAD

    KILL_KOPY TERMINATE ;выход копии заявки отказов из СМО
    OUT_RES1 TERMINATE ;выход заявки из СМО
    OUT_OKU1 TERMINATE ;выход заявки из СМО
    OUT_OKU2 TERMINATE ;выход заявки из СМО
    M_LOST TERMINATE ;выход заявки из СМО



    GENERATE 10000
    TERMINATE 1
    START 1 ;прогонов
    *************************************************************************************************
    Да, могут встретиться "мёртвые" блоки,парвда их не много и это те, которые рассчитаны на будущее увеличение кода например, когда дело пойдёт про резеврные устойства.
    Дополнение ещё ок всему таблица параметров:
    входной поток отказ восстан под/отк резерва устр1-3 устр4-5
    закон распределения эксп. гамма равн. эксп. эксп. эксп.
    параметры l=1 l=0,034; b=2 35±15 l=0,5 l=0,52 l=0,48



    З.Ы. Помогите чем сможете, а то я уже :wall:
      очень очень очень много лишнего :yes:

      Седня ночью накидаю примерный каркас твоей задачи.
      Ато явно видно, что работа проделана колоссальная, а результат - тупик. Грех не помочь )
        Заранее спасибо ;)
          h4_botan, а это принципиально должны быть устройства 1-3? трехканальное МКУ не катит?

          Arrrgh, Если появиться свободная минутка )

          Добавлено
          И не совсем ясен критерий, по которому транзакт уходит в очередь 4 или очередь 5.

          Добавлено
          Каков период возникновения отказов?
          Каково время на восстановление?
          Цитата h4_botan @
          Дополнение ещё ок всему таблица параметров:
          входной поток отказ восстан под/отк резерва устр1-3 устр4-5
          закон распределения эксп. гамма равн. эксп. эксп. эксп.
          параметры l=1 l=0,034; b=2 35±15 l=0,5 l=0,52 l=0,48

          не могу расшифровать )

          Добавлено
          суровая Q-схема получилась )
          без 100 грам не разберешься :D

          Добавлено
          такс.
          Цитата
          RASP FUNCTION RN5,D3
          .75,1/.95,2/1,3

          INITIAL X1,1 ;ВОЗЛЕ ПЕРВОГО УСТРОЙСТВА
          INITIAL X2,4 ;ВОЗЛЕ ЧЕТВЕРТОГО
          INITIAL X3,0 ;В ГОРЯЧЕМ РЕЗЕРВЕ (НИ ВОЗЛЕ КАКОГО)
          GENERATE (Exponential(1,0,1000))
          transfer .58,SECTYP
          QUEUE FIR
          TEST L (F1+F2+F3),3
          SELECT MIN 1,1,3,,F ;из за этого у устройства 1 загрузка будет выше чему у 2, а у 2 выше чем у 3. Это не принципиально?
          SEIZE P1
          DEPART FIR
          ADVANCE (Exponential(2,0,520))
          RELEASE P1
          TERMINATE
          SECTYP SELECT MIN 1,4,5,,Q ;ОПЯТЬ ТАКИ, К УСТРОЙСТВУ 4 БОЛЕЕ ПОВЫШЕННОЕ ВНИМАНИЕ, ЧЕМ К УСТРОЙСТУ 5
          QUEUE P1
          SEIZE P1
          DEPART P1
          ADVANCE (Exponential(3,0,480))
          RELEASE P1
          TERMINATE

          GENERATE ,,,1
          POVT ADVANCE (Gamma(4,0,34,2))
          ASSIGN 1,(FN$RASP)
          SPLIT P1,NEX
          TRANSFER ,POVT
          NEX TERMINATE


          GENERATE (60#60#1000)
          TERMINATE 1

          start 1

          Вот че наваял. реализованы 5 устройств, и зародыш блока отказов.
          А теперя моя спать. завтра продолжим )

          З.Ы.: время в микросекундах.
          З.З.Ы: проблема неравномерного распредиления по устройствам решается конструкцией типа
          Цитата
          SELECT MIN 1,1,CREG,,Q ;------;находим очередь с минимальной длинной и ложим ее номер в первый параметр
          ASSIGN 2,(((CREG#RN2)\1000)+1) ;во второй параметр генерируем число в интервало от 1 до CREG
          MET1 ASSIGN 2,((P2@CREG)+1) ;------;во второй параметр положить значение (остаток от деления второго параметра на CREG плюс единица) (увеличиваем второй параметр на 1, если он становится больше CREG, то присваиваем ему единицу)
          TEST E Q*1,Q*2,MET1 ;Если длинна очереди, номер которой записан в первом параметре равна длинне очереди, номер которой записан во втором параметре, дальше, иначе на метку
          QUEUE P2 ;занять очередь к стойке
            Помогите срочно. Мне завтра сдавать курсовую в GPSS/PC, а я профан в этом.
            Задание такое:
            В узел коммутации сообщений, состоящий из входного буфера, процессора, двух исходящих буферов и двух выходных линий, поступают сообщения с двух направлений. Сообщения с одного направления поступают во входной буфер, обрабатываются в процессоре, буферизуются в выходном буфере первой линии и передаются по выходной линии. Сообщения со второго направления обрабатываются аналогично, но передаются по второй выходной линии. Применяемый метод контроля потоков требует одновременного присутствия в системе не более трех сообщений на каждом направлении. Сообщения поступают через интервалы 15±7 мс. Время обработки в процессоре равно 7 мс на сообщение, время передачи по выходной линии равно 15+5 мс. Если сообщение поступает при наличии трех сообщений в направлении, то оно получает отказ.
            Смоделировать работу узла коммутации в течение 10 с. Определить загрузки устройств и вероятность отказа в обслуживании из-за переполнения буфера направления. Определить изменения в функции распределения времени передачи при снятии ограничений, вносимых методом контроля потоков.

            Наткнулся в инете на это ( типа решение моей задачи )

            SIMULATE
            1 GENERATE 15,7 //создать транзакт
            3 TEST LE Q$OCH2,3,XXX //проверить емкость очереди 2
            5 LOGIC S FLAG1 //открыть клапан а
            7 XXX TEST LE Q$OCH3,3,YYY //проверить емкость очереди 3
            9 LOGIC S FLAG2 //открыть клапан b
            11 YYY GATE LS FLAG1,OTKAZ //если клапан а открыт
            13 GATE LS FLAG2,OTKAZ //если клапан b открыт
            15 QUEUE OCH1 //встать в очередь 1
            17 SEIZE CPU //занять устройство процессор
            19 DEPART OCH1 //выйти из очереди 1
            21 ADVANCE 7 //задержаться на 7мс.
            23 RELEASE CPU //освободить процессор
            25 TRANSFER .5,LINE1,LINE2 //перейти к одной из линий
            27 LINE1 QUEUE OCH2 //встать в очередь 2
            29 SEIZE OUT1 //занять выходную линию 1
            31 DEPART OCH2 //выйти из очереди 2
            33 ADVANCE 15,5 //задержаться на время
            35 RELEASE OUT1 //освободить линию 1
            37 LOGIC R FLAG1 //закрыть клапан а
            39 LOGIC R FLAG2 //закрыть клапан b
            41 GATE LS FLAG1,ZZZ //если клапан а открыт
            43 LINE2 QUEUE OCH3 //встать в очередь 3
            45 SEIZE OUT2 //занять выходную линию 2
            47 DEPART OCH3 //выйти из очереди 3
            49 ADVANCE 15,5 //задержаться на время
            51 RELEASE OUT2 //освободить линию 1
            53 LOGIC R FLAG1 //закрыть клапан а
            55 LOGIC R FLAG2 //закрыть клапан b
            57 GATE LS FLAG1,ZZZ //если клапан а открыт
            59 OTKAZ GATE LS FLAG1,WWW //если клапан а открыт
            61 QUEUE OCH1 //встать в очередь 1
            63 SEIZE CPU //занять процессор
            65 DEPART OCH1 //выйти из очереди 1
            67 ADVANCE 7 //задержаться на 7 мс.
            69 RELEASE CPU //освободить процессор
            71 QUEUE OCH2 //встать в очередь 2
            73 SEIZE OUT1 //занять выходную линию 1
            75 DEPART OCH2 //выйти из очереди 2
            77 ADVANCE 15,5 //задержаться на время
            79 RELEASE OUT1 //освободить линию 1
            81 LOGIC R FLAG1 //закрыть клапан а
            83 LOGIC R FLAG2 //закрыть клапан b
            85 GATE LS FLAG1,ZZZ //если клапан а открыт
            87 WWW QUEUE OCH1 //встать в очередь 1
            89 SEIZE CPU //занять процессор
            91 DEPART OCH1 //выйти из очереди 1
            93 ADVANCE 7 //задержаться на 7мс.
            95 RELEASE CPU //освободить процессор
            97 QUEUE OCH3 //встать в очередь 3
            99 SEIZE OUT2 //занять выходную линию 2
            101 DEPART OCH3 //выйти из очереди 3
            103 ADVANCE 15,5 //задержаться на время
            105 RELEASE OUT2 //освободить линию 2
            107 LOGIC R FLAG1 //закрыть клапан а
            109 LOGIC R FLAG2 //закрыть клапан b
            111 GATE LS FLAG2,ZZZ //если клапан b открыт
            113 ZZZ TERMINATE //уничтожить транзакт
            115 GENERATE 60000 //специальный блок для
            117 TERMINATE 1 //прогона модели на время
            START 1

            Но в программе не работает - выдает море ошибок.
            ПЛЗ ХЕЛП.
              TEMENb
              Давай короче я скину тебе на мыло (скинь мне его в приват или тут) там у меня и схема есть, да и таблича задания будет понятней). Правда пока ты пишешь, половина непонятно :)))
              А распределение между устройствами равновероятно, т.е. первый трёх канальный узел, очередь одна на всех, три устройства и заявки типа равноверотно на обслуживание между ними идут, во втором узле заявки идут равновероятно между 2 устройствами, у каждого из них своя очередь.
              На счёт непоняток как уходят в 4 5
              (эт ты наверн про отказы) Короче когда возникает отказ заявка проверят какое из устройств доступно,а потом чтобы длина очереди не была больше 2, чтобы пойти в очередь к нормально функционирующему устройству.
              Отказ возникает по гамма закону, L=0.034 ,b=2 .ВОсстановление идёт по равномерному 35+-15
                Doggy_Style, 20$ и программа моментально оказывается на вашем ПС. +10$ к програмке появляются q-схема, структурная схема и блоксхема в символике GPSS.

                Тут палка о двух концах, или делайте сами или платите, что б за вас делали.

                h4_botan, моя аська у меня в подписи.
                  Цитата Arrrgh @
                  Я пишу на GPSSH

                  а я на нем не пишу :no-sad:
                    TEMENb - ты тупой? я прошу помощи как избавиться от ошибок а не заново переписывать программу.
                      Doggy_Style, походу это ты тупой. Кроме того что мозг не шурупает самому написать, так ты и в чужом готовом мелкие ошибки исправить не можешь.
                      Тебе тут никто ничего не должен. Хочешь - плати, а не хочешь вали [CENSORED]!
                      Бить неучей рублем!

                      Добавлено
                      Arrrgh, дело в том что весь код
                      Цитата Arrrgh @
                      L1 TEST E L1,1,OT проверка если не проходит то идет обратно на выбор линии
                      QUEUE LNB
                      ENTER BAG
                      DEPART LNB
                      ADVANCE 1
                      LEAVE BAG
                      TERMINATE 1
                      OT TRANSFER ,L2
                      L2 TEST E L2,2,OTH проверка если не проходит то идет обратно на выбор линии
                      QUEUE LNC
                      ENTER BAG
                      DEPART LNC
                      ADVANCE 1
                      LEAVE BAG
                      TERMINATE 1
                      OTH TRANSFER ,L3
                      L3 TEST E L3,3,OTHE проверка если не проходит то идет обратно на выбор линии
                      QUEUE LND
                      ENTER BAG
                      DEPART LND
                      ADVANCE 1
                      LEAVE BAG
                      TERMINATE 1
                      OTHE TRANSFER ,L4
                      L4 TEST E L4,4,L1 проверка если не проходит то идет обратно на выбор линии
                      QUEUE LNE
                      ENTER BAG
                      DEPART LNE
                      ADVANCE 1
                      LEAVE BAG

                      какоето непойми шо )
                      почему его не заменить на

                      Цитата
                      QUEUE LNB
                      ENTER lenta
                      DEPART LNB
                      ADVANCE 1
                      LEAVE lenta
                      TERMINATE 1


                      предварительно описав устройство Lenta как МКУ с четырьмя каналами?
                      Если я чего то недопонял - поправь :rolleyes:
                      Сообщение отредактировано: TEMENb -
                        Слышь мудлон варежку хлопни! я тебя лично не о чем не просил. не хочешь не помогай. А если хочешь пообщаться скажи я дам номер позвонишь выясним отношения.
                          Doggy_Style, к тебе уже выехала бригада. сейчас тебя зачистят :D

                          Ну если у тебя глаза сломались от того, что ты прочитал мое предложение - прийми мои соболезнования.
                          А если ты до сих пор считаешь, что кто то станет впахивать там, где ты [CENSORED] положил - ты еще тупее, чем показался на первый взгляд.
                            Ребята помогите решить задачу, сессия уже почти на шее, очень нужна помощь !

                            Условие: К 3м рабочим поступают детали для обработки. Интервал поступления деталей 4-6. Если первый занят, то деталь идет ко второму, если второй занят, то деталь идет к третьему. При этом 3й должен обрабатывать все имеющиеся детали. Время обработки: первый: 9-11 мин, второй 11-15 мин, третий 7-9.

                            Добрые умы помогите пожалуйста
                              стоимость решения+коментарии+пояснения - 15$
                              Стоимость помощи - бэсплатно, но нужен исходный код, который вы писали сами.
                                Спасибо за ответ! но могли ли вы сказать как применить распределение именно к памяти? и как сделать увеличение на 20 % при повторном обращении?
                                "Характер распределения емкости памяти вероятностный для 1 потока: зависит от длины запроса (1 единица длины – 1 место в памяти). Распределение длины – равномерное от 1 до 10. При каждом повторном входе в память (фаза S2,1) выделяется на 20% больше места в памяти. При нехватке памяти – отказ в обслуживании."
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (54) « Первая ... 18 19 [20] 21 22 ...  53 54


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