
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (54) « Первая ... 18 19 [20] 21 22 ... 53 54 ( Перейти к последнему сообщению ) |
Сообщ.
#286
,
|
|
|
Лады, выдаю, правда он ещё не доделан малость, но уже около 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 З.Ы. Помогите чем сможете, а то я уже ![]() |
Сообщ.
#287
,
|
|
|
очень очень очень много лишнего
![]() Седня ночью накидаю примерный каркас твоей задачи. Ато явно видно, что работа проделана колоссальная, а результат - тупик. Грех не помочь ) |
Сообщ.
#288
,
|
|
|
Заранее спасибо
![]() |
Сообщ.
#289
,
|
|
|
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 грам не разберешься ![]() Добавлено такс. Цитата 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 ;занять очередь к стойке |
Сообщ.
#290
,
|
|
|
Помогите срочно. Мне завтра сдавать курсовую в 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 Но в программе не работает - выдает море ошибок. ПЛЗ ХЕЛП. |
Сообщ.
#291
,
|
|
|
TEMENb
Давай короче я скину тебе на мыло (скинь мне его в приват или тут) там у меня и схема есть, да и таблича задания будет понятней). Правда пока ты пишешь, половина непонятно ![]() А распределение между устройствами равновероятно, т.е. первый трёх канальный узел, очередь одна на всех, три устройства и заявки типа равноверотно на обслуживание между ними идут, во втором узле заявки идут равновероятно между 2 устройствами, у каждого из них своя очередь. На счёт непоняток как уходят в 4 5 (эт ты наверн про отказы) Короче когда возникает отказ заявка проверят какое из устройств доступно,а потом чтобы длина очереди не была больше 2, чтобы пойти в очередь к нормально функционирующему устройству. Отказ возникает по гамма закону, L=0.034 ,b=2 .ВОсстановление идёт по равномерному 35+-15 |
Сообщ.
#292
,
|
|
|
Doggy_Style, 20$ и программа моментально оказывается на вашем ПС. +10$ к програмке появляются q-схема, структурная схема и блоксхема в символике GPSS.
Тут палка о двух концах, или делайте сами или платите, что б за вас делали. h4_botan, моя аська у меня в подписи. |
Сообщ.
#294
,
|
|
|
TEMENb - ты тупой? я прошу помощи как избавиться от ошибок а не заново переписывать программу.
|
Сообщ.
#295
,
|
|
|
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 как МКУ с четырьмя каналами? Если я чего то недопонял - поправь ![]() |
Сообщ.
#296
,
|
|
|
Слышь мудлон варежку хлопни! я тебя лично не о чем не просил. не хочешь не помогай. А если хочешь пообщаться скажи я дам номер позвонишь выясним отношения.
|
Сообщ.
#297
,
|
|
|
Doggy_Style, к тебе уже выехала бригада. сейчас тебя зачистят
![]() Ну если у тебя глаза сломались от того, что ты прочитал мое предложение - прийми мои соболезнования. А если ты до сих пор считаешь, что кто то станет впахивать там, где ты [CENSORED] положил - ты еще тупее, чем показался на первый взгляд. |
Сообщ.
#298
,
|
|
|
Ребята помогите решить задачу, сессия уже почти на шее, очень нужна помощь !
Условие: К 3м рабочим поступают детали для обработки. Интервал поступления деталей 4-6. Если первый занят, то деталь идет ко второму, если второй занят, то деталь идет к третьему. При этом 3й должен обрабатывать все имеющиеся детали. Время обработки: первый: 9-11 мин, второй 11-15 мин, третий 7-9. Добрые умы помогите пожалуйста |
Сообщ.
#299
,
|
|
|
стоимость решения+коментарии+пояснения - 15$
Стоимость помощи - бэсплатно, но нужен исходный код, который вы писали сами. |
Сообщ.
#300
,
|
|
|
Спасибо за ответ! но могли ли вы сказать как применить распределение именно к памяти? и как сделать увеличение на 20 % при повторном обращении?
"Характер распределения емкости памяти вероятностный для 1 потока: зависит от длины запроса (1 единица длины – 1 место в памяти). Распределение длины – равномерное от 1 до 10. При каждом повторном входе в память (фаза S2,1) выделяется на 20% больше места в памяти. При нехватке памяти – отказ в обслуживании." |