
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (54) « Первая ... 26 27 [28] 29 30 ... 53 54 ( Перейти к последнему сообщению ) |
Сообщ.
#406
,
|
|
|
Зачем использовать одинаковые имена для переменной пользоватея ONE EQU 1 и для параметров транзакта P$ONE?
ASSIGN 2,(MX$GTD(1,ONE)#P1) - здесь обращение к переменной ASSIGN ONE+,1 - к параметру TEST L ONE,10,SEG1 - к переменной SEG1 ASSIGN ONE,1 - к пареметру возможно подойдет TEST L P$ONE,10,SEG1 andreynov не вижу разницы между следующими фрагментами. Если какой то транзакт занят ОКУ(МКУ), то он и должен его освободить Цитата 19 TRANSFER 1 0 0 Цитата TEMENb @ причина забитости очередей абсолютно всегда одна и та же - высокая интенсивность входящего потока и маленькая интенсивность пропускной способности канала.. что то вроде забитого унитаза Цитата andreynov @ Вот например, после сборки 4% деталей отправляется на предварительную обработку, но они уже собраны, их опять надо разобрать на 2 части? |
Сообщ.
#407
,
|
|
|
Цитата Eugen @ Зачем использовать одинаковые имена для переменной пользоватея ONE EQU 1 и для параметров транзакта P$ONE? ASSIGN 2,(MX$GTD(1,ONE)#P1) - здесь обращение к переменной ASSIGN ONE+,1 - к параметру TEST L ONE,10,SEG1 - к переменной SEG1 ASSIGN ONE,1 - к пареметру Симпатично получается ) в асоциируем переменной значение 1 Цитата Eugen @ ONE EQU 1 переменная подставляет значение 1 Цитата Eugen @ SSIGN 2,(MX$GTD(1,ONE)#P1) - здесь обращение к переменной обращаемся к параметру 1 (переменная подставляет свое значение) Цитата Eugen @ ASSIGN ONE+,1 - к параметру обращаемся к переменной. т.е. условие вроде как если один меньше десяти )) Цитата Eugen @ TEST L ONE,10,SEG1 - к переменной обращаемся к параметру номер 1 Цитата Eugen @ SEG1 ASSIGN ONE,1 - к пареметру И вопреки моим сомнениям, в этой конструкции мы обращаемся к так же к параметру номер 1 =) Цитата Eugen @ TEST L P$ONE,10,SEG1 |
Сообщ.
#408
,
|
|
|
Спасибо, господа программисты... но с русским у вас что-то не то
![]() |
Сообщ.
#409
,
|
|
|
tigreg, це тому що деякi з нас не зовсiм росiяни, швидше жителi колишнього СРСР
![]() |
Сообщ.
#410
,
|
|
|
ну, ясно тогда
![]() |
Сообщ.
#411
,
|
|
|
Eugen, ты скажи конкретно, что не так? до того, как отправить уже собранную деталь обратно на предварительную обработку (4%) нужно освободить память? я правильно понял?
если так, то так уже делал, очереди такие же большие. это верное замечание, но немного не в тему |
Сообщ.
#412
,
|
|
|
SEG1 ASSIGN ONE,1 - к пареметру транзакта с именем ONE, или к параметру, чей номер указан в перемнной ONE???
TEST L P$ONE,10,SEG1 - здесь то явно указано P$ - параметр транзакта ONE ИЛИ TEST L P*ONE,10,SEG1 - здесь косвенная адресация. Обращаемся к параметру чей номер указан в переменной ONE(сработает/нет hz) что не так? Добавлено не в тему, то что транзакт не освободив МКУ помещается в список пользователя, вот это не в тему |
Сообщ.
#413
,
|
|
|
Цитата Eugen @ SEG1 ASSIGN ONE,1 - к пареметру транзакта с именем ONE, или к параметру, чей номер указан в перемнной ONE??? TEST L P$ONE,10,SEG1 - здесь то явно указано P$ - параметр транзакта ONE ИЛИ TEST L P*ONE,10,SEG1 - здесь косвенная адресация. Обращаемся к параметру чей номер указан в переменной ONE(сработает/нет hz) что не так? Проверяй сам ) ![]() ![]() ONE EQU 1 GENERATE 1 ASSIGN ONE,10 ASSIGN 1+,1 SAVEVALUE FIR,P1 SAVEVALUE SEC,P$ONE TERMINATE 1 START 1 Добавлено ![]() ![]() ONE EQU 1 GENERATE 1 ASSIGN ONE,10 SAVEVALUE FIR2,P1 SAVEVALUE SEC2,P$ONE ASSIGN 1+,1 SAVEVALUE FIR1,P1 SAVEVALUE SEC1,P$ONE TERMINATE 1 START 1 |
Сообщ.
#414
,
|
|
|
Добрый вечер! Прошу помочь мне.
Есть такое задание: В студенческом машинном зале расположены две мини-ЭВМ и одно устройство подготовки данных (УПД). Студенты приходят с интервалом 8±3 мин. и треть из них хочет испытать УПД и ЭВМ, а остальные только ЭВМ. Допустимое количество студентов в машинном зале 4 чел., включая работающего на УПД. Работа на УПД занимает 9±4 мин. Работа на ЭВМ - 15±10 мин.; 20% работавших на ЭВМ возвращаются для повторного использования УПД и ЭВМ и остаются при этом в машинном зале. Если студент пришел в машинный зал, а там уже есть 4 чел., то он ждет не более 15±2 мин. в очереди в машинный зал и, если нет возможности в течение этого времени начать работать, то он уходит. Смоделировать работу в машинном зале в течение 48 часов. Определить: - загрузку УПД и обеих ЭВМ, - максимальную длину очереди в машинный зал, - среднее время ожидания в очереди в машинный зал, - распределение общего времени работы студента в машинном зале, - количество студентов, которые не дождались возможности поработать и ушли. И соответственно код этой программы: SIMULATE GENERATE 8,3 ;генерация транзактов, изображающих студентов VB1 VARIABLE RN1/200+13 ;вычисление максимально возможного времени пребывания студента в очереди ASSIGN 3,0 ;разница между временем встраивания студента в очередь и текущим моментом ASSIGN 2,V$VB1 ;запись максимального времени ASSIGN 1,X1 ;время вхождения студента в очередь TEST NE X3,0,ENR ;если очередь пуста, перейти к проверке занятости машинного зала ENO QUEUE OZD ;регистрация в очереди SAVEVALUE 3+,1 ;увеличение размера очереди ADC ADVANCE 1 ;задержка студента в ожидании свободного места в машинном зале GATE SF CCL,DPT ;если в машинном зале есть место, покинуть очередь SAVEVALUE 2,X1 ;запись текущего времени SAVEVALUE 2-,P1 ;вычисление разницы между текущим временем и временем вхождения ASSIGN 3,X2 ;и запись разницы TEST LE P3,P2,DPT ;если разница превысила время ожидания, покинуть очередь, TRANSFER ,ADC ;в противном случае, снова ждать одну минуту DPT SAVEVALUE 3-,1 ;уменьшение числа студентов в очереди DEPART OZD ;студент покидает очередь TEST G P3,P2,EN1 ;если разница не превышает времени ожидания, занять место в зале, TERMINATE ;в противном случае, покинуть машинный зал ENR GATE SNF CCL,ENO ;если в машинном зале нет мест, встать в очередь, EN1 ENTER CCL ;в противном случае, занять свободное место MARK ;отметка начала работы студента в машинном зале TRANSFER .333,CP1,UP1 ;треть студентов выполняет работу на УПД и ЭВМ, остальные только на ЭВМ UP1 SEIZE UPD ;студент занимает место на УПД ADVANCE 9,4 ;и работает некоторое время, RELEASE UPD ;затем покидает УПД и CP1 ENTER COM ;занимает место за одной из двух ЭВМ, ADVANCE 15,10 ;работает в течении нескольких минут и LEAVE COM ;покидает ЭВМ TRANSFER .200,LVE,UP1 ;20%студентов возвращаются для повторного использования УПД и ЭВМ LVE LEAVE CCL ;студент покидает машинный зал TABULATE MWT ;фиксация времени пребывания студента в машинном зале TERMINATE ;студент уходит GENERATE 1 ;моделирование времени работы системы SAVEVALUE 1+,1 ;счетчик времени (в минутах) TRM TERMINATE 1 ;одна минута системного времени прошла CCL STORAGE 4 ;вместительность машинного зала COM STORAGE 2 ;количество ЭВМ MWT TABLE M1,15,15,15 ;описание таблицы распределения общего времени работы студента в машинном зале START 2880 ;работа системы в течении 48 часов (60*48=2880 часов) Подскажите пожалуйста как нужно переделать эту программу под такое задание: В студенческом машинном зале расположены две ЭВМ и одно устройство подготовки данных (УПД). Студенты приходят с интервалом в 8±2 мин, и треть из них хочет использовать УПД и ЭВМ, а остальные только ЭВМ. Допустимая очередь в машинном зале составляет четыре человека, включая работающего на УПД. Работа на УПД занимает 8±1 мин, а на ЭВМ – 17 мин. Кроме того, 20 % работавших на ЭВМ возвращается для повторного использования УПД и ЭВМ.Смоделировать работу машинного зала в течение 60 ч. Определить загрузку УПД, ЭВМ и вероятности отказа в обслуживании вследствие переполнения очереди. Определить соотношение желающих работать на ЭВМ и на УПД в очереди. Если у кого-то есть программа скиньте пожалуйста на мыло: oleg-ryabov@mail.ru Заранее благодарен. |
Сообщ.
#415
,
|
|
|
ONE EQU 1
GENERATE 1 ASSIGN ONE,10 ASSIGN 1+,1 SAVEVALUE FIR,P1 SAVEVALUE SEC,P$ONE ASSIGN P$ONE,5 ![]() SAVEVALUE THREE,p11 TERMINATE 1 START 1 нет. Зачем? |
Сообщ.
#416
,
|
|
|
Для того, чтобы параметр one принимал значения от 1 до 10. Сейчас у меня ни один транзакт не попадает в seg1, потому что каждый раз, пар-ру one присваивается значение 0. но вот если бы оно присваивалось выше generate...
ONE EQU 1 SEG2 GENERATE 10 ASSIGN ONE,0 ASSIGN 1+,1 ASSIGN 3,(COS(3.14#2#RN1/1000)+COS(3.14#2#RN2/1000)) ASSIGN 4,(MX$GTD(1,P1)#P3) TABULATE INPUT TABULATE OUTPUT QUEUE QUE TEST L P1,10,SEG1 DEPART QUE TERMINATE 1 SEG1 ASSIGN 1,1 TRANSFER ,SEG2 |
Сообщ.
#417
,
|
|
|
Цитата Eugen @ ASSIGN P$ONE,5 SAVEVALUE THREE,p11 ![]() ASSIGN A,B А и В - параметры. в качестве параметра в качестве параметров могут выступать имя, k, СЧАj, СЧА$имя или СЧА*j, где k Неотрицательная целая константа; имя Символическое имя; СЧАj Общее наименование стандартного числового атрибута, за которым следует числовое имя; СЧА$имя Общее наименование стандартного числового атрибута, за которым следует знак доллара ($) и символическое имя элемента; СЧА*j Общее наименование стандартного числового атрибута, за которым следует звездочка (*) и номер параметра, величина которого соответствует (числовому) имени элемента. шрайбер. приложение 2. Список блоков gpss. |
Сообщ.
#418
,
|
|
|
Eugen, изменил на:
![]() ![]() MET4 ENTER SBOR ;занять устройство сборки DEPART OCH2 ;покинуть очередь 2 ASSEMBLE 2 ;собрать из двух деталей одну ADVANCE 6 ;Задержка на время обработки LEAVE SBOR ;покидаем сборку LEAVE SBOR ;пришло две детали, а входит одно. потому покидаем два раза. TRANSFER .04,MET5 ;4 % деталей возвращаются на предв. обработку ADVANCE (Exponential(1,0,8));регулировка TERMINATE ;транзакт покидает систему Всё осталось так же. Вот отчет: ![]() ![]() GPSS World Simulation Report - forum.10.1 Wednesday, May 27, 2009 01:50:10 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 1440.000 31 1 1 NAME VALUE MET1 2.000 MET2 5.000 MET3 13.000 MET4 15.000 MET5 6.000 OCH1 10001.000 OCH2 10003.000 POVT 25.000 PREDV 10002.000 SBOR 10000.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 1 0 0 MET1 2 ADVANCE 150 1 0 3 SPLIT 149 0 0 4 TRANSFER 149 0 0 MET2 5 TRANSFER 447 0 0 MET5 6 QUEUE 421 215 0 7 SEIZE 206 0 0 8 DEPART 206 0 0 9 ADVANCE 206 1 0 10 RELEASE 205 0 0 11 QUEUE 205 0 0 12 LINK 205 0 0 MET3 13 QUEUE 218 0 0 14 LINK 218 13 0 MET4 15 ENTER 410 0 0 16 DEPART 410 0 0 17 ASSEMBLE 410 0 0 18 ADVANCE 205 1 0 19 LEAVE 204 0 0 20 LEAVE 204 0 0 21 TRANSFER 204 0 0 22 ADVANCE 12 0 0 23 TERMINATE 12 0 0 24 GENERATE 1 0 0 POVT 25 TEST 206 1 0 26 TEST 205 0 0 27 UNLINK 205 0 0 28 UNLINK 205 0 0 29 TRANSFER 205 0 0 30 GENERATE 1 0 0 31 TERMINATE 1 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY PREDV 206 0.999 6.982 1 192 0 0 0 215 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY OCH1 216 215 421 1 107.430 367.455 368.330 0 OCH2 21 13 423 205 12.592 42.868 83.179 0 STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY SBOR 2 0 0 2 410 1 1.705 0.852 0 0 USER CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME 1 13 0 12.592 218 20 83.179 2 0 1 0.000 205 1 0.000 FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 418 0 1442.715 1 18 19 192 0 1443.715 1 9 10 1 0 1464.667 1 2 3 451 0 2880.000 451 0 30 |
Сообщ.
#419
,
|
|
|
TEMENb
Спасибо за советы по первым вопросам, все получилось. А по поводу последнего: Цитата TEMENb @ Цитата Angellina @ 4) И как сделать так, чтобы вероятность выдачи правильного ответа не могла превышать 1. А как сделать так, что бы ВЕРОЯТНОСТЬ могла превысить 1? К сожалению, в моей программе именно так и получается, а еще и отрицательная бывает ![]() Поэтому я и спрашиваю. ![]() ![]() SAVEVALUE RETRY VALUE VER1 0 -2.71921e+010 VER2 0 270912626.430 VER3 0 -5.6089e+006 |
Сообщ.
#420
,
|
|
|
Всем привет и доброго времени суток. У меня следующая проблема, нужно решить задачу и смоделировать её в GPSS World (очень простая по структуре), ищу человека хорошего знающего GPSS, для её решения, за соответсвующие вознаграждение. Просто сам в запарке и не когда нормально сесть за прогу. Пишите мне на мыло filosof21veka@mail.ru или звоните на мобильный 89636488666.
|