О. С. Попова Хіхловська І. В. Системне та прикладне програмне забезпечення у телекомунікаціях Конспект

Вид материалаКонспект
Sdl-описание протокола сеансового уровня эталонной модели взаимосвязи открытых систем
Описание служб
Описание протоколов
Службы ядра сеансового уровня
Соответствующий БДП
Подобный материал:
1   ...   6   7   8   9   10   11   12   13   14


Наиболее быстрый способ передачи данных является разделяемая память. Она является частью адресного пространства для каждого из взаимодействующих процессов, поэтому запись и чтение в эту память неотличимы от записи и чтения в области собственных данных процесса. Здесь возникает проблема синхронизации процессов. При использовании семафоров могут увеличиваться очереди на выполнение, т.к. несколько процессов могут быть одновременно разбужены и переведены в очередь на систему, но семафоры стандартизованы в POSIX. Очереди размером до 1 кБ служат для обмена короткими структурами данных. При их увеличении повышается число системных вызовов, что уменьшает производительность системы.

Интенсивность межпроцессного взаимодействия в системе можно определить с помощью команды sar-m. Вывод команды показывает число использования объектов JPE в секунду:

Msg/s sema/s

0.20 20.00

0.60 12.20

2.20 10.40


SDL-ОПИСАНИЕ ПРОТОКОЛА СЕАНСОВОГО УРОВНЯ ЭТАЛОННОЙ МОДЕЛИ ВЗАИМОСВЯЗИ ОТКРЫТЫХ СИСТЕМ

ЭТАЛОННАЯ МОДЕЛЬ ВЗАИМОСВЯЗИ ОТКРЫТЫХ СИСТЕМ

Основные понятия

Возможности языка SDL проиллюстрируем на реальном примере описания протокола ядра сеансового уровня эталонной модели взаимосвязи открытых систем (BOС). Эталонная модель ВОС является абстрактным описанием структуры и правил взаимодействия узла связи.

Чтобы упростить описание функционирования эталонной модели ВОС, она рассматривается расчлененной на так называемые уровни, что позволяет представить функцию, реализуемую узлом связи, в виде совокупности подфункций, реализуемых каждым из уровней. Для наглядности эти уровни располагают вертикально один над другим и нумеруют снизу вверх.

Каждый уровень считается состоящим из отдельных элементов. Элемент некоторого N-ro уровня может взаимодействовать:

в своей системе — только с элементами смежных уровней (т.е. (N+D-ro и (N-l)-ro), в чужой системе — только с элементом, расположенным в уровне с тем же номером N (с «равноуровневым» элементом, «напарником»).

Самый верхний уровень взаимодействует с пользователем системы, а самый нижний — со средой передачи (каналом связи).

Взаимодействие со смежными уровнями рассматривается как состоящее из отдельных служб (рис. ), которые нижележащий уровень оказывает вышележащему (службы направлены снизу вверх). На рис. введены следующие обозначения: d — N-элемент; а — N-служба; с — N-протокол; b — N-примитив;

а' — (N-D-служба; b' — (N-1)-примитив.





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

Правила взаимодействия двух элементов N-го уровня называют протоколом N-гo уровня.

При описании служб и протоколов N-гo уровня рассматривается только его взаимодействие со смежными (n+1)-м и (n-1)-m уровнями в своей системе и с тем же N-м уровнем — в другой. Впредь, для краткости, мы будем иногда опускать слово «элемент» и говорить, например, «взаимодействие двух уровней», а не «взаимодействие элементов двух уровней».

Описание служб

Описание служб опирается на модель, в которой служба рассматривается как взаимодействие между пользователем N-службы, расположенным в (n+1)-m уровне, и поставщиком N-службы, расположенным в N-м уровне. Взаимодействие между пользователем и поставщиком описывается в терминах так называемых примитивов. Примитив — это логически выделенный элементарный акт взаимодействия между пользователем и поставщиком, который не может быть прерван никаким другим взаимодействием. Примитивы могут быть направлены и вверх, и вниз (см. рис. ).

В зависимости от требующейся службы примитивы бывают разных категорий: примитивы установления соединения, примитивы передачи данных, примитивы разъединения и т.п. Помимо этого различают примитивы четырех типов:

примитив-запрос — примитив, выдаваемый пользователем поставщику для возбуждения некоторой службы;

примитив-индикация — примитив, выдаваемый поставщиком пользователю либо для возбуждения некоторой процедуры, либо для оповещения о том, что некоторая процедура была возбуждена равноуровневым пользователем в другой системе;

примитив-ответ — примитив, выдаваемый пользователем поставщику для завершения процедуры, возбужденной ранее поставщиком (с помощью примитива-индикации);

примитив-подтверждение — примитив, выдаваемый поставщиком пользователю для завершения процедуры, возбужденной ранее этим пользователем (с помощью примитива-запроса).

Все процедуры взаимодействия осуществляются либо с помощью примитивов четырех типов (запрос-индикация-ответ-подтверждение), либо с помощью примитивов



двух типов (запрос-индикация), либо с помощью примитива одного типа (индикация).

Вместе с примитивами могут передаваться данные и параметры, такие как адреса, требования к соединению, к максимальной длине пересылаемых блоков, сообщения и т.п. Совокупность параметров и данных, передаваемых вместе с примитивами из уровня в уровень через точку доступа, называется блоком данных службы (БДС).

Описание протоколов

Содержанием протокола является описание блоков данных, пересылаемых элементом N-гo уровня одной системы элементу того же уровня другой системы (рис. ). Эти блоки называют блоками данных протокола (БДП). Формируются они следующим образом. Когда (N+1) -и уровень обращается к N-му уровню с каким-либо примитивом (типа «запрос» иди «ответ»), то он передает вместе с ним и БДС. Уровень N присоединяет к БДС так называемую управляющую информацию протокола (УИП), назначение которой — указать напарнику, какого характера присылаемые данные и что с ними делать (пример УИП приведен в §9.6). Объединение УИП с БДС образуют БДП. Уровень N, чтобы послать сформированный им БДП, должен обратиться с запросом об этом к (N-1)-му уровню. Этот запрос осуществляется с помощью примитива пересылки данных (независимо от того, какой категории был тот примитив, с которым N-й уровень получил БДС); вместе с этим примитивом N-й уровень передает (N-1)-му уровню сформированный БДП, но уже в качестве БДС. И все повторяется. Таким образом, БДП, посылаемый N-м уровнем его напарнику, пройдет все нижележащие уровни сверху вниз, «обрастая» на каждом уровне управляющей информацией данного уровня. Блок, образовавшийся на нижнем уровне, пересылается по каналу в другую систему, в которой он начинает «восхождение» до N-ro уровня. При этом каждый уровень выделяет предназначенную ему УИП, расшифровывает ее и, исходя из этого, выполняет некоторые действия, после чего передает остальную часть вверх. Делается это с помощью примитивов передачи данных, с которыми передается указанная часть.

Службы ядра сеансового уровня


Эталонная модель ВОС разбита на семь уровней, из которых 4-й (снизу) получил название транспортного, 5-й - сеансового и 6-й - представительного. Службы сеансового уровня, которые реализуются с помощью примитивов 20 категорий. Все службы разбиты на так называемые функциональные группы. Одна из них, группа ядра, является обязательной при любом соединении. Использование остальных групп оговаривается в процессе установления соединения. В нашем примере мы рассмотрим описание на SDL только протокола ядра сеансового уровня, не затрагивая остальных групп. Ядро обеспечивает службы соединения, передачи' данных, нормального разъединения и экстренного прерывания, которое бывает по инициативе либо пользователя (представительного уровня), либо поставщика (сеансового уровня).

Примитивы установления соединения мы будем обозначать через СДН, передачи данных - через ДНИ, разъединения — через РЗД и прерывания — через Пл-ПРВ и Пс-ПРВ (прерывания по инициативе пользователя и поставщика соответственно). Типы примитивов будем обозначать через зпр (запрос), инд (индикация), отв (ответ) и птв (подтверждение). Одни и те же понятия семиуровневой модели, но связанные с транспортным, сеансовым и представительным уровнями, мы будем обозначать через Т, С и П соответственно. Таким образом, мы получим обозначения вроде С-служба, Т-протокол, С-СДН-зпр (запрос представительного уровня сеансовому на соединение), Т-ДНН-инд (сообщение транспортного уровня сеансовому о доставке данных) и т.п.

Как мы знаем, вместе с примитивами передаются данные и параметры, образующие БДС. В табл.1-4 рассматриваются данные и параметры, передаваемые с примитивами ядра сеансового уровня. Так как функционирование сеансового уровня опирается на службы транспортного уровня, то в табл. 5 описаны параметры, передаваемые вместе с примитивом транспортного уровня Т-СДН. Сделаем некоторые пояснения к табл. 1-5.



Таблица 1


Параметр


Примитив

С-СДН

зпр

инд

отв

птв

С-адрес вызывающей стороны

С-адрес вызываемой стороны

Результат

Качество обслуживания


М


М


М


M


M




М

M







М(-)

М





Соответствующий БДП

ЗC




ПС ОС