
- •160001, Г. Вологда, ул. Челюскинцев, 3.
- •Предисловие
- •Введение
- •Раздел 1. Теория информации
- •Глава 1. Исходные понятия информатики
- •1.1. Начальные определения
- •1.2. Формы представления информации
- •1.3. Преобразование сообщений
- •Контрольные вопросы и задания
- •Глава 2. Понятие информации в теории Шеннона
- •2.1. Понятие энтропии
- •2.1.1. Энтропия как мера неопределенности
- •2.1.2. Свойства энтропии
- •2.1.3. Условная энтропия
- •2.2. Энтропия и информация
- •2.3. Информация и алфавит
- •Контрольные вопросы и задания
- •Глава 3. Кодирование символьной информации
- •3.1. Постановка задачи кодирования, Первая теорема Шеннона
- •3.2. Способы построения двоичных кодов
- •3.2.1. Алфавитное неравномерное двоичное кодирование сигналами равной длительности. Префиксные коды
- •3.2.2. Равномерное алфавитное двоичное кодирование. Байтовый код
- •3.2.3. Алфавитное кодирование с неравной длительностью элементарных сигналов. Код Морзе
- •3.2.4. Блочное двоичное кодирование
- •Контрольные вопросы и задания
- •Глава 4. Представление и обработка чисел в компьютере
- •4.1. Системы счисления
- •4.2. Представление чисел в различных системах счисления
- •4.2.1. Перевод целых чисел из одной системы счисления в другую
- •4.2.2. Перевод дробных чисел из одной системы счисления в другую
- •4.2.3. Понятие экономичности системы счисления
- •4.2.4. Перевод чисел между системами счисления 2 ↔ 8 ↔ 16
- •4.2.5. Преобразование нормализованных чисел
- •4.3. Кодирование чисел в компьютере и действия над ними
- •4.3.1. Кодирование и обработка в компьютере целых чисел без знака
- •4.3.2. Кодирование и обработка в компьютере целых чисел со знаком
- •4.3.3. Кодирование и обработка в компьютере вещественных чисел
- •Контрольные вопросы и задания
- •Глава 5. Передача информации
- •5.1. Общая схема передачи информации в линии связи
- •5.2. Характеристики канала связи
- •5.3. Влияние шумов на пропускную способность канала
- •5.4. Обеспечение надежности передачи и хранения информации
- •5.4.1. Постановка задачи
- •5.4.2. Коды, обнаруживающие ошибку
- •5.4.3. Коды, исправляющие одиночную ошибку
- •5.5. Способы передачи информации в компьютерных линиях связи
- •5.5.1. Канал параллельной передачи
- •5.5.2. Последовательная передача данных
- •5.5.3. Связь компьютеров по телефонным линиям
- •Контрольные вопросы и задания
- •Глава 6. Хранение информации
- •6.1. Классификация данных. Проблемы представления данных
- •6.2. Представление элементарных данных в озу
- •6.3. Структуры данных и их представление в озу
- •6.3.1. Классификация и примеры структур данных
- •6.3.2. Понятие логической записи
- •6.3.3. Организация структур данных в озу
- •6.4. Представление данных на внешних носителях
- •6.4.1. Иерархия структур данных на внешних носителях
- •6.4.2. Особенности устройств хранения информации
- •Контрольные вопросы и задания
- •Раздел 2. Алгоритмы. Модели. Системы
- •Глава 7. Элементы теории алгоритмов
- •7.1. Нестрогое определение алгоритма
- •7.2. Рекурсивные функции
- •7.3. Алгоритм как абстрактная машина
- •7.3.1. Общие подходы
- •7.3.2. Алгоритмическая машина Поста
- •7.3.3. Алгоритмическая машина Тьюринга
- •7.4. Нормальные алгоритмы Маркова
- •7.5. Сопоставление алгоритмических моделей
- •7.6. Проблема алгоритмической разрешимости
- •7.7. Сложность алгоритма
- •Контрольные вопросы и задания
- •Глава 8. Формализация представления алгоритмов
- •8.1. Формальные языки
- •8.1.1. Формальная грамматика
- •8.1.2. Способы описания формальных языков
- •8.2. Способы представления алгоритмов
- •8.2.1. Исполнитель алгоритма
- •8.2.2. Строчная словесная запись алгоритма
- •8.2.3. Графическая форма записи
- •8.2.4. Классификация способов представления алгоритмов
- •8.3. Структурная теорема
- •Контрольные вопросы и задания
- •Глава 9. Представление о конечном автомате
- •9.1. Общие подходы к описанию устройств, предназначенных для обработки дискретной информации
- •9.2. Дискретные устройства без памяти
- •9.3. Конечные автоматы
- •9.3.1. Способы задания конечного автомата
- •9.3.2. Схемы из логических элементов и задержек
- •9.3.3. Эквивалентные автоматы
- •Контрольные вопросы и задания
- •Глава 10. Модели и системы
- •10.1. Понятие модели
- •10.1.1. Общая идея моделирования
- •10.1.2. Классификация моделей
- •Модели структурные и функциональные
- •Модели натурные и информационные
- •Модели проверяемые и непроверяемые
- •Модели по назначению
- •10.1.3. Понятие математической модели
- •10.2. Понятие системы
- •10.2.1. Определение объекта
- •10.2.2. Определение системы
- •10.2.3. Формальная система
- •10.2.4. Значение формализации
- •10.3. Этапы решения задачи посредством компьютера
- •10.4. Об объектном подходе в прикладной информатике
- •Контрольные вопросы и задания
- •Заключение
- •Приложение а. Элементы теории вероятностей
- •А.1. Понятие вероятности
- •А.2. Сложение и умножение вероятностей
- •A.3. Условная вероятность
- •Контрольные вопросы и задания
- •Приложение б. Некоторые соотношения логики
- •Глоссарий
- •Список литературы
- •Содержание
- •Глава 4. Представление и обработка чисел в компьютере 45
- •Глава 5. Передача информации 69
- •Глава 6. Хранение информации 83
- •Раздел 2. Алгоритмы. Модели. Системы 98
- •Глава 7. Элементы теории алгоритмов 99
- •Глава 8. Формализация представления алгоритмов 120
- •Глава 9. Представление о конечном автомате 134
- •Глава 10. Модели и системы 147
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 характеризует эффективность кодирования при передаче по реальным каналам и при равных надежностях передачи предпочтение должно быть отдано тому способу кодирования, при котором избыточность окажется наименьшей. Правда, для практики важна также простота технической реализации того или иного способа кодирования.