Форум программистов, компьютерный форум, киберфорум
GPSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306

Одновременное освобождение устройств, работающих параллельно

23.06.2013, 17:56. Показов 1147. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток
Собственно, вопрос такой. Можно ли в GPSS отловить событие описанное в заголовке темы?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.06.2013, 17:56
Ответы с готовыми решениями:

2 параллельно-работающих формы (abcObjects)
вообщем надо что бы работало две формы одна abcObjects другая моя. вот код для уточнение {$apptype windows} {$reference...

Создание 2-х параллельно работающих окон
Не судите строго.Недавно начал изучать visual c++.Сделал программу, но никак не выходит создать новое 2-ое окно. В задаче надо было...

Вывод 3х окон анимации, работающих параллельно
Имеется физико-математическая модель распространения газа в коробе. Все расчетные данные есть. Раньше выводил 2д модель анимации...

9
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
23.06.2013, 18:47
А почему нет? всё возможно.
По выходу из каждого устройства (ПОСЛЕ RELEASE) - сначала проверяем (TEST E AC1,X$XXX,NET...) текущее время AC1 равно времени XXX? если да заявка идёт далее по коду и выполняется ваш код, если текущее время освобождения не равно времени последнего освобождения другого устройства, то записывае в сохраняемую величину текущее время освобожждения SAVEVALUE XXX,AC1 таким образом и будем отлавливатьсобытие одновременного освобождения заявок.
Пример написанного кода такой.
В момент времени 5 освобождается первое устройство, Время записанное в XXX=0 AC1=5, времена не равны, поэтому в XXX записываем =5. В этот же момент времени освобождается 2ое устройство AC1=5 XXX=5 таким образом они равны, значит произошло одновременное освобождение устройств и т.д. и т.п.
1
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
23.06.2013, 19:56  [ТС]
Подозрительно ни одного совпадения не выдает.(
0
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
23.06.2013, 20:33
Код скиньте проверим. Или сами сымитируйте искуственную ситуацию - например АБСОЛЮТНОГО СОВПадения всех заявок по времени - сделать довольно легко - 2 GENERATE с равнми интервалами и 2 ADVANCE с равными значениями - это позволить вывести на белый свет ошибку )) если такова имеется.
0
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
23.06.2013, 21:04  [ТС]
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    GENERATE 10, 2
    TRANSFER 0.07,Channel_1,Channel_2
Channel_1   QUEUE QCH1
    SEIZE CH_1  
    DEPART QCH1
    ADVANCE 7,3
    RELEASE CH_1
    TEST NE AC1,X$XXX,Out
    SAVEVALUE XXX,AC1
    TRANSFER ,Rel
Channel_2   QUEUE QCH2
    SEIZE CH_2
    DEPART QCH2
    ADVANCE 20,5
    RELEASE CH_2
    TEST NE AC1,X$XXX,Out
    SAVEVALUE XXX,AC1
Rel QUEUE QCount
    DEPART QCount
    TRANSFER ,Out2
Out TERMINATE 
    GENERATE 3600
    TERMINATE 1
    START 1
0
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
23.06.2013, 21:09
Как она работает? Out2 нету
0
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
23.06.2013, 21:10  [ТС]
out2 там лишнее. Результат экспериментов Недоглядел.
0
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
23.06.2013, 21:17
Нет, Out2 не лишнее, это не показатель одновременности обслуживания.

Вот я поправил код для искусственного тестирования алгоритма "одновременное обслуживание" - работает
алгоритм я писал выше - 2 генератора заявок через 10 секунд, обслуживание также одинаковое 10 секунд - итог, в OUT попадают ВСЕ заявки, хотя как мне казалось, должны попадать не все заявки а половина, потомучто первая заявка записывает XXX, а вторая уже попадает в эту ловушку - разберитесь в чём глюк здесь. - всё верно работает 2а генератор чисел, каждый по 359 сформировал - 359 попало в out (одновременное обслуживание) 359 в out2

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    GENERATE 10
    ;TRANSFER 0.07,Channel_1,Channel_2
Channel_1   QUEUE QCH1
    SEIZE CH_1  
    DEPART QCH1
    ADVANCE 10
    RELEASE CH_1
    TEST NE AC1,X$XXX,Out
    SAVEVALUE XXX,AC1
    TRANSFER ,Rel
 
 
    GENERATE 10
Channel_2   QUEUE QCH2
    SEIZE CH_2
    DEPART QCH2
    ADVANCE 10
    RELEASE CH_2
    TEST NE AC1,X$XXX,Out
    SAVEVALUE XXX,AC1
Rel QUEUE QCount
    DEPART QCount
    TRANSFER ,Out2
Out2 TERMINATE 
 
 
Out TERMINATE ; Сюда попадают с равным временем
 
 
    GENERATE 3600
    TERMINATE 1
    START 1
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 360 0 0
CHANNEL_1 2 QUEUE 360 0 0
3 SEIZE 360 1 0
4 DEPART 359 0 0
5 ADVANCE 359 0 0
6 RELEASE 359 0 0
7 TEST 359 0 0
8 SAVEVALUE 174 0 0
9 TRANSFER 174 0 0
10 GENERATE 359 0 0
CHANNEL_2 11 QUEUE 359 0 0
12 SEIZE 359 0 0
13 DEPART 359 0 0
14 ADVANCE 359 0 0
15 RELEASE 359 0 0
16 TEST 359 0 0
17 SAVEVALUE 185 0 0
REL 18 QUEUE 359 0 0
19 DEPART 359 0 0
20 TRANSFER 359 0 0
OUT2 21 TERMINATE 359 0 0
OUT 22 TERMINATE 359 0 0
23 GENERATE 1 0 0
24 TERMINATE 1 0 0
Добавлено через 3 минуты
Всё верно
1
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
23.06.2013, 22:20  [ТС]
Для фиксированных значений времени работает более-менее хорошо, а вот для диапазона значений данный способ, увы, неприменим.
0
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
24.06.2013, 06:50
Чем это не применим? хаха насмешили чес слово. Применим для любого. просто вы отчёт то свой смотрели? какова вероятность что будут совпадения если у вас во втором устройстве всего 25 заявок побывало? остальные все в первом обслуживаются.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY
                    1    GENERATE           360             0       0
                    2    TRANSFER           360             0       0
CHANNEL_1           3    QUEUE              335             0       0
                    4    SEIZE              335             0       0
                    5    DEPART             335             0       0
                    6    ADVANCE            335             1       0
                    7    RELEASE            334             0       0
                    8    TEST               334             0       0
                    9    SAVEVALUE          334             0       0
                   10    TRANSFER           334             0       0
CHANNEL_2          11    QUEUE               25             0       0
                   12    SEIZE               25             0       0
                   13    DEPART              25             0       0
                   14    ADVANCE             25             0       0
                   15    RELEASE             25             0       0
                   16    TEST                25             0       0
                   17    SAVEVALUE           25             0       0
REL                18    QUEUE              359             0       0
                   19    DEPART             359             0       0
                   20    TRANSFER           359             0       0
OUT                21    TERMINATE            0             0       0
OUT2               22    TERMINATE          359             0       0
                   23    GENERATE             1             0       0
                   24    TERMINATE            1             0       0
Добавлено через 5 минут
Есть куча факторов, по которым может не случиться одновременного завершения обслуживания.
Малое время моделирования (увеличивал не помогает).
генераторы случайных чисел нифига не создают равномерного распределения (+-)
ну и конечно же 7% заявок которые уходят во второе устройство, при этом загрузка устройств у вас не очень высокая
Code
1
2
3
FACILITY         ENTRIES  UTIL.   AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
 CH_1             33557    0.651       6.987  1        0    0    0     0      0
 CH_2              2443    0.136      19.992  1        0    0    0     0      0
Как мог изменял входящий поток и процент отправляемых заявок, одновременные срабатывания есть, но при времени моделирования 3600000 и более жёстком входном потоке 6+-2 и вероятности 0.3.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.06.2013, 06:50
Помогаю со студенческими работами здесь

Можно ли закрыть формы на параллельно работающих приложениях?
Например запускаем одно и тоже приложение на разных машинах. На всех машинах выскакивает например formа messageBox. Возможно ли например...

Разбить одну программу на несколько параллельно работающих
Я не программист, языка С++ не знаю. Написал ТЗ, по которому программисты что-то сваяли, недоваяли и самоустранились. Программа под...

Отобразить список устройств, работающих через COM-порт
у меня несколько 3g модемов, мне необходимо через cmd определить какой модем на каком порту сидит и записать эти данные в файл. Кто чем...

Одновременное подключение двух устройств по hdmi
Доброго времени суток. Столкнулся с проблемой подключения VR гарнитуры и телевизора. Оба эти устройства требуют hdmi выхода на видеокарте...

Можно ли параллельно воспроизводить 2 музыки с разных устройств?
Здравствуйте! Можно ли воспроизвести 2 разные музыки: одну через наушники, а вторую в гарнитуру??? Если да то где об этом можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru