- •1. Введение
- •2. Теоретические основы моделирования СМО
- •2.1 Пуассоновский поток и экспоненциальное распределение
- •2.2 Приоритетные очереди в сетях связи
- •3. Основная часть
- •3.1 Цель и задачи моделирования
- •3.2 Архитектура имитационной модели в Simulink
- •3.3 Настройка генератора пуассоновского потока и задание приоритетов
- •3.4 Сбор статистики и визуализация результатов
- •4. Заключение
- •5. Список использованных источников
3.Основная часть
3.1Цель и задачи моделирования
Цель работы – построить дискретно-событийную модель узла коммутации, обрабатывающего три класса трафика. Задачи:
1.Сформировать пуассоновский поток заявок (пакетов) с заданной интенсивностью λ.
2.Присвоить каждой заявке приоритет (1 – высокий, 2 – средний, 3 – низкий) с заданными вероятностями.
3.Реализовать распределение заявок по трём каналам в соответствии с приоритетом.
4.Задать разные средние скорости обслуживания (μ1 > μ2 > μ3) для демонстрации влияния пропускной способности.
5.Измерить показатели:
среднее время пребывания в обслуживании;
коэффициент загрузки каждого канала;
6.Проанализировать устойчивость системы при различных уровнях нагрузки.
3.2Архитектура имитационной модели в Simulink
Модель построена в среде MATLAB/Simulink с использованием библиотеки SimEvents (дискретно-событийное моделирование). Общая структура приведена на рисунке 1.
В данной работе строится имитационная модель СМО, отражающая обработку видеотрафика в узле связи. Входной поток – пуассоновский (экспоненциальные интервалы). Заявки разделяются на три класса приоритетов (1 – высший, 2 – средний, 3 – низший). В зависимости от варианта архитектуры используется либо общая приоритетная очередь с последующим распределением по каналам, либо три независимых канала со своими очередями. Серверы могут иметь различную пропускную способность (разные μ). В ходе экспериментов измеряются коэффициент загрузки каждого канала, среднее время ожидания в очереди.
5
Рисунок 1 - Модель в Simulink
Основные блоки:
Entity Generator – генерирует сущности (пакеты) с пуассоновским интервалом.
Entity Output Switch – направляет сущности на один из трёх выходов в зависимости от значения атрибута priority.
Entity Queue (FIFO) – буфер пакетов перед обслуживанием;
Entity Server – обрабатывающее устройство (канал связи);
Entity Terminator – удаляет сущности после обслуживания.
Блоки Scope для регистрации сигналов w (среднее время ожидания в очереди), l (длина очереди), util (загрузка сервера).
Все параметры модели вынесены в Model Workspace (рис. 2) и инициализируются через
PreLoadFcn (рис. 3).
Рисунок 2 - Тестовые значения в Model Workspace
6
Рисунок 3 - Инициализация через PreLoadFcn
3.3Настройка генератора пуассоновского потока и задание приоритетов
Первый блок модели – Entity Generator, который создаёт заявки (видеопакеты) и определяет их характеристики. Для генерации интервалов времени между поступлениями пакетов выбран режим «MATLAB action» в поле Time source. В поле Intergeneration time action записано выражение (рис. 4).
Рисунок 4 - Интервал генерации пакетов
Здесь lambda – интенсивность пуассоновского потока (задаётся в параметрах модели). Такая формула реализует классический метод обратного преобразования для экспоненциального распределения: если на вход поступает равномерно распределённое случайное число rand, то получаемое dt распределено экспоненциально с математическим ожиданием 1/lambda. Именно такая модель соответствует случайному характеру поступления видеопакетов в сеть связи, где интервалы между пакетами независимы и подчиняются экспоненциальному закону.
Далее, каждой создаваемой заявке необходимо присвоить приоритет, чтобы в дальнейшем направить её в соответствующий канал обработки. Для этого во вкладке Event actions (раздел «Entity generation action») помещён программный код (рис. 5)
7
Рисунок 5 - Установка приоритета у заявок
Случайное число r равномерно распределено от 0 до 1. Задавая граничные значения 0,22 и 0,54, мы получаем доли заявок: около 22% – высокоприоритетные (класс 1), 32% – среднеприоритетные (класс 2) и 46% – низкоприоритетные (класс 3). Такое распределение имитирует реальную ситуацию, когда доля критичного трафика обычно наименьшая, а фоновый (наименее важный) трафик преобладает.
Выбранные числа могут быть изменены для изучения влияния доли каждого класса на общую загрузку системы. Атрибут priority должен быть объявлен во вкладке Attributes блока генератора – указывается его имя и тип (double). Это позволяет в дальнейшем обращаться к этому атрибуту в других блоках модели.
Каждый из трёх каналов построен по одинаковой архитектуре: канал, затем сервер (обрабатывающее устройство), и терминатор, удаляющий заявку после обслуживания. Однако пропускная способность каналов существенно различается. Это достигается заданием разных интенсивностей обслуживания mu в блоках Entity Server.
ВModel Workspace объявлены переменные:
1.mu_high = 2.0 – обрабатывает 2 заявки в секунду (среднее время обслуживания 0,5
с);
2.mu_medium = 1.0 – 1 заявка/с (среднее время 1 с);
3.mu_low = 0.5 – 0,5 заявки/с (среднее время 2 с).
Вполе Service time action каждого сервера вставлена формула экспоненциального распределения (рис. 6).
8
