97
Балакшин П.В. Соснин В.В. Информатика Методическое пособие Санкт-Петербург, 2015 г

Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Балакшин П.В. Соснин В.В.

Информатика

Методическое пособие

Санкт-Петербург, 2015 г

Page 2: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Оглавление

1 Единицы измерения объема данных 4

2 Системы счисления 62.1 Позиционная система счисления . . . . . . . . . . . . . . . . 62.2 Перевод чисел из одной системы счисления в другую . . . . 7

2.2.1 Перевод числа из десятичной системы счисления всистему счисления с основанием N . . . . . . . . . . . 7

2.2.2 Перевод числа из системы счисления с основаниемN в десятичную систему счисления . . . . . . . . . . 10

2.2.3 Перевод числа из системы счисления с основаниемN в систему счисления с основанием Nk и обратно,при условии k ∈ N . . . . . . . . . . . . . . . . . . . . . 10

2.3 Оптимальная система счисления . . . . . . . . . . . . . . . . 122.4 Округление чисел . . . . . . . . . . . . . . . . . . . . . . . . . 132.5 Нетрадиционные системы счисления . . . . . . . . . . . . . . 14

2.5.1 Факториальная система счисления . . . . . . . . . . . 142.5.2 Система счисления Цекендорфа . . . . . . . . . . . . 162.5.3 Система счисления Бергмана . . . . . . . . . . . . . . 172.5.4 Нега-позиционная система счисления . . . . . . . . . 182.5.5 Симметричная система счисления . . . . . . . . . . . 18

3 Арифметика в ограниченной разрядной сетке 203.1 Представление отрицательных чисел в ЭВМ . . . . . . . . . 203.2 Флаги состояния процессора . . . . . . . . . . . . . . . . . . . 22

4 Теория информации 254.1 Терминология теории информации . . . . . . . . . . . . . . . 254.2 Признаки классификации информации . . . . . . . . . . . . 264.3 Измерение количества информации . . . . . . . . . . . . . . . 26

4.3.1 Мера Хартли . . . . . . . . . . . . . . . . . . . . . . . . 274.3.2 Мера Шеннона . . . . . . . . . . . . . . . . . . . . . . 28

1

Page 3: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

5 Сжатие данных 305.1 Алгоритм Шеннона-Фано . . . . . . . . . . . . . . . . . . . . 325.2 Код Хаффмана . . . . . . . . . . . . . . . . . . . . . . . . . . 345.3 Кодирование длин серий . . . . . . . . . . . . . . . . . . . . . 38

6 Помехоустойчивое кодирование 406.1 Кодирование с помощью бита четности . . . . . . . . . . . . 426.2 Код Хэмминга . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

7 Алгебра логики 497.1 Определение . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497.2 Основные тождества . . . . . . . . . . . . . . . . . . . . . . . 507.3 Таблица истинности . . . . . . . . . . . . . . . . . . . . . . . . 517.4 Обозначение на электрической схеме булевых функций . . . 527.5 Логический базис . . . . . . . . . . . . . . . . . . . . . . . . . 537.6 Формы записи математических выражений . . . . . . . . . . 53

7.6.1 Префиксная нотация . . . . . . . . . . . . . . . . . . . 547.6.2 Постфиксная нотация . . . . . . . . . . . . . . . . . . 55

8 Программное обеспечение 588.1 Офисное ПО . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

8.1.1 Сравнение возможностей OO и MS Office . . . . . . . 608.1.2 Концепция стилей и шаблонов . . . . . . . . . . . . . 618.1.3 Панграммы . . . . . . . . . . . . . . . . . . . . . . . . . 618.1.4 Автозаполнение . . . . . . . . . . . . . . . . . . . . . . 62

8.2 Вспомогательное ПО для программирования . . . . . . . . . 628.2.1 Автоматизированное создание документации . . . . . 628.2.2 Системы управления (контроля) версиями . . . . . . 638.2.3 Жизненный цикл обнаруженной ошибки . . . . . . . 638.2.4 Тестирование программного обеспечения . . . . . . . 63

8.3 Лицензии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648.3.1 Базовые права, предоставляемые свободным ПО . . . 658.3.2 Особенности различных свободных лицензий . . . . . 668.3.3 Ответственность за пиратское ПО . . . . . . . . . . . 66

8.4 Visual Basic for Applications . . . . . . . . . . . . . . . . . . . 678.4.1 Имя переменной . . . . . . . . . . . . . . . . . . . . . . 678.4.2 Типы данных . . . . . . . . . . . . . . . . . . . . . . . 68

8.5 TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688.6 Вебинары . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

2

Page 4: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

9 Структура и принципы функционирования компьютера 719.1 ЭВМ Джона фон Неймана . . . . . . . . . . . . . . . . . . . . 73

9.1.1 Узлы ЭВМ фон Неймана . . . . . . . . . . . . . . . . . 739.1.2 Принципы работы архитектуры фон Неймана . . . . 75

9.2 Классификация архитектур ЭВМ . . . . . . . . . . . . . . . . 759.2.1 Архитектура CISC . . . . . . . . . . . . . . . . . . . . 769.2.2 Архитектура RISC . . . . . . . . . . . . . . . . . . . . 779.2.3 Сравнение RISC и CISC . . . . . . . . . . . . . . . . . 77

9.3 Команды процессора . . . . . . . . . . . . . . . . . . . . . . . 78

10 Организация хранения данных в ЭВМ 8110.1 Устройство памяти . . . . . . . . . . . . . . . . . . . . . . . . 8110.2 Характеристики систем памяти . . . . . . . . . . . . . . . . . 8410.3 Иерархия памяти . . . . . . . . . . . . . . . . . . . . . . . . . 8510.4 Физическое устройство памяти . . . . . . . . . . . . . . . . . 86

10.4.1 Кэш-память . . . . . . . . . . . . . . . . . . . . . . . . 8610.4.2 Оперативная память . . . . . . . . . . . . . . . . . . . 87

10.5 Локальность памяти . . . . . . . . . . . . . . . . . . . . . . . 8810.5.1 Пространственная локальность памяти . . . . . . . . 8810.5.2 Временн´ая локальность памяти . . . . . . . . . . . . 88

10.6 Порядок хранения байт в памяти . . . . . . . . . . . . . . . . 88

11 Передача данных в компьютерных сетях 9011.1 Многоуровневая модель OSI (Open Systems Interconnection) 90

11.1.1 Прикладной уровень . . . . . . . . . . . . . . . . . . . 9111.1.2 Уровень представления . . . . . . . . . . . . . . . . . . 9111.1.3 Сеансовый уровень . . . . . . . . . . . . . . . . . . . . 9111.1.4 Транспортный уровень . . . . . . . . . . . . . . . . . . 9211.1.5 Сетевой уровень . . . . . . . . . . . . . . . . . . . . . . 9211.1.6 Канальный уровень . . . . . . . . . . . . . . . . . . . . 9211.1.7 Физический уровень . . . . . . . . . . . . . . . . . . . 9311.1.8 Адекватность OSI-модели . . . . . . . . . . . . . . . . 95

11.2 Отличие TCP от UDP . . . . . . . . . . . . . . . . . . . . . . 9511.3 Сетевые устройства . . . . . . . . . . . . . . . . . . . . . . . . 96

3

Page 5: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Глава 1

Единицы измерения объемаданных

В области цифровой и вычислительной техники двоичная системасчисления (основанная на степени двойки) получила широкое распростра-нение. В следствие этого стали употреблять двоичные приставки:1kB = 210B - 1 килобайт равен 210 байт1MB = 220B - 1 мегабайт равен 220 байтОднако, такая система противоречит СИ, которая использует десятичныеприставки (основанные на степени десяти):1k = 103, 1M = 106

Поначалу это противоречие не было существенной проблемой. Число 210 =1024 достаточно близко к тысяче и при объемах памяти, измерявшихсякилобайтами, ошибка была всего в 2,4% . Но по мере развития техноло-гий, разница между "двоичным"и "десятичным"гигабайтом была в 7% .Тогда IEEE, Институт инженеров электротехники и электроники (англ.Institute of Electrical and Electronics Engineers), утвердил стандарт IEEE1541-2002.

Рекомендации стандарта IEEE 1541-2002

• Бит (bit) (символ ’b’) - двоичный знак;

• Байт (byte) (символ ’B’) - равен 8 битам (1B = 8b);

• Киби (kibi) (символ ’Ki’) - 210 = 1024;

• Меби (mebi) (символ ’Mi’) - 220 = 1048576;

• Гиби (gibi) (символ ’Gi’) - 230 = 1073741824;

4

Page 6: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

• Теби (tebi) (символ ’Ti’) - 240 = 1099511627776;

Сегодня в кибибайтах, мебибайтах и т.д. измеряется память - опера-тивная память, жесткие диски, flash-накопители. Однако, скорость пере-дачи данных измеряется в килобайтах и мегабайтах в секунду (например512 kbps (kilobits per second) - 512 килобит в секунду). Операционные си-стемы считают по-разному. *nix системы (unix, linux) используют "дво-ичные"приставки, в то время как Windows использует приставки СИ.

5

Page 7: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Глава 2

Системы счисления

В истории разные народы использовали системы счисления с разнымиоснованиями. Каждый народ руководствовался своими доводами в пользутого или иного числа в основании. Например, африканские племена ис-пользовали 5-ричную систему счисления, потому что на руке 5 пальцев.Тибетцы и нигерийцы использовали 12-ричную, это количество фалангна четырех пальцах. Привычная нам система счисления с основаниемравным 10 появилась в Европе в 16, а в России в 17 веке.

2.1 Позиционная система счисленияРассмотрим формулу записи числа в позиционной системе счисления:

X(q) = xn−1 × qn−1 + xn−2 × qn−2 + ... + x1 × q1 + x0 × q0 + x−1 × q−1 ++ x−2 × q−2 + ...+ x−m × q−mИли

X(q) =

n−1∑i=−m

xi × qi

Где:X(q) - запись числа в системе счисления с основанием qxi - натуральные числа меньше q, то есть цифрыn - число разрядов целой частиm - число разрядов дробной частиq - показатель системы счисления

Само число X(q) имеет следующий вид:

6

Page 8: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

X(q) = xn−1xn−2...x1x0x−1...x1−mx−m

Рассмотрим данную формулу на примере:123, 4510 = 1× 102 + 2× 101 + 3× 100 + 4× 10−1 + 5× 10−2

Мы разложили число 123, 45 по этой формуле. В данном случае q = 10,n = 3, m = 2, X(q) = 123, 45, а x3−1 = 1 (x2 = 1), x1 = 2 и так далее.В позиционной системе счисления важную роль имеет порядок цифр, тоесть значение каждого числового знака (цифры) в записи числа зависитот его позиции (разряда).

2.2 Перевод чисел из одной системы счисле-ния в другую

Существуют три способа перевода из одной системы счисления в дру-гую:

1. Из десятичной системы счисления в систему счисления с основаниемN

2. Из системы счисления с основанием N в десятичную систему счис-ления

3. Из системы счисления с основанием N в систему счисления с осно-ванием Nk и обратно, при условии k ∈ N

2.2.1 Перевод числа из десятичной системы счисле-ния в систему счисления с основанием N

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

Преобразования целой части числа

Для перевода целой части числа из десятичной системы счисления вдругую необходимо:

1. Разделить целую часть десятичного числа на основание новой си-стемы счисления;

2. Записать остаток деления;

7

Page 9: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

3. Разделить получившийся результат деления (п.1) на основание но-вой системы счисления (при необходимости);

4. Записать остаток деления;

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

Пример 1:Задание: перевести число 4510 в троичную систему счисления.Решение: последовательно разделим 4510 на 3, записывая остатки:

Полученные остатки: 0, 0, 2, 1. Записываем их в обратном порядке.Ответ:4510 = 12003

Преобразования дробной части числа

Для перевода дробной части числа из десятичной системы счисленияв другую необходимо:

1. Умножить дробную часть десятичного числа на основание новойсистемы счисления;

2. Отделить и записать целую часть;

3. Умножить дробную часть результата умножения (п.1) на основаниеновой системы счисления (при необходимости);

4. Отделить и записать целую часть;

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

8

Page 10: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

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

Пример 2:Задание: перевести число 0, 62510 в четверичную систему счисления.Решение: умножим дробную часть 0, 62510 на 4, записывая целые части,пока не получим в дробной части 0:

Пояснение: сначала умножаем 0,625 на 4, получаем 2,5. 2 записываем вцелые части, а далее используем дробную часть - 0,5. Умножаем 0,5 на4, получаем 2, записываем в целые части. Так как дробная часть равна0, то перевод окончен.Полученные целые части: 0, 2, 2. Первая полученная целая часть (0) идетв целую часть нового числа. Остальные (2, 2) в дробную часть.Ответ: 0, 62510 = 0, 224

Пример 3:Задание: перевести число 43, 5210 в пятеричную систему счисления.Решение: разделим 43, 5210 на две части: целую (4310) и дробную (0, 5210).Переведем целую и дробную части по отдельности:

Полученные остатки (3, 1, 1) запишем в обратном порядке: 4310 = 1135Полученные целые части (0, 2, 3) запишем в прямом порядке: 0, 5210 =0, 235Объеденим полученные частиОтвет: 43, 5210 = 113, 235

9

Page 11: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

2.2.2 Перевод числа из системы счисления с основа-нием N в десятичную систему счисления

Формула перевода числа из системы счисления с основанием N в де-сятичную систему счисления это практически формула записи числа впозиционной системе счисления.

X(10) =

n−1∑i=−m

xi × qi

Где:X(10) - искомое число в десятичной системе счисленияxi - натуральные числа меньше q, то есть цифрыn - число разрядов целой частиm - число разрядов дробной частиq - показатель системы счисления

Пример 1:Задание: перевести число 1101, 1112 в десятичную систему счисления.Решение: 1101, 1112 = 1× 23 +1× 22 +0× 21 +1× 20 +1× 2−1 +1× 2−2 ++ 1× 2−3 = 1× 8 + 1× 4 + 0× 2 + 1× 1 + 1× 0, 5 + 1× 0, 25 + 1× 0, 125 == 8 + 4 + 1 + 0, 5 + 0, 25 + 0, 125 = 13, 87510Ответ: 1101, 1112 = 13, 87510

2.2.3 Перевод числа из системы счисления с основа-нием N в систему счисления с основанием Nk иобратно, при условии k ∈ N

Если основание системы счисления первого числа является степеньюоснования системы счисления второго числа (N = Nk), при условии k ∈N, то можно использовать следующий алгоритм.

Преобразование N → Nk

1. Дополнить число (записанное в системе счисления N) незначащи-ми нулями так, чтобы количество цифр было кратно k (если числодробное, то дополнить так, чтобы и в целой и в дробной частяхколичество цифр было кратно k).

2. Разбить это число на группы по k цифр, начиная от нуля (если числодробное, то целую часть разбивать, начиная от запятой в левуюсторону, а дробную часть, начиная от запятой в правую сторону).

10

Page 12: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

3. Заменить каждую такую группу эквивалентным числом, записан-ным в системе Nk.

Преобразование Nk → N

1. Заменить каждую цифру числа, записанного в системе счисленияNk, эквивалентным набором из k цифр системы счисления N .

Рассмотрим данный метод на системах счисления с основанием N =2k. Для этого воспользуемся таблицей.

Десятичная Двоичная Восмеричная Шестнадцатиричная0 0000 00 01 0001 01 12 0010 02 23 0011 03 34 0100 04 45 0101 05 56 0110 06 67 0111 07 78 1000 10 89 1001 11 910 1010 12 A11 1011 13 B12 1100 14 C13 1101 15 D14 1110 16 E15 1111 17 F

Таблица 2.1: Основания вида 2k

Пример 1:Задание: пользуясь таблицей перевести число 1542, 438 в двоичную систе-му счисленияРешение: по таблице находим чему равны цифры исходного числа в дво-ичной системе. 18 = 0012, 58 = 1012 (незначащие нули убираем, так какнеобходимо, чтобы количество цифр в эквивалентном наборе было равностепени k из выражения N = Nk, где Nk - исходная система счисления.В данном случае k = 3) и так далее.Заменяем каждую цифру числа эквивалентным набором.Ответ: 1542, 438 = 001101100010, 1000112

Пример 2:Задание: пользуясь таблицей перевести число 11010, 112 в шестнадцати-ричную систему счисления

11

Page 13: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Решение: первым делом, добавим незначащие нули так, чтобы количествоцифр было кратно k (в данном случае k = 4). Так как число дробное, незабываем добавлять нули и в конце числа.Получим 00011010, 11002.Теперь необходимо разбить число на группы по k цифр (начинаем от за-пятой). Результат: 0001 1010 , 1100 2.Пользуясь таблицей, заменяем группы цифр эквивалентными числами,записанным в шестнадцатиричной системе счисления.Ответ: 11010, 112 = 1A,C16.

2.3 Оптимальная система счисленияДавайте представим, что Вы по несчастливой (или счастливой) слу-

чайности попали на необитаемый остров. Обеспокоенный количествомдней, которые Вам суждено провести на острове в ожидании спасателей,Вы решаете вести счет дней с помощью камней. Но вот незадача - камнейна острове нашлось всего 60 штук (небогатый на камни остров оказался).И для того, чтобы вести учет дней как можно продуктивнее (учесть какможно больше дней) необходимо выбрать систему счисления, плотностьзаписи числа которой максимальна при данных обстоятельствах.Существует зависимость плотности записи информации от основания си-стемы счисления. Если взять N камней, а за основание принять число X,то получится N/X разрядов, которыми можно закодировать X

N/X чисел.То есть с помощью 60 камней мы можем закодировать: 230, 320, 415, 512,610, 106, 122, 154, 203, 302 или 601 чисел. Все зависит от того, какую си-стему счисления мы выберем. Возведя все числа в степени, мы увидим,что самое большое из них это 320 = 3486784401.Удельная натуральнологарифмическая плотность записи числа зависитот основания системы счисления и выражается функцией y = ln x

x . Этафункция имеет максимум при x = e = 2, 718281828....

12

Page 14: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Таким образом, самая оптимальная система счисления имеет основаниеравное e = 2, 718281828..., то есть нецелочисленное. Она обладает наи-большей плотностью записи информации.Возвращаясь к нашему пребыванию на острове, мы не можем взять дроб-ное основание для системы счисления. Поэтому мы берем самое близкоецелое к e - это 3.

2.4 Округление чиселКак происходит округление чисел в десятичной системе счисления?

Каждый учил в школе правила округления: 1, 2, 3, 4 округляется в мень-шую сторону, а 5, 6, 7, 8 и 9 - в большую. Рассмотрим два примера:

Число Округление5,9 6,04,1 4,05,0 5,06,6 7,02,4 2,0

Cумма 24,0 24,0Пример 1

Число Округление5,5 6,03,5 4,02,5 3,08,5 9,01,5 2,0

Cумма 21,5 24,0Пример 2

В примере 1 мы видим, что сумма до и после округления одинакова.Так случилось, потому что мы округляли то в большую сторону, то вменьшую, и в итоге количество округлений в большую сторону равно ко-личеству округлений в меньшую. Округление нам не помешало получитькрасивую сумму.А теперь посмотрим на специально подобранный пример 2. Разница суммдовольно большая. Так получилось, потому что мы округляли всегдатолько в большую сторону, хотя мы округляли по правилам.Если проделать такой эксперимент с большим количеством чисел (тыся-ча, две тысячи или даже больше), то ошибка будет небольшая, но онабудет.Работая с числами, у которых показатель системы счисления четный, мынатыкаемся на следующую проблему: у нас нечетное количество чиселдля округления. Разберем на примере десятичной системы счисления. Вней всего 10 цифр - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Числа X.0 мы не округляем.Остается 9 чисел: X.1, X.2, X.3, X.4 округляем в меньшую сторону (всего4 числа), а X.5, X.6, X.7, X.8, X.9 - в большую (всего 5 чисел). X.5 - се-редина между X +1 и X, однако мы округляем в пользу X +1, то есть вбольшую. Таким образом, при работе с большим количеством чисел, мывсегда будем округлять в большую сторону чаще, чем в меньшую. Отсю-

13

Page 15: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

да и ошибка в итоговой сумме.Чтобы этого избежать, некоторые программы при автоматическом округ-лении большого количества чисел округляют X.5 по очереди то в боль-шую сторону, то в меньшую.В системах счисления с нечетным основанием такой ошибки нет. Возьмем,к примеру, пятиричную систему счисления. Она содержит цифры 0, 1, 2,3, 4. Числа X.0 мы не округляем, остается 4 числа: X.1, X.2 округляемв меньшую сторону (всего 2 числа), а X.3, X.4 - в большую (всего 2 чис-ла). Таким образом, количество чисел, округленных в меньшую сторону,равно количеству чисел, округленных в большую.

2.5 Нетрадиционные системы счисления

2.5.1 Факториальная система счисленияЛюбое натуральное число можно представить в виде

X =

n∑k=1

dk × k! ,где 0 6 dk 6 k

В основании факториальной системы счисления используется факториал.Запись числа в факториальной системе счисления будет иметь вид

Xф = dndn−1...d1

Перевод из факториальной системы счисления в десятичную

Алгоритм перевода из факториальной системы счисления в десятич-ную очень похож на алгоритм перевода из системы счисления с основа-нием N в десятичную (раздел 2.2.1).

X10 = dn × n! + dn−1 × (n− 1)! + dn−2 × (n− 2)! + ...+ d2 × 2! + d1 × 1!

Где:X10 - искомое число в десятичной системе счисленияdi - натуральные числа меньше или равные in - количество разрядов исходного числаПример 1:Задание: перевести число 221ф в десятичную систему счисленияРешение: 221ф = 2×3!+2×2!+1×1! = 2×6+2×2+1×1 = 12+4+1 = 1710Ответ: 221ф = 1710

14

Page 16: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Перевод из десятичной системы счисления в факториальную

Для перевода воспользуемся все той же формулой:

X10 = dn × n! + dn−1 × (n− 1)! + dn−2 × (n− 2)! + ...+ d2 × 2! + d1 × 1!

Стоит обратить внимание, что 0 6 d1 6 1; 0 6 d2 6 2 и так далее.

1. Находим факториал k!, значение которого больше X10, но ближевсего к нему. Тогда n = k− 1, где n - количество разрядов искомогочисла в факториальной системе.

2. Записываем

X10 = dn×n! + dn−1× (n− 1)!+ dn−2× (n− 2)!+ ...+ d2× 2!+ d1× 1!

с уже полученным n.

3. Начиная с dn с помощью ума и смекалки начинаем подбирать ко-эффициенты, помня, что d1 ∈ {0, 1}, d2 ∈ {0, 1, 2} и т.д.

Пример 2:Задание: перевести число 5410 в факториальную систему счисленияРешение: 5410 < 5!(5! = 120), значит количество разрядов равно 5−1 = 4.Запишем формулу для n = 4: 5410 = d4 × 4! + d3 × 3! + d2 × 2! + d1 × 1!Подберем коэффициенты: 5410 = 2× 4! + 1× 3! + 0× 2! + 0× 1!Ответ: 5410 = 2100ф

Применение факториальной системы счисления: декодирование икодирование перестановок.

Пример 3:Задание: Имеется n = 5 чисел (1, 2, 3, 4, 5), нужнонайти все их перестановки. Известно, что существуетn! = 5! = 120 таких перестановок. Найти перестанов-ку, если известен ее номер k = 52.Решение: Переведем k в факториальную систему: 5210 =2× 4! + 0× 3! + 2× 2! + 0× 1! = 2020фДополним результат до n − 1 разрядов (при необходи-мости), расставим символы по местам:1. Справа от 5 есть 2 меньшие цифры (−− 5−−);2. Справа от 4 есть 0 меньших цифр (−− 5 − 4);3. Справа от 3 есть 2 меньшие цифры (3 − 5 − 4);4. Справа от 2 есть 0 меньших цифр (3 − 5 2 4);Ответ: (3 1 5 2 4)

0 123451 ?????... .....52 ?????... .....119 54321

15

Page 17: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

2.5.2 Система счисления ЦекендорфаЛюбое натуральное число можно представить в виде

X =

n∑k=1

dk × Fk ,где dk ∈ {0, 1}, а Fk - числа Фибоначчи

Каждое число Фибоначчи есть сумма двух предыдущих чисел:Fk = {1, 1, 2, 3, 5, 8, 13, 21, ...}.В записи чисел в системе счисления Цекендорфа первая единица из рядачисел Фибоначчи не используется(т.к. первая единица это F0).Запись числа в системе счисления Цекендорфа будет иметь вид

Xц = dndn−1...d1

В записи чисел в системе счисления Цекендорфа не допускается ис-пользование двух единиц подряд.

Перевод из системы счисления Цекендорфа в десятичную

Алгоритм перевода из системы счисления Цекендорфа в десятичнуюочень похож на алгоритм перевода из системы счисления с основанием Nв десятичную (раздел 2.2.1).

X10 = dn × Fn + dn−1 × Fn−1 + dn−2 × Fn−2 + ...+ d2 × F2 + d1 × F1

Где:X10 - искомое число в десятичной системе счисленияdi - число, принимающее значение 0 или 1n - количество разрядов исходного числа

Пример 1:Задание: перевести число 100101ц в десятичную систему счисленияРешение: 100101ц = 1×13+0×8+0×5 = 1×3+0×2+1×1 = 13+3+1 = 1710Ответ: 100101ц = 1710

Перевод из десятичной системы счисления в систему счисленияЦекендорфа

Для перевода воспользуемся все той же формулой:

X10 = dn × Fn + dn−1 × Fn−1 + dn−2 × Fn−2 + ...+ d2 × F2 + d1 × F1

1. Находим число Fk в ряду чисел Фибоначчи, которое больше X10, ноближе всего к нему. Тогда n = k − 1, где n - количество разрядовискомого числа в системе Цекендорфа.

16

Page 18: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

2. Записываем

X10 = dn × Fn + dn−1 × Fn−1 + dn−2 × Fn−2 + ...+ d2 × F2 + d1 × F1

с уже полученным n.

3. Начиная с dn с помощью ума и смекалки начинаем подбирать коэф-фициенты, помня, что d1 ∈ {0, 1} и что две единицы не могут стоятьрядом.

Пример 2:Задание: перевести число 1910 в систему счисления ЦекендорфаРешение: 1910 < 21(21 = F7), значит количество разрядов равно 7−1 = 6.Запишем формулу для n = 6: d6×13+d5×8+d4×5+d3×3+d2×2+d1×1Подберем коэффициенты: 1910 = 1×13+0×8+1×5+0×3+0×2+1×1Ответ: 1910 = 101001ц

Применение системы счисления Цекендорфа: кодирование данныхс маркером завершения ′11′ , у некоторых народов в сельском хозяйстве- минимизация необходимого числа зерен.

2.5.3 Система счисления БергманаЛюбое действительное неотрицательное число можно представить в

виде

X =

∞∑k=−∞

dk × zk ,где dk ∈ {0, 1}, а z =1 +√5

2

Число z - число золотой пропорции.Запись числа в системе счисления Бергмана будет иметь вид:

XБ = dndn−1...d2d1d0, d−1d−2...d−m

Чтобы исключить неоднозначность, используется запись с наибольшимколичеством разрядов.

Перевод из системы счисления Бергмана в десятичную

Алгоритм перевода из системы счисления Бергмана в десятичную оченьпохож на алгоритм перевода из системы счисления с основанием N в де-сятичную (раздел 2.2.1).

X10 = dn×zn+dn−1×zn−1+...+d2×z2+d1×z1+d0×z0+d−1×z−1 +...d−m×z−m

17

Page 19: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Где:X10 - искомое число в десятичной системе счисленияdi - число, принимающее значение 0 или 1n - количество разрядов целой частиm - количество разрядов дробной части

Пример 1:Задание: перевести число 100, 01Б в десятичную систему счисленияРешение: 100, 01Б = 1×( 1+

√5

2 )2+0×( 1+√5

2 )1+0×( 1+√5

2 )0+0×( 1+√5

2 )−1+

+1×( 1+√5

2 )−2 = ( 1+√5

2 )2+( 1+√5

2 )−2 = 6+2√5

4 + 46+2√5= 9+3

√5

3+√5= 3(3+

√5

3+√5

=3Ответ: 100, 01Б = 310Перевод чисел из десятичной системы в систему счисления Берг-мана происходит методом подбораПрименение системы счисления Бергмана: запись иррациональныхчисел конечным числом цифр, контроль арифметических операций, кор-рекция ошибок, самосинхронизация кодовых последовательностей при пе-редаче по каналу связи.

2.5.4 Нега-позиционная система счисленияЭто системы счисления с отрицательным основанием. Числа в нега-

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

Перевод чисел из нега-позиционных систем счисления полно-стью описан в разделе 2.2.1. Обратный перевод происходит ме-тодом подбора.

Примеры в нега-десятичной системе счисления:15−10 = 1× (−10)1 + 5× (−10)0 = −1× 10 + 5× 1 = −10 + 5 = −510;532−10 = 5× (−10)2 + 8× (−10)1 + 2× (−10)0 = 5× 100− 8× 10 + 2× 1 == 500− 80 + 2 = 42210;

2.5.5 Симметричная система счисленияЭто системы счисления с отрицательными числами. Центром симмет-

рии является 0, поэтому основанием для таких систем счисления могутбыть только нечетные числа.Главная особенность таких систем, как и нега-позиционных, в том, что

18

Page 20: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

не нужно никаких специальных знаков для обозначения отрицательныхчисел.

Перевод чисел из симметричных систем счисления и полностьюописан в разделе 2.2.1. Обратный перевод происходит методомподбора.

Примеры в симметричной пятеричной системе счисления: Если в обыч-ной пятеричной системе используются цифры {0, 1, 2, 3, 4}, то в симмет-ричной пятеричной системе используются {-2, -1, 0, 1, 2}.102125С = 1× 54 + 0× 53 + (−2)× 52 + (−1)× 51 + 2× 50 = 1× 625 + 0×125− 2× 25− 1× 5 + 2× 1 = 625− 50− 5 + 2 = 57210;102125С = (−1)× 54 +0× 53 +2× 52 +1× 51 + (−2)× 50 = −1× 625+ 0×125 + 2× 25 + 1× 5− 2× 1 = −625 + 50 + 5− 2 = −57210;

Стоит обратить внимание, что цифры с чертой сверху - отрицатель-ные.

19

Page 21: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Глава 3

Арифметика вограниченной разряднойсетке

3.1 Представление отрицательных чисел в ЭВМВ электронных вычислительных машинах нет возможности обозна-

чить знак "минус"перед числом. Существует несколько способов решенияэтой проблемы:

1. Специальный знаковый бит - определенный бит означает знакчисла.Пример 1:+510 = 01012, −510 = 11012В данном случае, знаковый бит - старший.

2. Фиксированное смещение - все числа уменьшены на какое-тоопределенное число.Пример 2:−510 = 00002, −410 = 00012, . . . ,+1010 = 11112В данном случае, все числа уменьшены на 5.

3. Нега-двоичная система счисления - основание системы счисле-ния равно −2.Пример 3:−410 = 1100−2, +510 = 0101−2

4. Обратный (инверсный) код - инвертируются все биты.

20

Page 22: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Пример 4:+510 = 01012, −510 = 10102

5. Дополнительный код - инверсия всех бит плюс единица.Пример 5:+510 = 01012, −510 = 10112

Некоторые из этих способов были реализованы. В 50-х и 60-х годахшироко использовался четвертый способ. И специалисты теории инфор-мации разбились на два лагеря: те, кто использовал четвертый способ, ите, кто использовал пятый. Долго не могли примириться и компьютерысуществовали и в том и в другом виде. Это привело к тому, что в стандар-те языка программирования Си не определено как именно представлятьотрицательные числа. Если Вы не будете использовать стандартные кон-струкции языка (например, a = b + c), в которых язык Си сам считаетзначение из памяти и приведет к нужному отрицательному или положи-тельному виду, а сразу обратитесь к внутреннему представлению памяти- к ячейке по адресу (возьмете значение напрямую из ячейки), то храня-щиеся там биты будут различны. Все будет зависеть от того, как рабо-тает Ваш компьютер: по четвертому способу или по пятому. Так же прискладывании некоторых чисел, интерпретированных в обратном коде, вограниченной разрядной сетке, возникает ошибка и требуется корректи-ровка результата. Пятый способ не требует корректировки. Поэтому былорешено использовать для представления отрицательных чисел в ЭВМ до-полнительный код.

Алгоритм перевода двоичного числа в дополнительный код ииз дополнительного кода в прямой

1. Инвертировать все биты;

2. Прибавить единицу;

Отличить, в каком коде представлено число в разрядной сетке - в до-полнительном или прямом, можно по старшему значащему биту. Еслистарший бит равен нулю - число положительное, единице - число отри-цательное (например, в числе 10102 старший бит равен 1 - число отрица-тельное и представлено в дополнительном коде).Важно! Нумерация бит в разрядной сетке начинается с нуляи идет справа налево.

Пример 6:Задание: перевести число 11010110112 в дополнительный код.Решение: инвертируем биты: 11010110112 → 00101001002;

21

Page 23: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Прибавляем единицу: 00101001002 + 12 = 00101001012;Ответ: 00101001012

Пример 7:Задание: представить число −1810 в 8-разрядной сетке.Решение: так как у нас число отрицательное, то сначала переведем мо-дуль данного числа в двоичную систему счисления: | − 1810| = 1810 =100102; Теперь представим его в дополнительном коде: 100102 → 011012+12 = 011102; Так как у нас 8-разрядная сетка, то дополним число незна-чащими нулями: 0000 11102Ответ: −1810 = 0000 11102

3.2 Флаги состояния процессораРегистр флагов - регистр процессора, отражающий текущее состо-

яние процессора.После любой арифметической операции процессор автоматически без уча-стия программиста заполняет регистр флагов состояния. Состояние про-цессора меняется после каждой арифметической операции.Таблица 3.1 представлена для ознакомления. Для курса "Информати-ка"необходимо знать следующие флаги:

1. CF (Carry Flag) - Флаг переноса. Устанавливается (принимаетзначение 1) в случае, если происходит перенос за пределы разрядовили заем извне.

2. PF (Parity Flag) - Флаг четности. Устанавливается, если млад-ший значащий байт результата содержит четное число единичных(ненулевых) бит. Изначально этот флаг был ориентирован на ис-пользование в коммуникационных программах: при передаче дан-ных по линиям связи для контроля мог также передаваться битчетности.

3. AF (Auxiliary Carry Flag) - Вспомогательный флаг пере-носа. Устанавливается, если произошел заем или перенос междупервым и вторым полубайтами (третьим и четвертым битами).

4. ZF (Zero Flag) - Флаг нуля. Устанавливается, если результатмашинной операции по модулю 2 в степени k (где k - разрядностьячейки) равен нулю (другими словами, принимает значение 1, еслирезультат выполнения операции равен нулю).

5. SF (Sign Flag) - Флаг знака. Устанавливается, если результатвыполнения операции отрицателен (равен значению старшего зна-чащего бита).

22

Page 24: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

6. OF (Overflow Flag) - Флаг переполнения. Устанавливается, ес-ли в результате выполнения операции со знаковыми числами появ-ляется одна из ошибок: при сложении положительных чисел полу-чается отрицательный результат или при сложении отрицательныхчисел получается положительный результат.

Пример 1:Задание: сложить 1483710 и 583210 в 16-разрядной сетке. Расставить фла-ги состояния процессора.Решение: для начала переведем исходные числа в двоичную систему счис-ления. 1483710 = 0011 1001 1111 01012, 583210 = 0001 0110 1100 10002.

+ 0011 1001 1111 01012 = 1483710 CF = 0 ZF = 00001 0110 1100 10002 = 583210 PF = 1 SF = 00101 0000 1011 11012 = 2066910 AF = 0 OF = 0

Так как 0101 0000 1011 11012 = 2066910, то результат операции сложе-ния в 16-разрядной сетке корректен.

Пример 2:Задание: сложить 2132410 и 1354310 в 16-разрядной сетке. Расставить фла-ги состояния процессора.Решение: для начала переведем исходные числа в двоичную систему счис-ления. 2132410 = 0101 0011 0100 11002, 1354310 = 0011 0100 1110 01112.

+ 0101 0011 0100 11002 = 2132410 CF = 0 ZF = 00011 0100 1110 01112 = 1354310 PF = 0 SF = 01000 0101 1010 01002 = −1494010 AF = 0 OF = 1

Так как 1000 0101 1010 01002 = −1494010 6= 3486710 = 2132410 + 1354310,то результат операции сложения в 16-разрядной сетке некорректен.OF = 1: при складывании положительных чисел получили отрицательное.

Пример 3:Задание: аналогично примерам 1 и 2 - сложить −745310 и 2473210.Решение: 2473210 = 0110 0000 1001 11002, −745310 = 1110 0010 1110 00112(−745310 представляем в дополнительном коде для 16-разрядной сетки).

+ 0110 0000 1001 11002 = 2473210 CF = 1 ZF = 01110 0010 1110 00112 = −745310 PF = 0 SF = 0

1 0100 0011 0111 11112 = 1727910 AF = 0 OF = 0

Так как 0100 0011 0111 11112 = 1727910, то результат операции сложенияв 16-разрядной сетке корректен. Несмотря на то, что произошел выход запределы разрядности сетки.

23

Page 25: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Таблица 3.1: Регистр флагов Intel x86Номер Обозна- Название Описаниебита чение

FLAGS0 CF Carry Flag Флаг переноса1 - - Зарезервирован2 PF Parity Flag Флаг четности3 - - Зарезервирован4 AF Auxiliary Carry Flag Вспомогательный флаг переноса5 - - Зарезервирован6 ZF Zero Flag Флаг нуля7 SF Sign Flag Флаг знака8 TF Trap Flag Флаг трассировки9 IF Interrupt Enable Flag Флаг разрешения прерываний10 DF Direction Flag Флаг направления11 OF Overflow Flag Флаг переполнения12 IOPL I/O Privilege Level Уровень приоритета13 ввода-вывода14 NT Nested Task Флаг вложенности задач15 - - Зарезервирован

EFLAGS16 RF Resume Flag Флаг возобновления

17 VM Virtual-8086 Режим виртуальногоMode процессора 8086

18 AC Alignment Check Проверка выравнивания

19 VIF Virtual Виртуальный флагInterrupt Flag разрешения прерывания

20 VIP Virtual Interrupt Ожидающее виртуальноеPending прерывание

21 ID ID Flag Проверка на доступностьинструкции CPUID

22- - Зарезервированы. . .

31RFLAGS

32- - Зарезервированы. . .

63

24

Page 26: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Глава 4

Теория информации

4.1 Терминология теории информацииПонятие "информация"имеет различные трактовки в различных пред-

метных областях. Например, в кибернетике "информация"может рассмат-риваться как сигналы направления, в биологии - мера разнообразия ви-дов, в физике - мера хаоса и так далее. Но мы остановимся на понятиях,близких к информатике.

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

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

Алфавит - конечное множество различных знаков (букв), символов, длякоторых определена операция конкатенации (присоединения символа ксимволу или цепочке символов).

Знак (буква) - любой элемент алфавита (элемент x алфавита X, гдеx ∈ X).

Слово в алфавите (или над алфавитом) - конечная последовательностьзнаков (букв) алфавита.

25

Page 27: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Длина некоторого слова в алфавите (над алфавитом) - число состав-ляющих его букв.

Словарь (словарный запас) - множество различных слов в алфави-те (над алфавитом).

4.2 Признаки классификации информацииСуществуют следующие признаки классификации информации:

• Отношение к источнику или приемнику (входная, выходная и внут-ренняя);

• Отношение к конечному результату (исходная, промежуточная и ре-зультирующая);

• Актуальность;

• Адекватность;

• Доступность (открытая, закрытая);

• Понятность;

• Полнота (достаточная, недостаточная, избыточная);

• Достоверность;

• Массовость;

• Изменчивость (постоянная, переменная, смешанная);

• Объективность;

• Точность;

• Стадия использования (первичная, вторичная);

• Ценность.

4.3 Измерение количества информацииСуществует три большие группы методов получения информации.

Методы получения информации:

• Эмпирические - полученные опытным путем.

26

Page 28: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

• Теоретические - опираются на рациональное познание (понятие,суждение, умозаключение) и логические процедуры вывода.

• Эмпирико-теоретические - смешанные.

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

Количество информации - число, адекватно характеризующее разно-образие (неопределённость) в оцениваемой системе.

Мера информации - численная оценка количества информации, кото-рая обычно задана неотрицательной аддитивной функцией (то есть, мераинформации объединения событий (множеств) равна сумме мер каждогособытия).

4.3.1 Мера Хартли

Ральф Хартли1888− 1970

Пусть известны N состояний системы S (N опы-тов с различными, равновозможными, последователь-ными состояниями системы). Если каждое состояниесистемы закодировать двоичными кодами, то мини-мальная длина d полученного кода определяется изусловия:

2d ≥ N или d ≥ log2N

Значит, для однозначного описания системы требу-ется log2N бит. В общем случае количество информа-ции в системе S равно:

Hs = logkN

Единицы измерения количества информации:

• Бит (k = 2)

• Трит (k = 3)

• Дит (харт) (k = 10)

• Нит (нат) (k = e)

Примеры использования меры Хартли

27

Page 29: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Пример 1:Задание: мальчик загадывает число от 1 до 64. Какое количество вопро-сов типа "да-нет"понадобится, чтобы гарантированно угадать число?Решение:• Первый вопрос: "Загаданное число меньше 32?". Ответ: "Да".• Второй вопрос: "Загаданное число меньше 16?". Ответ: "Нет".. . .•Шестой вопрос точно приведет к правильному ответу.Значит, в соответствии с мерой Хартли в загадке мальчика содержитсяlog2 64 = 6 бит информации (N = 64 так как возможно 64 вариантов за-гаданного числа).Ответ: 6 бит.

Пример 2:Задание: мальчик держит за спиной шахматного ферзя и собирается по-ставить его на произвольную клетку пустой доски. Какое количество ин-формации содержится в его действии?Решение: шахматная доска имеет размеры 8 × 8 клеток. Ферзь можетбыть как белым, так и черным, поэтому количество равновероятных со-стояний будет равно 8×8×2 = 128. Получается, количество информациипо мере Хартли равно log2 128 = 7 бит.Ответ: 7 бит.

Мера Хартли подходит лишь для идеальных, абстрактных систем, таккак в реальных системах состояния системы неодинаково осуществимы(неравновероятны).

4.3.2 Мера Шеннона

Клод Шеннон1916− 2001

Если состояния системы не равновероятны, исполь-зуют меру Шеннона. Мера Шеннона оценивает инфор-мацию отвлеченно от ее смысла:

I = −N∑i=1

pi × log2 pi

Где:I - количество информации, выраженное в битах (вlogk pi k = 2);N - число состояний системы;pi - вероятность (относительная частота) перехода си-стемы в i-е состояние (вероятность того, что система

28

Page 30: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

находится в состоянии i)Сумма всех pi должна быть равна единице.

Примеры использования меры Шеннона

Пример 1:Задание: девочка наугад вытаскивает из мешка мяч. Известно, что в меш-ке всего 8 мячей, из них: 4 красных, 2 синих, 1 зеленый и 1 белый. Какоеколичество информации содержится в этом событии?Решение:• Вероятность вытащить красный мяч равна 4/8 = 0, 5• Вероятность вытащить синий мяч равна 2/8 = 0, 25• Вероятность вытащить зеленый мяч равна 1/8 = 0, 125• Вероятность вытащить белый мяч равна 1/8 = 0, 125Значит количество информации, выраженное в битах равно: I = −(0, 5×× log2 0, 5 + 0, 25 × log2 0, 25 + 0, 125 × log2 0, 125 + 0, 125 × log2 0, 125) == −(−0, 5× 1− 0, 25× 2− 0, 125× 3− 0, 125× 3) = −(−0, 5− 0, 5− 0, 375−− 0, 375) = 1, 75 бит.Ответ: 1,75 бит

29

Page 31: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Глава 5

Сжатие данных

Сжатие данных - это процесс, обеспечивающий уменьшение объемаданных путем сокращения их избыточности.

К. Шеннон

Сжатие данных - это частный случай кодирования данных

Кодирование - процесс преобразования символов алфавита в симво-лы алфавита Y .Декодирование - процесс, обратный кодированию.Символ - наименьшая единица данных, рассматриваемая как единое це-лое при кодировании/декодировании.Алфавит - множество всех возможных символов.

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

Кодовое слово - последовательность символов из алфавита Y , одно-значно обозначающая конкретный символ алфавита .Средняя длина кодового слова - это величина, которая вычисляетсякак взвешенная вероятностями сумма длин всех кодовых слов.То есть:

L =

N∑i=1

pi × li

30

Page 32: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Где:N - количество кодовых слов в алфавите;pi - вероятность появления кодового слова в последовательности;li - количество символов в кодовом слове (длина кодового слова).Сумма всех pi должна быть равна единице.

Если все кодовые слова имеют одинаковую длину, то код называется рав-номерным (фиксированной длины). Если встречаются слова разной дли-ны, то - неравномерным (переменной длины)

Классический пример равномерного кода - таблица символов ASCII. Лю-бой символ из этой таблицы будет закодирован одним байтом (один сим-вол всегда кодируется двумя цифрами в шестнадцатеричной системе счис-ления).Пример неравномерного кода - азбука Морзе.

Характеристики кодирования

Коэффициент сжатия = Размер входного потокаРазмер выходного потока

Отношение сжатия = Размер выходного потокаРазмер входного потока

Существует два вида сжатия данных:

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

Префиксный код - это код, в котором никакое кодовое слово не яв-ляется префиксом любого другого кодового слова. Эти коды имеют пере-менную длину.

Оптимальный префиксный код - это префиксный код, имеющий ми-нимальную среднюю длину.

31

Page 33: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

5.1 Алгоритм Шеннона-Фано

Роберт Фанород.1917

Алгоритм Шеннона-Фано - один из первых ал-горитмов сжатия. Его сформулировали два ученых- Клод Шеннон и Роберт Фано. Алгоритм осно-ван на частоте повторения. Так, часто встречаю-щийся символ кодируется кодом меньшей длины,а редко встречающийся - кодом большей длины.Коды, полученные при кодировании, префиксные,что позволяет декодировать любую последователь-ность.

Алгоритм Шеннона-Фано для некоторых последова-тельностей может сформировать неоптимальные ко-ды.

Алгоритм Шеннона-Фано

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

2. Строится дерево от корня к листьям. Находится середина, котораяделит корень на два узла. Эти узлы (суммы вероятностей символовалфавита) примерно равны;

3. Полученные узлы - листья дерева. Левому узлу (с большей суммар-ной вероятностью) присваивается значение 1, а правому - 0;

4. Шаги 2-3 повторяются, пока в листьях дерева не останется одинсимвол первичного алфавита.

5. Символ входного (первичного) алфавита кодируется последователь-ностью нулей и единиц в соответствии с распределением их от корняк листьям (узлам).

Пример 1:Задание: составить код Шеннона-Фано для последовательностиAAABCCCCCDEEEF . Найти среднюю длину кодового слова.Решение: в последовательности AAABCCCCCDEEEF алфавит состоитиз 4 символов: A, B, C, D. Выпишем символы первичного алфавита поубыванию вероятностей:• Вероятность символа C - 5/14;• Вероятность символа A - 3/14;• Вероятность символа E - 3/14;

32

Page 34: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

• Вероятность символа B - 1/14;• Вероятность символа D - 1/14;• Вероятность символа F - 1/14;Полученная последовательность CAEDBF является корнем будущего де-рева.Построим дерево от корня к листьям:

CAEBDF (5/14 +3 /14 +3 /14 +

1 /14 +1 /14 +

1 /14)↓ ↓

CA (5/14 +3 /14) EBDF (3/14 +1 /14 +1 /14 +

1 /14)↓ ↓ ↓ ↓

C (5/14) A (3/14) EB (3/14 +1 /14) DF (1/14 +1 /14)↓ ↓ ↓ ↓

E (3/14) B (1/14) D (1/14) F(1/14)

Присвоим левому символу (с большей вероятностью) значение 1, а пра-вому - 0:

CAEBDF (5/14 +3 /14 +3 /14 +

1 /14 +1 /14 +

1 /14)↓ ↓

CA (5/14 +3 /14) [1] EBDF (3/14 +1 /14 +1 /14 +

1 /14) [0]↓ ↓ ↓ ↓

C (5/14) [1] A (3/14) [0] EB (3/14 +1 /14) [1] DF (1/14 +1 /14) [0]↓ ↓ ↓ ↓

E (3/14) [1] B (1/14) [0] D (1/14) [1] F(1/14) [0]

Получим следующую таблицу для кодировки:

Символ Вероятность КодC 5/14 11A 3/14 10E 3/14 011B 1/14 010D 1/14 001F 1/14 000

Исходная последовательность AAABCCCCCDEEEF кодируется следую-щей: 10.10.10.010.11.11.11.11.11.001.011.011.011.000− 34 битаСредняя длина кодового слова: 5/14 × 2 +3 /14 × 2 +3 /14 × 3 +1 /14 × 3 ++ 1/14 × 3 + 1/14 × 3 = 34/14 ≈ 2, 4

33

Page 35: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

5.2 Код Хаффмана

Дэвид Хаффман1925− 1999

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

Сжатие данных по Хаффману применяется при сжатии фото- и видео-изображений (JPEG, стандарты сжатия MPEG), в архиваторах (PKZIP,LZH), в протоколах передачи данных MNP5 и MNP7.

Алгоритм Хаффмана для неоптимальных префиксных кодов

1. Символы входного алфавита образуют список свободных узлов. Каж-дый узел имеет вес, равный вероятности появления символа в сжи-маемом тексте (исходной последовательности). Строится дерево отлистьев (узлов) к корню:

2. Выбираются два свободных узла дерева с наименьшими весами;

3. Создается их родитель с весом, равным их суммарному весу;

4. Родитель добавляется в список свободных узлов, а двое его детейудаляются из этого списка.

5. Одной дуге, выходящей из родителя (узлу с большим весом), ста-вится в соответствие значение 1, а другой (узлу с меньшим весом)значение 0.

6. Повторяем шаги 2-4, выбирая в качестве одного из свободных узловродителя, до тех пор, пока в списке свободных узлов не останетсятолько один свободный узел. Он и будет считаться корнем дерева.

7. Символ входного (первичного) алфавита кодируется последователь-ностью нулей и единиц в соответствии с распределением их от корнядерева к узлам (листьям).

34

Page 36: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Пример 1:Задание: составить код Хаффмана для неоптимальных префиксных ко-дов для последовательности AAABCCCCCDEEEF. Найти среднюю дли-ну кодового слова.Решение: составим список свободных узлов для исходной последователь-ности:• Символ A с вероятностью 3/14;• Символ B с вероятностью 1/14;• Символ C с вероятностью 5/14;• Символ D с вероятностью 1/14;• Символ E с вероятностью 3/14;• Символ F с вероятностью 1/14;Построим кодовое дерево:

DBFAEC (1/14 +1 /14 +1 /14 +

3 /14 +3 /14 +

5 /14)↓ ↓

C (5/14) DBFAE (1/14 +1 /14 +1 /14 +

3 /14 +3 /14)

↓ ↓E (3/14) DBFA (1/14 +1 /14 +

1 /14 +3 /14)

↓ ↓A (3/14) DBF (1/14 +1 /14 +

1 /14)↓ ↓

F (1/14) DB (1/14 +1 /14)↓ ↓

B (1/14) D (1/14)

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

DBFAEC (1/14 +1 /14 +1 /14 +

3 /14 +3 /14 +

5 /14)↓ ↓

C (5/14) [0] DBFAE (1/14 +1 /14 +1 /14 +

3 /14 +3 /14) [1]

↓ ↓E (3/14) [0] DBFA (1/14 +1 /14 +

1 /14 +3 /14) [1]

↓ ↓A (3/14) [0] DBF (1/14 +1 /14 +

1 /14) [1]↓ ↓

F (1/14) [0] DB (1/14 +1 /14) [1]↓ ↓

B (1/14) [0] D (1/14) [1]

Получим следующую таблицу для кодировки:

35

Page 37: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Символ КодA 110B 11110C 0D 11111E 10F 1110

Исходная последовательность AAABCCCCCDEEEF кодируется следую-щей: 110.110.110.11110.0.0.0.0.0.11111.10.10.10.1110 - 34 бита.Средняя длина кодового слова: 5/14 × 1 +3 /14 × 2 +3 /14 × 3 +1 /14 × 4 ++ 1/14 × 5 + 1/14 × 5 = 34/14 ≈ 2, 4

Алгоритм Хаффмана для оптимальных префиксных кодов

1. Символы входного (первичного) алфавита выписывают по убыва-нию вероятностей (весов) в таблицу.

2. Выбираются два свободных узла (элемента) с наименьшими весами(вероятностями);

3. Верхнему узлу (с большим весом) присваивается значение 1, а ниж-нему (с меньшим весом) - 0;

4. Создается их родитель с весом, равным их суммарному весу;

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

6. Повторяем шаги 2-5, до тех пор, пока в списке свободных узлов (втаблице) не останется только два свободных узла (элемента).

7. Символ входного (первичного) алфавита кодируется последователь-ностью нулей и единиц в соответствии с распределением их от корняк узлам.

Пример 2:Задание: составить код Хаффмана для неоптимальных префиксных ко-дов для последовательности AAABCCCCCDEEEF. Найти среднюю дли-ну кодового слова.Решение: составим список свободных узлов для исходной последователь-ности:

36

Page 38: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Символ Вероятность, pC 5/14A 3/14E 3/14B 1/14D 1/14F 1/14

Построим таблицу:

C 5/14 C 5/14 C 5/14 EDFB 6/14 CA 8/14A 3/14 A 3/14 A 3/14 C 5/14 EDFB 6/14E 3/14 E 3/14 E 3/14 A 3/14B 1/14 DF 2/14 DFB 3/14D 1/14 B 1/14F 1/14

Верхнему узлу (с большим весом) присвоим значение 1, а нижнему (сменьшим весом) - 0:

C 5/14 C 5/14 C 5/14 EDFB 6/14A 3/14 A 3/14 A 3/14 C [1] 5/14E 3/14 E 3/14 E [1] 3/14 A [0] 3/14B 1/14 DF [1] 2/14 DFB [0] 3/14

D [1] 1/14 B [0] 1/14F [0] 1/14

CA [1] 8/14EDFB [0] 6/14

Построим кодовое дерево:

37

Page 39: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

CAEDFB (5/14 +3 /14 +3 /14 +

1 /14 +1 /14 +

1 /14)↓ ↓

CA (5/14 +3 /14) [1] EDFB (3/14 +1 /14 +1 /14 +

1 /14) [0]↓ ↓ ↓ ↓

C (5/14) [1] A (3/14) [0] E (3/14) [1] DFB (1/14 +1 /14 +1 /14) [0]

↓ ↓DF (1/14 +1 /14) [1] B (1/14) [0]↓ ↓

D (1/14) [1] F (1/14) [0]

Получим следующую таблицу для кодировки:

Символ КодA 10B 000C 11D 0011E 01F 0010

Исходная последовательность AAABCCCCCDEEEF кодируется следую-щей: 10.10.10.000.11.11.11.11.11.0011.01.01.01.0010 - 33 бита.Средняя длина кодового слова: 5/14 × 2 +3 /14 × 2 +3 /14 × 2 +1 /14 × 3 ++ 1/14 × 4 + 1/14 × 4 = 31/14 ≈ 2, 2

5.3 Кодирование длин серийКодирование длин серий (кодирование повторов) - алгоритм сжатия

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

Пример 1:Задание: применить кодирование длин серий для последовательностиAAAAABAAAAABBBBBAAAAA.Решение: посчитаем количество повторяющихся символов:1. 5 символов A;2. 1 символ B;

38

Page 40: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

3. 5 символов A;4. 5 символов B;5. 5 символов A;Итого, найдено 5 серий. Заменим серии на число повторов и сам повто-ряющийся символ: 5A1B5A5B5A. Получилась последовательность из 10символов. Исходная последовательность состояла из 21 символа.Коэффициент сжатия: 21

10 = 2, 1.

39

Page 41: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Глава 6

Помехоустойчивоекодирование

При обработке данных (хранение данных в памяти, передача по ка-налам связи) существует вероятность битовых ошибок. Они могут возни-кать из-за альфа частиц от примесей в чипе микросхемы или от нейтро-нов из фонового космического излучения. Частота единичных битовыхошибок на 1 гигабайт данных составляет от 1 раза в час до 1 раза в тыся-челетие. По данным исследования Google получилось, что 1 раз в сутки.Есть несколько способов обработки данных, полученных при передаче сошибкой:

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

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

• Обнаружить ошибку и отбросить поврежденный блок. Как и пер-вый способ, он весьма оправдан при передаче текста или видеоизоб-ражений.

40

Page 42: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

• Обнаружить и исправить ошибку. Не тратится время на повтор-ную передачу данных, но полученные данные корректны. Однако,при таком способе необходимо применять особые методы кодирова-ния и наряду с информационными битами передавать служебные,которые позволяют исправить ошибку.

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

Классификация помехоустойчивых кодов

• Блочные - фиксированные блоки информации длиной k символовпреобразуются в блоки длиной n символов (независимо друг от дру-га). Например, при передаче файла объемом в 1 гигабайт он делит-ся на равные блоки по 1 килобайту и каждый килобайт снабжает-ся служебной информацией, которая позволяет понять - корректенданный блок или нет. И при обнаружении некорректного блока пе-редается только он.

– Неравномерные - редко используемые символы кодируютсябольшим количеством символов (имеют большую длину) (аз-бука Морзе)

– Равномерные - длина блока (символа) постоянна (таблицаASCII).

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

∗ Разделимые - можно отделить (выделить) служебные би-ты от информационных.

· Систематические (линейные) - циклические коды,биты четности/нечетности, код Хэмминга, код Рида-Соломона, код Боуза-Чоудхури-Хоквингема.

· Несистематические - коды с контрольным суммиро-ванием.

• Непрерывные - передаваемая информационная последовательностьне разделяется на блоки. Кодирование осуществляется целого пото-ка.

41

Page 43: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

– Сверточные - корректирующие ошибки коды; работают с непре-рывным потоком данных, кодируя их при помощи регистровсдвига с линейной обратной связью.

Помехоустойчивый код характеризуется:

i - числом информационных разрядов;r - числом проверочных разрядов;n - общим числом разрядов (n = k + r);

Коэффициент избыточности: КИ = rn ;

6.1 Кодирование с помощью бита четностиКонтрольная сумма (check sum) - некоторое число, рассчитанное

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

Бит четности - частный случай контрольной суммы, представляющийиз себя 1 контрольный бит, используемый для проверки четности коли-чества единичных битов в двоичном числе.

Метод расчета бита четности - суммирование по модулю 2 всех битчисла.

Сумма по модулю 2 - исключающее "ИЛИ"(для двух операндов), ло-гическое или битовое сложение, разность двух/трех множеств.

Обозначение: A mod2 B = A⊕B

A ∧B A ∨B A⊕BA⊕B = (¬(A ∧B)) ∧ (A ∨B) = ¬((A ∧B) ∨ (¬A ∧ ¬B))

Таблица истинности для A⊕B

42

Page 44: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

A B A ⊕ B0 0 00 1 11 0 11 1 0

A B C A ⊕ B ⊕ C0 0 0 00 0 1 10 1 0 10 1 1 01 0 0 11 0 1 01 1 0 01 1 1 1

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

Пример обнаружения ошибок

Допустим, у нас есть один информационный бит i = 1. К нему идет одинr1 - бит четности, проверочный разряд №1.i = r1, i⊕ r1 = 0.При получении данных произошел сбой и данные некорректны. Нам из-вестно, что сумма по модулю 2 информационного бита и бита четностиравна 0.

i исх r1 исх i рез r1 рез i рез ⊕ r1 рез1 1 0 0 01 1 0 1 11 1 1 0 11 1 1 1 0

Соответственно, биты с пометкой "исх" - исходные, а "рез" - результиру-ющие.В первом случае видно, что несмотря на то, что оба бита пришли с ошиб-кой, сумма по модулю 2 равна нулю (верна), а значит компьютер не по-считает это как за ошибку.Во втором и третьем случаях сумма по модулю 2 результирующих дан-ных не верна, равна 1. Ошибка.В последнем случае все верно. Биты корректны, сумма по модулю 2 вер-на. Ошибки нет.

Способ обнаружения ошибок с помощью бита четности применяется вRAID-хранилищах (RAID - (англ. redundant array of independent disks -

43

Page 45: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

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

6.2 Код Хэмминга

Ричард УэслиХэмминг

1915− 1998

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

На каждые i информационных бит используется rпроверочных.

Значение каждого контрольного бита зависит от зна-чений информационных бит: контрольный бит с но-мером N контролирует все последующие N бит черезкаждые N бит, начиная с позиции N .Синдром последовательности S - набор контроль-ных сумм информационных и проверочных разрядов

Рассмотрим таблицу:

1 2 3 4 5 6 7 8 9 10 11 12 13 142k r1 r2 i1 r3 i2 i3 i4 r4 i5 i6 i7 i8 i9 i10 S1 X X X X X X X s12 X X X X X X X s24 X X X X X X X s38 X X X X X X X s4

Данная таблица представлена для кода из 14 бит, но ее можно расширитьдля нужного размера самостоятельно.Сверху (в первой строчке) указан номер бита, а справа - синдром.Знаком X обозначены те биты, которые контролирует проверочный бит, сномером, который указан в левом столбце (степень двойки). Чтобы узнатькакими битами контролируется бит с номером N надо просто разложитьN по степеням двойки.Например, видно, что проверочный бит r1 контролирует информацион-ные биты i1, i2, i4, i5, i7, i9. А 11 бит (i7) контролируется битами 1 (r1),2 (r2) и 8 (r4).Чтобы узнать значение проверочного бита необходимо сложить по моду-лю 2 все информационные биты, которые он контролирует.

44

Page 46: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

В данном случае:r1 = i1 ⊕ i2 ⊕ i4 ⊕ i5 ⊕ i7 ⊕ i9;r2 = i1 ⊕ i3 ⊕ i4 ⊕ i6 ⊕ i7 ⊕ i10;и так далее.Чтобы узнать значение синдрома, необходимо сложить по модулю 2 всебиты, которые содержит синдром.В данном случае:s1 = r1 ⊕ i1 ⊕ i2 ⊕ i4 ⊕ i5 ⊕ i7 ⊕ i9;s2 = r2 ⊕ i1 ⊕ i3 ⊕ i4 ⊕ i6 ⊕ i7 ⊕ i10;и так далее.Синдром последовательности S определяется составляющими синдрома-ми s1, s2 и так далее. То есть для кода, где r = 3, синдром будет иметьследующий формат: S(s1; s2; s3).

Определение минимального количества контрольных разрядов:

2k ≥ r + i+ 1

.Классические коды Хэмминга с маркировкой (n, i): (7, 4); (15, 11); (31, 26).

Разбрем код Хэмминга для r = 3.

Код Хэмминга для r = 3

В данном случае, у нас 7 бит, из них 4 информационных и 3 проверочных.То есть, код имеет маркировку (7, 4).Составим таблицу кода (7, 4):

1 2 3 4 5 6 72k r1 r2 i1 r3 i2 i3 i4 S1 X X X X s12 X X X X s24 X X X X s3

Рассмотрим конкретно контроль информационных бит проверочными накругах Эйлера:

Видно, что r1 контролирует i1, i2 и i4; r2 контролируетi1, i3 и i4; а r3 контролирует i2, i3 и i4.r1 = i1 ⊕ i2 ⊕ i4r2 = i1 ⊕ i3 ⊕ i4r3 = i2 ⊕ i3 ⊕ i4

45

Page 47: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

s1 = r1 ⊕ i1 ⊕ i2 ⊕ i4s2 = r2 ⊕ i1 ⊕ i3 ⊕ i4s3 = r3 ⊕ i2 ⊕ i3 ⊕ i4

Рассмотрим таблицу значений синдрома (s1; s2; s3) и позицию ошибоч-ного бита в сообщении:

Синдром (s1; s2; s3) Конфигурация ошибок Ошибочный символ000 НЕТ НЕТ001 0001000 r3010 0100000 r2011 0000010 i3100 1000000 r1101 0000100 i2110 0010000 i1111 0000001 i4

Возьмем, к примеру, 2 строку: синдром S(0, 0, 1), это значит что s1 = 0,s2 = 0, s3 = 1. По построенной таблице кода (7,4) находится, в каком битеошибка - какой бит содержится только в 3 синдроме. Проще говоря, в ка-ком столбце X стоит только в 3 строчке (напротив s3). По таблице видим,что такой бит - 4 (поэтому во втором столбце 0001000 - нули означают пра-вильный бит, а единица - ошибочный. В данном случае ошибочный бит4, поэтому он равен единице). Смотрим, какой именно бит занимает чет-вертое место - r3.Чтобы получить правильную последовательность, необходимо инверти-ровать ошибочный бит.

Пример 1:Задание: получена последовательность 1100100. Вычислить ошибочныйбит, записать правильную последовательность.Решение: составим таблицу кода (7,4) с конкретной последовательностью.

1 2 3 4 5 6 71 1 0 0 1 0 0

2k r1 r2 i1 r3 i2 i3 i4 S1 X X X X s12 X X X X s24 X X X X s3

Рассчитаем значение контрольных бит результата:

46

Page 48: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

r1 рез = i1 ⊕ i2 ⊕ i4 = 0⊕ 1⊕ 0 = 1r2 рез = i1 ⊕ i3 ⊕ i4 = 0⊕ 0⊕ 0 = 0r3 рез = i2 ⊕ i3 ⊕ i4 = 1⊕ 0⊕ 0 = 1Рассчитаем синдромы:s1 = r1 ⊕ i1 ⊕ i2 ⊕ i4 = r1 рез ⊕ r1 исх = 1⊕ 1 = 0s2 = r2 ⊕ i1 ⊕ i3 ⊕ i4 = r2 рез ⊕ r2 исх = 0⊕ 1 = 1s3 = r3 ⊕ i2 ⊕ i3 ⊕ i4 = r3 рез ⊕ r3 исх = 1⊕ 0 = 1Полученный синдром: S(0, 1, 1).Смотрим по таблице, какой бит содержится в s2 и s3 одновременно. 6, тоесть i3.Инвертируем ошибочный бит и получаем правильную последовательность.Ответ: 6 бит (i3), правильная последовательность: 1100110.

47

Page 49: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Рис. 6.1: Схема создания кода Хэмминга (7,4)

Рис. 6.2: Схема декодирования кода Хэмминга (7,4)

48

Page 50: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Глава 7

Алгебра логики

7.1 Определение

Джордж Буль1815− 1864

Алгебра двоичной логики - раздел мате-матики, в котором изучаются логические опера-ции над высказываниями. Чаще всего предпо-лагается, что высказывания могут быть толькоистинными или ложными, то есть используетсятак называемая бинарная или двоичная логика.Один из основателей алгебры логики - ДжорджБуль.

Логическая (булева) переменная – такая пере-менная, значения которой могут быть лишь "1"или"0".В естественном языке: "булева переменная"= "вы-

сказывание".

Высказывание - утверждение, про которое можно однозначно сказать,истинно оно или ложно.Обозначения:

• "истина" и "ложь"

• "true" и "false"

• "1" и "0"

Например, высказывание "Москва - столица России истина, а "трава си-него цвета ложь.

49

Page 51: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Логическая (булева) функция f(x, y, z, . . . ) - в результате выполнениялогических операций над логическими переменными x, y, z, . . . получаетзначение 0 или 1.

Основные операции

x - отрицание или инверсияx ∨ y - дизъюнкция или логическое сложениеx ∧ y - конъюнкция или логическое умножение

7.2 Основные тождества1. Аксиома двойного отрицания

x = x

2. Аксиома существования 1 и 00 = 1

1 = 0

x ∨ x = 1

x ∧ x = 0

3. Закон идемпотенцииx ∨ x = x x ∧ x = x

4. Закон коммутативностиx ∨ y = y ∨ x x ∧ y = y ∧ x

5. Закон поглощенияx ∨ (x ∧ y) = x x ∧ (x ∨ y) = x

6. Закон ассоциативности

x ∨ (y ∨ z) = (x ∨ y) ∨ z x ∧ (y ∧ z) = (x ∧ y) ∧ z

7. Закон дистрибутивности

x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z) x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z)

8. Законы де Морганаx ∨ y = x ∧ y x ∧ y = x ∨ y

9. Закон нейтральностиx ∨ (y ∧ y) = x x ∧ (y ∨ y) = x

50

Page 52: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

7.3 Таблица истинностиСуществует только 4 различные логические функции одной перемен-

ной F (x). Любая другая функция (даже самая сложная вида F (x) =x ∨ x ∧ x) будет иметь одну из следующих таблиц истинности:

x F0(x) F1(x) F2(x) F3(x)

0 0 1 0 11 0 0 1 1

Например F (x) = x будет иметь таблицу истинности F1(x), а F (x) = 1 -F3(x)

Обычно логическую функцию F (x) обозначают как FK,N , где K - коли-чество операндов, а N - число в десятичной системе счисления, котороепри переводе в двоичную является таблицей истинности функции. На-пример, F (x) = x обозначается как F1, 1, так как одна переменная и210 = 012, что является таблицей истинности функции (смотреть снизувверх).

Для k переменных будет существовать N = 22k

функций.Рассмотрим таблицу истинности:

L штук(от 00..0до 11..1сверхувниз)

Значения k штук Значение булевых функций Fбулевых операндовx1 x2 . . . xk FK, 0 FK, 1 . . . FK,N0 0 . . . 0 0 1 . . . 10 0 . . . 1 0 0 . . . 1. . . . . . . . . . . . . . . . . . . . . . . .1 1 . . . 1 0 0 . . . 1︸ ︷︷ ︸

от N штук (от 00..0до 11..1 слева направо)

Так как всего k переменных, то для них будет L = 2k строк в таблицеистинности, а количество булевых функций будет равно N = 2L. Отсюда:

L = 2k⇒ N = 22

k

N = 2L

Так, для 1 переменной будет 4 булевых функции, для 2 переменных - 16и так далее.

51

Page 53: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

x 1 1 0 0 Обозначение Названиеy 1 0 1 0

F 0 0 0 1F2,1 = x ↓ y = xNORy = Cтрелка Пир́са, НЕ-ИЛИ,= NOR(x, y) = xНЕ-ИЛИ антидизъюнкция

y =НЕ-ИЛИ(x, y)

F 0 1 1 0

F2,6 = x⊕ y = Сложение по модулю 2,= xXORy = XOR(x, y) = исключающее "или"= x >< y = x <> y = сумма Жегалкина,= xNEy = NE(x, y) не равно

F2,7 = x | y = Штрих Шеффера,F 0 1 1 1 = NAND(x, y) = xNAND НЕ-И, 2И-НЕ,

y = x НЕ-И y = НЕ-И(x, y) антиконъюнкцияF2,8 = x ∧ y = x · y =

F 1 0 0 0 = xy = x&y = xANDy = Конъюнкция,= AND(x, y) = xИy = 2И, минимум= И(x, y) = min(x, y)F2,9 = (x ≡ y) = x y= Эквивалентность

F 1 0 0 1 = x↔ y = xEQV y = равенство= EQV (x, y)

F 1 0 1 1 F2,11 = x→ y = x ⊃ y = Импликация= x ≤ y = xLEy = LE(x, y) следованиеF2,14 = x ∨ y = x+ y =

F 1 1 1 0 =xORy = OR(x, y) = Дизъюнкция,= x ИЛИ y = ИЛИ(x, y) = 2ИЛИ, максимум

= max(x, y)

Таблица 7.1: Таблица значений и названий булевых функций от двух пе-ременных

7.4 Обозначение на электрической схеме бу-левых функций

Булевы функции на электрической схеме обозначаются двумя спосо-бами, так как существует две организации, предложившие свои стандар-ты: IEC (англ. International Electrotechnical Commission - международнаяэлектротехническая комиссия) и ANSI (англ. American national standardsinstitute - американский национальный институт стандартов). В основномвстречаются обозначения IEC, но иногда можно увидеть и ANSI.

52

Page 54: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Название IEC ANSI

НЕ, A (Инвертор)

И, A ∧B

ИЛИ, A ∨B

Сумма по модулю 2, A⊕B

Это основные обозначения. Они могут совмещаться. Например, так будетвыглядеть ИЛИ-НЕ:

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

7.5 Логический базисЛогический базис - набор булевых функций, позволяющий реали-

зовать любую другую булеву функцию.Три наиболее востребованных логических базиса: И, ИЛИ, НЕ; ИЛИ-НЕ;И-НЕ.

7.6 Формы записи математических выраже-ний

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

53

Page 55: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Рис. 7.1: Пример реализации функций И, ИЛИ, НЕ в базисе И-НЕ

Например:√A (унарная), A×B (бинарная).

Виды нотаций

1489 г. - инфиксная запись A+B

1920 г. - префиксная (польская) запись +AB

1957 г. - постфиксная (обратная польская) запись AB+

Стек - абстрактный тип данных, представляющий собой список элемен-тов, организованных по принципу LIFO (англ. last in - first out, "послед-ним пришел - первым вышел"). Чаще всего принцип работы стека сравни-вают со стопкой тарелок: чтобы взять вторую сверху, нужно снять верх-нюю.

7.6.1 Префиксная нотацияПример:

Инфиксная нотация: (A+B + C)− ED×F×G

Префиксная нотация: −++ABC∧E ××DFG

Рассмотрим, как же происходит запись в префиксной нотации:

1. Исходное выражение: (A+B+C)−ED×F×G. Расставляем порядоквыполнения операций, согласно математическим правилам.

2. Последним выполняется вычитание, а именно из (A+B +C) вычи-тается ED×F×G. Ставим знак в начало. Получается −(A + B +C)(ED×F×G).

54

Page 56: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

3. Рассмотрим (A+B+C), расставим порядок действий. Сначала про-исходит сложение A и B, а потом A + B и C. Начнем с последнегодействия, получается: +(A + B)C. В (A + B) происходит сложениеA и B, получаем (+AB). Совместим все вместе: (+(+AB)C).

4. Рассмотрим (ED×F×G), происходит возведение в степень. А именноE возводится в степень D × F ×G. Получается ∧E(D × F ×G).

5. Рассмотрим D×F×G, расставляем порядок действий. Сначала про-исходит умножение D и F , а потом D×F и G. Начнем с последнегодействия, получается: ×(D×F )G. В (D×F ) происходит умножениеD и F , получаем (×DF ). Совместим все вместе: (×(×DF )G).

6. Совмещаем все вместе. Получается: −(+(+AB)C)(∧E(×(×DF )G).Убираем скобки. Получили −++ABC∧E ××DFG.

Существует популярная Lisp-разновидность префиксной нотации (Lisp -семейство языков программирования). И в ней запись будет выглядетьтак: (−(+ABC)(∧E(×DFG)))

Особенности префиксной нотации

• Не требуется скобок, если арность фиксирована.

• Запись выражения получается короче, чем инфиксная.

• Не требуется знать приоритет операций.

• Легко декодировать выражение с помощью стека.

• Малоприменима на практике (кроме Lisp).

7.6.2 Постфиксная нотацияПример:

Инфиксная нотация: (A+B + C)− ED×F×G

Постфиксная нотация: CAB ++EGDF ××∧−

Рассмотрим, как же происходит запись в постфиксной нотации:

1. Исходное выражение: (A+B+C)−ED×F×G. Расставляем порядоквыполнения операций, согласно математическим правилам.

2. Последним выполняется вычитание, а именно из (A + B + C) вы-читается ED×F×G. Ставим знак в конец. Получается (A + B +C)(ED×F×G)−.

55

Page 57: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

3. Рассмотрим (A+B+C), расставим порядок действий. Сначала про-исходит сложение A и B, а потом A + B и C. Начнем с последнегодействия, получается: (A+B)+. В (A+B) происходит сложение Aи B, получаем (AB+). Совместим все вместе: (C(AB+)+).

4. Рассмотрим (ED×F×G), происходит возведение в степень. А именноE возводится в степень D × F ×G. Получается E(D × F ×G)∧.

5. Рассмотрим D×F×G, расставляем порядок действий. Сначала про-исходит умножение D и F , а потом D×F и G. Начнем с последнегодействия, получается: G(D×F )×. В (D×F ) происходит умножениеD и F , получаем (DF×). Совместим все вместе: (G(DF×)×).

6. Совмещаем все вместе. Получается: (C(AB+)+)(E(G(DF×)×)∧)−.Убираем скобки. Получили CAB ++EGDF ××∧−.

Особенности постфиксной нотации

• Не требуется скобок, если арность фиксирована.

• Запись выражения получается короче, чем инфиксная.

• Не требуется знать приоритет операций.

• Легко декодировать выражение с помощью стека.

• Успешно применяется в компиляторах, в небольшом количестве язы-ков программирования и некоторых ЭВМ (калькуляторы "Электро-ника"и HP).

Алгоритм вычисления для постфиксной нотации

1. Обработка входного символа

• Если на вход подан операнд, он помещается на вершину стека.

• Если на вход подан знак операции, то соответствующая опе-рация выполняется над требуемым количеством значений, из-влеченных из стека, взятых в порядке добавления. Результатвыполненной операции кладется на вершину стека.

2. Если входной набор символов обработан не полностью, перейти кшагу 1.

3. После полной обработки входного набора символов результат вы-числения выражения лежит на вершине стека.

56

Page 58: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Рис. 7.2: Вычисления выражения ab + ac × + (в инфиксной нотации a ++ b+ a× c)

Рассмотрим вычисление постфиксной нотации в стеке. Стек не имеет ад-ресных операций. В нем есть две операции с переменными: push (поло-жить) и pop (забрать). Если необходимо положить значение в стек, то онкладется с помощью команды push на вершину стека. При этом, все дру-гие значения сдвигаются вниз. Арифметические операции (add - сложить,mul - умножить) выполняются с переменными (или переменной - зависитот арности операции), которые лежат на вершине стека.

57

Page 59: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Глава 8

Программное обеспечение

8.1 Офисное ПОКомпания Microsoft открыла формат doc (стандарт по которому он

создается) только в 2000 г. До этого разработчикам приходилось методомобратного инженеринга вручную раскрывать этот стандарт. Это характе-ризует формат doc не в лучшую сторону - не все имели доступ (MicrosoftWord - платное ПО) и формат проверен малым количеством людей. Досих пор существует много ошибок, которые исправлены только в docx.Форматы odt и docx используют XML. Технология XML открыта - любойможет посмотреть, найти ошибки, предложить исправление. Чтобы убе-диться, что odt и docx используют XML, есть простой способ: создайтеdocx или odt документ, смените расширение на zip и распакуйте. Можноувидеть, что в основном все файлы имеют расширение xml.Нормальная криптография появилась только в docx. В формате doc ни-чего нельзя было шифровать. Только сторонними приложениями.

Стоимость продуктов Microsoft Office

• Для дома и учебы (Word, Excel, PowerPoint, OneNote) ≈ 3000р.

• Для дома и бизнеса (Word, Excel, PowerPoint, OneNote, Outlook) ≈10000р.

• Профессиональный (Word, Excel, PowerPoint, OneNote, Outlook, Access,Publisher) ≈ 20000р.

LibreOffice, OpenOffice, Calligra Suite = 0р.

58

Page 60: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Рис. 8.1: ГОСТ Р ИСО/МЭК 26300-2010

В 2010 году был принят ГОСТ Р ИСО/МЭК 26300-2010, обязывающийгосучреждения перейти на бесплатный формат документов (Open DocumentFormat - ODF). Но это вовсе не означает, что будет использоваться LibreOfficeи OpenOffice. В последних версиях Microsoft Office есть поддержка этогоформата.

Факты о ODF

• Распоряжение Правительства Российской Федерации от 17 декабря2010 г. №2299-р "О плане перехода федеральных органов исполни-тельной власти и федеральных бюджетных учреждений на исполь-зование свободного программного обеспечения (2011 - 2015 годы)"

• OpenDocument это единственный формат электронной документа-ции, который реализован несколькими производителями ПО и утвер-жден ISO в качестве международного стандарта.

• Абсолютно любой производитель ПО может использовать форматOpenDocument при разработке своего собственного редактора элек-тронных документов.

• Открытость формата OpenDocument позволяет пользователю бытьсвободным при выборе программного обеспечения, не зависеть отконкретного поставщика ПО и его маркетинговой политики.

• Исчезает угроза утери информации из-за изменения закрытых фор-матов

59

Page 61: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

8.1.1 Сравнение возможностей OO и MS Office

Свойства Open Office Calc Microsoft ExcelРазмерность 1 024 × 1 048 576 16 384 × 1 048 576Кол-во цветов 104 16 777 216Работа с от 1 января 0001 г. от 1 января 1900 г.датами до 31 декабря 9999г. до 31 декабря 9999г.Поддержка met, pbm, pgm, ppm, cdr, emz, mix, pcz,графических psd, ras, sbm, sgg, wmz, wpg, fpx, emz,форматов svg, xpm, xbm drw

Работа с MySQL. Макросы Продвинутые сводныеПрочее на разных языках таблицы и условное

(Python, JavaScript) форматирование

Open Office Writer

• Частые обновления

• Независимые стили страниц в одном документе

• Автоматическое создание указателя формул

• Продвинутая навигация (по ссылкам, разделам, примечаниям, изоб-ражениям)

• Проверка орфографии любого количества языков в одном докумен-те

• Вложенные, скрытые, защищенные паролем индивидуально оформ-ленные разделы

• Перекрестные вычисления между разными таблицами в одном до-кументе

• Несколько оглавлений в одном документе.

• Автоматизированное перемещение элементов оглавления и списковс подпунктами.

Microsoft Word

• Встроенные средства для продвинутой проверки грамматики рус-ского языка

• Распознавание голоса и рукописного ввода

60

Page 62: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

• Подробная справочная система с примерами

• Широкая распространенность

Если сравнивать производительность OpenOfficeWriter и Microsoft Word,то Writer уступает приблизительно в два раза.Если сравнивать безопасность OpenOffice и Microsoft Office, то Microsoftнамного надежнее, чем OpenOffice (MS Office 2010: 17 крахов и 0 потен-циальных уязвимостей, В OpenOffice 3.2.1: 163 краха и 18 потенциальныхуязвимостей). Одна из причин - разработкой свободного ПО занимаютсялюбители.

8.1.2 Концепция стилей и шаблонов• 1-я ошибка - форматирование вручную без стилей.

• 2-я ошибка - создание оформления вместо создания структуры.

• При подготовке документа главное то, чем текст является. А как онвыглядит - вторично.

• Забыть про "размер шрифта 14pt" "гарнитура Times New Roman""расположение по центру"и так далее.

• Помнить только стили: "Заголовок" "Заголовок n-ого уровня" "ос-новной текст и так далее.

• Создание нового документа начинается с продумывания структурыдокумента и создания системы стилей.

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

8.1.3 ПанграммыПанграмма (греч. "все буквы") или разнобуквица - текст, использу-

ющий все или почти все буквы алфавита. Используется для:

• Демонстрация шрифтов.

• Проверки передачи текста по линиям связи.

• Тестирование печатающих устройств.

Microsoft Съешь [же] ещё этих мягких французских булок, да выпейчаю.

61

Page 63: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

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

Gnome В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!

8.1.4 АвтозаполнениеLorem ipsum - название классического текста-"рыбы".

"Рыба" - слово из жаргона дизайнеров, обозначает условный, зачастуюбессмысленный текст, вставляемый в макет страницы.

Lorem ipsum представляет собой искаженный отрывок из философско-го трактата Цицерона "О пределах добра и зла написанного в 45 году донашей эры на латинском языке. Впервые этот текст был применен длянабора шрифтовых образцов неизвестным печатником в XVI веке.

= rand(m,n)

Где:m – количество абзацев;n – количество предложений в каждом абзаце;Так же

= lorem(m,n)

8.2 Вспомогательное ПО для программиро-вания

• Автоматическое создание документации для программы (doxygen).

• Контроль версий (SVN, Git, Mercurial).

• Управления жизненным циклом найденных ошибок (bug trackingsystem).

• Автоматизированное тестирование кода и функциональности.

8.2.1 Автоматизированное создание документацииСамая известная система для автоматизации создания документации

программного обеспечения на С/С++ - это doxygen. Используется в KDE,IBM, AbiWord, Adobe, DC++, Qt, . . .При работе с Doxygen размечается код (в комментариях появляется соб-ственный синтаксис, в результате чего комментарии преобразовываютсяв документацию).

62

Page 64: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

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

8.2.2 Системы управления (контроля) версиями• Клиент-серверные (централизованные): CVS, Subversion, Microsoft

SourceSafe, Perforce, VSS

• Распределенные: Mercurial, git

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

8.2.3 Жизненный цикл обнаруженной ошибкиТестировщик находит ошибки;

Менеджер проекта назначает того, кто исправит ошибку;

Программист исправляет или объясняет, почему нельзя исправить (дубль;нет смысла исправлять; нельзя воспроизвести);

Тестировщик проверяет, была ли исправлена ошибка.

8.2.4 Тестирование программного обеспеченияСамые известные СУБД ошибок: JIRA, Redmine, Bugzilla, TrackGear.

Описание ошибки

• кто сообщил об ошибке;

• дата и время обнаружения;

• серьезность ошибки;

• перечень шагов воспроизведения ошибки;

63

Page 65: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

• текущий статус ошибки.

Автоматизированное тестирование программного обеспечения -часть процесса тестирования на этапе контроля качества в процессе раз-работки программного обеспечения.Оно использует программные средства для выполнения тестов и провер-ки результатов выполнения, что помогает сократить время тестированияи упростить его процесс.

Наиболее известный инструментария для тестирования:

• JUnit — тестирование приложений для Java

• NUnit — порт JUnit под .NET

• xUnit — тестирование приложений для .NET

• TestNG — тестирование приложений для Java

• Selenium — тестирование приложений HTML

• WatiN — тестирование веб-приложений

• TOSCA Testsuite — тестирование приложений HTML, .NET, Java,SAP

• UniTESK — тестирование приложений на Java, Си.

8.3 ЛицензииЛицензии на программное обеспечение – это правовой инстру-

мент, определяющий использование и распространение программного обес-печения, защищенного авторским правом.

Проприетарное ПО ⇒ закрытый исходный код. Может быть платными бесплатным.

Свободное ПО ⇒ открытый исходный код. Может быть платным и бес-платным.

Коммерческое ПО ⇒ платное. Может иметь как закрытый, так и от-крытый исходный код.

Бесплатное ПО ⇒ бесплатное. Может иметь как закрытый, так и от-крытый исходный код.

Разновидности лицензий на свободное ПО

64

Page 66: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

• Пермиссивные лицензии (BSD): можно менять и закрывать.

• Копилефт (GPL): можно менять, нельзя закрывать.

Ричард МэттьюСтоллманрод.1953

Основоположником движения за открытый кодявляется Ричард Мэттью Столлман. Он и создалпервую лицензию GNU (General Public License).Всего около 70 лицензий на владение свободным ПО(одобренных на opensource.org). Самые популярные:Apache License, BSD license, GPL, LGPL, MIT license,MPL.

8.3.1 Базовые права, предоставляе-мые свободным ПО

Все они предоставляют 4 базовых права:

• Право на запуск программы в любых целях(только если она не нанесет вред своим дей-

ствием или бездействием).

• Право на изучение исходного и бинарного кодапрограммы

• Право на платное или бесплатное распростра-нение программы.

• Право на развитие программы.

Если программист передает пользователю свою программу , но не при-лагает лицензию, то действует "право свободного пользования":

• Можно установить программу на 1 компьютер.

• Можно запускать программу на 1 компьютере.

• Нельзя копировать программу на другие компьютеры.

• Нельзя модифицировать программу.

• Данная лицензия действует 5 лет (п.4 ст. 1235 ГК РФ).

65

Page 67: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

8.3.2 Особенности различных свободных лицензийGNU GPL

• Запрещено включать исходные тексты в закрытое ПО, запрещеноменять тип лицензии (copyleft ).

• Запрещено динамическое связывание GNUGPL-библиотек с не-GNUGPLбиблиотеками (dll).

GNU LGPL

• Допускается динамическое связывание с закрытыми библиотеками.

• Запрещено использование кода в другом ПО.

MPL (Mozilla public license)

• Можно использовать исходные тексты в закрытом ПО, но лишь ча-стично и с гарантией доступа к изменениям.

BSD License

• Можно использовать исходные коды в закрытом ПО без ограниче-ний.

8.3.3 Ответственность за пиратское ПОАдминистративная ответственность за пиратское ПО Статья 7.12

КоАП РФ: нарушение авторских прав при ущербе на сумму до 100000 рублей:

• штраф до 2 000 (физическое лицо)• штраф до 20 000 (должностное лицо)• штраф до 40 000 (юридическое лицо)

Уголовная ответственность за пиратское ПО Статья 146.2 УК РФ:незаконное использование объектов авторского права (в т.ч. приоб-ретение, хранение) при ущербе на сумму от 100 000 рублей:

• штраф до 200 000 р.• исправительные работы вплоть до 2 лет• – арест вплоть до 2 лет

Статья 146.3 УК РФ: Незаконное использование объектов авторско-го права (в т.ч. приобретение, хранение) при ущербе на сумму от 1000 000 рублей:

66

Page 68: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

• штраф до 500 000 р.

• арест вплоть до 6 лет

Уголовная ответственность за плагиат ПО Статья 146.1 УК РФ: при-своение авторства, если это причинило крупный ущерб автору:

• штраф до 200 000 р.

• исправительные работы вплоть до 1 года

• арест вплоть до 6 месяцев

Гражданская ответственность за нарушение лицензии ПО Статья1301 ГК РФ: нарушение авторских, интеллектуальных и исключи-тельных прав:

• штраф до 5 000 000 руб. в пользу обладателя ПОлибо

• двукратное возмещение убытков обладателю ПО

8.4 Visual Basic for ApplicationsVisual Basic for Applications (VBA, Visual Basic для приложений) —

немного упрощенная реализация языка программирования Visual Basic,встроенная в линейку продуктов Microsoft Office (включая версии дляMac OS), а также во многие другие программные пакеты, такие какAutoCAD, SolidWorks, CorelDRAW, WordPerfect и ESRI ArcGIS. VBA по-крывает и расширяет функциональность ранее использовавшихся специ-ализированных макро-языков, таких как WordBasic.

8.4.1 Имя переменной• Начинается с буквы латинского алфавита.

• Не может содержать пробелы, точки символы операций (+, -, *, /,#, $, %, &, !, <, >, = и так далее).

• Не может превышать 254 символов в длину.

• Должно быть уникальным в своей области действия.

• Не может дублировать зарезервированные слова.

• Не различает регистр букв: MyNumber = mYnUmBeR.

67

Page 69: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

8.4.2 Типы данныхТип данных Резервируемая Минимальное Максимальное

память, байт значение значениеByte 1 0 255Boolean 2 False TrueInteger 2 -32768 32767Long 4 -2147483648 2147483647Date 8 1 января 100 г. 31 декабря 9999 г.String Длина строки 1 65400Variant 16(число)Variant 22 байта + 2147483647(символ) длина строки символов

Объявление переменных

1. Неявное:sum = 100В данном случае присваивается тип Variant. Это обобщенный тип,переменная нетипизирована.

2. Явное:Dim sum As IntegerПреимущества:

• Программа быстрее работает.

• Программе требуется меньше памяти.

• Легче обнаружить некоторые ошибки.

• Не возникает проблем со сложными типами (например, как от-личить дату от текста).

Недостатки:

• Приходится думать.

• Требуется использовать больше переменных.

8.5 TEX

WYSIWYG (англ. What You See Is What You Get - "что видишь, то иполучишь") - свойство прикладных программ или веб-интерфейсов, в ко-торых содержание отображается в процессе редактирования и выглядитмаксимально близко похожим на конечную продукцию, которая может

68

Page 70: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

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

WYSIWYM (англ. What You See Is What You Mean - "что видишь, естьто, что имеешь в виду") - парадигма редактирования документов, возник-шая как альтернатива более распространенной парадигме WYSIWYG. ВWYSIWYM редакторе пользователь задает только логическую структу-ру документа и собственно контент. Оформление документа, его итоговыйвнешний вид возложено на отдельное ПО, либо, во всяком случае, выне-сено в отдельный блок. Таким образом достигается полная независимостьсодержания документа от его формы. (пример: TEX)

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

8.6 ВебинарыВебинар (онлайн-семинар) - разновидность веб-конференции, про-

ведение онлайн-встреч или презентаций через Интернет. Во время веб-конференции каждый из участников находится у своего компьютера, асвязь между ними поддерживается через Интернет посредством загру-жаемого приложения, установленного на компьютере каждого участника,или через веб-приложение.1988 г. – появление первых IRC (англ. Internet Relay Chat).Середина 1990-х – появление и распространение IM (Instant Messaging).1998 г. – регистрация торгового знака "Webinar"Эриком Р. Корбом (EricR. Korb).

Существуют следующие приложения для вебинаров

• GoToMeeting

– Создана в 2004 году компанией Citrix Online.

– Поддерживаемые ОС: Macintosh, Microsoft Windows

– http://www.gotomeeting.com/

• StartMeeting

– Создана в 2011 году как start-up.

69

Page 71: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

– Поддерживаемые ОС: Microsoft Windows

– http://www.startmeeting.com/

• Team Viewer

– Создана в 2005 году.

– Поддерживаемые ОС: Windows, Mac OS, Linux, Android, AppleiOS, Windows Phone

– http://www.teamviewer.com

70

Page 72: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Глава 9

Структура и принципыфункционированиякомпьютера

Люди пытались сделать компьютер достаточно давно.Первым (после антикитерского механизма) был механизм для сумми-рования и умножения. Изобрел его Вильгельм Шиккард (1592 - 1635 )в 1623 году.Машина содержала суммирующее и множительное устройства, а такжемеханизм для записи промежуточных результатов. Первый блок - шести-разрядная суммирующая машина - представлял собой соединение зуб-чатых передач. На каждой оси имелись шестерня с десятью зубцами ивспомогательное однозубое колесо - палец. Палец служил для того, что-бы передавать единицу в следующий разряд (поворачивать шестеренкуна десятую часть полного оборота, после того как шестеренка предыдуще-го разряда сделает такой оборот). При вычитании шестеренки следоваловращать в обратную сторону. Контроль хода вычислений можно быловести при помощи специальных окошек, где появлялись цифры. Для пе-ремножения использовалось устройство, чью главную часть составлялишесть осей с "навернутыми"на них таблицами умножения.Второй арифметической машиной был механизм для суммированияи вычитания "Паскали́на". Изобрел его Блез Паскаль (1623—1662 ) в1642 году.Машина Паскаля представляла собой механическое устройство в видеящичка с многочисленными связанными одна с другой шестеренками.Складываемые числа вводились в машину при помощи соответствующе-го поворота наборных колесиков. На каждое из этих колесиков, соответ-

71

Page 73: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

ствовавших одному десятичному разряду числа, были нанесены деленияот 0 до 9. При вводе числа, колесики прокручивались до соответствую-щей цифры. Совершив полный оборот, избыток над цифрой 9 колесикопереносило на соседний разряд, сдвигая соседнее колесо на 1 позицию.Следующим был арифмометр Лейбница, умеющий выполнять опера-ции сложения, вычитания, деления и умножения. Изобрел ее ГотфридВильгельм Лейбниц (1646 - 1716 ) в 1673 году.Сложение чисел выполнялось при помощи связанных друг с другом ко-лес, так же как на "Паскалине". Добавленная в конструкцию движущаясячасть и специальная рукоятка, позволявшая крутить ступенчатое коле-со (в последующих вариантах машины - цилиндры), позволяли ускоритьповторяющиеся операции сложения, при помощи которых выполнялосьделение и перемножение чисел. Необходимое число повторных сложенийвыполнялось автоматически.Прообразом современного компьютера стала идея создания универ-сальной аналитической вычислительной машины, которую выдви-нул Чарльз Бэббидж (1791 - 1871 ) в 1823 году.В 1822 году Бэббидж построил малую разностную машину. Ее работабыла основана на методе конечных разностей. Малая машина была пол-ностью механической и состояла из множества шестеренок и рычагов.В ней использовалась десятичная система счисления. Она оперировала18-разрядными числами с точностью до восьмого знака после запятой иобеспечивала скорость вычислений 12 членов последовательности в 1 ми-нуту. Малая разностная машина могла считать значения многочленов 7-йстепени.И в том же 1822 году Бэббидж задумался о создании большой раз-ностной машины предназначенной для автоматизации вычислений пу-тем аппроксимации функций многочленами и вычисления конечных раз-ностей. Возможность приближенного представления в многочленах ло-гарифмов и тригонометрических функций позволяло бы рассматриватьэту машину как довольно универсальный вычислительный прибор. В 1823году он приступил к проектированию, однако, в 1842 году государство от-казалось финансировать проект и машина так и не была достроена. Нодля развития вычислительной техники имело значение другое: идея со-здания аналитической вычислительной машины. В единую логическуюсхему Бэббидж увязал арифметическое устройство (названное им "мель-ницей"), регистры памяти, объединенные в единое целое ("склад"), иустройство ввода-вывода, реализованное с помощью перфокарт трех ти-пов. Перфокарты операций переключали машину между режимами сло-жения, вычитания, деления и умножения. Перфокарты переменных управ-ляли передачей данных из памяти в арифметическое устройство и об-ратно. Числовые перфокарты могли быть использованы как для ввода

72

Page 74: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

данных в машину, так и для сохранения результатов вычислений, еслипамяти было недостаточно.Следующим этапом в развитии вычислительной техники стал электро-механический перфокарточный табулятор для переписи населе-ния, который изобрел Герман Холлерит (1860 - 1929 ) в 1880 году.Табуляторы предназначены для автоматической обработки (суммирова-ния и категоризации) числовой и буквенной информации, записанной наперфокартах, с выдачей результатов на бумажную ленту или специаль-ные бланки. Умножение и деление выполнялись методом последователь-ного многократного сложения и вычитания. Работа табулятора произво-дилась в соответствии с набираемой на коммутационной панели програм-мой.В 1911 году Алексей Николаевич Крылов (1863 - 1945 ) изобрел анало-говый решатель дифференциальных уравнений. Он интегрировалобыкновенные дифференциальные уравнения.В 1919 году Николай Николаевич Павловский (1884 - 1937 ) сконструиро-вал аналоговую вычислительную машину (АВМ). Она была созда-на для реализации метода исследования природных явлений при помо-щи аналого-математического моделирования, который разработал Пав-ловский в том же 1919 году.

9.1 ЭВМ Джона фон Неймана

Джон фон Нейман1903− 1957

В 1930-х годах началась разработка архитек-туры ЭВМ для военно-морской артиллериипо заказу правительства США. В разработкеучаствовали Гарвардский университет и Прин-стонский университет (в том числе и Джонфон Нейман). На рисунке 9.1 приведена схемаЭВМ, предложенная фон Нейманом.

9.1.1 Узлы ЭВМ фон Неймана• Процессор - исполнитель машинных инструкций (кода программ),главная часть аппаратного обеспечения ЭВМ. В состав процессоравходят:

73

Page 75: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Рис. 9.1: Структурная схема ЭВМ фон Неймана

– устройство управления выборкой команд из памяти и их вы-полнением;

– арифметико-логическое устройство, производящее операции надданными;

– регистры, осуществляющие временное хранение данных и со-стояний процессора;

– схемы для управления и связи с подсистемами памяти и ввода-вывода.

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

• Устройства вывода представляют результаты обработки данныхв ЭВМ в форме, удобной для визуального восприятия человеком(монитор, принтер) или хранения (DVD-привод, стример).

• Устройства ввода-вывода используются как для хранения дан-ных, так и для их считывания (жесткий диск, флешка).

74

Page 76: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

9.1.2 Принципы работы архитектуры фон НейманаБёркс, Голдстайн и фон Нейман в 1946 г. в книге "Предварительное

рассмотрение логического конструирования электронного вычислитель-ного устройства"описали принципы:

• Принцип двоичного кодирования - вся информация, поступаю-щая в ЭВМ, кодируется с помощью двоичных сигналов.

• Принцип однородности памяти - программы и данные хранятсяв одной и той же памяти. Поэтому ЭВМ не различает, что хранитсяв данной ячейке памяти - число, текст или команда. Над командамиможно выполнять такие же действия, как и над данными.

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

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

• Принцип программного управления:

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

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

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

9.2 Классификация архитектур ЭВМАрхитектурой ЭВМ определяется, как именно в этой ЭВМ происхо-

дит обработка и преобразование данных с учетом конкретных принциповвзаимодействия технических средств и программного обеспечения.

1. По способу хранения команд/данных:

75

Page 77: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

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

• Гарвардская архитектура: предусматривает раздельные хра-нилища и потоки передачи (шины) для команд и данных. Воз-можность одновременной работы с данными и командами.

2. По разрядности интерфейсов и машинных слов: 8-, 16-, 32-,64-, 128-разрядные.

3. По особенностям набора команд и регистров:

• CISC – Complete Instruction Set Computer

• RISC – Restricted (Reduced) Instruction Set Computer

• CRISP – Complex-Reduced-Instruction-Set Processor

• VLIW – Very Long Instruction Word

4. По количеству вычислителей: однопроцессорные, многопроцес-сорные, одноядерные, многоядерные.

Существуют следующие архитектуры систем команд (рисунок 9.2):

• Регистровая архитектура - внутри процессора существует спе-циальная память (регистры) для хранения промежуточных резуль-татов.

• Аккумуляторная архитектура - существует один регистр (акку-мулятор), в котором хранится результат.

• Стековая архитектура - команды не имеют операндов.

В процессоре ограниченное количество команд, как и в языках програм-мирования. И каждую операцию он разбивает на более мелкие и простыемикрокоманды. Архитектуры CISC и RISC определяют количество этихмикрокоманд. Например, есть всего 10 команд, а все остальные операцииможно составить из этих команд - это архитектура RISC. Или на каждуювозможную операцию необходима своя команда - это будет архитектураCISC. Рассмотрим подробнее.

9.2.1 Архитектура CISCCISC - complex instruction set computer - компьютер с полным набором

команд.

76

Page 78: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

• много команд;

• мало регистров общего назначения (памяти для хранения операн-дов арифметико-логических инструкций, а также адресов или от-дельных компонентов адресов ячеек памяти) (до 32);

• разнообразие способов адресации (прямая, косвенная);

• много форматов команд различной разрядности;

• обработка совмещается с обращением к памяти.

Доля сложных дополнительных команд CISC в общем объеме программне превышает 10-20% . Емкость микропрограммной памяти для поддер-жании сложных команд может увеличиваться на 60% .

9.2.2 Архитектура RISCRISC - reduced instruction set computer - компьютер с сокращенным

набором команд.

• мало команд (только наиболее часто используемые);

• много регистров общего назначения (РОН) (сотни);

• есть только две команды обращения к памяти (все остальные ко-манды могут работать только с РОНами);

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

9.2.3 Сравнение RISC и CISC1. Возможность повышения тактовой частоты и упрощения кристалла

с высвобождением площади под кэш.

2. Снижение энергопотребления процессора засчет уменьшения числатранзисторов.

3. Доля сложных дополнительных команд CISC в общем объеме про-грамм не превышает 10-20%.

4. Возможность упреждающего выполнения команд.

Результат: большинство современных процессоров являются либо чи-стыми RISC, либо "CISC-поверх-RISC".

77

Page 79: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Рис. 9.2: Классификация систем команд

9.3 Команды процессораЭтапы выполнения команд процессором

Полный цикл выполнения команды может включать в себя следующиеэтапы:

• Вычисление адреса команды (ВАК) - счетчик команд указывает нанекоторую ячейку, содержащую команду;

• Выборка команды (ВК) - обращение к ячейке памяти по адресу,указанному в счетчике команд, считывание команды;

• Декодирование команды (ДК) - процессор распознает, что за коман-да (сложение, вычитание, переход и так далее);

• Вычисление адреса операнда (ВАО) - если команда адресная, топроизводится вычисление адреса операнда, который содержит ко-манда;

• Выборка операнда (ВО) - обращение к ячейке памяти по адресу,указанному в команде, считывание операнда;

• Выполнение заданной операции (ВЗО);

• Запись результата (ЗР).

Конвейерная обработка команд

78

Page 80: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Рис. 9.3: Форматы команд процессора: а) многоадресная, б) адресная, в)безадресная

При выполнении почти каждой команды, необходимо осуществить 4-7действий. При выполнении команд последовательно (как это делали ста-рые процессоры) следующая команда будет ждать, пока полностью осу-ществится первая. Понятно, что можно выполнять команды по принципуконвейера, что существенно увеличит скорость работы.

IF - ВАК+ВК (вычисление адреса команды и выборка команды);

ID - ДК+ВАО+ВО (декодирование команды, вычисление адреса операн-да, выборка операнда);

EX - ВЗО (выполнение заданной операции);

MEM - ЗР (запись результата);

WB - ЗР (запись результата);

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

79

Page 81: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Пример 5-уровневого конвейера в реальном RISC-процессоре:

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

80

Page 82: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Глава 10

Организация храненияданных в ЭВМ

10.1 Устройство памяти1. Память состоит из адресуемых ячеек (размером 1 - 128 бит). Ячейки

в основном организованы по 8 бит и свой собственный адрес имееттолько каждый восьмой бит.

2. Ячейки состоят из запоминающих электрических элементов. Этоможет быть конденсатор, транзистор или попупроводниковый ма-териал, умеющий хранить два состояния. Есть так же элементы,умеющие хранить три состояния, но эти три состояния сложнее счи-тывать.

3. Электрический элемент может находиться в одном из двух устой-чивых состояний (для хранения 1 бита):

• конденсатор заряжен/разряжен;• транзистор в проводящем/непроводящем состоянии;• полупроводниковый материал имеет высокое/низкое сопротив-ление.

Одно из таких физических состояний создает высокий уровень выходно-го напряжения элемента памяти, а другое - низкий. В элементах памятиряда микроЭВМ это электрические напряжения порядка 4В и 0В соот-ветственно, причем первое обычно принимается за двоичную единицу, авторое - за двоичный нуль.Если сигнал попадает в незаштрихованную область (между 0,5В и 2,5В)

81

Page 83: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

то сигнал не распознается.

Запоминающим элементом называется элемент, который способен при-нимать и хранить код двоичной цифры (исходные значения некоторыхвеличин, промежуточные значения обработки и окончательные результа-ты вычислений).Триггер - элементарный цифровой автомат, обладающий способностьюдлительно находиться в одном из двух устойчивых состояний и чередо-вать их под воздействием внешних сигналов. Состояние 0 на выходе Qсоответствует выключенному состоянию, а Q = 1 - включенному.Сущесвуют следующие типы триггеров:

• RS-триггер - меняет свое состояние в зависимости от того, на какойиз входов была подана единица. При подаче сигнала на вход S (Set)на выходе устанавливается единица. При подаче сигнала на вход R(Reset) сигнал на выходе пропадает.

• D-триггер (Delay или Data) - запоминает (задерживает) состоя-ние входа на один такт. При кратковременной подаче сигнала наC (Clock) (обычно, с тактового генератора), запоминает сигнал навходе D (Data) и выдает его на выход до следующей итерации.

• Т-триггер (Toggle) - при подаче сигнала на вход, меняет сигнал навыходе на противоположный.

• JK-триггер - аналогичен RS-триггеру (J (Jump) = Set, K (Kill)= Reset), с одним лишь исключением: при подаче единицы на обавхода, состояние выхода изменяется на противоположное.

Регистры - это узлы ЭВМ, служащие для хранения информации ввиде машинных слов или его частей, а так же для выполнения над сло-

82

Page 84: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Рис. 10.1: Асинхронный RS-триггер на элементах 2И-НЕ(IEC)

Рис. 10.2: Асинхронный RS-триггер на элементах 2ИЛИ-НЕ (IEC)

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

Рис. 10.3: МультиплексорРис. 10.4: Демультиплексор

83

Page 85: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Сумматор - это узел, в котором выполняется арифметическая опе-рация суммирования цифровых кодов двух двоичных чисел.

10.2 Характеристики систем памяти1. Место расположения:

• Процессорная, то есть на общем кристалле с центральным про-цессором (ЦП) (регистры, кэш-память 1-го уровня);

• Внутренняя, то есть на системной плате (основная память (ОП),кэш-память 2-го и последующего уровней);

• Внешняя (медленные запоминающие устройства (ЗУ) большойёмкости).

2. Емкость ЗУ - число бит/байт, которое можно хранить на ЗУ.

3. Единица пересылки. Для ОП единица пересылки определяетсяшириной шины данных, то есть количество бит, передаваемых полиниям шины параллельно. Обычно равна длине слова.

4. Метод доступа к данным:

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

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

• Произвольный доступ - каждая ячейка памяти имеет уникаль-ный физический адрес. Обращение к любой ячейке занимаетодно и то же время и может водиться в произвольной очеред-ности (ОП);

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

5. Быстродействие - один из важнейших показателей:

84

Page 86: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

• Время доступа (Тд) - интервал времени от момента поступле-ния адреса до момента, когда данные заносятся в память илистановятся доступными.

• Длительность цикла памяти или период обращения (Тц) - по-нятие применяется к памяти с произвольным доступом, для ко-торой оно означает минимальное время между двумя последо-вательными обращениями к памяти. Период обращения вклю-чает в себя время доступа плюс некоторое дополнительное вре-мя.

• Скорость передачи - скорость, с которой данные могут переда-ваться в память или из нее.

6. Физический тип

• Полупроводниковая память;

• Память с магнитным носителем информации (используемая вмагнитных лентах и дисках);

• Память с оптическим носителем (оптические диски);

7. Физические особенности (например, энергозависимость).

8. Стоимость - стоимость хранения одного бита информации.

10.3 Иерархия памяти

85

Page 87: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Чем меньше время доступа, тем выше стоимость хранения бита. Чембольше емкость, тем ниже стоимость хранения бита, но больше времядоступа.

10.4 Физическое устройство памяти

10.4.1 Кэш-памятьРассмотрим биполярный n-p-n транзистор: К - коллек-

тор, Б - база, Э - эмиттер. На коллектор подано напряжение.Если на базу подать напряжение - транзистор откроется иток с коллектора пойдет на эмиттер.Небольшая особенность - напряжение на базе должно бытьвыше, чем на коллекторе (на сколько - зависит от конкрет-ного транзистора, обычно немного. Например, 5В на коллек-

торе, 6В на базе).

Теперь рассмотрим следующую схему:VCC - линия питания устройства (например5В).GND - линия 0В.Если оба транзистора закрыты (на базу неподается напряжение, V1 и V2 равны 0), тоток уходит напрямую с VCC на VOUT . В ре-зультате получается логическая единица.Если подать напряжение хотя бы на одинтранзистор (V1 или V2), то ток с VCC будетуходить через транзистор в GND и в VOUT

не пойдет. В результате получается логиче-ский нуль.

Так как напряжение напряжение на базе должно быть выше, чем на кол-лекторе (в данном случае, на линии питания VCC), а повышенное взятьнеоткуда, то имеющееся напряжение на VCC занижается с помощью ре-зистора и получается 5В на базе и чуть меньше на коллекторе.

Получается, что данная схема реализует логическую функцию ИЛИ-НЕ(ANSI) (также известную как стрелка Пирса) (где A и B соответственноV1 и V2):

86

Page 88: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Таблица истинности для ИЛИ-НЕ:

A B X0 0 10 1 01 0 01 1 0

Объеденим два элемента ИЛИ-НЕ обратной связью.Выход одного элемента ИЛИ-НЕ поступает навход другого. Получилась самая простая па-мять для хранения 1 бита, использующая 4транзистора.В данном случае, изображен асинхронный RS-триггер (изображен на рисунке 10.2). Также,память может состоять и из других триггеров.При подаче единицы на вход S выходное состо-яние становится равным логической единице. Апри подаче единицы на вход R выходное состо-

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

10.4.2 Оперативная памятьВ отличие от кэш-памяти, оперативная па-

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

быстрее чем, зарядить или разрядить конденсатор.Если на базу подано напряжение, транзистор открыт, мы можем считатьзначение - 1. Если напряжения нет, значение не считывается, записыва-ется 0.

87

Page 89: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

10.5 Локальность памяти

10.5.1 Пространственная локальность памятиС очень высокой вероятностью адрес очередной команды программы

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

10.5.2 Временна́я локальность памятиКроме того, программы содержат множество небольших циклов и под-

программ. Это означает, что небольшие наборы команд могут многократ-но повторяться в течение некоторого интервала времени, то есть имеетместо временная локальность.Все три вида локальности объединяет понятие локальность по обраще-нию. Принцип локальности часто облекают в численную форму и пред-ставляют в виде так называемого правила "90/10": 90 % времени работыпрограммы связано с доступом к 10% адресного пространства этой про-граммы.

10.6 Порядок хранения байт в памятиСуществует несколько способов хранения байт в памяти:

• От старшего к младшему (англ. big-endian): An, . . . , A0 записьначинается со старшего и заканчивается младшим. Этот порядокявляется стандартным для протоколов TCP/IP, он используется взаголовках пакетов данных и во многих протоколах более высокогоуровня, разработанных для использования поверх TCP/IP. Поэтому,порядок байтов от старшего к младшему часто называют сетевымпорядком байтов.

• От младшего к старшему (англ. little-endian): A0, . . . , An записьначинается с младшего и заканчивается старшим. Этот порядок за-писи принят в памяти персональных компьютеров с x86-процессорами,в связи с чем иногда его называют интеловский порядок байт (поназванию фирмы-создателя архитектуры x86).

88

Page 90: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

• Переключаемый порядок (англ. bi-endian). Многие процессорымогут работать и в порядке от младшего к старшему, и в обратном.Обычно порядок байтов выбирается программно во время инициа-лизации операционной системы, но может быть выбран и аппаратноперемычками на материнской плате. В этом случае правильнее го-ворить о порядке байтов операционной системы.

• Смешанный порядок (англ. middle-endian) иногда используетсяпри работе с числами, длина которых превышает машинное слово.Число представляется последовательностью машинных слов, кото-рые записываются в формате, естественном для данной архитекту-ры, но сами слова следуют в обратном порядке.

Рис. 10.5: Сравнение порядков от младшего к старшему и от старшего кмладшему

89

Page 91: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Глава 11

Передача данных вкомпьютерных сетях

11.1 Многоуровневая модель OSI (Open SystemsInterconnection)

Процесс передачи данных по компьютерной сети очень сложен, по-этому специалисты International Standards Organization решили разде-лить его на семь логических независимых уровней. Специалист на одномуровне может работать независимо от специалиста на другом уровне, немешая друг другу.

№ Название уровня (layer) Основная функция

7 прикладной (application) взаимодействие программы пользователяс сетевой подсистемой ОС (API)

6 уровень представления шифрование, сжатие, выбор кодировки(presentation)5 сеансовый (session) установление соединения4 транспортный (transport) надежность доставки, реакция на потери

3 сетевой (network)маршрутизация, объединениеразнородных локальных сетей,

адресация в глобальной сети (IP)

2 канальный (data link)связь между узлами одной локальной

сети, адресация в локальной сети(МАС-адрес)

1 физический (physical) физические характеристики каналовсвязи и передаваемых сигналов

90

Page 92: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

11.1.1 Прикладной уровеньСубъекты взаимодействия: пользовательская программа на переда-

ющем/принимающем компьютере; ОС.Объекты взаимодействия: Пользовательские данные, представленные в"родном"понятном виде для приемной и передающей программы.Основные функции: Вызов специальных функций ОС для работы с сетью(API). Программист не обязан знать о внутреннем устройстве сети, длянего передача данных по сети не отличается от сохранения в файл (про-сто надо вызвать нужную функцию API ОС).API (интерфейс программирования приложений, интерфейс прикладно-го программирования) (англ. application programming interface) — наборготовых классов, процедур, функций, структур и констант, предоставля-емых приложением (библиотекой, сервисом) для использования во внеш-них программных продуктах. Используется программистами при написа-нии всевозможных приложений.

11.1.2 Уровень представленияСубъекты взаимодействия: специальное ПО для шифрования, сжа-

тия, кодирования; ОС.Объекты взаимодействия: Закодированные пользовательские данные (поль-зовательская программа уже не может работать с такими данными бездекодирования).Основные функции: Шифрование, сжатие, выбор кодировки, выбор спо-соба представления порядка байт (little-endian, big-endian). Каждый этапможет выполняться несколько раз разными субъектами.

11.1.3 Сеансовый уровеньСубъекты взаимодействия: ОС на компьютере-передатчике; ОС на

компьютере-приемнике.Объекты взаимодействия: Служебные данные о об установке соедине-ния: логины, пароли, сертификаты, цифровые подписи, пустые пакетыдля проверки отсутствия обрывов связи, служебные пакеты с команда-ми типа "запрос соединения "подтверждение соединения "разрыв соеди-нения"(т.е. никакие пользовательские данные на этом уровне не переда-ются).Основные функции:

• Установление соединения (с возможной аутентификацией абонен-тов).

91

Page 93: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

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

• Реагирование на долгую неактивность сеанса связи (например, ав-тоотсоединение по таймауту).

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

11.1.4 Транспортный уровеньСубъекты взаимодействия: ОС; драйвер сетевой карты.

Объекты взаимодействия: Пользовательские данные, снабженные слу-жебными заголовками для обнаружения проблем передачи (контрольнаясумма, порядковые номера фрагментов), служебные пакеты-подтверждения.Основные функции:

• Отслеживание проблемных пакетов: искаженных, потерянных, при-шедших в неверном порядке или дубликатов.

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

• Реализация механизма повторной передачи (передается весь файлцеликом или только проблемные части).

11.1.5 Сетевой уровеньСубъекты взаимодействия: ОС; драйвер сетевой карты.

Объекты взаимодействия: Данные, нарезанные на фрагменты, которыеможно передавать в конкретной локальной сети (например, в проводныхсетях Fast Ethernet предельный размер фрагмента ≈ 1500 байт, а в сетяхWi-Fi он равен ≈ 8000 байт). Каждый фрагмент снабжается глобальнымадресом (например, IP-адресом), который понятен в любой локальной се-ти, но при этом уникален для всей глобальной сети.Основные функции: Маршрутизация в большой сети; обеспечение воз-можности объединить несколько разнородных локальных сетей в однусеть.

11.1.6 Канальный уровеньСубъекты взаимодействия: драйвер сетевой карты; модуль сетевой

карты, который генерирует физические сигналы (ток, радиоволна, пучок

92

Page 94: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

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

• Проверка доступности (свободности) канала связи, если он общийдля нескольких абонентов. Например, в Wi-Fi-канал является об-щим для нескольких устройств в радиусе действия базовой станции,поэтому он не всегда доступен для передачи и каждому устройствуприходится ждать своей очереди.

• Передача данных и адресация осуществляются только внутри ло-кальной сети (MAC-адрес имеет смысл только в пределах локальнойсети, так как он не передаётся в глобальную сеть).

11.1.7 Физический уровеньСубъекты взаимодействия: модуль сетевой карты, который генери-

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

Кодирование

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

93

Page 95: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

Различные системы кодирования данных

Модуляция

Если сетевая карта умеет генерировать физический сигнал в виде си-нусоиды, то управляя амплитудой/частотой/фазой этой синусоиды, мож-но кодировать 0 и 1.

а) информационный сигнал, б) амплитудная модуляция (AM), в)частотная модуляция (FM), г) фазовая модуляция (PM)

94

Page 96: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

11.1.8 Адекватность OSI-моделиНе существует ни одной сетевой технологии, в которой бы была иде-

ально реализована вся OSI-модель с четким разделением уровней. МодельOSI далека от реальности, ее назначение - быть идеальной абстракцией.

Реальность OSI-уровниSkype 7,6,5FTP 7,3TCP 7,5,4,3

IP 3,4Wi-Fi 1,2

Fast-Ethernet 1,2

11.2 Отличие TCP от UDP

Свойство TCP UDPУстановка соединения X ×Разрыв соединения X ×Подтверждение доставки X ×Проверка контрольной суммы X XОбнаружение искаженных пакетов X XОбнаружение потерянных пакетов X ×Повторная передача потерянных/искаженных X ×

TCP применяют, если необходимо удостовериться, что все данные до-шли корректно, получив об этом подтверждение и организовав повторнуюпередачу поврежденных данных (пример: передача почты).UDP применяют либо если канал связи абсолютно надежен, либо еслинет смысла повторно передавать потерянные/искаженные пакеты (при-мер: видео-звонок), но при этом хочется сэкономить на передаче ненуж-ных служебных данных, используемых в ТСР.

95

Page 97: Балакшин П.В. Соснин В.В.œетодичка.pdf · X (q) = x n1x 2:::x 1x 0x :::x mx m Рассмотримданнуюформулунапримере: 123;45 10

11.3 Сетевые устройства

Сравнение коммутатора и маршрутизатора

Свойство Коммутатор Маршрутизатор(switch) (router)

Много (ровно поНаличие MAC-адреса Нет по одному на каждый

порт/антенну)Много (минимум по

Наличие IP-адреса Нет по одному на каждыйпорт/антенну)

Уровни OSI-модели 1,2 1,2,3Умение выбирать Нет (так как в локаль-

маршруты ной сети всегда только Даодин маршрут

Обмен данными между Обмен даннымиНазначение компьютерами внутри между несколькими

локальной сети локальными сетями

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

96