
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (54) « Первая ... 13 14 [15] 16 17 ... 53 54 ( Перейти к последнему сообщению ) |
Сообщ.
#211
,
|
|
|
Здравствуйте! Моё задание:В специализированной вычислительной системе периодически выполняется три вида заданий, которые характеризуются уровнями приоритета: нулевым, первым и вторым. Каждый новый запуск задания оператор производит при помощи дисплея, работая на нем 20-80 секунд. После запуска задания оно требует для своего выполнения 50-150 секунд времени работы процессора, причем задания более высокого приоритета прерывают выполнение задач более низкого приоритета. Результаты обработки задания выводятся на печать без прерываний в течение 20-40 секунд, после чего производится их анализ в течение 40-80 секунд, и задание запускается снова. Можно считать, что при работе дисплея и при выводе результатов на печать процессор не используется.
Смоделировать процесс работы системы при условии, что задание второго уровня приоритета выполняется 100 раз. Подсчитать число циклов выполнения остальных заданий и определить коэффициенты загрузки технических средств системы. Мой код: Generate 30,20 queue CPU seize display advance 50,30 release display seize CP advance 100,50 release CP depart CPU advance 30,10 advance 60,20 assign P1,(PR+1) savevalue P1+,1 terminate Generate 30,10,,,1 queue CPU seize display advance 50,30 release display prempt CP,PR advance 100,50 return CP depart CPU advance 30,10 advance 60,20 assign P1,(PR+1) savevalue P1+,1 terminate Generate 30,5,,100,2 queue CPU seize display advance 50,30 release display prempt CP,PR advance 100,50 return CP advance 100,50 return CP depart CPU advance 30,10 advance 60,20 assign P1,(PR+1) savevalue P1+,1 test L x3,100,met1 terminate met1 TERMINATE 1 У меня возникает ошибка: Model Translation Begun. Line 21, Col 7. Invalid identifier. Expecting a GPSS Verb. prempt CP,PR Тоже самое и в 36 строчке(во втором Premt), я не понимаю почему. И скажите пожалуйста, в целом код правильный? |
Сообщ.
#212
,
|
|
|
Line 21, Col 7. Invalid identifier. Expecting a GPSS Verb. - > PREEMPT
|
Сообщ.
#213
,
|
|
|
Во блин, извиняюсь, глупо получилось) Ещё подскажите почему возникает ошибка:
Halt. XN: 3. Block 40 Next. Clock:308.916490. Next: ASSIGN. Line 42. assign P1,(PR+1) Reference to a non-existent Parameter. не совсем понимаю, почему на несуществующий параметр ссылка? |
Сообщ.
#214
,
|
|
|
assign P1,(PR+1)
здесь ошибка. Нужно так assign 1,(PR+1) Как правило, в первом операнде блока ASSIGN указывается номер параметра - ASSIGN 1,1000 или его имя ASSIGN P$name,1000 assign 1,(PR+1) savevalue P1+,1 эти строки лишниие.. достачно ![]() ![]() Generate 30,20 ... advance 60,20 savevalue 1+,1 // счеткик транзактов с приоритетом 0 terminate Generate 30,10,,,1 ... advance 60,20 savevalue 2+,1 // счеткик транзактов с приоритетом 1 terminate Generate 30,5,,100,2 ... advance 60,20 savevalue 3+,1 // счеткик транзактов с приоритетом 2 test L x3,100,met1 .. |
Сообщ.
#215
,
|
|
|
Здравствуйте!ЛЮДИ ДОБРЫЕ! Помогите пожалуйста с лабой! Пол университета опросила, никто не может помочь. Нужно написать программу: МКУ с 8 каналами. число мест в очереди = 7 Своего ума хватило только на это:
![]() ![]() VREMA FVARIABLE -1#LOG((1+RN1)/1000)/74 OBS FVARIABLE -1#LOG((1+RN2)/1000)/5 GENERATE V$VREMA TEST L Q$OCHERED,8,REFUS SMO STORAGE 8 QUEUE OCHERED ENTER SMO DEPART OCHERED ADVANCE V$OBS LEAVE SMO TERMINATE 1 GENERATE 480 REFUS TRANSFER ,OUT OUT TERMINATE 1 START 200 |
Сообщ.
#216
,
|
|
|
ну вообщем все верно, кроме размера очереди.
Цитата VREMA FVARIABLE -1#LOG((1+RN1)/1000)/74 OBS FVARIABLE -1#LOG((1+RN2)/1000)/5 SMO STORAGE 8 GENERATE V$VREMA TEST L Q$OCHERED,7,REFUS QUEUE OCHERED ENTER SMO DEPART OCHERED ADVANCE V$OBS LEAVE SMO REFUS TERMINATE 1 START 200,np SMO STORAGE 9 START 800 Всего будет обслужено 1000 заявок. А какое у вас условие завершения моделирования? |
Сообщ.
#217
,
|
|
|
Цитата ну вообщем все верно, кроме размера очереди. Цитата VREMA FVARIABLE -1#LOG((1+RN1)/1000)/74 OBS FVARIABLE -1#LOG((1+RN2)/1000)/5 SMO STORAGE 8 GENERATE V$VREMA TEST L Q$OCHERED,7,REFUS QUEUE OCHERED ENTER SMO DEPART OCHERED ADVANCE V$OBS LEAVE SMO REFUS TERMINATE 1 START 200,np SMO STORAGE 9 START 800 Всего будет обслужено 1000 заявок. А какое у вас условие завершения моделирования? Спасибо за помощь. Но теперь при компилировании выдается ошибка: Error Stop. Halt. XN: 244. Block 7 Next. Clock:3.596054. Next: LEAVE. Line 10. LEAVE SMO Attempt to release more storage than existed. Моделирование нужно завершить после того как будут обработаны 1000 заявок. И сделать это моделирование нужно 10 раз |
Сообщ.
#218
,
|
|
|
У первого устройство ADVANCE равно 7.5,1,5 , у второго 8,2.5.
Цитата AA FUNCTION P1,D2 1,7.5/2,8 BB FUNCTION P1,D2 1,1.5/2,2.5 GENERATE 3 QUEUE XX TRANSFER 0.75,MET1,MET2 MET1 ASSIGN 1,1 TRANSFER ,NN MET2 ASSIGN 1,2 NN SEIZE P1 DEPART XX ADVANCE FN$AA,FN$BB RELEASE P1 TERMINATE GENERATE 480 TERMINATE 1 Объясните, почему в отчете значение AVE.TIME не попадает в эти интервалы (у 1го - 11.250, у 2го - 19.875). Кстати, если задаю конкретное число, то ADVANCE ему не равно. Использую GPSS World Student Version 5.2.2. |
Сообщ.
#219
,
|
|
|
вот так должно быть. Незнаю даже с чем связано.
![]() ![]() ADVANCE FN$AA,(FN$BB) А значения такие получаются.. скорее всего это связано с кривоватенькой реализацией непрерывного времени. В жпсс верд реализовано непрерывное время ![]() Цитата Anomaly @ Спасибо за помощь. Но теперь при компилировании выдается ошибка: Error Stop. Halt. XN: 244. Block 7 Next. Clock:3.596054. Next: LEAVE. Line 10. LEAVE SMO Attempt to release more storage than existed. мда. вероятно нельзя менять емкость МКУ без обнуления счетчиков и удаления транзактов из модели (clear и reset). Возможно прокатит такая вот реализация ![]() ![]() VREMA FVARIABLE -1#LOG((1+RN1)/1000)/74 OBS FVARIABLE -1#LOG((1+RN2)/1000)/5 SMO STORAGE 9 GENERATE V$VREMA TEST L Q$OCHERED,7,REFUS QUEUE OCHERED test e ((tg1<800)|(s$smo<8)),1 ENTER SMO DEPART OCHERED ADVANCE V$OBS LEAVE SMO REFUS TERMINATE 1 START 1000 |
Сообщ.
#220
,
|
|
|
СПАСИБО ОГРОМНОЕ!!! Работает! И результат очень похож на ответы
![]() |
Сообщ.
#221
,
|
|
|
Здравствуйте господа...помогите плз...проверте правильность проги...и если что-то неправильно...исправте...Заранее благодарен...
В системе передачи цифровой информации передается речь в цифровом виде. Речевые пакеты передаются через два транзитных канала, буферизуясь в накопителях перед каждым каналом. Время передачи пакета по каналу составляет 5 мс. Пакеты поступают через 3-9 мс. Пакеты, передававшиеся более 10 мс, на выходе системы уничтожаются, так как их появление в декодере значительно снизит качество передаваемой речи. Уничтожение более 30% пакетов недопустимо. При достижении такого уровня система за счет ресурсов ускоряет передачу до 4 мс на канал. При снижении уровня до приемлемого происходит отключение ресурсов. Смоделировать 10 с работы системы. Определить частоту уничтожения пакетов и частоту подключения ресурса. INITIAL X$T,1 INITIAL X$B,1 GENERATE 6,3 MARK 2 QUEUE OCH1 SEIZE PR_1 DEPART OCH1 Test L (X$B#100/X$T),30,POS1 ADVANCE 1 POS1 ADVANCE 4 RELEASE PR_1 QUEUE OCH2 SEIZE PR_2 DEPART OCH2 Test L (X$B#100/X$T),30,POS2 ADVANCE 1 POS2 ADVANCE 4 RELEASE PR_2 ASSIGN 1+,MP2 TEST L P1,11,BYBY SAVEVALUE T+,1 TERMINATE BYBY SAVEVALUE B+,1 TERMINATE GENERATE 10000 TERMINATE 1 START 1 |
Сообщ.
#222
,
|
|
|
хорошо написано
![]() ![]() ASSIGN 1+,MP2 // + ничего не делает TEST L P1,11,BYBY // по условию <= 10 ![]() ![]() ASSIGN 1,MP2 TEST LE P1,10,BYBY не использую блок MARK, поэтому вместо строк ![]() ![]() MARK 2 ... ASSIGN 1,MP2 TEST LE P1,10,BYBY ![]() ![]() ASSIGN time,AC1 ... TEST LE (AC1-P$time),10,BYBY чтобы подсчитать частоту подключения ресурса ![]() ![]() SEIZE PR_1 DEPART OCH1 SAVEVALUE countAllMode+,1 Test L (X$B#100/X$T),30,POS1 ADVANCE 5 TRANSFER ,met1 POS1 SAVEVALUE countFastMode+,1 ADVANCE 4 met1 RELEASE PR_1 ![]() ![]() GENERATE 10000 SAVEVAKUE fr_brak,(x$B/x$T) // вероятность уничтожение пакета SAVEVALUE fr_useResource,(x$countFastMode/x$countAllMode) // вероятность использования ресурса при передачи TERMINATE 1 Добавлено ![]() ![]() SAVEVAKUE fr_brak,(x$B/(x$B+x$T)) // вероятность уничтожение пакета |
Сообщ.
#223
,
|
|
|
Цитата Eugen @ не использую блок MARK, поэтому вместо строк ![]() ![]() MARK 2 ... ASSIGN 1,MP2 TEST LE P1,10,BYBY ![]() ![]() ASSIGN time,AC1 ... TEST LE (AC1-P$time),10,BYBY можно ышо красивше ![]() ![]() MARK 2 ... TEST LE MP2,10,BYBY собственно MARK 2 делает абсолютно то же самое, что и ASSIGN 2,C1. А MP2 это ничто иное как AC1-P2. Нет смысла помещать эти данные в первый параметр. (Поскольку оператором RESET вы не пользуетесь, С1 всегда равно АС1) Или ваашэ сделать вот как ![]() ![]() MARK ... TEST LE M1,10,BYBY Минимализьм )) мм.. Kappi4, было б неплохо к своему коду еще хоть чуть коментов. Всетаки чужой код разбирать - проще написать свой.. |
Сообщ.
#224
,
|
|
|
Помогите, пожалуйста. Я отчаялась.
В общем, мне нужно выбрать многоканальное устройство из 3-х, которое меньше всего занято. 3 ESKAL STORAGE 35 4 GENERATE 3,1 5 SELECT MIN 1,1,3,,S 7 ENTER P1 9 ADVANCE 400 10 LEAVE P1 Проблема в том, что я не знаю, что писать в блок ENTER. Если пишу Р1, GPSS выдает, что "обращение к несуществующему устр-ву" ну или как-то так. Посоветуйте? |
Сообщ.
#225
,
|
|
|
Цитата Nymphadora @ 3 ESKAL STORAGE 35 4 GENERATE 3,1 5 SELECT MIN 1,1,3,,S 7 ENTER P1 9 ADVANCE 400 10 LEAVE P1 Все дело в том, что у вас несуществует МКУ с именами 1, 2, 3. соответственно селект ничего не выбирает и никуда не ложит. Поэтому необходимо обьявить три МКУ с именами 1, 2, 3. Но конструкция 1 STORAGE 35 - не допустима ![]() поэтому выход такой. Сначала обьявить некую константу, а потом обьявлять МКУ по имени константы. т.о. получаем МКУ с числовым(значение константы) и символьным(имя константы) именем ![]() ![]() stor1 equ 1 stor2 equ 2 stor3 equ 3 stor1 STORAGE 35 stor2 STORAGE 35 stor3 STORAGE 35 GENERATE 3,1 assign 1,1 SELECT MIN 1,1,3,,S ENTER P1 ADVANCE 400 LEAVE P1 terminate 1 start 1000 в отчете видим Цитата STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY STOR1 35 0 0 35 370 1 33.688 0.963 0 287 STOR2 35 0 0 35 368 1 33.539 0.958 0 0 STOR3 35 0 0 35 367 1 33.478 0.957 0 0 и знаем, что STOR1 - устройство номер 1, STOR2 - устройство номер 2, STOR3 - устройство номер 3. Я ж говорил, что все просто ![]() Добавлено Оооооооооооо, так фотку сразу надо было ставить.. помощь пришла бы в три раза быстрее!! ![]() |