
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (54) « Первая ... 6 7 [8] 9 10 ... 53 54 ( Перейти к последнему сообщению ) |
Сообщ.
#106
,
|
|
|
Спасибо, попробую. А режим IA, он вообще откуда взялся. Из GPSS/H ?
|
Сообщ.
#107
,
|
|
|
может GPSS/H, а может GPSS/РС, а может Turbo GPSS.. может даже GPSS'95 student )))
откуда мне знать? ![]() |
Сообщ.
#108
,
|
|
|
Здравствуйте, у меня один большой вопрос по этой задаче.
Еще раз, условие: В системе передачи данных осуществляется обмен пакетами данных между пунктами А и В по дуплексному каналу связи. Пакеты поступают в пункты системы от абонентов с интервалами времени 10 ± 3 мс. Передача пакета занимает 10 см. В пунктах имеются буферные регистры, которые могут хранить два пакета (включая передаваемый). В случае прихода пакета в момент занятости регистров пунктам системы предоставляется выход на спутниковую полудуплексную линию связи, которая осуществляет передачу пакетов данных за 10 ± 5 мс. При занятости спутниковой линии пакет получает отказ. Смоделировать обмен информацией в системе передачи данных в течение 1 мин. Определить частоту вызовов спутниковой линии и ее загрузку. В случае возможных отказов определить необходимый для безотказной работы системы объем буферных регистров. Вот немного модифицированный мной код из того же самого поста: ![]() ![]() SIMULATE 001 INPUT "Емкость буфера A", &CAPA=2 002 INPUT "Емкость буфера B", &CAPB=2 003 BUFA STORAGE &CAPA ; буферный регистр на пункте А 004 BUFB STORAGE &CAPB ; буферный регистр на пункте В 005 SAVEVALUE PAKAB,0 006 SAVEVALUE PAKBA,0 007 SAVEVALUE CALLSAT,0 008 SAVEVALUE PAKSAT,0 009 SAVEVALUE OTAKZSAT,0 *********A->B********************************************** 010 GENERATE 10,3 ; поступление пакетов в пункт А 020 GATE SNF BUFA,SAT ; если буфер заполнен то выход на спутник SAT 030 ENTER BUFA ; Заполнение буфера в пункте А 040 SEIZE AB ; занять устройство - линию от A к B 050 LEAVE BUFA ; освобождение буфера пункта А 060 ADVANCE 10 ; передача пакета 065 SAVEVALUE PAKAB+,1 ; увеличение числа переданных пакетов из А в В ;066 ENTER BUFB ; Заполнение буфера в пункте В 070 RELEASE AB ; осовободить устройство - линию от A к B ;071 LEAVE BUFB ; освобождение буфера пункта В 080 OUT TERMINATE ; 085 OTKAZ SAVEVALUE OTKAZSAT+,1 ; отказ передачи, увеличение числа отказов 090 TRANSFER ,OUT **********B->A********************************************* 100 GENERATE 10,3 ; поступление пакетов в пункт В 110 GATE SNF BUFB,SAT ; если буфер заполнен то выход на спутник SAT 120 ENTER BUFB ; Заполнение буфера в пункте В 140 SEIZE BA ; занять устройство - линию от В к А 160 LEAVE BUFB ; освобождение буфера пункта В 170 ADVANCE 10 ; передача пакета 175 SAVEVALUE PAKBA+,1 ; увеличение числа переданных пакетов из B в A ;176 ENTER BUFA ; Заполнение буфера в пункте А 180 RELEASE BA ; осовободить устройство - линию от В к А ;181 LEAVE BUFA ; освобождение буфера пункта А 190 TRANSFER ,OUT ; **********SATELLITE**************************************** 195 SAT SAVEVALUE CALLSAT+,1 ; увеличение числа частоты вызова спутника 200 GATE NU LINES,OTKAZ ; если линия спутника не занята то вниз иначе на отказ 210 SEIZE LINES ; занять устройство - спутниковую линию связи 220 ADVANCE 10,5 ; передача пакета 225 SAVEVALUE PAKSAT+,1 ; увеличение числа переданных пакетов через спутник 230 RELEASE LINES ; осовободить устройство - спутниковую линию связи 240 TRANSFER ,OUT ; *************************************************************************************** 500 GENERATE 60000 ; работа системы в течние 1 мин = 60000 мс 550 TERMINATE 1 ; 555 START 1 560 END В таком виде результаты моделирования вполне логичны. Видите закоментенные строки? Если их раскоментить, то результаты моделирования ни в какие ворота не лезут. Собственно, вопрос: а почему оно так? Если я правильно понял условие, буферы используются как для входящих, так и для исходящих пакетов, т.е. при передаче одного пакета занимаются буферы обоих сторон. Если это так, то что не правильно? Спасибо заранее! ЗЫ Это все для GPSS/PC делалось Добавлено Еще интерессный вопрос (скорее, риторический): почему в GPSS/PC не работает такой кусок кода? ![]() ![]() 040 *какой-то код 045 GATE LR BVT,MET5 050 *опять какой-то код 055 MET5 TEST GE P1-V$M,100,MET6 060 *тут тоже что-то есть Ругается на несуществующее имя блока MET5... Причем после вот такого шаманства все работает: ![]() ![]() 040 *какой-то код 045 GATE LR BVT,MET5 050 *опять какой-то код 055 MET5 ADVANCE 0 ; черная магия, не редактировать 060 TEST GE P1-V$M,100,MET6 065 *тут тоже что-то есть |
Сообщ.
#109
,
|
|
|
Ну прежде всего, перед тем как отвечать на ваши вопросы, надо ответить, что жпсс - язык загадочный, а жпсс/рс - это загадка для наимудрейших мужей!!
Цитата (с) цитатко из очень умной книжки по имитационному моделированию.GPSS - это больше, чем язык программирования. Это не только система имитационного моделирования а, прежде всего, это неординарное явление в мире программирования конца 60-х/начала 70-х годов. предупреждаю сразу. программу подробненько не смотрел, более того, условие задачи не читал. касаемо Цитата Petroid @ ;066 ENTER BUFB ; Заполнение буфера в пункте В 070 RELEASE AB ; осовободить устройство - линию от A к B ;071 LEAVE BUFB ; освобождение буфера пункта В вероятней всего что статистика и должна поменяться. и насколько точно она будет отображать суровую действительность зависит только от понимания модели автором. ИМХО я б убрал, строки 66 и 71 вообще, и пояснил преподу, что типа сообщение дошло, буферизация не требуется. Возможно автор задачи на это и расчитывал. Касаемо черной магии - блок адванс без параметров - это явление стандартное. Используется обычно, когда надо сделать обязательный переход на блок, ктороый возможно может быть занят. т.е. например Цитата transfer both,met1,met2 met1 seize 1 .............. met2 advance seize 2 конечно данный пример притянут зауши. проще было б поставить очередь, но суть вещей он отображает. Возможно в вашей модели транзакт не может перейти по метке. А возможно вы гдето ткнули табулятор... а РС их не любит.. незнаю даже почему.. наверно детские страхи... загадочный он этот РС...... Добавлено Цитата 005 SAVEVALUE PAKAB,0 006 SAVEVALUE PAKBA,0 007 SAVEVALUE CALLSAT,0 008 SAVEVALUE PAKSAT,0 009 SAVEVALUE OTAKZSAT,0 может конечно я старомоден, но для инициализации переменных используется блок INITIAL, а блок SAVEVALUE используется для присвоения значения в процесе моделироватия. Хотя конкретно в этом тексте задачи негативных последствий сия запись не несет.. но и позитивных тоже.. мусор )) Добавлено нумеруются обычно только функциональные блоки.. хотя это тоже не ошибка. так же РС рекомендует использовать идентификаторы не длиннее пяти символов. т.е. на "PAKSAT" он уже вполне может ругнуться.. хотя может и не ругнуться ![]() Добавлено //------------ да, так и есть. сия задачка валяется у меня в архивах. написана на жпсс ворде.. и с активным использованием косвенной адресации )) для получаемого сообщения буфер использован небыл.. а задача была сдана без замечаний ) |
Сообщ.
#110
,
|
|
|
Спасибо за ответ!
Собственно, мои предположения оправдались. Сдал сегодня в таком виде (с убранными строками 66, 71, 176 и 181). Тоже без замечаний ![]() Воистину, GPSS/PC - наизагадочнейшее явление... Сегодня практически тот же код заработал без advance 0 ... ЗЫ Просто я привык к C/C++, и лично мне advance без параметров показался шаманством вроде if(false){}; ![]() Добавлено Цитата TEMENb @ вероятней всего что статистика и должна поменяться. и насколько точно она будет отображать суровую действительность зависит только от понимания модели автором Статистика меняется кардинально! Количество обслуженных основным каналом связи пакетов понижается до малоправдоподобной величины 0,33% зато количество потерянных пакетов возрастает до 62% ![]() |
Сообщ.
#111
,
|
|
|
Цитата Petroid @ if(false){}; ))) |
Сообщ.
#112
,
|
|
|
;066 ENTER BUFB ; Заполнение буфера в пункте В
070 RELEASE AB ; осовободить устройство - линию от A к B ;071 LEAVE BUFB ; освобождение буфера пункта В Рассмешили меня этим кодом ![]() |
Сообщ.
#113
,
|
|
|
а что смешного?
Если буфер заполнен входящим сигналом. то пакет не выйдет из устройства. Может в этой задаче небыло такой задумки, но впринципе такой код вполне возможен. |
Сообщ.
#114
,
|
|
|
Подскажите пожалуйста как проводить факторный анализ, т.е. по какому принципу вводить значения в нем, value1 и value2. и еще откуда брать данные для:
1. Средняя длительность прохождения через систему 2. Средневзвешенное время ожидания в очереди 3. линейная выпуклая комбинация всех факторов |
Сообщ.
#115
,
|
|
|
Цитата jaguar555 @ по какому принципу вводить значения в нем, value1 и value2 скорее всего у вас там есть какой то параметр (F), который нужно оптимизировать. вводите значения методом научного тыка и смотрите на изменения. В особо тяжких случаях можно нарисовать график F(value1;value2) по результатам моделирования. Цитата jaguar555 @ 1. Средняя длительность прохождения через систему блоки MARK, TABLE, TABULATE, и СЧА М1 тебе в помощь )) Цитата jaguar555 @ 2. Средневзвешенное время ожидания в очереди статистика по очереди Цитата jaguar555 @ 3. линейная выпуклая комбинация всех факторов незнаю что это такое... |
Сообщ.
#116
,
|
|
|
В методичке нашла программу. В состав GPSS-модели входит 16 терминалов. Время подготовки пользователем запроса распределено равномерно в интервале [500,1500]. Время обслуживания запроса вычислительной системой распределено по нормальному закону со средним 500 и среднеквадратичным отклонением 50. Организовать моделирование в течение 100000 единиц модельного времени.
TERM STORAGE 16 NRAS FUNCTION RN5,C25 0,-5/.00003,4/.00135,-3/.00621,-2.5 .02275,-2/.06681,-1.5/.11507,-1.2/.15899,-1 .21186,-.8/.2425,-.6/.34458,-.4/.42074,-.2 .5,0/.57926,.2/.65542,.4/.72575,.6/.78814,.8 .8413,1/.88493,1.2/.93313,1.5/.97725,2 .9979,2.5/.99865,3/.99997,4/1,5 NORM FVARIABLE 500 + 50 *FN$NRAS GENERATE ,,,16 BAHT ENTER TERM,1 ADVANCE 1000,500 LEAVE TERM,1 QUEUE OCHER SEIZE COMP DEPART OCHER ADVANCE V$NORM RELEASE COMP TRANSFER ,BAHT GENERATE 580 TERMINATE 1 START 1 Возникает ошибка Line 9, Col 24. Syntax error. Unidentified character. NORM FVARIABLE 500 + 50 *FN$NRAS **** Model Translation Aborted **** Может у меня версия GPSS не подходящая? (у меня версия 5.2.2) |
Сообщ.
#117
,
|
|
|
все дело в том, что умножение в жпсс выглядит так - "#", а не так - "*".
Добавлено Цитата TERM STORAGE 16 NRAS FUNCTION RN5,C25 0,-5/.00003,4/.00135,-3/.00621,-2.5 .02275,-2/.06681,-1.5/.11507,-1.2/.15899,-1 .21186,-.8/.2425,-.6/.34458,-.4/.42074,-.2 .5,0/.57926,.2/.65542,.4/.72575,.6/.78814,.8 .8413,1/.88493,1.2/.93313,1.5/.97725,2 .9979,2.5/.99865,3/.99997,4/1,5 NORM FVARIABLE 500 + 50 #FN$NRAS GENERATE ,,,16 BAHT ENTER TERM,1 ADVANCE 1000,500 LEAVE TERM,1 QUEUE OCHER SEIZE COMP DEPART OCHER ADVANCE V$NORM RELEASE COMP TRANSFER ,BAHT GENERATE 580 TERMINATE 1 START 1 и как жпсист жпэсисту советую - старайтесь делать поменьше либших пробелов ![]() |
Сообщ.
#118
,
|
|
|
GPSS - то понятно. А какая среда?
это явно не GPSS WORLD собственно и не GPSS/PC. Дык что ж это за зверь то такой? |
Сообщ.
#119
,
|
|
|
я умею GPSS/PC и GPSS world, и даже некое самопальное чудо GPSS'95.
То что в архиве вижу впервые. Вообщем как и половину операторов программы, написаной выше. Это вроде как turbo GPSS - вроде основа та же, но налеплено кучу наворотов которые дадо учить и в которых надо разбираться. Дык по турбо жпсс у меня хоть мануал был )) Похоже это именно тот случай, когда спасение утопающих - дело рук самих утопающих. Сори. |
Сообщ.
#120
,
|
|
|
Тут
Кстати ссылка на этот ресурс находится на этой же страницце. и даже выделена красным восклиццательным знаком )) |