Главная » Мануалы

1 ... 23 24 25 26 27 28 29 ... 32

Условные обозначения:

О*-*- заполненный буфер

О-* - свободный буфер

Сообщение

Свободный буфер Сообщение

Свободный буфер


SEND

Свободный

RCVE

кадровый

r wiLLING TO I I WAIT

(YES, NO)

Свобод}-Иый кадровый буфер

SEND

Выборочное Ожидание поступления, ожидание кадрового буфера буфера ТХ


Задача В, управляющая буфернь|м пулом кадров

Рис. 6.11. Структура пассивного управляющего пакета обмена сообщения.ми (при отсутствии протокола обмена и наличии буферов ТХ и RX, предназначенных для передачи и приема одного сообщения соответственно).

значение, и в результате защищенный вход PICKUP открывается. Как только будет выполнен оператор приема, обе переменные примут значение FALSE (ЛОЖЬ).

Управляющий пакет обмена сообщениями. Поскольку пакет М не является активным, все его функции, как показано на рис. 6.11, могут быть реализованы интерфейсными процедурами M.SEND и M.RCVE. Задачи ЕТХ и ERX при вызове этих процедур попадают в состояние ожидания разрешения на обмен данными и/или получения кадровых буферов.

Процедура M.SEND вначале ожидает по входу F.SEND разрешения на использование буфера ТХ. Затем при его освобождении она вызывает вход B.RICKUP для получения свободного буферного блока, копирует туда фрагмент сообщения и, наконец, обращается к входу F.SEND для передачи. Возврат после выполнения оператора приема F.SEND, как правило.



является разрешением на передачу следующего кадра. Выполнение операторов тела цикла, содержащего вызовы входов В. PICKUP и F.SEND, повторяется до тех пор, пока сообщение не будет полностью передано. При последнем обращении к входу F.SEND один из параметров вызова, задаваемый процедурой M.SEND, указывает, что ожидание разрешения на передачу очередного кадра нежелательно. При последнем обращении к входу F.SEND процедура M.SEND возвращает теперь уже пустой буфер вызывающему модулю. Отметим, что явной передачи параметров из пакета F в пакет М для получения разрешения на доступ к буферу ТХ не требуется, поскольку пакет М в нашем примере не имеет возможности осуществлять пересылку нескольких кадров данных за одно обращение к входу F.SEND. Возврат после выполнения оператора приема F.SEND служит неявным разрешением на передачу одного кадра (при условии, однако, что значение соответствующего параметра указывает на допустимость ожидания).

Процедура M.RCVE вначале по входу F.RCVE ожидает поступления кадра данных, затем после приема она копирует его в свободный буфер и через вход В.RETURN возвращает освободившийся буферный блок в пул. По завершении приема сообщения (его конец обнаруживается путем проверки информационной части кадра) процедура M.RCVE возвращает буфер, теперь уже заполненный информацией сообщения, инициатору вызова. В этот момент поступление кадров данных в буфер RX прекращается, поскольку обращения к входу F.RCVE больше не произойдет до тех пор, пока не будет вызвана процедура M.RCVE,

Управляющий пакет логического обмена кадрами данных.

На рис. 6.12 представлена схема функционирования активного пакета F, осуществляющего управление логическим обменом кадрами данных. Основными новыми особенностями внешнего пакета Е, отличающими его от пакета М, являются использование пакета внешнего таймера и наличие процедуры START. Активизация этой процедуры любым модулем более высокого уровня на указанном рисунке не отмечена, поскольку при проектировании мы не определили, каким образом подсистема СОММ взаимодействует с локальными управляющими модулями системы, которые выполняют ее начальный запуск. Основной новой внутренней особенностью этого пакета по сравнению с пакетом М является наличие задачи FS, которая осуществляет ряд сервисных функций при обмене кадрами данных. Задачи FTX и FRX функционируют в тесном взаимодействии с задачей FS. Пакет F реализует протокол дуплексного обмена последовательностями кадров данных, поступающих автономно от модулей верхнего и нижнего уровней. Указанные последователь-



Управляющий пакет обмена сообщениями

Управляющий пакет логического обмена кадрами данных

WILL1NG TO WAIT

SEND

Задача FS


УБуферТХ li 5Примечание1М Приме-1 жчание 2


Управляющий пакет физического обмена кадрами Р

Задача BUFFER - POOL

Рис. 6.! 2. Управляющий пакет логического обмена кадрами данных. (Примечание. 1. Вход закрыт, если в фазе передачи данных не предоставлен буфер ТХ. 2. Вход закрыт, когда в фазе передачи данных нет кадров данных для приема. 3. Вход закрыт, когда нет информационных кадров, подлежащих передаче.)

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

Q Зак. б

Усповиые обозначения

О- заполненный буфер

О---разрешение на передачу данных

О-*- свободный буфер (или какой-либо специальный параметр)



задачи FTX и FRX реализуют функции транспортировки кадров взаимодействия с пакетом Р, который осуществляет управление физическим обменом, и тем самым освобождает от этих обязанностей задачу FS.

У задачи FS имеются входы, вызываемые сверху вышестоящими модулями: вход SEND для передачи, и вход RCVE для приема кадров, содержащих фрагменты сообщения. Входы GET (ПОЛУЧИТЬ) и PUT (ПОМЕСТИТЬ) служат для аналогичной цели, но вызываются только снизу модулями нижестоящего уровня. Кроме того, имеются вход START, при обращении к которому запускается стартовый протокол обмена данными, и вход PICKUP, вызов которого предшествующим (в иерархической структуре) модулем, как будет показано ниже, обеспечивает ему разрешение на информационный обмен в форме предоставления свободного буфера ТХ. При этом оператор задержки определяет интервал времени, в течение которого должно ожидаться подтверждение приема информация.

При каждом обращении к входу SEND задачи FS инициатору вызова возвращается в качестве выходного параметра разрешение на пересылку данных; если значение этого параметра равно нулю и вызывающий модуль согласен на ожидание, то процедура SEND вызывает вход PICKUP для получения свободного буфера.

В теле задачи FTX реализуется цикл, на каждой итерации которого посредством обращения к процедуре Р.SEND и последующего вызова входа FS.GET осуществляется передача одного кадра данных. Возврат из процедуры Р.SEND означает разрешение на передачу следующего кадра. Отметим, что такой механизм получения разрешения является строго локальным и работает только при взаимодействии пакетов F и Р; при его использовании нет возможности различать информационные и управляющие кадры. При начальном запуске разрешение считается выданным и в этом случае задача FTX обращается сначала к входу FS.GET, чтобы дождаться поступления кадра данных.

Тело задачи FRX в свою очередь тоже представляет собой цикл, на каждой итерации которого путем обращения к процедуре Р.RCVE и последующего вызова входа FS.PUT осуществляется передача одного кадра данных. При начальном запуске задача FRX обращается прежде всего к процедуре Р.RCVE и ожидает поступления кадра данных. На задачу FS возложена функция блокирования приема новых кадров в случае, когда окно буфера РХ заполнено.

Какой же должна быть внутренняя логика задачи FS, осуществляющей все эти функции? С точки зрения модульности желательно разделить логику, реализуемую протоколом равно-




Задача FS

Условные обозначения;

О->- буферы для кадров, EQ - постановка в очередь, XFR - пересылка между очередями; DQ - исключение из очереди; Q - идентификаторы очереди; с код операции.

Рис. 6.13. Внутренние пакеты задачи FS.

правного информационного обмена, и локальную системозави-симую логику регулирования потока данных, манипулирования кадрами и организации очередей. Рис. 6.13 служит иллюстрацией возможного подхода, удовлетворяющего этим требованиям. Пакет F PROTOCOL полностью реализует логику протокола равноправного обмена, включая начальный запуск и передачу данных. Различные операторы приема задачи FS интерпретируют вызовы соответствующих им входов и пересылаемые параметры как события, происходящие в рамках протокола обмена. Идентификаторы событий пересылаются процедуре PROCESS пакета F PROTOCOL в качестве входных параметров; ее выходными параметрами будут коды операций, используемые при последующих действиях. Тот оператор приема, который при появлении соответствующего события первым вызвал эту процедуру, обрабатывает полученные коды и выполняет предписываемые ими действия. Эти операции предусматривают подготовку и постановку информационных и управляющих кадров в очередь для передачи, а также соответствующее упорядочение их при приеме. Выполнение этих операций реализуется с помощью пакетов F QUEUE и F MANIPULATE.

При достаточно аккуратном использовании принципа организации пакетов логику задач, подобных FS, можно структурн-



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

Основной задачей пакета F PROTOCOL является управление конечными автоматами и формирование значений вспомогательных переменных, позволяющих контролировать работу системы в фазах начального пуска и передачи данных. В случае нашего простого протокола обмена имеются только один конечный автомат и две вспомогательные переменные. Конечный автомат реализует передачу последовательностей управляющих блоков между равноправными модулями взаимодействующих систем, в результате которой подтверждается установление связи между ними и готовность линии к передаче кадров данных. Вспомогательные перемен!1ые представляют собой текущие исходящие и входящие номера, присваиваемые пересылаемым кадрам данных.

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

1. Системы могут запускаться независимо друг от друга в любое время, но если запуск осуществлен, то они уже не выключаются. Поэтому поступление в систему, находящуюся в состоянии UP (ВКЛЮЧЕНО), управляющих кадров START не означает попытку рестарта после аварийной ситуации, возникшей в фазе передачи данных, а имеет место только в процессе активизации линии связи, когда истекает время задержки, предусмотренное в состоянии COMING-UP (УСТАНОВЛЕНИЕ-СВЯЗИ).

2. В состоянии UP единственной требуемой операцией является формирование текущих исходящих и входящих номеров пересылаемых кадров. При самом первом переходе системы в это состояние соответствующим переменным присваиваются нулевые значения; согласно предположению 1, при поступлении в систему, находящуюся в состоянии UP, управляющих кадров START повторное занесение нуля в эти переменные ие требуется.



3. Состояние UP является единственным состоянием системы, при котором осуществляется информационный обмен.

Чтобы ощутить преимущества такого подхода, достаточно познакомиться со спецификацией пакета F-PROTOCOL, приведенной на рис. 6.14,6. В ней определены допустимые события и соответствующие им действия, но нет никаких операций обработки управляющих и информационных кадров. Параметрами событий и действий являются записи возможных вариантов, которые позволяют формировать и воспринимать элементы соответствующих последовательностей событий и действий, происходящих в системе.

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

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

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

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

Тело пакета F PROTOCOL совсем не трудно реализовать при помощи таблиц состояний конечного автомата, следуя методу, использованному в гл. 4 для проектирования модуля дешифратора команд системы LIFE. Детальную разработку этого пакета оставляем читателю в качестве упражнения.

При наличии рассмотренного выше представления пакета F PROTOCOL нетрудно оценить возможность его использования на различных входах задачи FS для управления потоком информационных кадров.

На рис. 6.15 отображен характер внутреннего потока данных задачи FS. Предполагается, что доступ к внутренним



очередям реализуется пакетом F QUEUE, а манипулирование информационными кадрами - пакетом F-MANIPULATE; оба пакета схематически изображены на рис. 6.13. Примерами операций манипулирования кадрами служат добавление заголовков при передаче и удаление их при приеме, формирование управляющих кадров, а также занесение в заголовки пересылаемых кадров соответствующих порядковых номеров.

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

Условное обозначениа: событие/ действие

Связь с абонентом ие установлена


RXSTAflT ACK/ INIT

RX START/TX START ACK и INIT

Обе взаимодействующие системы находятся в состоянии UP STATE

RX START ACK

RX START/TX START ACK

{a} Схема конечного автомата.



package F PROTOCOL is

type.EVENT TYPE is (PLEASE STARr, TIMEOUT, RX STAR RX START ACK, RX DATA,

REQUEST TX DATA,

TX DATA);

type STATUS-TYPE is (OK, NOT OK); type WiNOOW is range 0 .. MAX; type EVENT (INDICATOR:EVENT TYPE) is record esse INDICATOR is when RX DATA - >

SEND COUNT, RCVE COUNT:WINDOW; when others = >; end case; end record; type ACTJON TYP£ is (TX START,

TX START ACK,

q request tx data, tx data

clear acked frames,

SEND UNACKED FRAMES,

DISCARD RX DATA,

NIL);

type ACTI0N(INDICAT0R:ACTI0N TYPE! is record

TIMEOUT PERIOD;TIME; case INDICATOR is when Q REQUEST TX DATA = >

SEND C0UNT, TX CREDIT:WIND0W; When TX DATA = >

RCVE COUNT:WINDOW; When CLEAR ACKED FRAMES = >

FIRST FRAME, LAST FRAME, TX CREDIT:WINDOW;, When SEND UNACKED FRAMES = >

FIRST FRAME, LAST FRAME:WINDOW; When others = >; end case; end record;

procedure PROCESS (E;in EVENT; A:out ACTION); end F PR0T0C0L;

i6) Спецификация управляющего пакета обмена на языке Ада/ Рис. 6.14. Логическая схема функционирования пакета F-PROTOCOL.




Условные обоэг'ачения: О > кадры данных О > управляющие кадры

Возврат буферов после подтверждения приела

Возврат буферов вследствие заполнения окна приема

пуп

Рис. 6.15. Детализированная внутренняя логика работы задачи FS; поток кадров данных.

F PROTOCOL, что гарантирует выполнение соответствующей операции не позднее момента, определяемого суммой двух величин: времени передачи самого последнего кадра из повторной очереди и временного интервала, отведенного для подтверждения приема.

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

В очереди на прием стоят кадры данных, воспринятые модулем, но еще не обслуженные оператором приема RCVE. Максимальная длина этой очереди определяется величиной окна, используемого для регулирования потока информации при приеме. При отсутствии свободных мест в этой очереди, согласно требованиям со стороны пакета F PROTOCOL, оператор приема PUT должен отвергать очередные кадры входящего потока.

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



1 ... 23 24 25 26 27 28 29 ... 32

Яндекс.Метрика