0 / 0 / 0
Регистрация: 12.03.2019
Сообщений: 9
1

Имитационная модель коммутатора пакетов

21.03.2019, 22:54. Показов 2176. Ответов 9

Author24 — интернет-сервис помощи студентам
Сделал имитационную модель коммутатора пакетов с общим буфером и буферами по портам. Подскажите как мне сделать очередь на каждом порту. Сделал через 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
Лучшие ответы (1)
21.03.2019, 22:54
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.03.2019, 22:54
Ответы с готовыми решениями:

Имитационная модель парикмахерской
Условия, помогите ПОЖАЛУЙСТА,читаю пособие ничего не пойму, чувствую себя валенком! В мужской парикмахерской работает один мастер....

Очереди(имитационная модель)
Помогите найти очереди охарактеризовать их и как устранить?

Имитационная модель вычислительной системы
Постройте имитационную модель процесса обслуживания заказов, которые поступают в вычислительную систему, состоящую из одной ЭВМ. Время...

9
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
22.03.2019, 05:39 2
Лучший ответ Сообщение было отмечено Specimen как решение

Решение

Добрый день. Вначале не разглядел вопроса.

Подскажите как мне сделать очередь на каждом порту.
Для этого нужно использовать параметры каждой генерируемой заявки.
Есть блок ASSIGN который задаёт значение параметру, например
ASSIGN 1,100 ; параметр заявки P1=100
Значение изменяется ТОЛЬКО для проходящей блок заявки.

Для вашей задачи, вначале после генерации можете разыграть случайное число в параметр заявки, а далее использовать этот номер в модели.
Код
ASSIGN InputPort,5
TEST L Q*InputPort,Q_len,Fin ; Длина очереди с номером записанным в параметр Input < QLen ?
QUEUE P$InputPort ; Ставим заявку в очередь конкретного порта
...
DEPART P$Input
Добавлено через 5 минут
Кстати у вас же это реализовано уже, только номер порта у вас 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
 Аватар для Dukalys
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
P.S. нужно проверить при трассировке
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
 Аватар для Dukalys
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
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
08.04.2019, 09:30 10
Вроде бы нельзя.
0
08.04.2019, 09:30
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.04.2019, 09:30
Помогаю со студенческими работами здесь

Имитационная модель машинного зала
Добрый день! Проверьте пожалуйста код, представленный ниже. Что там лишнее, или чего-то не хватает? Задание: В машинный зал с...

Имитационная модель мастерской - GPSS
В автомобильной мастерской работает один мастер. Средний интервал между моментами поступления автомобилей в мастерскую составляет Х...

Модель передачи потока пакетов
Здравствуйте! Есть задача: На канал поступает для передачи поток пакетов с равномерным распределением промежутка времени между...

Имитационная модель
Подскажите с работой ... голову всю сломал ...нужно по сути правильное условие поставить для профилактики .. условие ставил во времени до...

Имитационная модель системы СМО
Всем привет!! Мне прислали модель, сказали что надо запутсить в Visual C++, но что то я ничего не получается. Скачал программу Microsoft...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Ошибка "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, virtualenvwrapp­­er, poetry и другими в Python
hw_wired 13.02.2025
В Python существует множество средств для управления зависимостями и виртуальными окружениями, что порой вызывает замешательство даже у опытных разработчиков. Каждый инструмент создавался для решения. . .
Навигация с помощью React Router
hw_wired 13.02.2025
React Router - это наиболее распространенное средство для создания навигации в React-приложениях, без которого сложно представить современную веб-разработку. Когда мы разрабатываем сложное. . .
Ошибка "error:0308010C­­:dig­ital envelope routines::unsup­­ported"
hw_wired 13.02.2025
Если вы сталкиваетесь с ошибкой "error:0308010C:digital envelope routines::unsupported" при разработке Node. js приложений, то наверняка уже успели поломать голову над её решением. Эта коварная ошибка. . .
Подключение к контейнеру Docker и работа с его содержимым
hw_wired 13.02.2025
В мире современной разработки контейнеры Docker изменили подход к созданию, развертыванию и масштабированию приложений. Эта технология позволяет упаковать приложение со всеми его зависимостями в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru