Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Очереди пакетов данных ТКС






Если пакет данных посылается по каналу связи в момент, когда он занят передачей другого пакета, этот пакет ставится в очередь пакетов данного канала связи, ожидающих пересылки (метод push(Packet) очереди). Когда канал связи освобождается, из очереди выбирается пакет (методы очереди front()/pop()) и пересылается по каналу связи.

Стратегии выборки пакетов из очереди могут быть разными. Обычно используются две стратегии:

- выбирается наиболее старый пакет (простая очередь),

- выбирается пакет с наивысшим приоритетом (очередь с приоритетом).

При реализации простой очереди лучше всего воспользоваться классом std:: queue, а при реализации очереди с приоритетом – классом TCNsym:: priority_queue, указав в качестве упорядочивающего предиката класс TCNsym:: OrderByPriority.

Пропускная способность каналов связи ТКС

Канал связи, имеющий ограниченную пропускную способность, можно рассматривать как устройство (ресурс), которое при поступлении очередного транзакта начинает его обработку, если оно было в состоянии готовности, или отправляет его в ассоциированное с ресурсом хранилище транзактов (например, в простую очередь или очередь с приоритетом), если устройство в данный момент уже занимается обработкой другого транзакта. После того, как транзакт обработан, устройство извлекает из хранилища транзакт и приступает к его обработке. Если в хранилище не осталось больше транзактов, устройство переходит в состояние готовности.

Библиотека TCNsym предоставляет класс, реализующий подобное устройство – TCNsym:: Resource в виде:

 

template

<

class Entity, // скорей всего, указатель на сущность (4.6)

class Queue, // ссылка или если очередь внутренняя, std:: queue

class ProcessingTime, // функционал, по сущности возвращающий, сколько //времени займет ее обработка

class Next // обработчик освобожденных сущностей

>

struct Resource;

 

Данный класс позволяет пользователю выбирать, как будут храниться транзакты и по какому правилу будет определяться следующий для обработки транзакт, и задавать время обработки одного транзакта. Например, можно указать функцию, которая по транзакту определяет, сколько времени займет его обработка.

Составные части узла сети

Таблица исходящих каналов связи

Эта таблица (точнее табличная БД) отвечает за хранение вектора исходящих каналов связи и связанных с ними атрибутов (в частности, отображения вида Neighbours (n) à X реализуются при помощи данного класса). Таблица (БД) исходящих каналов связи ТКС n Î Nodes позволяет по адресу узла x Î Nodes сети определить, является ли он соседом узла n, и если это так, найти канал связи, их соединяющий.

Эта табличная БД в классе TCNsym:: LinkTable. Она позволяет разослать по всем исходящим каналам связи определённый пакет данных. Примером может служить посылка всем соседним узлам эхо-пакета.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.