Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Стариченко Б.Е. Теоретические основы информатик...doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
11.63 Mб
Скачать

5.4. Обеспечение надежности передачи и хранения информации

5.4.1. Постановка задачи

Все реальные каналы связи подвержены воздействию помех. Означает ли это, что надежная (т.е. без потерь) передача по ним информации невозможна в принципе? Когда-то (во всяком случае, до появления упоминавшейся выше работы К. Шеннона) инженеры-связисты ответили бы утвердительно, посоветовав для сокращения потерь увеличить ширину полосы пропускания канала и поднять мощность сигнала. Заслуга Шеннона в том, что он доказал теоретическую возможность передачи сообщения без потерь информации по реальным каналам, если при этом выполнен ряд условий. Задача была сформулирована в виде теоремы, которая затем получила строгое математическое доказательство. Ранее (см. п. 3.1.) была представлена первая теорема Шеннона, касающееся кодирования информации при передаче по идеальному каналу связи. Критерием оптимальности кодирования служила избыточность кода, которую, как было показано, можно сделать сколь угодно близкой к нулю, применяя блочное кодирование по методу Хаффмана.

Вторая теорема Шеннона относится к реальным каналам связи и гласит следующее:

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

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

Прежде, чем обсуждать варианты построения подобных кодов, попробуем оценить, насколько велика вероятность возникновения ошибки, но не при передаче, а при хранении информации, что, впрочем, не меняет сути дела. Поучительным является пример, рассмотренный в книге С. А. Майорова и др. [25, с.132-133]. Пластмассовые корпуса микросхем памяти компьютеров содержат, хоть и в ничтожных количествах, тяжелые элементы, которые вследствие радиоактивного распада испускают а-частицы. Попадая в полупроводниковые элементы памяти, они могут вызвать изменение их состояния, т.е. искажение хранимой информации. Как часто можно ожидать такого сбоя? Лабораторные эксперименты показали, что «время наработки на отказ» отдельно взятого элемента превышает миллион лет. Казалось бы, это обстоятельство не дает оснований для беспокойства. Однако следует учесть, что общее количество подобных элементов в памяти современного компьютера весьма велико. Например, память емкостью 1 Мбайт содержит 8388608 двоичных элементов. Следовательно, среднее время появления ошибки составит:

Это уже совсем небольшая величина, которая, с учетом того, что память современных ПК составляет 32 - 64 Мбайт, сокращается до 1 дня. В то же время нет экономичных технических способов исключения влияния этих α-частиц. Данная оценка показывает, что проблема защиты информации от искажения даже при ее хранении весьма актуальна.

Решение проблемы, как уже было сказано, состоит в использовании таких методов кодирования информации, которые позволили бы контролировать правильность передачи (хранения) и при обнаружении ошибки исправлять ее. При этом можно в качестве самостоятельных рассмотреть две ситуации:

  • кодирование обеспечивает только установление факта искажения информации - в этом случае исправление производится путем ее повторной передачи;

  • кодирование позволяет локализовать и автоматически исправить ошибку передачи (хранения).

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

Надежность обеспечивается тем, что наряду с битами, непосредственно кодирующими сообщение (будем называть их информационными битами), передаются (хранятся) дополнительные биты, по состоянию которых можно судить о правильности передачи (будем называть их контрольными битами). При равномерном кодировании* сообщения длина кодовой цепочки на знак (или группу знаков) k складывается из длины информационной части ki и числа контрольных битов kc. Очевидно, k ≥ ki. Подобно введенной ранее (формула (3.2)) величине Q, характеризующей относительную избыточность кода при передаче по идеальному каналу, в рассматриваемом случае удобно определить избыточность сообщения для реального канала L следующим образом:

* Далее в этой главе будет идти речь только о равномерном кодировании.

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

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