0 / 0 / 0
Регистрация: 12.03.2019
Сообщений: 9
|
|
1 | |
Имитационная модель коммутатора пакетов21.03.2019, 22:54. Показов 2176. Ответов 9
Сделал имитационную модель коммутатора пакетов с общим буфером и буферами по портам. Подскажите как мне сделать очередь на каждом порту. Сделал через Test, но программа не понимает какой именно буфер относится к конкртеному порту, как можно изменить?
А так же как скоректировать модель исходя из условий ниже: 1) как ограничить буфер порта 2) как учесть нестационарность вх потока 3) неравномерность распределения по портам БУду благодарен, за помощь! Текст модели на языке GPSS, моделирующей коммутатор пакетов, выглядит следующим образом: Код
*********************************************************************** * Многоканальная модель с очередью R=Q_len * *********************************************************************** RMULT 7 ;Установка датчика случайных чисел * Константы * *********************************************************************** KP EQU 16 ; Общее количество портов L_pak EQU 2048 ;длина пакета (2 Кбит) Ck EQU 100 ;скорость передачи порта(Mбит/c) T_vz EQU L_pak/Ck ;время передачи 1 пакета (мксек) Y_bx EQU 960 ;скорость вх. потока(Mбит/c) T_in EQU L_pak/Y_bx ;Ср. интервал между пакетами(мксек) D_vz EQU (0.8)#T_vz ;разброс случ.длит. пакета[+-(0.8*30) Timer EQU 10000#T_in ;время прогона для 10000 пакетов Q_len EQU 40 ;емкость общ.памяти ком-тора(пакетов) Q_KP EQU 20 ;емкость буфера порта(пакетов) * Сегмент определения функций и переменных * *********************************************************************** N_Port VARIABLE 1+(RN3@KP) ; случайный выбор порта *Таблица подсчета задержки сообщений (от генерации до окончания передачи) * *********************************************************************** WT QTABLE M_PAket,0,30,10 ; Распределение вр.задержки в очереди *********************************************************************** * Начало прогона модели * *********************************************************************** GENERATE (Exponential(1,0,T_in)) ;Пуассоновский вх.поток пакетов TEST L Q$Buff,Q_len,Fin ;Проврка усл,длина общ.очрди Q<Q_len QUEUE M_PAket ; начало ожидания QUEUE Buff ;Регистратор задержки в очереди SEIZE Swit ;вход в коммутатор DEPART Buff ;выход из очереди ADVANCE 2.1,2 ;время адресации пакета RELEASE Swit ;окончание обслуж,занятие порта ASSIGN N_ID,V$N_Port ; формирование № порта TEST L Q$BufKP,Q_KP,Fin ;Проврка усл,длина очрди порта<Q_KP QUEUE P$N_ID ; начало ожидания (очередь порта N_ID) SEIZE P$N_ID ; занятие порта N_ID DEPART P$N_ID ;выход из очереди N_ID ADVANCE T_vz,D_vz ;Равномер.распределение длит-ти пакета RELEASE P$N_ID ; освобождение порта N_ID DEPART M_PAket ; отметка суммарной задержки TERMINATE ;выход обслуженного пакета из модели Fin TERMINATE ;выход сброшенного пакета из модели *********************************************************************** * Таймер модели * *********************************************************************** GENERATE Timer ;Длительность моделированияна 10000 пакетов TERMINATE 1 START 1
0
|
21.03.2019, 22:54 | |
21.03.2019, 22:54 | |
Ответы с готовыми решениями:
9
Имитационная модель парикмахерской Очереди(имитационная модель) Имитационная модель вычислительной системы |
![]() 1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
22.03.2019, 05:39 | 2 |
![]() Решение
Добрый день. Вначале не разглядел вопроса.
Есть блок ASSIGN который задаёт значение параметру, например ASSIGN 1,100 ; параметр заявки P1=100 Значение изменяется ТОЛЬКО для проходящей блок заявки. Для вашей задачи, вначале после генерации можете разыграть случайное число в параметр заявки, а далее использовать этот номер в модели. Код
ASSIGN InputPort,5 TEST L Q*InputPort,Q_len,Fin ; Длина очереди с номером записанным в параметр Input < QLen ? QUEUE P$InputPort ; Ставим заявку в очередь конкретного порта ... DEPART P$Input Кстати у вас же это реализовано уже, только номер порта у вас P$N_ID, а не BufKP? Чтобы получить размер очереди по ЗНАЧЕНИЮ параметра Q*N_ID Код
ASSIGN N_ID,V$N_Port ; формирование № порта TEST L Q$BufKP,Q_KP,Fin ;Проврка усл,длина очрди порта<Q_KP QUEUE P$N_ID ; начало ожидания (очередь порта N_ID)
1
|
0 / 0 / 0
Регистрация: 12.03.2019
Сообщений: 9
|
|
01.04.2019, 23:42 [ТС] | 3 |
Спасибо за ответ. Подскажите как мне сделать так, чтобы порт выбирался не рандомно, а например 1 порт выбирался с вероятностью 40%, а все остальные в сумме 60%.
0
|
0 / 0 / 0
Регистрация: 12.03.2019
Сообщений: 9
|
|
02.04.2019, 18:45 [ТС] | 4 |
Dukalys, Спасибо за ответ. Подскажите как мне сделать так, чтобы порт выбирался не рандомно, а например 1 порт выбирался с вероятностью 40%, а все остальные в сумме 60%.
0
|
![]() 1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
04.04.2019, 07:59 | 5 |
Сделать это можно несколькими способами, например с помощью параметра
Код
ASSIGN N_ID,((RN1'L'600)#1) ; Случайное число генератора №1 (0..999) < 600? тогда 1 иначе 0
0
|
0 / 0 / 0
Регистрация: 12.03.2019
Сообщений: 9
|
|
04.04.2019, 09:20 [ТС] | 6 |
Dukalys, так у меня 16 портов. А здесь получится, что один будет выбираться
0
|
0 / 0 / 0
Регистрация: 12.03.2019
Сообщений: 9
|
|
04.04.2019, 17:34 [ТС] | 7 |
Dukalys, а что если сделать так? вроде же тоже правильно работает?
Код
PEREKL FUNCTION RN1,D16 0.5,1/0.52,2/0.54,3/0.58,4/0.6,5/0.62,6/0.64,7/0.68,8/0.69,9/0.7,10/0.75,11/0.8,12/0.85,13/0.9,14/0.95,15/1,16/ ASSIGN N_ID,FN$PEREKL ;формирование адреса порта
0
|
![]() 1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
06.04.2019, 11:56 | 8 |
Да, так тоже можно.
0
|
0 / 0 / 0
Регистрация: 12.03.2019
Сообщений: 9
|
|
07.04.2019, 11:57 [ТС] | 9 |
Dukalys, и еще вопрос, можно ли как то сделать так что бы мку задавалось не цифрой а значением, которое записано в POL?
POL EQU 10; GOL STORAGE 10 ;
0
|
![]() 1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
08.04.2019, 09:30 | 10 |
Вроде бы нельзя.
0
|
08.04.2019, 09:30 | |
08.04.2019, 09:30 | |
Помогаю со студенческими работами здесь
10
Имитационная модель машинного зала Имитационная модель мастерской - GPSS Модель передачи потока пакетов Имитационная модель
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Ошибка "Cleartext HTTP traffic not permitted" в Android
hw_wired 13.02.2025
При разработке Android-приложений можно столнуться с неприятной ошибкой "Cleartext HTTP traffic not permitted", которая может серьезно затруднить отладку и тестирование. Эта проблема особенно. . .
|
Изменение версии по умолчанию в NVM
hw_wired 13.02.2025
Node Version Manager, или коротко NVM - незаменимый инструмент для разработчиков, использующих Node. js. Многие сталкивались с ситуацией, когда разные проекты требуют различных версий Node. js,. . .
|
Переименование коммита в Git (локального и удаленного)
hw_wired 13.02.2025
Git как система контроля версий предоставляет разработчикам множество средств для управления этой историей, и одним из таких важных средств является возможность изменения сообщений коммитов. Но зачем. . .
|
Отличия Promise и Observable в Angular
hw_wired 13.02.2025
В веб-разработки асинхронные операции стали неотъемлимой частью почти каждого приложения. Ведь согласитесь, было бы странно, если бы при каждом запросе к серверу или при обработке больших объемов. . .
|
Сравнение NPM, Gulp, Webpack, Bower, Grunt и Browserify
hw_wired 13.02.2025
В современной веб-разработке существует множество средств сборки и управления зависимостями проектов, каждое из которых решает определенные задачи и имеет свои особенности. Когда я начинаю новый. . .
|
Отличия AddTransient, AddScoped и AddSingleton в ASP.Net Core DI
hw_wired 13.02.2025
В современной разработке веб-приложений на платформе ASP. NET Core правильное управление зависимостями играет ключевую роль в создании надежного и производительного кода. Фреймворк предоставляет три. . .
|
Отличия между venv, pyenv, pyvenv, virtualenv, pipenv, conda, virtualenvwrapper, poetry и другими в Python
hw_wired 13.02.2025
В Python существует множество средств для управления зависимостями и виртуальными окружениями, что порой вызывает замешательство даже у опытных разработчиков. Каждый инструмент создавался для решения. . .
|
Навигация с помощью React Router
hw_wired 13.02.2025
React Router - это наиболее распространенное средство для создания навигации в React-приложениях, без которого сложно представить современную веб-разработку. Когда мы разрабатываем сложное. . .
|
Ошибка "error:0308010C:digital envelope routines::unsupported"
hw_wired 13.02.2025
Если вы сталкиваетесь с ошибкой "error:0308010C:digital envelope routines::unsupported" при разработке Node. js приложений, то наверняка уже успели поломать голову над её решением. Эта коварная ошибка. . .
|
Подключение к контейнеру Docker и работа с его содержимым
hw_wired 13.02.2025
В мире современной разработки контейнеры Docker изменили подход к созданию, развертыванию и масштабированию приложений. Эта технология позволяет упаковать приложение со всеми его зависимостями в. . .
|