Структурные схемы программного обеспечения процедуры управления потоками сети X.25

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 22:36, 26 января 2015.
Данная статья была согласована с её автором Р.А. Бельферым 28 апреля 2012 года.

__NUMBEREDHEADINGS__

Содержание

Структурная схема организации ПО процедуры управления потоками сети Х.25

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

На рис. 1 приведена упрощенная структурная схема организации этого программного обеспечения.

В следующих разделах приведены упрощенные структурные схемы фоновых программ, выполняющих функцию обеспечения правильной последовательности кадров[1]. Эти схемы могут быть использованы при разработке программ независимо от языка программирования.

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

Рис. 1. Структурная схема организации программного обеспечения безошибочного обмена информационными кадрами на канальном уровне сети Х.25

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

Фоновые программы, которые не выполняют функцию управления потоком, на рисунке изображены в виде одного квадрата. К ним относятся функции установления и разъединения соединения, функции взаимодействия с сетевым уровнем сети Х.25 и другие функции.

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

Диспетчер программ запускает определенную фоновую программу, а после ее выполнения управление возвращается к диспетчеру с тем, чтобы он запустил другую фоновую программу.

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

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

Оп32 – очередь пакетов на передачу с сетевого уровня на канальный уровень;
Оповт – очередь «I» (информационных) кадров на случай необходимости повторной передачи кадров в канал;
Окпм – очередь всех принятых кадров с канала (т.е, физического уровня), в которых при анализе КПК (контрольно-проверочной комбинации) не было обнаружено ошибок;
Оп23 – очередь пакетов, подлежащих передаче с канального уровня на сетевой уровень.

Приведем упрощенные структурные схемы основных фоновых программ передачи (P1ПД, P2ПД, P3ПД, P4ПД, P5ПД, P6ПД, P7ПД), приема (P1ПМ, P2ПМ, P3ПМ, P4ПМ) с кратким описанием их функционирования. Напомним, что фоновые программы запускаются диспетчером программ ДП. По завершению работы фоновая программа возвращает управление ДП.

Структурные схемы фоновых программ

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

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

Рис. 2. Диаграмма обмена кадрами с указанием обработки фоновых программ

Основные положения составления ПО. Структурная схема Р1ПД «Запрос и прием очередного пакета с 3 уровня»

Рис. 3. Структурная схема Р1ПД ”Запрос и прием очередного пакета с 3 уровня”

На рис.3 приведена структурная схема программы Р1ПД, ”Запрос и прием очередного пакета с 3 уровня” (т.е. с сетевого уровня). Приведенная схема ПО обеспечивает перенос пакета с сетевого уровня на канальный уровень Х.25. Основные принципы составления ПО системы коммутации реального масштаба времени с большим числом команд.

Приведем основные положения,которых необходимо придерживаться при составлении ПО системы коммутации:

  1. иерархический принцип построения ПО (диспетчер программ, фоновые программы, подпрограммы);
  2. деление больших ветвей программ с целью упрощения отладки и модернизации ПО;
  3. выполнение большинства программ осуществляется путем обработки очередей сообщений, находящихся в различных областях оперативной памяти;
  4. составление программного обеспечения с наименьшим числом команд является одной из наиболее важных задач для обеспечения большего числа обслуживаемых пользователей коммутационной станцией и лучших показателей качества обслуживания.

Покажем работу приведенной на диаграмме рис.2 программы Р1ПД (рис.3).

Операция 1. Режим передачи очередного пакета в канал? Если да, то переход к диспетчеру программ ДП. Если нет, то переход к операции 2.
Операция 2. Проверка наличия пакета для передачи в канал. В случае такого признака производится переход к операции 3. Этот пакет находится на сетевом уровне.
Операция 3. Проверка числа кадров N(Оповт), находящихся в буфере повторной передачи. Если N(Оповт) равно ширине окна W, то возврат к ДП. Если нет, то переход к операции 4.
Операция 4. Эта операция иллюстрирует деление длинных программ на две. Вначале программа не находится в состоянии «запрос пакета с 3 уровня». Проверка состояния «запрос пакета с 3 уровня». В случае, если не находится в этом состоянии, то переход к операции 5. Иначе, переход к операции 6.
Операция 5. Установка состояния «запрос пакета с 3 уровня».
Операция 6. Поставить пакет 3 уровня в конец очереди Оп32 пакетов, подготовленных к передаче на канальный уровень.
Операция 7. Сброс состояния «запрос пакета с 3 уровня». Переход к ДП.

Как видно из схемы, диспетчер дважды обращается к программе Р1ПД для того, чтобы осуществить прием одного пакета с третьего уровня: первый раз по цепочке операций 1 - 5, а второй раз 1 - 4, 6 - 7.

Все операции кроме 6 просто переводятся на любой язык программирования. Подробному описанию подлежит операция 6. Под блоком данных в сети Х.25 будем понимать кадр (блок данных второго уровня) или пакет (блок данных третьего уровня). В других технологиях сетей блоки данных часто называются другими терминами (ячейка, фрейм и др.). Дадим определение массива блока данных, который стоит в очереди на обработку программой. Операция 6 производит установку пакета 3 уровня в очередь Оп32. Для построения такой очереди принятый пакет располагается в ОЗУ, где к информационным полям добавляются два служебных поля. Такой пакет со служебными полями будем называть массивом пакета. На рис. 4 представлен формат k-го массива пакета в очереди Оп32, где Аk - адрес начала k-го массива пакета. Первые два поля массива пакета являются адресными полями и занимают соответственно начальные адреса предыдущего и последующего массива пакета.

Рис. 4. Формат k-го массива пакета очереди Оп32

Массивы блоков данных (в данном случае массивы пакетов), которые образуют упорядоченную очередь в процессе работы системы в реальном масштабе времени, располагаются в разных местах оперативной памяти. В качестве примера очереди Оп32 приведена очередь из трёх массивов пакетов с начальными адресами A1, А2, А3 (рис. 5.).

Рис. 5. Пример очереди из трех массивов пакетов

В поле 1 массива пакета 1 установлен 0, и в поле 2 массива последнего пакета 3 также установлен 0. В поле 2 массива пакета 1 указывается адрес начала массива пакета 2 (А2), а в поле 2 массива пакета 2 - адрес начала массива пакета 3 (А3).

Третье поле (n1, n2, n3) означает длину данных соответственно пакета 1, пакета 2, пакета 3.

Алгоритм программного обеспечения часто выполняет следующую функцию: из очереди к одной фоновой программе снимается первый блок данных, и после его отработки устанавливается в хвост (конец) очереди другой фоновой программы. Для этой цели в каждой очереди блоков данных используется одномерная строка характеристики очереди, которая состоит из трёх полей (рис. 6.). Для очереди Оп32 обозначим характеристику очереди Нп32. При составлении программного обеспечения оборудования сетей связи это дает возможность экономить машинное время, определив одной-двумя командами наличие или отсутствие блоков в очереди, адреса первого и последнего блока в очереди.

Рис. 6. Формат массива характеристики очереди

На рис. 7. приведена характеристика очереди для приведенного примера.

Рис. 7. Массив характеристики очереди

На этом примере покажем, каким образом реализуется операция 5 программы Р1ПД по установке пакета в конец очереди.

Допустим, начальный адрес этого пакета А4, в полях 3 и 4 установлены соответственно длина пакета в байтах и информационная часть пакета. В поле 2 массива пакета А4 устанавливается 0 (т. к. он занимает последнее место в очереди), в поле 1 устанавливается А3. В поле 2 массива пакета 3 с адресом А3 вместо 0 устанавливается значение начального адреса массива А4.

Приведём изменения в массиве характеристик очереди. В поле 3 вместо 3 устанавливается новое число массивов пакетов в Оп32, т. е. 4, а в поле 2 вместо А3 устанавливается начальный адрес последнего массива пакетов в очереди, т.е. А4.

Работа фоновых программ часто заключается в обработке какого-либо массива очереди, снятии этого массива из одной очереди и установке его в другую очередь. Для организации таких очередей блоков данных с целью их обработки разными фоновыми программами создаётся очередь свободных блоков Освоб. Многие языки программирования высокого уровня предусматривают такую возможность. Первый в очереди Освоб свободный блок используется для записи информационного блока (пакета, кадра и т.п.) и производится его установка в хвост (конец) очереди для обработки какой-либо фоновой программой. При освобождении блока данных после обработки фоновой программой этот блок заносится в хвост Освоб. Поле данных свободных блоков фиксировано, поэтому поле 3 (длина) отсутствует. В некоторых случаях могут быть несколько таких очередей Освоб с разными длинами поля данных, что приводит к экономии оперативной памяти. Форматы массива очереди свободных блоков Освоб и характеристика этой очереди Нсвоб во многом аналогичны описанному выше формату Оп32. Поле данных этих блоков свободно для записи конкретных блоков (например, для записи входных блоков данных с канала или с процессора другого уровня).


Передача информационных кадров в канал может осуществляться следующими тремя программами:

  • передача очередного кадра «I», находящегося в очереди Оп32 (программа Р2ПД);
  • передача кадра «I» из очереди повтора Оповт после получения отрицательной квитанции REJ с противоположного конца (программа Р3ПД);
  • передача кадра «I» из очереди повтора Оповт после срабатывания таймера, указывающего на превышение допустимого времени ожидания подтверждения правильного приема кадра (программа Р7ПД).

Структурная схема программы Р2ПД - «Подготовка к передаче очередного «I» кадра в канал»

Покажем работу приведенной на диаграмме обмена кадрами (рис. 2) программы Р2ПД “Подготовка к передаче очередного «I» кадра в канал” (рис. 8).

Операция 1. Состояние «Передача кадра в канал»?
Рис. 8. Структурная схема программы Р2ПД – “Подготовка к передаче очередного «I» кадра в канал”

Длительность передачи (t) кадра в канал зависит от длины кадра L и пропускной способности канала V и равно

Например, при передаче в канал кадра «I» L=1000 бит и V=64 кбит/с время передачи кадра t=15,6 мс. Это означает, что при среднем времени выполнения одной команды 1 мкс во время передачи такого кадра в канал на все остальные фоновые программы предоставляется 15600 команд. Здесь L=1000 бит взята примерно равной длине пакета по умолчанию.

Операция 2. Есть пакеты в очереди Оп32. на передачу в канал? Если да, то переход к операции 3.

Значение числа пакетов в очереди N(Оп32) содержится в поле 3 характеристики очереди.

Операция 3. Снять первый пакет с очереди Оп32. и поставить в хвост очереди Оповт. Кадр этого пакета формирует операция 5.

Формат массива кадра Оповт длиннее формата массива пакета Оп32, так как включает дополнительное поле – заголовок кадра. Для того чтобы не терять машинное время передачи содержимого поля данных из Оп32 в Оповт, целесообразно формат массива Оп32 сделать одинаковым с массивом данных Оповт, т.е. включить в него неиспользуемое поле заголовка кадра. Такая экономия машинного времени позволяет увеличить пропускную способность сети.

Из этого примера видно, что потеря нескольких байт (неиспользуемая длина заголовка кадра в Оп32) приводит к существенной экономии машинного времени из-за отсутствия передачи поля пакета из Оп32 в Оповт.

Операция 4. Запись параметров N(S), N(R) в заголовок последнего кадра Оповт.
Операция 5. Формирование нового значения переменной передачи V(S), V(S):=V(S)+1.
Операция 6. Запись значения текущего времени tтек.

Этот параметр необходим для работы программы P6ПД – анализ необходимости перехода к передаче кадра «I» из очереди Оповт после срабатывания таймера, указывающего на длительное неподтверждение правильного приёма кадра. Ниже приводится описание работы программы P6ПД. Массив кадра «I», записанный в хвост Оповт, имеет форму, приведённую на рис. 9.

Поля, предназначенные для включения этого кадра в Оповт, т.е. адрес предыдущего массива кадра и 0, указывающий на то, что он последний в очереди Оповт.

Рис. 9. Формат массива кадра “I” в Оповт
Операция 7. В регистр передачи кадра в канал переписывается заголовок кадра и пакет данных, т.е. информация с адреса A1 до адреса A2. Производится передача в канал этого кадра, т.е без первых двух полей адресов (для образования списка очереди) и последнего поля tтек (для отслеживания тайм-аута неподтверждения – программа Р6ПД).
Операция 8. Установить состояние “передача кадра в канал”. Это состояние снимается после передачи в канал последнего байта.
Операция 9. Снять состояние “Подготовить к передаче кадра RR в канал”, если оно было установлено. Подтверждение правильного приёма кадра «I» с противоположного конца канала ПД производится параметром N(R), передаваемом в кадре RR или в кадре «I» . Поскольку программа P2ПД производит передачу кадра «I» нет необходимости передавать кадр RR, если перед этим с противоположной стороны был принят кадр «I».

Структурные схемы программы Р1ПМ - «Обработка принятых кадров «I»» и программы Р2ПМ – «Обработка принятого кадра RR»

Покажем работу приведенных на рис. 2 программ: Р1ПД - «Обработка принятых кадров «I»» кадра и программы Р2ПМ – «Обработка принятого кадра RR» (рис. 10).

Рис. 10. Структурные схемы программы Р1ПМ "Обработка принятого «I» кадра" и программы Р2ПМ "Обработка принятого "RR” кадра"
Операция 1. Число кадров N(OКПМ) в очереди на приём с канала равно нулю? Эта величина определяется в поле 3 характеристики очереди. Если нет, то переход к операции 2.
Операция 2. Первый кадр в OКПМ является информационным («I») ?

Адрес первого кадра определяется в первом поле характеристики очереди. Если да, то переход к операции 3.

Операции 3-5 выполняют функцию проверки буфера «I» кадров в очереди Oповт с целью определения подтверждения правильного приёма «I» кадров противоположной стороной. Это производится в результате анализа параметра N(R) первого кадра в OКПМ.

Операция 3. Число кадров N(Oповт) в очереди Oповт не равно нулю? В случае отсутствия кадров в Oповт программа переходит к операции 6. Операции, начиная с 6, выполняют функцию анализа параметра N(S) первого кадра «I» в OКПМ. В случае наличия кадров в очереди Oповт осуществляется переход к операции 4.
Операция 4. Проверка выполнения условия подтверждения правильного приёма «I»-кадров на противоположной стороне, т.е. N(S) меньше или равно N(R)-1, где N(S) – параметр в первом кадре Oповт;

Получение квитанции с параметром N(R) означает правильный приём всех кадров «I», отправленных с N(S) меньше N(R). Так как нумерация кадров производится по модулю 7 (или 127), то, например, N(R)=0 является больше N(S)=7. Аналогичное упрощение производится и далее при описании других операций и программ. Если условие N(S) меньше или равно N(R)-1 выполняется, то переход к операции 5. Это соответствует приему кадра I(0,5) на рис. 2.

Операция 5. Снять 1-ый кадр с Oповт и поставить в хвост Oсвоб. Переход к операции 3. Цикл считывания кадров с Oповт повторяется до тех пор, пока условия операции 3 или 4 не будет выполнено.
Операция 6. Производится проверка выполнения условия N(S)=V(R), где N(S) – параметр первого кадра OКПМ, который сравнивается с ожидаемым номером V(R). Если это условие выполняется, то производится переход к операции 7. В противном случае переход к операции 11.
Операция 7. Перенос поля данных 1-го кадра OКПМ, т.е. пакета сетевого уровня, из OКПМ в очередь пакетов для передачи на сетевой уровень. На рис. 2 эта операция соответствует приему I(0,0).
Операция 8. Формирование параметра номера следующего ожидаемого кадра «I», т.е. V(R):=V(R)+1
Рис. 11. Диаграмма приёма копии «I» кадра
Операция 9. Проверить наличие пакетов на передачу в канал, т.е. N(ОП32)≠0. Если нет пакетов, то переход к операции 10, иначе переход к ДП.
Операция 10. Установить режим «Подготовка к передаче в канал кадра RR».
Операция 11. Производится проверка выполнения условия N(S)>V(R), которая имеет место в случае неприема нескольких предыдущих кадров «I» по причине обнаружения ошибок в кадре. Если да, то переход к операции 12, иначе N(S)<V(R) и переход к операции 14.
Операция 12. Установить режим «Подготовка к передаче в канал кадра REJ».
Операция 13. Снять 1-ый кадр с OКПМ и поставить в хвост Oсвоб.
Операция 14. Эта ситуация приёма копии ранее принятого кадра «I» может иметь место при передаче с противоположной стороны кадра из очереди Oповт по таймеру при искажении кадра RR в канале (рис. 11). Операция 14 снимает 1-ый кадр с OКПМ и ставит в хвост Oсвоб. После выполнения операции 14 переход к операции 9.

Структурная схема программы P2ПМ - «Обработка принятого кадра RR»

Покажем работу приведенной на диаграмме рис.2 программы P2ПМ "Обработка принятого кадра RR” (рис.10).

Подтверждение правильного приема «I» кадра противоположной стороной производится с помощью параметра N(R). Этот параметр установлен в кадрах «I» и RR, поступающих с противоположной стороны.

Поэтому структурная схема программы P2ПМ – «Обработка принятого кадра положительной квитанции RR» составляет часть структурной схемы программы Р1ПМ и включает операции 1-5 (рис. 10). Уточним эти операции в программе P2ПМ. При выполнении операции 2 производится проверка, является ли первый кадр в OКПМ кадром положительной квитанции RR. Если да, то переход к операции 3. Операции 3-5 производят проверку того же параметра N(R) (но кадра RR, а не кадра «I» ). При невыполнении условий операции 3 или 4 производится переход к ДП, как показано прерывистой линией. При выполнении условий этих операций производится считывание подтвержденных кадров с Oповт аналогично тому, как выполняет программа Р1ПМ.

Структурные схемы программ P4ПД – «Передача кадра RR» и Р5пд – «Передача кадра REJ»

Рис. 12. Структурная схема Р4пд "Передача кадра RR” и программы Р5пд – "Передача кадра REJ”

Покажем работу приведенных на диаграмме рис.2 программ P4ПД-"Передача кадра RR”, P5ПД-"Передача кадра REJ” (рис.12).

Перед началом работы формируются шаблоны супервизорных кадров (RR, REJ), поскольку их длины фиксированы в отличие от кадра «I» . Для передачи таких типов кадров требуется установить только параметр N(R).

Приведем описание операций программы Р4ПД, а затем отметим отличия операций для программы Р5ПД.

Операция 1. Состояние «Передача кадра в канал»? Если да, то переход к ДП, иначе - к операции 2.
Операция 2. Режим “Подготовка к передаче в канал кадра RR”? Этот режим устанавливается в программе P1ПМ. Если да, то переход к операции 3.
Операция 3. Установить значение N(R)=V(R) в шаблоне кадра RR.
Операция 4. Запись кадра RR в регистр передачи. Производится передача кадра в канал.
Операция 5. Снять режим “Подготовка к передаче в канал кадра RR”.
Операция 6. Установить состояние “Режим передачи кадра”. Это состояние так же, как и при передаче других кадров в канал сбрасывается после передачи последнего байта в канал.

В программе Р5ПД в операциях 2-5 вместо «кадр RR» анализа подлежит «кадр REJ», а в операции 3 устанавливается значение N(R)=V(R)-1.

В программе Р5ПД операции 2 и 5 аналогичны программы Р4ПД, за исключением того, что устанавливает и снимает соответственно режим «Подготовка к передаче в канал кадра REJ».

Структурная схема программы Р3ПМ - «Обработка принятого кадра отрицательной квитанции REJ»

Рис. 13. Структурная схема программы Р3ПМ – "Обработка принятого кадра отрицательной квитанции REJ”

Покажем работу приведенной на диаграмме рис.2 программы Р3ПМ – "Обработка принятого кадра отрицательной квитанции REJ” (рис.13).

Операция 1. Число кадров в очереди на приём с канала OКПМ не равно нулю? (т.е. есть ли кадры в OКПМ). Если да, то переход к операции 2.
Операция 2. Первый кадр в OКПМ является кадром REJ?
Операция 3. Установить режим “Передача «I» кадров с Оповт по REJ”
Операция 4. Установить начальный адрес первого кадра Оповт в значение текущего адреса кадра повтора Атповт. При этом может оказаться, что N(S) кадра «I» в Оповт меньше N(R) в кадре REJ. Повтор передачи с первого кадра Оповт может привести к передаче уже принятых кадров «I» . Программой Р1ПМ они будут приняты как копии.
Операция 5. Снять первый кадр очереди OКПМ (т.е. REJ) и поставить его в хвост Освоб.

Структурная схема программы Р3ПД - «Подготовка к передаче «I» кадра по REJ»

Рис. 14. Структурная схема программы Р3ПД - "Подготовка к передаче «I» кадра по REJ”

Покажем работу приведенной на диаграмме рис.2 программы Р3ПД - "Подготовка к передаче «I» кадра из очереди Оповт по REJ” (рис.14).

Операция 1. Состояние “Передачи кадра в канал”?
Операция 2. Режим «Передача «I» кадров с Оповт по REJ»? (Этот режим устанавливается предыдущей программой Р3ПМ. при обработке принятого кадра REJ).
Операция 3. Установить в поле массива кадра по адресу Aтповт N(R)=V(R). Эта операция по изменению N(R) в кадре Оповт вызвана тем, что за время после передачи этого кадра в предыдущий раз, могли поступить кадры «I» с противоположного конца. Это потребует их подтверждения новым значением N(R) в кадре Оповт.
Операция 4. Установить в поле массива кадра по адресу Aтповт значение текущего времени tтек передачи кадра в канал с Оповт. Эта операция аналогична операции 6 программы Р2ПД (см. рис. 8).
Операция 5. Установление состояния «Передача кадра в канал».
Операция 6. Запись кадра Оповт из области массива кадра по адресу Aтповт в регистр передачи в канал (т.е. без первых двух полей адресов для образования списка очереди, а также без последнего поля значения tтек передачи).
Операция 7. Массив кадра по адресу Aтповт является последним в Оповт ? Если нет, то переход к операции 8, иначе переход к операции 9.
Операция 8. Установление Aтповт следующего в очереди Оповт кадра.
Операция 9. Снятие режима передачи кадра с Оповт по REJ.

Структурная схема программы Р6ПД - «Анализ перехода в режим повторения передачи кадра по таймеру»

Рис. 15. Структурная схема программы Р6ПД – "Анализ перехода в режим повторения передачи «I» кадра по таймеру"

Покажем работу приведенной на диаграмме рис.11 программы Р6ПД - «Анализ перехода в режим повторения передачи кадра «I» по таймеру» (рис.15).

Операция 1. Состояние "Передача кадра в канал?"
Операция 2. Режим "Передача очередного кадра в канал?"
Операция 3. Проверить «Истекло ли допустимое время ожидания подтверждения кадра в Оповт после его передачи в канал? Это время находится в поле массива кадра Оповт и сравнивается с текущим временем. Если это время меньше допустимого по таймауту, то выход к ДП. В противном случае переход к операции 4. Эта операция производится по всем кадрам Оповт.
Операция 4. Установка режима "Повтор кадра из Оповт по таймеру". Установить начальный адрес массива кадра Aтповт, подлежащего повтору.
Операция 5. Сброс состояния "Передача очередного кадра в канал".

Структурная схема программы Р7ПД - «Подготовка к передаче «I» кадра по таймеру»

Рис. 16. Структурная схема программы Р7ПД - "Подготовка к передачи «I» кадра по таймеру"

Покажем работу приведенной на диаграмме рис. 11 программы Р7ПД - «Подготовка к передаче «I» кадра по таймеру" (рис. 16).

Операция 1. «Состояние передачи кадра в канал?»
Операция 2. Состояние режима «повторение кадра из Оповт по таймеру»?


Операции 3-5. Осуществляют подготовку и пересылку в регистр передачи в канал кадра из Оповт с начальным адресом массива этого кадра Aтповт.

Операция 3. Установить в поле массива передаваемого кадра Оповт N(R)=V(R) (см. операцию 3 в Р3ПД).
Операция 4. Установить в поле массива передаваемого кадра Оповт tтек передачи кадра в канал из Оповт .
Операция 5. Запись передаваемого кадра из Оповт из области массива первого кадра (без первых двух полей адресов для образования списка очереди, а также последнего поля-значения tтек передачи) в регистр передачи в канал.
Операция 6. Установление состояния «передача кадра в канал».
Операция 7. Снятие состояния режим «повторение кадра из Оповт по таймеру».

Структурная схема программы Р4ПМ - «Установление и снятие запрета на передачу «I» кадров»

Рис. 17. Структурная схема программы Р4ПМ - "Установление и снятие запрета на передачу «I» кадров

В соответствии с рекомендацией МСЭ-Т Х25 одной из причин приёма супервизорного кадра неготовность к приему RNR (receive not ready) может быть сообщение противоположной стороны о перегрузке. Также как и другие супервизорные кадры, RNR включает параметр N(R) для снятия из Оповт на противоположной стороне правильно принятых «I» кадров.

Операция 1. Состояние "запрет на передачу кадра"?
Операция 2. Число кадров в очереди на приём из канала ОКПМ не равно нулю?
Операция 3. Первый кадр в ОКПМ является RNR?

Покажем работу программы Р4ПМ - «Установление и снятие запрета на передачу «I» кадров» (рис. 17). Операция 4-6. Выполняют функцию по снятию из Оповт подтвержденных «I» кадров. Эта операция проводится на основании параметра N(R), входящего в кадр RNR и аналогична программе Р2пм по приёму кадра RR.

Операция 7. Установить состояние "Запрет на передачу кадра".
Операция 8. Поставить первый кадр из ОКПМ в Освоб.
Операция 9. Число кадров ОКПМ 0?
Операция 10. В ОКПМ первый кадр является RR?
Операция 11. Сброс состояния "Запрет на передачу кадров". Если имеет место состояние "Запрет на передачу кадра", установленное операцией 7, то диспетчер программ не передаёт управление ни одной из фоновых программ передачи Р1ПД Р7ПД. Для упрощения этих структурных схем операция проверки условия «Запрет на передачу кадра не приводится».

Примечания

  1. Бельфер Р.А. [и др.]. Проектирование основных функций второго и третьего уровней сетей ПК X.25. Учебное пособие Инсвязьиздат. М.: 2007. 87с.