![]() | |
Главная Радио и связь ![]() Буфер для кадра ТХ (разрешение на передачу) ![]() (а) Передача ![]() Буфер для сообщения RXp (разрешение на прием) ![]() Буфер , - для кадра RXy 13апопненные (разрешение [ кадровые на прием) 1 буферы ![]() (5) Прием Рис. 6.19. Поток кадров данных в подсистеме обмена при отсутствии совместно используемой памяти. активный пакет, реализующий некоторый уровень системы, обязывает вызывающие модули ожидать при передаче данных получения разрешения на обмен и поступления информации. Таким образом, на каждом уровне системы существуют точки, в которых реализуется ожидание: • вызовов от модуля верхнего уровня; • разрешения от модуля нижнего уровня на передачу информации; • поступления информационных объектов от модуля нижнего уровня. Вообще для обеспечения такой организации ожидания необходимо иметь в системе три задачи. Исключениями являются модуль М, который не активен, и модуль Р, для реализации ко- торого требуются лишь две задачи обслуживания прерываний - одна для передачи и одна - для приема. Число задач может быть уменьшено при условии, что в каждом пакете предусмотрены только вызовы без ожидания, результатом которых являются параметры состояния системы. При таком подходе необходимость в задачах-курьерах исчезает, однако в результате еще более усложняется внутренняя логика оставшихся задач. Нетрудно установить логическую сущность возможного компрохмисса междупроектными решениями с большим и малым числом задач. В первом случае логика функционирования всей системы и отдельных ее задач может оказаться проще по меньшей мере по двум причинам: • отсутствует необходимость циклического слежения за наступлением определенных событий; • при совершении события задача, которая обеспечивает его обработку, получает немедленное оповещение об условиях, в которых оно произошло. Если же число задач невелико, то «накладные расходы», связанные с их контекстным переключением и диспетчеризацией, будут меньше. Маловероятно, чтобы этот вопрос имел существенное значение для верхних уровней системы, где переключение задач наверняка происходит сравнительно редко. Однако для нижних уровней он чрезвычайно важен. Приемлемые количественные соотношения в значительной мере зависят от реализации, и их обсуждение выходит за рамки тех вопросов, которым посвящена эта книга. Система DIALOGUE/COMM в целом определена нами как единый узел надежности. Поэтому проектные решения по подсистеме СОММ обеспечивают защиту системы от последствий возникновения самых различных внешних неисправностей; однако средств защиты от внутренних отказов собственной логики эта подсистема не имеет. Такие отказы могут быть предотвращены путем разбиения системы на более мелкие узлы надежности, каждый из которых защищен от неисправностей, возникающих в других аналогичных узлах. В общем случае каждый модуль многоуровневой системы информационного обмена может представлять собой самостоятельный узел надежности, связанный с модулями верхнего и нижнего уровней, возможно, ненадежными каналами. В этом общем случае могут потребоваться не только протоколы горизонтального взаимодействия равноправных модулей отдельных узлов коммуникационной сети, но, вероятно, и протоколы вертикального взаимодействия различных узлов надежности, образующих разные уровни системы. Такая вероятность должна всегда приниматься во внимание, хотя в дальнейшем мы на ней останавливаться не будем. Рис. 6.19 мог бы послужить хорошей основой для разработки системы с учетом изложенных обстоятельств. Однако независимо от способа разбиения системы на отдельные узлы надежности существует вероятность возникновения такой ошибки во внутренней логике узла, которая приводит к разрушительным последствиям для системы, но сам узел надежности при этом полностью не выходит из строя. Такая ошибка может быть результатом, например, появления неверного бита информации в кристалле памяти. Если подобная неисправность вызывает достаточно сильное отклонение от нормы, то она может привести к тому, что поведение какого-либо блока будет казаться нормальным, но в конце концов нарушит правильную работу системы. Например, что произойдет, если в каком-либо модуле синтаксические правила, диктуемые всеми протоколами, выполняются, а семантические - нет? В этом случае модуль может подтвердить прием протокольных блоков данных, отправленных другими модулями, но не полученных, что, естественно, приведет к потере информации. Решение подобных проблем сопряжено с серьезными трудностями, и один из возможных подходов к решению заключается в «выталкивании» симптома неисправности «на поверхность» с расчетом на то, что какой-либо модуль верхнего уровня в конце концов «заметит» возникшие неполадки и предпримет действия по восстановлению информации. Однако, применяя этот подход последовательно по всем уровням системы, мы дойдем до самого верхнего, откуда перенести решение проблемы еще выше будет уже нельзя. Тогда последним звеном в этой цепи должен стать человек-оператор системы. Другой, более дорогостоящий подход заключается в физическом резервировании ненадежных компонентов. Например, можно выдвинуть требования, чтобы в системе было два идентичных комплекта оборудования связи и активная линия связи отключалась при чрезмерно большом потоке повторных передач сообщений. 6.7. Заключение Важное значение в этой главе имеет не сама подсистема обмена СОММ (хотя она вполне жизнеспособна), а процесс ее проектирования, позволивший нам прийти к данной структуре, и графическая нотация, использованная для ее описания. Проектные решения представлялись в наглядной форме, удобной для группового обсуждения. Хотя сам процесс проектирования при этом носит относительно неформальный характер, рисунки трактуются формально в терминах языка Ада, и соответствующие Ада-программы могут быть написаны с их помощью почти механически. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 [ 89 ] 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 0.0063 |