Вы находитесь на странице: 1из 151

МАТЕМАТИКА И ИНФОРМАТИКА

Ю.А. Илларионов

ВВЕДЕНИЕ

В настоящее время в сети Интернет имеется достаточное количество


материалов, относящихся к математике и информатике. К сожалению, эти
материалы разрознены и не позволяют их копирование в виде законченного
учебного пособия, пригодного как для чтения лекций, так и для изучения
студентами в процессе обучения и подготовки к экзамену. Поэтому при
написании данной книги была поставлена задача создания законченного и
достаточно компактного учебного пособия, содержащего необходимые
материалы по дисциплине «Математика и информатика».
Автор выражает глубокую благодарность всем, кто разместил свои
материалы в сети Интернет. Особую благодарность автор выражает доктору
технических наук, профессору, заведующему кафедрой «Информатика и
защита информации» ВлГУ М.Ю.Монахову, оказавшему неоценимую
помощь при написании данной книги.
Надеемся, что настоящее учебное пособие окажется полезным как для
преподавателей, ведущих дисциплину «Математика и информатика», так и
для студентов, изучающих данную дисциплину.

3
ЧАСТЬ I. МАТЕМАТИКА

Глава 1. АНАЛИТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ

1.1. Аксиоматический метод

Аксиоматический метод – один из способов дедуктивного построения


научных теорий, при котором:

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


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

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


Греции (Элеанты, Платон, Аристотель, Евклид). В дальнейшем делались
попытки аксиоматического изложения различных разделов философии и
науки (Спиноза, Ньютон и др.). Для этих исследований было характерно
содержательное аксиоматическое построение определенной теории (и только
ее одной), при этом основное внимание уделялось определению и выбору
интуитивно очевидных аксиом. Начиная со второй половины 19 века, в связи
с интенсивной разработкой проблем обоснования математики и
математической логики, аксиоматическую теорию стали рассматривать как
формальную (а с 20-30-х г.г. 20 в. – как формализованную) систему,
устанавливающую соотношение между ее элементами (знаками) и
описывающую любые множества объектов, которые ей удовлетворяют. При
этом основное внимание стали обращать на установление
непротиворечивости системы, ее зависимости от содержания, которое может
быть в них представлено, или с его учетом, различаются синтаксические и
семантические аксиоматические системы (лишь вторые представляют собой
собственно научные знания).
Это различие вызвало необходимость формулирования основных
требований, предъявляемых к ним в двух планах синтаксическом и
семантическом (синтаксическая и семантическая непротиворечивость,
полнота, независимость аксиом и т.д.).
Проблема состоит в противоречиях, которые были выявлены в процессе
развития теории, и их устранение обусловило потребность в модификации
4
аксиоматических систем. Однако, для того, чтобы избежать противоречий,
недостаточно просто восстановить пошатнувшуюся репутацию математики
как наиболее строгой науки. Принципиальное требование аксиоматики
должно быть направлено в будущее, а именно на установление того
обстоятельства, что противоречия вообще не могут быть возможны в области
знания, базирующееся на установленной системе аксиом. Исходя из этого
требования, в «Основаниях геометрии» Д. Гильберт доказал совместимость
выделенных аксиом, для которых каждое противоречие в дедукции из
геометрических аксиом необходимо сказалось бы также и в системе
арифметики действительных чисел. Не вызывает сомнений, что для областей
физического знания внутренняя совместимость также редуцируется к
совместности аксиом арифметики. Приемлемо, что эти допущения
принимались при построении математической теории в целом. Если мы
примем за аксиому, например, теорему существования
корней в теории уравнений Галуа или же теорему о существовании нулевых
точек дзета-функции Римана в теории простых чисел, то доказательство
непротиворечивости аксиоматической системы состоит только в
аналитическом доказательстве теоремы существования корней или теоремы
дзета-функции – и на первое время безопасность теории обеспечена.
Аксиоматический метод принадлежит логике. При слове «логика» у многих
возникает представление о предмете очень скучном и трудном, но сегодня
логическая наука легко понимаема и очень интересна.
Например, стало понятно, что и в повседневной жизни используются методы
и возникают понятия, требующие высокой степени абстракции, понимаемые
только с помощью неосознанного интуитивного применения
аксиоматических методов.
Рассмотрим, например, общий процесс отрицания и особенно понятия
«бесконечность». Что касается этого понятия, то необходимо уяснить, что
бесконечность лишена наглядного смысла, и без более подробного
исследования лишена всякого смысла, т.к. существует только то, что
конечно. Не существует бесконечно большой скорости, равно как и
бесконечно быстро распространяющейся силы или действия. К тому же,
действие по своей природе дискретно, и существует только квантами. Не
существует ничего континуального, сплошного, бесконечно делимого. Даже
свет обладает корпускулярной, атомистической структурой, как и действие.
Также рассмотрим абстрактные множества, встречающиеся в математике.
Как отмечал профессор А.В. Архангельский – «Важнейшей особенностью
почти всех абстрактных множеств, встречающихся в математике, является
бесконечность. После открытия парадоксов канторовской теории
бесконечных множеств у философов и участия математиков возникло
убеждение, что и в математических теориях могут оказаться скрытые
противоречия, даже если они пока и не обнаружены.
В связи с этим, определенный период философии математики определялся
исследованиями по основаниям математики с целью преодолеть парадоксы
теории множеств и закрепить «виновные» в этом способы в изюбленной
5
афористической манере Людвиг Витгенштейн, подчеркивая различие
функций и проблем математиков и философов, повторяет, что «в математике
есть только математические трудности, а вовсе не философские». Философ
может вмешиваться только тогда, когда у математиков возникает « чувство
дискомфорта» в работе. Поэтому и задача философии математики по
Витгенштейну, является в сущности «терапевтической», способной вносить в
успокоение, а в противоречиях и парадоксах их теорий они разберутся сами.
«Зачем математике нужно обоснование?! Я полагаю, - говорит он,- оно
нужно ей не впечатлениях, нужен их анализ». Многие профессионально
работающие математики, не связанные напрямую «с математическими
проблемами оснований», вполне могут согласиться с Витгенштейном в том,
что эти основания в столь же малой степени лежат для них в основе
математики, в какой нарисованная скала поддерживает нарисованную на ней
крепость.
Все, что может быть объектом научного исследования в целом, и,
поскольку оно созревает для оформления в теорию, прибегает к
аксиоматическому методу и через нее косвенно к математике. В
свидетельствах аксиоматического метода, как представляется, математика
призвана играть лидирующую роль в науке в целом.

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

Система счисления - совокупность приемов и правил для записи чисел


цифровыми знаками. Наиболее известна десятичная система счисления, в
которой для записи чисел используются цифры 0,1,...,9. Способов записи
чисел цифровыми знаками существует бесчисленное множество. Любая
предназначенная для практического применения система счисления должна
обеспечивать:
а) возможность представления любого числа в рассматриваемом
диапазоне величин;
б) единственность представления (каждой комбинации символов должна
соответствовать одна и только одна величина);
в) простоту оперирования с числами.

1.3. Позиционные и непозиционные системы

Все системы представления чисел делят на позиционные и


непозиционные.

6
Непозиционная система счисления - система, для которой значение
символа не зависит от его положения в числе. Принципы построения таких
систем не сложны. Для их образования используют в основном операции
сложения и вычитания. Например, система с единым символом - палочкой -
встречалась у многих народов. Для изображения какого-то числа в этой
системе нужно записать количество палочек, равное данному числу. Эта
система не эффективна, так как запись числа получается длинной. Другим
примером непозиционной системы счисления является римская система,
использующая набор следующих символов: I, X, V, L, C, D, M и т.д. В этой
системе существует отклонение от правила независимости значения цифры
от положения в числе. В числах LX и XL символ X принимает два различных
значения : +10 - в первом случае и -10 - во втором.

Позиционная система счисления - система изображения чисел, в


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

Самыми распространенными в вычислительной технике являются


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

Десятичная система имеет широкое применение в повседневной


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

Любая позиционная система счисления характеризуется основанием q -


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

1.4. Десятичные числа

Система счисления с основанием q = 10 (десятичная) представляет


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

8. Например, рассмотрим число 765,49.

Вес
Номер позиции (разряда) 2 1 0 -1 -2
Цифры числа 7 6 5 4 9

Число = = 765,49

Всего в десятичной системе счисления 10 различных символов - цифр, с


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

1.5. Q - ичные числа

Аналогично десятичной может быть построена система счисления с


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

Пусть - цифра числа в системе счисления с основанием q. Она может


принимать целые значения от 0 до (q-1). Например, q=3; .
В общем виде число в произвольной системе счисления запишется в
форме
, (4.1)

что означает
,
или
n-1
Aq = ai • q i . (4.2)
i=-m

Слева от точки (запятой) расположена целая часть числа, всего n


разрядов от 0-го до (n-1)-го, справа - дробная часть - m разрядов от (-1)-го до
(-m)-го.

8
Принято формулу (4.1) называть сокращенной, а (4.2) –
полиномиальной.

Для вышеназванных систем счисления приведем обозначения цифр

q = 10 : = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
q=8: = 0, 1, 2, 3, 4, 5, 6, 7;
q=2: = 0, 1;
q = 16 : = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A , B , C , D , E , F;
Десятичное значение 10, 11, 12, 13, 14, 15

Пользуясь формулой для числа, записанного в системе с основанием, не


равным 10, можно найти его десятичный эквивалент. При этом учитываем,
что 1 и 0 - цифры, имеющие одинаковый смысл в любой системе счисления.

Пример 1

A 8 = 132; A 10 = ?;

A 10 = 132 8 = (1 • 8 2 + 3 • 8 1 + 2 • 8 0) 10 = (64 + 24 + 2) 10 = 9010.

Пример 2.

= 100110; = ?;

= = (1 • 25 + 1 • 22 + 1 • 21)10 = = .

Пример 3.

= A9; = ?;

= = • 161 + 9 • 160)10 = = .

Пример 4.

= 0,24; = ?;

= = • 8-1 + 4 • 8-2)10 = .

9
Пример 5.

= 0,101; = ?;

= = • 2-1 + 1 • 2-3)10 = .

Пример 6.

= 0,C; = ?;

= = • 16-1 10 = .

1.6. Перевод чисел из одной системы в другую

Пусть - целое число, представленное в системе счисления с основанием


p. Его необходимо перевести в систему счисления с основанием q. Это
значит, что для

необходимо найти коэффициенты разложения по степеням .


Разделим на

Если деление выполнено нацело, то - остаток от деления, причем < .


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

Пример 1.

Перевести число в двоичную (q = 2) систему счисления :


.

_27 2
26 _13 2
12 _6 2

10
6 _3 2
2 _1 2
0 0

В квадратных скобках - остатки от деления. Перевод остатков в


двоичную систему счисления не нужен, так как десятичные цифры 0 и 1
тождественны таким же двоичным.

Итак: = =11011.

Пример 2.

q= = .

_11011 1010
1010 _10 1010
=[101] 0 0
=[10]

;
.

Ответ: .

Для удобства перевода остатков в соответствующую систему счисления


составим таблицу и последующий перевод будем делать по ней.

q=1 0 1 2 3 4 5 6 7 8 9 A B C D E F
6
q=10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
q=8 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
q=2 00000001001000110100010 0110011110001001101010111100110111101111
1

Из таблицы видно, что для записи любой шестнадцатеричной или


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

11
Пример 3.

Выполнить деление в шестнадцатеричной системе счисления


неудобно, поэтому перевод 1610 лучше сделать непосредственно :

= 256 + 32 + 8 = .

_296 2
296 _148 2
=0 148 _74 2
=0 74 _37 2
=0 36 _18 2
=1 18 _9 2
=0 8 _4 2
=1 4 _2 2
=0 2 _1 2
=0 0 0
=1

Отметим, что перевод в двоичную систему счисления может оказаться


очень длинным.

При переводе из двоичной системы счисления в шестнадцатеричную


выполняется последовательное деление на . Каждое деление на 10000
переносит запятую на 4 позиции влево. Четырехразрядный остаток от
деления по таблице заменяется шестнадцатеричным эквивалентом. Поэтому
при переводе 216 число разбивается справа налево на четырехразрядные
группы - тетрады, каждая из которых затем должна быть заменена на
шестнадцатеричную цифру.
Перевод 28 аналогичен, но , в связи с чем разбиение
двоичного исходного числа производится на трехразрядные группы -
триады с их заменой согласно таблице.

Пример 4.

1010101101102 = ?16 = ?8.

2 = AB616.

12
2 = 52668.

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

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


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

Алгебру логики иногда называют алгеброй Буля, или булевой алгеброй, по


имени ее создателя - Джоржа Буля - английского математика (кстати, отца
Этель Л. Войнич, написавшей «Овод»). Основные результаты теории были
сформулированы им в книге «Исследование законов мышления», изданной в
1854 году. Во введении Буль писал, что назначение трактата - исследовать
основные законы тех операций ума, посредством которых производится
рассуждение, выразить их на символическом языке некоторого исчисления и
на этой основе установить науку логику и построить ее метод.
Глава содержит краткие сведения о логических переменных, основных
операциях, построении и преобразовании логических функций.

Начальные сведения

Основным объектом изучения математической логики являются


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

13
обычном смысле неразрешимой. Этот принцип называют принципом
двузначности.
Все научные знания (законы и явления физики, химии и биологии,
математические теоремы и т.д.), события повседневной жизни, ситуации,
возникающие в процессах управления, формулируются в виде высказываний.
Примерами указанных высказываний являются:
«35 делится на 7»,
«Москва – столица России».
Все они имеют значение истинности «истина».
Следующие высказывания имеют значение истинности «ложь»:
«Мышь больше слона»,
«Молодые лошади называются щенятами»,
«6 больше 8».
Повелительные («Войдите, пожалуйста!»), вопросительные («Знаешь
ли ты информатику?») и бессмысленные предложения не являются
высказываниями.

Если логика имеет дело со смыслом высказываний, то в алгебре логики


работают с формулами. Любое элементарное высказывание обозначается
малой буквой латинского алфавита (в нашем повествовании - хi), совершенно
так же, как в элементарной алгебре обозначаются величины, когда мы
абстрагируемся от того, какие именно предметы изучаются, нас интересует
только их количество и соотношение между ними.
Поскольку высказывание может принимать одно из двух значений, то
говорят о «переменных высказываниях». Это означает, что рассматривается
не только конкретно определенное высказывание хi, но также некоторая
логическая переменная хi, которую можно использовать для обозначения
произвольного высказывания. Замещение переменной конкретным
высказыванием означает предоставления одного из значений “истина” или
“ложь”.
Итак, в алгебре логики в каждом высказывании мы будем отвлекаться от всех
особенностей высказывания, кроме одного - истинно оно или ложно.
Истинное высказывание условно обозначается единицей (если x1 -
высказывание «35 делится на 7», то x1 = 1), а ложное - нулем (если x2 -
высказывание «мышь больше слона», то x2 = 0).

Таким образом, диапазон изменения переменного – xi в алгебре логики


существенно меньше, чем изменение переменного в элементарной алгебре:
оно принимает только одно из двух значений - или 1, или 0.

Из элементарных высказываний с помощью логических связок «и», «или»,


«не», «если … то» и других (логических операций) строятся сложные
высказывания – формулы (или функции) алгебры логики.

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

Сущность алгебраического подхода к логике поясним на примере


элементарной алгебры – алгебры арифметики. Основные объекты алгебры
арифметики – выражения (формулы), состоящие из букв, знаков операций и
скобок. С формулами производят процедуры двух типов: вычисления и
преобразования.
Вычисления - вместо букв подставляют числа, знаки указывают
действия, а скобки их порядок. Каждая формула задает функцию.
Переменные - буквы формулы.
Преобразование формулы происходит так: исходная формула или ее
часть F1 заменяется другой, в результате получается новая формула F2,
которая эквивалентна F1 (т.е. при любых значениях аргументов F1 и F2 дают
один и тот же результат). Преобразование выражений производится на
основе законов арифметики, а также полученных из них соотношений типа
(a + b) 2 = a 2 + 2ab + b 2 и т.п.
По аналогии строится алгебра логики. Она рассматривает логические
выражения как алгебраические, которые можно преобразовать по
определенным правилам. Разница заключается в том, что в выражениях
алгебры логики переменные являются логическими (0 и 1). Знаки операций
обозначают логические операции (логические связки).

В логических задачах исходными данными являются суждения, подчас


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

Основные логические операции

В алгебре логики основными (элементарными) операциями являются


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

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


частице не. Функция, получающаяся в результате применения операции
отрицания к высказыванию , обозначается так: . Читается «не икс».
Заметим, что в математической логике до сих пор нет единых обозначений,
15
поэтому вместо можно встретить и другие обозначения, смысл которых тот
же самый, например, или .

Новое сложное высказывание - ложно при условии, что


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

1 0
0 1

Пример 1. Обозначим суждение (высказывание) «Я иду в кино» через ,


а суждение «Я достаю билеты в театр» через . Тогда в сложном
суждении «Если я завтра достаю билеты в театр, то не иду в кино ( =
1, = 0) , а если я не достану билеты в театр, то пойду в кино ( = 0, =
1)» высказывания и связаны между собой операцией отрицания: = .

Логическое умножение (будем называть как в математической логике -


конъюнкцией). Обозначается  Другие обозначения:  , &
.Читается «икс один и икс два».
Это сложное суждение, которое истинно только в том случае, когда и
суждение x1, и суждение x2 истинны. В остальных случаях сложное
высказывание ложно.
Таблица истинности для конъюнкции (логического умножения):


0 0 0
0 1 0
1 0 0
1 1 1

Пример 2. Рассмотрим условия, необходимые для получения человеком


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

=   (или = ).

Суждение будет истинным ( = 1) только в том случае, если истинны


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

Логическое сложение (дизъюнкция). Обозначается  . Читается


«икс один или икс два». Знак «» взят из латинского языка, в котором есть
союз «Vel», означающий или то, или другое, или то и другое вместе. Vel
более точно определяет суть логического сложения, чем русский союз или,
так как последний, кроме значения или то, или другое, или то и другое
вместе, имеет еще и другое значение - или только то, или только другое.
Логическое сложение выражает суждение (сложное высказывание),
которое истинно в том случае, если хотя бы одно из суждений истинно.
Таблица истинности логического сложения:


0 0 0
0 1 1
1 0 1
1 1 1

Пример 3. Боря давно хотел иметь книгу «Основы информатики и


вычислительной техники», где рассматриваются вопросы алгебры логики. Он
попросил своих товарищей Андрея и Валерия, чтобы они обязательно купили
для него эту книгу, если она им попадется. У Бориса будет книга (суждение
) при выполнении равенства:

=  ,

где - высказывание «Андрей купил книгу»,


- высказывание «Валерий купил книгу».
Высказывание =  не исключает случая, что книгу купят и
Андрей, и Валерий.

Сложение по модулю 2 (исключающее или). Обозначается .


Определяет операцию выбора, когда ложным является как отказ от выбора

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


0 0 0
0 1 1
1 0 1
1 1 0

Импликация. Обозначается  . Логически реализует связку


естественной речи «если … то». Импликация определяется следующим
образом:


0 0 1
0 1 1
1 0 0
1 1 1

Например, в профессиональной речи следователь часто логически


рассуждает примерно так: «Если кража произошла до полуночи, то наверняка
это совершил Вольдемар». Нетрудно заметить, что два высказывания: -
«Кража произошла до полуночи» и - «Вор - Вольдемар» связаны
операцией импликации  .
Данное умозаключение будет истинным, если при истинном истинно
. Логическое выражение будет ложным, если при истинном оказывается
ложным .
Замечание.
Если = 0 (высказывание – предположение ложно, или, говорят,
ложная посылка), то (следствие) может быть как истинным («Вор -
Вольдемар», =1), так и ложным («Вор – не Вольдемар», = 0). Но
логического смысла выражение не имеет.
Данное положение вещей выражается с помощью поговорки «ex falso guod
libet», или «из ложной посылки можно вывести всякое».
В обычной речи такие высказывания не имеют значения, поскольку
выражения типа «Если кто-то сумасшедший, то 5 меньше 2»
рассматриваются как бессмысленные. Это связано с тем, что в обычной речи
предусматривается содержательная связь, причинные отношения между

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

Эквивалентность. Эквивалентностью (или эквиваленцией) двух


высказываний и называется новое высказывание, которое считается
истинным, когда оба высказывания и либо одновременно истинны,
либо одновременно ложны, и ложным - во всех остальных случаях.
Эквивалентность высказываний и обозначается символом 
(или = , или  ), читается «для того, чтобы , необходимо и
достаточно, чтобы » или « тогда и только тогда, когда ».
Высказывания и называются членами эквивалентности.

Логические значения операции эквивалентности описываются


следующей таблицей истинности.


0 0 1
0 1 0
1 0 0
1 1 1

Например, эквивалентность «Треугольник SPQ с вершиной S и


основанием PQ равнобедренный тогда и только тогда, когда угол P равен
углу Q» является истинной, так как высказывания «Треугольник SPQ с
вершиной S и основанием PQ равнобедренный» и «В треугольнике SPQ с
вершиной S и основанием PQ угол P равен углу Q» либо одновременно
истинны, либо одновременно ложны.

Эквивалентность играет важную роль в математических


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

Итак, мы дали определения элементарных логических операций. Они


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

  ,

19
,

представляют формулы алгебры высказываний.

Так же, как и в алгебре арифметики, в алгебре логики устанавливается


приоритет выполнения логических операций. Они упорядочены в следующей
последовательности:
 отрицание,
 конъюнкция,
 дизъюнкция,
 импликация,
 эквивалентность.

При этом отрицание является наиболее сильной операцией,


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

имеют одинаковые значения.

Истинность составных высказываний (логических формул),


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

ЛОГИЧЕСКИЕ ФУНКЦИИ

Логической функцией называется функция , которая, так


же как и ее аргументы, может принимать только два значения (0 и 1).

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


набору присваивается номер N, равный двоичному числу, образованному
значениями аргументов на этом наборе. Условимся, что младшему разряду
этого числа соответствует значение аргумента со старшим индексом, и
наоборот.
Итак:
,
где n – общее число переменных.

20
Например, пусть логическая функция зависит от трех переменных
. Тогда набор =1, =1, =0 будет иметь номер .

Любую логическую функцию можно задать таблицей истинности, в


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


набора
0 Значение
Набор значений
1 функции
аргументов
… (0 или 1)

Число строк таблицы равно (число всех возможных наборов из n


аргументов). Число различных функций n переменных равно в степени -
числу возможных расстановок нулей и единиц в столбце с строками.

Пусть n = 1. Таблица содержит две строки, а самих функций -


четыре.

№ №
набора набора
0 0 0 0 0 0
1 1 0 1 1 1

Константа 0 Повторение

№ №
набора набора
0 0 1 0 0 1
1 1 0 1 1 1
Отрицание Константа 1

Для n = 2 таких функций шестнадцать. Наиболее


употребляемые из них:



набop
набopа
а

21
0 0 0 0 0 0 0 0
1 0 1 1 1 0 1 0
2 1 0 1 2 1 0 0
3 1 1 1 3 1 1 1

Дизъюнкция Конъюнкция

№ №
набopа набop
а
0 0 0 1 0 0 0 1
1 0 1 1 1 0 1 0
2 1 0 1 2 1 0 0
3 1 1 0 3 1 1 0

Штрих Шеффера Стрелка Пирса

(“И – НЕ”) (“ИЛИ – НЕ”)



набop
набopа
а
0 0 0 1 0 0 0 1
1 0 1 1 1 0 1 0
2 1 0 0 2 1 0 0
3 1 1 1 3 1 1 1
Эквивалентность
(равнозначность)
Импликация
или =
,
или  .

Числовой способ задания логической функции. Логическую


функцию от n аргументов будем еще обозначать символом . Если к тому
же известно, что она равна 1 на наборах с номерами , то
будем записывать это в виде:

Например, для функции «Штрих Шеффера» .


22
35. Если известно, что равна 0 на наборах с номерами
, то будем записывать это в виде:

Например, для « Стрелки Пирса » .

Аргументы (переменные) и булевы функции с определенными на них


элементарными операциями “отрицание”, “конъюнкция” и “дизъюнкция”
образуют алгебру Буля (булеву алгебру).

В этой алгебре справедливы следующие основные соотношения,


тождества, правила и законы.

 Основные соотношения:

, ,
, ,
, , ,
, , .

 Основные тождества:

,
, , .

 Основные правила:

а) правило де Моргана:

, ;
б) конъюнктивное поглощение ( поглощает ):

в) дизъюнктивное поглощение ( поглощает ):

г) конъюнктивное склеивание по :

23
д) дизъюнктивное склеивание по :

е) конъюнктивное развертывание по :

ж) дизъюнктивное развертывание по :

 Основные законы:

а) ассоциативность дизъюнкции и конъюнкции:

б) коммутативность дизъюнкции и конъюнкции:

, ;
в) дистрибутивность конъюнкции относительно дизъюнкции:

г) дистрибутивность дизъюнкции относительно конъюнкции:

Вычисление логических функций. Если задана булева функция в виде


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

Пример 4.

Дана булева функция . Необходимо построить


ее таблицу истинности.
24
Решение.

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


получается на соответствующем наборе, начиная с набора
,
кончая набором
.

При вычислении пользуемся соотношениями:

;
;
; ;
; ;
; .
Результаты сведем в таблицу:


набо
ра
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 0
7 1 1 1 0

От заданной таблицы всегда можно перейти к формуле


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

Аналитическое представление булевых функций

25
Конституенты единицы. Булеву функцию, равную 1 только на одном
наборе аргументов, называют конституентой единицы. Будем обозначать
конституенту единицы, зависящую от n аргументов, символом: , где N -
номер конституенты, равный номеру набора, на котором она равна 1.
записывают в виде конъюнкции всех аргументов, взятых с
отрицаниями или без них, по правилу: отрицания ставятся над аргументами,
которые на наборе с номером N равны 0.

Пример 5.

Перечислить конституенты 1 функции, представленной таблицей


истинности примера 4.
Решение.
, , .

Конституенты нуля. Булеву функцию, равную 0 только на одном


наборе аргументов, называют конституентой нуля. Будем обозначать
конституенту нуля, зависящую от n аргументов, символом , где N - номер
конституенты, равный номеру набора, на котором она равна 0.

записывают в виде дизъюнкции всех аргументов, взятых с


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

Пример 6.

Перечислить конституенты 0 логической функции, заданной в примере


4.

Решение.

, , ,
, .

Совершенная дизъюнктивная и совершенная конъюнктивная


нормальные формы булевой функции.
Совершенная дизъюнктивная и совершенная конъюнктивная
нормальные формы (СДНФ и СКНФ) относятся к числу канонических форм
представления функций. Любая булева функция представима в СДНФ
(кроме константы 0) и СКНФ (кроме константы 1). Запись произвольной
булевой функции в этих формах проста и удобна для последующих
преобразований. СДНФ и СКНФ у каждой функции единственны.

СДНФ функции есть дизъюнкция всех ее конституент единицы.

26
Пример 7.

Записать в СДНФ булеву функцию, заданную таблицей примера 4.


Решение.

Конституенты 1 этой функции представлены в примере 5. Объединим их


знаком дизъюнкции:

46. СКНФ функции есть конъюнкция всех ее конституент нуля.

Пример 8.

Записать в СКНФ булеву функцию из примера 4.

Решение.

Минимизация булевых функций. Задача минимизации булевой


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

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

Пример 9.

Показать, что , где ,а .


Решение.

Умножим (логически) на - логическую единицу:

27
.

Воспользуемся тождествами , правилом дизъюнктивного


поглощения . Окончательно получим:

Пример 10.

Упростить логическую функцию

Решение.

Раскроем скобки, выполнив логическое умножение. В результате


получим:

= .

Так как , то , , . Выражение .


Следовательно,

Пример 11.

Упростить булеву функцию .

Решение.

Учитывая, что , получим:


=

Пример 12.

Упростить логическую функцию

28
Решение.

Учитывая, что , получим:

Используя соотношение (смотри пример 9), получим:


, .
Тогда:
.

Для выражения в круглых скобках воспользуемся правилом де Моргана


: .

Следовательно, .

Воспользуемся опять соотношением .

Окончательно получаем:

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


набор . .
а
0 0000 0 0
1 0001 1 1
2 0010 1 1
3 0011 1 1
4 0100 0 0
5 0101 1 1
6 0110 1 1
7 0111 1 1
8 1000 1 1
9 1001 1 1
10 1010 1 1
29
11 1011 1 1
12 1100 0 0
13 1101 1 1
14 1110 1 1
15 1111 1 1

Видно, что таблицы истинности идентичны.

Замечание.

Упрощать эквивалентными преобразованиями можно любое логическое


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

Графический подход.

Минимизацию удобно проводить с использованием карт Карно. Карта


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

Карта Карно функции трех переменных :

Здесь соседними клетками являются также клетки, расположенные в


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

Пример 13.

Минимизировать , заданную ее СДНФ (пример 7) с помощью


карты Карно.

Решение.

Карта Карно функции:

Контур 1,
1 описывается как
1
1 контур 2,
описывается как

Итак:

Приведем карту Карно для булевой функции четырех переменных.

Для этой диаграммы соседними считаются также клетки,


расположенные в нижних и верхних строках. Для этой карты возможно
склеивание по два, четыре или восемь членов.

Пример 14.
31
Упростить логическую функцию .
Решение.

Перечислим конституенты1 данной функции:

, , , , ,

, , ,

, ,

Составим карту Карно для этой функции:

1
1 1 1
1 1 1 1
1 1 1

Окончательно:

Алгоритмы решения логических задач

Решить логическую задачу – значит, найти истинное высказывание,


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

Последовательность решения логической задачи:


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

Пример 15.

Дана логическая задача. Алексей, Борис и Валерий нашли в земле сосуд.


Рассматривая удивительную находку, они выразили предположения:
Алексей: «Это греческий сосуд и изготовлен в V веке»;
Борис: «Это финикийский сосуд и изготовлен в III веке»;
Валерий: «Это сосуд не греческий и изготовлен в IV веке».
Впоследствии оказалось, что каждый из них прав только в одном из двух
предположений. Где и в каком веке изготовлен сосуд?

Решение.

Обозначим символами высказывания:

х1 - «Найденный сосуд греческий»,


х2 – «Найденный сосуд финикийский»,
х3 – «Сосуд изготовлен в V веке»,
х4 – «Сосуд изготовлен в III веке»,
х5 – «Сосуд изготовлен в IV веке».
Запишем сложные высказывания – предположения школьников:

х1х3 – «Сосуд греческий и изготовлен в V веке» (Алексей).

По условию задачи известно, что это высказывание ложно: Алексей прав


только в чем-то одном, т.е. х1=1, х3=0 или х1=0, х3=1. Истинным же будет
высказывание:
.

х2х4 – «Сосуд финикийский и изготовлен в III веке» (Борис).

Рассуждая аналогично, получим:

33
.

Высказывание Валерия определяет логическое равенство:

Итак, имеем систему уравнений:

,
,
.

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


стране, то есть .
Сосуд может быть изготовлен только в одном веке:

, , .

Сведем три истинных высказывания системы в одно. Чтобы новое


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

Х=( )( )( ) .
Таким образом, решить задачу – значит указать, при каких значениях х1,
х2, х3, х4, х5 сложное высказывание Х истинно.
Найти набор, при котором Х = 1 можно, вычисляя значения Х на всех
возможных наборах, заполняя таблицу истинности.
Видно, что набор N=12 единственный, при котором Х=1. Комбинация
истинных высказываний: сосуд финикийский (х2=1) и изготовлен в V веке
(х3=1).

№ набора х1х2х3х4х5 Х=( )( )


( ) .

0 0 0 0 0 0 0
1 0 0 0 0 1 0
2 0 0 0 1 0 0
3 0 0 0 1 1 0
4 0 0 1 0 0 0
5 0 0 1 0 1 0
6 0 0 1 1 0 0
7 0 0 1 1 1 0
8 0 1 0 0 0 0
9 0 1 0 0 1 0
10 0 1 0 1 0 0
11 0 1 0 1 1 0
34
12 0 1 1 0 0 1
13 0 1 1 0 1 0
14 0 1 1 1 0 0
15 0 1 1 1 1 0
16 1 0 0 0 0 0
17 1 0 0 0 1 0
18 1 0 0 1 0 0
19 1 0 0 1 1 0
20 1 0 1 0 0 0
21 1 0 1 0 1 0
22 1 0 1 1 0 0
23 1 0 1 1 1 0
24 1 1 0 0 0 0
25 1 1 0 0 1 0
26 1 1 0 1 0 0
27 1 1 0 1 1 0
28 1 1 1 0 0 0
29 1 1 1 0 1 0
30 1 1 1 1 0 0
31 1 1 1 1 1 0

Другой способ решения этой задачи заключается в упрощении функции


Х(х1, х2, х3, х4, х5) с использованием основных тождеств, правил и законов
алгебры логики.
Произведем преобразования:

Х=( )( )( )=

= .

Учитывая, что х1х2 = 0 и х3х4 = 0 :

Х = =

= .

Учитывая, что и , окончательно получим:

Х= .

Это означает, что Х = 1 только при совпадении: х1 = 0, х2 = 1, х3 = 1, х4 = 0,


х5 = 0, т.е. сосуд – финикийский, изготовлен в V веке.

Пример 16.

Вернувшись домой, Мегрэ позвонил на набережную Орфевр.


- Говорит Мегрэ. Есть новости?
- Да, шеф. Поступили сообщения от инспекторов. Торранс установил,
что если Франсуа был пьян, то либо Этьен убийца, либо Франсуа лжет.

35
Жуссье считает, что Этьен – убийца, или Франсуа не был пьян, и убийство
произошло после полуночи. Инспектор Люка просил передать, что если
убийство было совершено после полуночи, то либо Этьен убийца, либо
Франсуа лжет. Затем звонила … .
- Все. Спасибо. Этого достаточно. – Комиссар положил трубку. Он
знал, что трезвый Франсуа никогда не лжет. Теперь он знал все.
Какой вывод сделал Мегрэ?

Решение.

Рассмотрим высказывания:
х1 - «Франсуа был пьян»,
х2 – «Этьен - убийца»,
х3 – «Франсуа лжет»,
х4 – «Убийство произошло после полуночи».
Выразим высказывания инспекторов формулами (составные
высказывания).

Торранс: (Импликация – «если … то»).

Жуссье: .

Люка: .

Так как эти высказывания предполагаются истинными, то истинной


будет и их конъюнкция F:

Освободимся от импликации с помощью формулы :

Раскрыв скобки и выполнив несложные преобразования, получим:

Таким образом, из показаний инспекторов следует, что или Этьен


убийца, или одновременно имели место три обстоятельства: Франсуа солгал
(х3), Франсуа не был пьян ( ), убийство произошло после полуночи (х4).
Так как («Трезвый Франсуа не лжет»), то .
Следовательно, истинно х2, то есть убийца – Этьен.

36
1.8. Элементы дискретной математики

Основные понятия теории множеств. Множеством называется набор


элементов, объединенных общим признаком). Выделяют четыре типа
предопределенных множеств: N – множество натуральных чисел 1,2,3, 4, …;
P – множество простых чисел 2, 3, 5, 7, 11, …; Z – множество целых чисел
…, -2, -1, 0, 1, 2, …; R – множество вещественных чисел.

Задать множество (определить правила принадлежности ему


некоторого элемента) можно следующими способами.

1. Перечислением элементов.

M = {a1, a2, … , an}

Например: M = {1,2,3,4,5}

2. Характеристическим предикатом.

M = {x | P(x)}

Например: M = {n | n N & n < 10}

3. Порождающей процедурой.

M = {x | x := f}

Например: M = {n | for n from 1 to 10 do begin … end}

Множества могут быть конечными и бесконечными. Конечным


называется множество, количество элементов в котором ограничено.
Множество называется счетным, если все входящие в него элементы
перенумерованы. Информатика, как правило, имеет дело с конечными
счетными множествами.

Мощность конечного множества определяется количеством входящих в


него элементов и обозначается как |M|. Если |A| = |B|, то множества А и В
называются равномощными.

Сравнение множеств. Множество А содержится в множестве В


(множество В включает множество А), если каждый элемент А есть элемент
В.
37
В этом случае А называется подмножеством В, а В – надмножеством А.
Если , то А называется собственным подмножеством В. Заметим,
что . По определению .
Два множества равны, если они являются подмножествами друг друга.

Операции над множествами. Обычно рассматриваются следующие


операции над множествами.

1. Объединение.

2. Пересечение.

3. Разность.

4. Симметрическая разность.

5. Дополнение.

Операция дополнения подразумевает существование некоего универсума

Например: A = {1, 2, 3}, B = {3, 4, 5}. Тогда

Операции пересечения и объединения допускают следующее


обобщение. Пусть I – некоторое множество, элементы которого

38
используются как индексы, и пусть для любого множество Аi известно.
Тогда

Кванторы теории множеств. В теории множеств рассматриваются два


квантора: квантор существования и квантор всеобщности.

Квантор существования свидетельствует о том, что в множестве


присутствует хотя бы один элемент с указанными свойствами.
Например, читается так: в множестве индексов I
существует индекс i такой, что в множестве A найдется хотя бы один элемент
xi > 10.

Квантор всеобщности свидетельствует о том, что все элементы


множества обладают указанными свойствами.
Например, читается так: все элементы xi счетного
множества A больше 10.

Множество всех подмножеств множества A называется булеаном и


обозначается 2М.

1.9. Основные понятия теории вероятностей

Случайным (стохастическим) экспериментом или испытанием называется


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

39
Множество всех элементарных исходов случайного эксперимента
называется пространством элементарных исходов. Будем обозначать
пространство элементарных исходов буквой  (омега большая) i-й
элементарный исход будем обозначать  i ( – омега малая).
Если пространство элементарных исходов содержит n элементарных
исходов, то
 =( 1,  2 ,...,  n).
Для троекратного подбрасывания монеты,
 =(ГГГ, ГГЦ, ...ЦЦЦ).
Если случайный эксперимент – подбрасывание игральной кости, то 
=(1,2,3,4,5,6).
Если  конечно или счетно, то случайным событием или просто
событием называется любое подмножество  .
Множество называется счетным, если между ним и множеством N
натуральных чисел можно установить взаимно-однозначное соответствие.
Пример счетного множества: множество возможных значений времени
прилета инопланетян на Землю, если время отсчитывать с настоящего
момента и исчислять с точностью до секунды.
Примеры несчетных множеств: множество точек на заданном отрезке,
множество чисел x, удовлетворяющих неравенству 1< x  2.
В случае несчетного множества  будем называть событиями только
подмножества, удовлетворяющие некоторому.
Приведем примеры событий. Пусть бросается игральная кость, и
элементарным исходом считается выпавшее число очков:  =(1,2,3,4,5,6). A –
событие, заключающееся в том, что выпало четное число очков: А=(2,4,6); B
– событие, заключающееся в том, что выпало число очков, не меньшее 3-х:
B=(3,4,5,6).
Говорят, что те исходы, из которых состоит событие А,
благоприятствуют событию А.
События удобно изображать в виде рисунка, который называется
диаграммой Венна. На рисунке 1 пространство элементарных исходов 
изображено в виде прямоугольника, а множество элементарных исходов,
благоприятствующих событию A, заключено в эллипс. Сами исходы на
диаграмме Венна не изображаются, а информация о соотношении между их
множествами содержится в расположении границ соответствующих
областей.

Сумма, произведение, разность событий.

40
Суммой (объединением) двух событий А и B (обозначается )
называется событие, состоящее из всех элементарных исходов,
принадлежащих по крайней мере одному из событий А или B. Объединение
событий А и В изображено на рисунке 2 в виде заштрихованной области.

Приведем пример объединения событий. Пусть два стрелка стреляют в


мишень одновременно, и событие А состоит в том, что в мишень попадает 1-
й стрелок, а событие B – в том, что в мишень попадает 2-й. Событие
означает, что мишень поражена, или, иначе, что в мишень попал хотя бы
один из стрелков.

Произведением (пересечением) событий А и B называется


событие, состоящее из всех тех элементарных исходов, которые принадлежат
и А и B. На рисунке 3 пересечение событий А и B изображено в виде
заштрихованной области. В условиях приведенного выше примера событие
заключается в том, что в мишень попали оба стрелка.
Разностью А\B или А–B событий А и B называется событие, состоящее из
всех исходов события А, не благоприятствующих событию B. Диаграмма
Венна разности событий А и B изображена на рисунке 4.
В условиях рассмотренного выше примера событие А\B заключается в
том, что первый стрелок попал в мишень, а второй промахнулся.
Событие  называется достоверным (оно обязательно происходит в
результате случайного эксперимента).

41
Пустое множество  называется невозможным событием. Событие
= \A называется противоположным событию А или дополнением события
А.
События А и B называются несовместными, если нет исходов,
принадлежащих и А и B, то есть =  . На рисунке 5 изображены
несовместные события А и B.
Событие В будем называть следствием события А, если все исходы
события А благоприятствуют событию В. То, что из А следует В
записывается символом А В и изображается на диаграмме Венна так, как
это показано на рисунке 6.
Непосредственно из введенных определений следуют равенства:
; A = ; ; . Два последних
равенства называются формулами Де'Моргана.
Примеры задач по теории вероятностей.
1. Три стрелка стреляют по одной мишени, и каждый попадает или
промахивается независимо от результатов выстрелов других стрелков.
Вероятности попадания в мишень для каждого из стрелков, соответственно,
равны: 0,8; 0,7; 0,5. Определить вероятности следующих событий:
а) все три стрелка попали в мишень;
б) хотя бы один стрелок попал в мишень;
в) в мишень попали два стрелка.
Решение.
а) Так как здесь рассматриваются независимые события, вероятность
попадания в мишень всех трёх стрелков равна произведению вероятностей
попадания каждого:
P = 0,8 0,7 0,5 = 0,28
б) Обозначим это событие А. Ему благоприятствует несколько
несовместимых исходов, например, такой: {первый стрелок попал в мишень,
второй не попал, третий попал}. Вместо того, чтобы рассматривать все эти
исходы, возьмём событие – дополнение события А или, иначе, событие,
противоположное событию А. Оно состоит в том, что все три стрелка не
попали в мишень. Его вероятность равна:
(1 – 0,8)  (1 – 0,7)  (1 – 0,5) = 0,5
Теперь можно определить вероятность интересующего нас события:
Р(А) = 1 – Р( ) = 1 – 0,5 = 0,5
в) Этому событию благоприятствуют три исхода:
* {первый попал, второй попал, третий не попал} – c вероятностью
0,8  0,7  (1 – 0,5) = 0,28
** {первый попал, второй не попал, третий попал} – c вероятностью
0,8  (1 – 0,7)  0,5 = 0,12
*** {первый не попал, второй попал, третий попал} – c вероятностью
(1 – 0,8)  0,7  0,5 = 0,07

42
Очевидно, что эти исходы несовместимы, и поэтому вероятность их
объединения, представляющего собой событие А, равна сумме их
вероятностей:
Р(А) = 0,28 + 0,12 + 0,07 = 0,47
2. Брошено три игральных кости. Найти вероятности следующих событий:
а) выпало три шестёрки;
б) выпало три шестёрки, если известно, что на одной из костей выпала
шестёрка.
Решение.

а) Здесь ответ очевиден:


б) Обозначим через А событие, состоящее в выпадении трёх шестёрок, а
через В – в выпадении шестёрки хотя бы на одной кости. Тогда Р(А/В) –
искомая вероятность. Событие А В в данном случае совпадает с событием

А, откуда следует: Р(А В) = . Вероятность события В равна разности


единицы и вероятности события , противоположного событию В, то есть

выпадения трёх чисел, отличных от шестёрки. Вероятность равна .

Отсюда следует: Р(В) = . В результате получается:

Р(А/В) =
3. Из 20 студентов, находящихся в аудитории, 8 человек курят, 12 носят
очки, а 6 и курят и носят очки. Одного из студентов вызвали к доске.
Определим события А и В следующим образом: A = {вызванный студент
курит}, B = {вызванный носит очки}.
Установить, зависимы события A и B или нет. Сделать предположение о
характере влияния курения на зрение.

Решение. Так как , то условие независимости


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

что он курит: . Безусловная вероятность того, что

студент носит очки, равна . Так как , то делаем


вывод: курение способствует ухудшению зрения.
5. Студент знает 20 из 25 вопросов программы. Зачёт сдан, если студент
ответит не менее чем на 3 из 4-х вопросов в билете. Взглянув на первый
вопрос, студент обнаружил, что знает его. Какова вероятность, что студент
сдаст зачёт?
43
Решение.
Пусть А – событие, заключающееся в том, что студент сдал зачет;
В – событие, заключающееся в том, что студент знает первый вопрос в
билете.

Очевидно, что р(В) = . Теперь необходимо определить вероятность


р(А В). Из 25-ти вопросов всего можно составить различных билетов,
содержащих 4 вопроса. Все билеты, выбор которых удовлетворял бы и
событию А и событию В, должны быть составлены следующим образом:
либо студент знает все вопросы билета (можно составить всего таких
билетов), либо студент знает первый, второй и третий вопросы, но не знает
четвёртого (можно составить всего 5 таких билетов), либо студент знает
первый, второй и четвёртый вопросы, но не знает третьего (тоже 5
билетов), либо студент знает первый, третий и четвёртый вопросы, но не
знает второго (тоже 5 билетов). Отсюда получаем, что

р(А В) =
Осталось только найти искомую вероятность р(А/В):

р(А/В) = .

1.10. Основные понятия теории групп.

Группой называется множество G с бинарной операцией «*»; причём


выполняются следующие три аксиомы:

• Операция «*» ассоциативна, т.е. справедливо


(a*b)*c=a*(b*c)
• Существует единичный элемент , т.е. e*g=g*e=g
• Все элементы в G обратимы, т.е.
Определение: группа называется абелевой, если операция «*»
коммутативна, т.е. справедливо a*b=b*a.
Определение: группа называется циклической, если
справедливо: g=an, где Z.
Определение: непустое множество M с заданной на нём ассоциативной
операцией «*» называется полугруппой.

44
Кольца. Алгебраическая система (K,+,*) с двумя бинарными
операциями, умножением и сложением, называется кольцом, если:

• (K,+) – абелева группа


• (K,*) – полугруппа
• операция умножения дистрибутивна относительно сложения, т.е.
K справедливо a*(b+c) = a*b+a*c и (b+c)*a = b*a+c*a .

Определение: Если существует единица 1 в K, т.е. 1*a = a*1= a K,


то K называется кольцом с единицей.
Определение: Если a*b=b*a K, то K называется коммутативным
кольцом.
Поля . Ненулевое коммутативное кольцо с единицей называется полем,
если его ненулевой элемент обратим.
Классы эквивалентности . Отношением R на множестве M называется
правило, в силу которого по любой упорядоченной паре элементов
можно установить, находится ли a в отношении R к b или нет.
Определение: отношение “~” называется отношением эквивалентности
на множестве M, если справедливо, что отношение “~”
• рефлексивно, т.е. a ~ a
• симметрично, т.е. a ~ b b ~ a
• транзитивно, т.е.
Если на некотором множестве задано отношение эквивалентности “~”,
то множество М разбивается на классы эквивалентности. Т.е.
существует класс эквивалентности [m], т.е. множество всех элементов
. Множество M забивается в объединение множеств [m]; причём
два класса [m] и [m’] либо не пересекаются, либо совпадают.

Кольцо классов вычетов. Пусть n-натуральное число. Множество целых


чисел разбивается на подмножества Z=nZ (1+nZ) (n-1+nZ). Числа
0,1,2,…,n-1 –все возможные остатки при делении на n. Если и m=nq+r,
то m+nZ=r+nZ. Обозначим это множество m .
Определение: кольцо вычетов по модулю n – это множество
со следующими правилами сложения и умножения:

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


(взаимооднозначных отображений) {1,2, …, n} {1,2, …, n}.
Определение: Sn называется группой подстановок на n символах.
Подстановка записывается в виде

45
Здесь i1, i2, i3, … , in – попарно различные натуральные числа от 1 до n.
Всего таких перестановок n!

Некоторые применения алгебраических систем.


1) Некоторую подстановку на множестве M={m1, m2, …, mn} можно
интерпретировать как функцию для некоторых , причём между
x и y будет взаимнооднозначное соответствие. При использовании
подстановок важно помнить, что множество M должно быть конечно. Тогда
.
2) Если определён класс вычетов, то операции сложения и умножения
чисел a и b не обязательно проводить именно с этими числами. Вместо них
можно использовать любые числа, принадлежащие тем же классам вычетов.
3) Использование классов эквивалентностей даёт возможность получать
по одному значению получать несколько эквивалентных ответов,
удовлетворяющих некоторому правилу.

1.11. Основы математической лингвистики

Историческое введение
Впервые мысль о возможности машинного перевода высказал Чарльз
Бэббидж (1791-1871), разработавший в 1836-1848 гг. проект цифровой
аналитической машины - механического прототипа электронных цифровых
вычислительных машин, появившихся через 100 лет. Идея Ч. Бэббиджа
состояла в том, что память объемом 1000 50-разрядных десятичных чисел (по
50 зубчатых колес в каждом регистре) можно использовать для хранения
словарей. Ч. Бэббидж привел эту идею в качестве обоснования для запроса у
английского правительства средств, необходимых для физического
воплощения аналитической машины, которую ему так и не удалось
построить (см. Апокин и др. Чарльз Бэббидж. М., Наука, 1981).
Фактически история машинного перевода начинается с "Джорджтаунского
эксперимента". В январе 1954 г. состоялась первая публичная демонстрация
машинного перевода с русского языка на английский, осуществленного на
машине ИБМ-701. Сообщение об этом событии было опубликовано в
журнале Computers and Automation, 1954, № 2. А реферат этого сообщения,
сделанный Д. Ю. Пановым, появился в РЖ ВИНИТИ "Математика", 1954, №
10: "Перевод с одного языка на другой при помощи машины: отчет о первом
успешном испытании".
Это сообщение явилось толчком для начала работ по машинному переводу
в СССР. Д. Ю. Панов, бывший тогда директором ВИНИТИ (в то время
Института научной информации - ИНИ) привлек к работам по машинному
переводу И. К. Бельскую, которая затем возглавила группу машинного
перевода в ИТМ и ВТ АН СССР. Первый опыт перевода с английского языка
на русский с помощью машины БЭСМ был получен уже к концу 1955 г.
Программы для БЭСМ составляли Н. П. Трифонов и Л. Н. Королев,
46
кандидатская диссертация которого была посвящена методам построения
словарей для машинного перевода.
Другое направление работ возникло в Отделении прикладной математики
Математического института АН СССР (ныне ИПМ им. М. В. Келдыша РАН)
по инициативе А. А. Ляпунова. К работам по машинному переводу
математических текстов с французского языка на русский он привлек О. С.
Кулагину, аспирантку МИАН, своих учениц Т. Д. Вентцель и Н. Н. Рикко. С
конца 1955 г. в этих работах принимала участие Т. Н. Молошная, которая
затем приступила к самостоятельной работе над алгоритмом англо-русского
перевода. А. А. Ляпунов и О. С. Кулагина свои представления об
использовании вычислительных машин для перевода с одного языка на
другой опубликовали в журнале "Природа",1955, № 8. Первые программы
машинного перевода, разработанные этим коллективом, были реализованы
на машине "Стрела".
Первое поколение систем машинного перевода базировалось на алгоритмах
последовательного перевода "слово за словом", "фраза за фразой".
Возможности таких систем определялись доступными размерами словарей,
прямо зависящими от объема памяти компьютера. Перевод текста
осуществлялся отдельными предложениями, смысловые связи между ними
никак не учитывались. Такие системы называют системами прямого
перевода. На смену им со временем пришли системы последующих
поколений, в которых перевод от языка к языку осуществлялся на уровне
синтаксических структур. В алгоритмах перевода использовался набор
операций, позволяющий путем анализа переводимого предложения
построить его синтаксическую структуру по правилам грамматики языка
входного предложения (так же, как учат детей языку в средней школе), а
затем преобразовать ее в синтаксическую структуру выходного предложения
и синтезировать выходное предложение, подставляя нужные слова из
словаря. Такие системы называются Т-системами (Т - от английского слова
"transfer - преобразование").
Наиболее совершенным считается подход к построению систем машинного
перевода на основе получения некоторого, независимого от языков,
смыслового представления входного предложения путем его семантического
анализа. Затем производится синтез выходного предложения по полученному
смысловому представлению. Такие системы называют И-системами (И - от
слова "интерлингва"). Считается, что следующие поколения систем
машинного перевода будут относиться к классу И-систем.
Как большой ученый, которому свойственно видеть всю проблему в целом,
А. А. Ляпунов с самого начала работ по машинному переводу говорил о
переводе путем извлечения смысла переводимого текста и его представления
на другом языке. Однако такая постановка проблемы перевода оказалась в то
время преждевременной. Более того, она не решена в общем виде мировой
информатикой и в настоящее время, несмотря на усилия,
предпринимавшиеся Международной федерацией IFIP - мировым
сообществом ученых в области обработки информации. Однако многие
47
частные результаты, связанные с семантическим анализом текстов, были
получены и опубликованы в трудах IFIP.
Первый опыт создания программ машинного перевода показал, что
необходимо решать эти задачи постепенно и по частям.
Слишком много трудностей и неясностей было в том, как нужно
формализовать и строить алгоритмы для работы с текстами, какие словари
надо вводить в машину, какие лингвистические закономерности следует
использовать при машинном переводе и каковы вообще эти закономерности.
Выяснилось, что традиционная лингвистика не располагает ни
фактическим материалом, ни идеями и представлениями, нужными для
построения систем машинного перевода, которые использовали бы смысл
переводимого текста.
Традиционная лингвистика не могла дать исходные представления не
только в части семантики, но и в части синтаксиса. Ни для одного языка в то
время не существовало перечней синтаксических конструкций, не были
изучены условия их сочетаемости и взаимозаменяемости, не были
разработаны правила построения крупных единиц синтаксической структуры
из более мелких. В сущности ни на один вопрос, поставленный в связи с
построением систем машинного перевода, традиционная лингвистика в 50-х
годах не могла дать ответа.
Потребность в создании теоретических основ машинного перевода привела
к формированию нового направления в лингвистике, называемого
структурной, прикладной, математической лингвистикой. Формирование
этого направления в СССР относится ко второй половине 50-х годов.
Ведущую роль в нем сыграли математики А. А. Ляпунов, В. А. Успенский,
(ученик А. Н. Колмогорова), О. С. Кулагина, лингвисты В. Ю. Розенцвейг, П.
С. Кузнецов, А. А. Реформатский, И. А. Мельчук, В. В. Иванов.
6 мая 1960 г. было принято Постановление Президиума АН СССР "О
развитии структурных и математических методов исследования языка", во
исполнение которого были созданы подразделения по структурной
лингвистике в Институте языкознания, Институте русского языка АН СССР.
В Постановлении Президиума АН СССР отмечалось, что "недостаточное
развитие теоретических исследований в области структурных и
математических методов в лингвистических учреждениях тормозит
практически важные работы по теории и практике машинного перевода,
построению информационных языков и информационных машин,
логической семантике и другим приложениям языкознания,
разрабатываемым в настоящее время в ряде технических и математических
научно-исследовательских институтов". С 1960 г. началась подготовка
кадров в области автоматической переработки текстов на филологическом
факультете МГУ, в Ленинградском и Новосибирском университетах,
МГПИИЯ. Под математической лингвистикой понималось изучение языка
как абстрактной знаковой системы с целью построения теоретической
основы машинного перевода и создания конкретных алгоритмов перевода. В

48
таком понимании математическая лингвистика составляла часть семиотики -
общей теории знаковых систем.
Задача аксиоматизации лингвистики была выдвинута одним из виднейших
лингвистов московской школы П. С. Кузнецовым как задача формализации
грамматики, восходящая к идеям выдающегося русского языковеда Ф. Ф.
Фортунатова (1848-1914).
Исследованию формальной теории грамматик, была посвящена
диссертация О. С. Кулагиной, выполненная под руководством А. А.
Ляпунова.
Заметим, что в те же годы формальная теория грамматик развивалась в
США в трудах Н. Хомского, ставших классическими для области
искусственных языков, в частности языков программирования.
Двадцатилетие (1956-1976) один из основателей направления математик В.
А. Успенский в своих воспоминаниях назвал "серебряным веком"
структурной, прикладной и математической лингвистики в СССР (видимо, по
аналогии с "серебряным веком" русской поэзии).
В 70-х годах разработку основ технологии машинного перевода
продолжила группа специалистов в ВИНИТИ под руководством профессора
Г. Г. Белоногова. В результате в 1993 г. была создана промышленная версия
системы RETRANS фразеологического машинного перевода с русского
языка на английский и обратно, которая применялась в министерствах
обороны, путей сообщения, науки и технологий, а также во ВНТИЦ.
Практическое применение принципов смыслового анализа текстов
потребовалось при создании систем машинного перевода с иероглифических
языков (китайского, японского и др.). Вопросы создания таких систем были
разработаны в диссертации В. М. Зелко в 80-х годах.
Первые коммерческие продукты машинного перевода, нашедшие
практическое использование, появились в середине 80-х годов. Они были
реализованы на персональных компьютерах и являлись системами прямого
перевода, возможности которых базировались на огромных (по сравнению с
первыми системами) словарях, а не на умении анализировать и
синтезировать тексты.
Современные коммерческие продукты машинного перевода предлагают
отечественные фирмы:
"Виста Текнолоджиз" и "Адвентис", образованные в 1991 г. коллективом
разработчиков, выделившихся из ВИНИТИ;
ПРОМТ, образованная в 1991 г.;
"Медиа Лингва".
Однопользовательская "коробочная" версия продукта Retrans Vista фирмы
"Виста текнолоджиз" предназначена для автоматизированного перевода
текстов с русского языка на английский и обратно. В ней использованы
оригинальные алгоритмы сжатия словарных баз и поиска переводных
эквивалентов, позволяющих транслировать "на лету" не только фрагменты
текста, импортируемые из текстового редактора MS Word, но и Web-
страницы.
49
В словарях Retrans Vista хранятся миллионы понятий, к которым относятся
не только традиционные устойчивые фразеологические обороты, но, прежде
всего, словосочетания, используемые в повседневной речи. Кроме того, есть
программа концептуального анализа, автоматически выделяющая из текста
новые словосочетания и включающая их в словарь. Основные словари
системы Retrans Vista содержат термины и фразеологические единицы по
естественным и техническим наукам, экономике, бизнесу и политике. Объем
политематического машинного словаря - около 3,4 млн. слов (1,8 млн. в
русско-английской части, 1,6 млн. - в англо-русской), причем 20% из них
являются словами, а 80% - устойчивыми словосочетаниями со средней
"длиной" в 2,2 слова.
Продукт Retrans Vista реализован на ПК с процессором, имеющим частоту
от 166 МГц и ОЗУ от 32 Мб и выше и жестким диском от 170 Мб. Продукт
работает под управлением ОС Windows 98/NT/2000.
Фирма ПРОМТ (http://www.promt.ru/rus1/news/news.htm) разработала и
поставляет Интернет-переводчик PROMT Internet Translation Server,
обеспечивающий перевод "на лету" Web-страниц, запросов к поисковым
системам или к базам данных, представленным в Интернете.
Для корпоративных сетей многонациональных корпораций фирма ПРОМТ
предлагает аналогичный продукт PROMT Intranet Server.
Модуль перевода PROMT Internet встраивается в браузер Microsoft Internet
Explorer, образуя средство для синхронного перевода Web-страниц Web
View. При этом можно устанавливать для перевода различные языковые
пары: английский - русский; английский - немецкий; английский -
испанский; французский - английский; французский - немецкий. Бесплатный
онлайновый переводчик PROMT доступен в Интернете по адресу:
http://www.translate.ru.
PROMT Internet Translator Server установлен на поисковой системе Voila,
принадлежащей оператору France Telecom.
Для систем офисной автоматизации предлагается коммерческий пакет
PROMT Lingvo OFFICE - результат сотрудничества двух лидеров
российского рынка лингвистического программного обеспечения - ПРОМТ и
ABBYY.
Компания "Медиа Лингва" выпустила электронные словари серии
"МультиЛекс 3.5. Новый большой англо-русский словарь" и "МультиЛекс3.5.
Английский. Экономика и право". Такие словари, работающие под
управлением операционных систем Windows CE или PalnOS, могут быть
размещены на карманных компьютерах.
С практической точки зрения, имея в виду качество результирующего
текста и его соответствие исходному, программы машинного перевода
подразделяют на три категории:
полностью автоматический перевод;
автоматизированный машинный перевод при участии человека;
перевод, осуществляемый человеком с использованием компьютера.

50
Программы машинного перевода первой из названных категорий являются
делом далекого будущего, поскольку в общем виде не решены проблемы
автоматического понимания, перевода и синтеза текстов.
Программы второй категории разработчики называют МТ-программы (от
Machine translation - машинный перевод). Реально автоматизированный (с
участием человека) машинный перевод возможен только в условиях
искусственно ограниченного, как по словарному запасу, так и по грамматике,
языка.
В качестве реального успешного проекта МТ-программы всегда называют
немецкую систему Meteo, выполняющую перевод метеопрогнозов с
французского языка на английский и обратно.
К МТ-программам относятся и продукты машинного перевода фирмы
ПРОМТ, упомянутые выше, в том числе программы для просмотра
содержимого Web-страниц в сети Интернет с целью поиска нужного
документа.
Программы третьей категории разработчики называют ТМ-программы (от
translation memory - память перевода). Эту категорию программ применяют
профессиональные переводчики, осознавшие выигрыш от автоматизации их
работы с помощью компьютеров. Основу ТМ-программ составляют
специализированные словари, соответствующие тематике переводимого
текста. При переводе используются конструкции и значения слов и
устойчивых словосочетаний, выбранные профессиональным переводчиком и
занесенные в словари системы, а полученный текст подвергается
интенсивному редактированию. Словари и уже переведенные фрагменты
текстов, запоминаемые в ТМ-системе, могут быть повторно использованы в
больших коллективных проектах, ими можно обмениваться. Поэтому ТМ-
системы представляют собой важное средство автоматизации труда
профессиональных переводчиков.
Часто ТМ-программы используют в сочетании с МТ-программами.
Наиболее популярным в мире ТМ-инструментарием является Translation's
Workbench фирмы Trados (для краткости часто также называемый Trados).
За 17 лет своего существования фирма Trados продала 45 тыс. лицензий на
свою систему. Все они приобретены профессиональными переводчиками. В
конце 2001 г. Российская фирма ПРОМТ, известная своими продуктами
машинного перевода категории МТ, объявила о получении статуса
эксклюзивного дистрибьютера системы Trados в России и других странах
СНГ. Для совместного использования своих МТ-программ и продуктов
Trados фирма ПРОМТ предлагает специальные средства их сопряжения.
История машинного перевода насчитывает немногим более 50 лет. За это
время сменилось несколько поколений систем машинного перевода - от
первых программ, использовавших ограниченные ресурсы универсальных
компьютеров первого поколения до современных коммерческих продуктов,
использующих мощные ресурсы серверов и персональных компьютеров,
включая ПК, в которых можно размещать карманные словари, а также
компьютерные сети.
51
По мере снятия технических ограничений, налагаемых возможностями
компьютеров по производительности и памяти, становилось ясно, что
проблема перевода текста с одного естественного языка на другой
принципиально не сводится только к перекодировке слов. Для преодоления
основных трудностей проблемы машинного перевода должны быть решены
задачи автоматизированного представления контекста, смыслового
содержания переводимого текста, знаний о понятиях предметной области, к
которой относится переводимый текст.
Вместе с тем современные достижения в области вычислительной техники,
информационных технологий и технологий телекоммуникаций позволяют
выдвигать на перспективу практические задачи поиска и выбора требуемой
информации, представленной на разных языках, из разнородных источников,
находящихся в корпоративных и глобальных информационно-
телекоммуникационных сетях.
В качестве примера такой перспективной задачи можно привести системы
запросов к информационным ресурсам сетей, например к базам данных, с
возможностью формирования ответов по телефону в виде устной речи. Для
этого требуется сочетание систем машинного перевода с системами
распознавания и синтеза речи.
Расширенная форма Бэкуса — Наура (расширенная Бэкус — Наурова
форма (РБНФ)) (Extended Backus–Naur Form (EBNF)) — формальная
система определения синтаксиса, в которой одни синтаксические категории
последовательно определяются через другие. Используется для описания
контекстно-свободных формальных грамматик. Предложена Никлаусом
Виртом. Является расширенной переработкой форм Бэкуса-Наура,
отличается от БНФ более «ёмкими» конструкциями, позволяющими при той
же выразительной способности упростить и сократить в объёме описание.
Описание
Терминалы и нетерминалы
Как и в БНФ, описание грамматики в РБНФ представляет собой набор
правил, определяющих отношения между терминальными символами
(терминалами) и нетерминальными символами (нетерминалами).
 Терминальные символы — это минимальные элементы грамматики, не
имеющие собственной грамматической структуры. В РБНФ
терминальные символы — это либо предопределённые
идентификаторы (имена, считающиеся заданными для данного
описания грамматики), либо цепочки — последовательности символов
в кавычках или апострофах.
 Нетерминальные символы — это элементы грамматики, имеющие
собственные имена и структуру. Каждый нетерминальный символ
состоит из одного или более терминальных и/или нетерминальных
символов, сочетание которых определяется правилами грамматики. В
РБНФ каждый нетерминальный символ имеет имя, которое
представляет собой строку символов.

52
Правила
Правило в РБНФ имеет вид:
идентификатор = выражение.
где идентификатор — имя нетерминального символа, а выражение —
соответствующая правилам РБНФ комбинация терминальных и
нетерминальных символов и специальных знаков. Точка в конце —
специальный символ, указывающий на завершение правила.
Семантика правила РБНФ — нетерминальный символ, заданный
идентификатором слева от знака «равно», представляет собой
определяемую выражением комбинацию терминальных и нетерминальных
символов.
Полное описание грамматики представляет собой набор правил, который
последовательно определяет все нетерминальные символы грамматики так,
что каждый нетерминальный символ может быть сведён к комбинации
терминальных символов путём последовательного (рекурсивного)
применения правил. В определении РБНФ нет никаких специальных
предписаний относительно порядка записи правил, хотя такие предписания
могут вводиться при использовании РБНФ программными средствами,
обеспечивающими автоматическую генерацию программ синтаксического
разбора по описанию грамматики.
Выражения
Набор возможных конструкций РБНФ очень невелик. Это конкатенация,
выбор, условное вхождение и повторение.
 Конкатенация. Специального обозначения не имеет, определяется
последовательной записью символов в выражении. Правило вида A =
BC. обозначает, что нетерминал A состоит из двух символов — B и C.
Элементы конкатенации называют ещё синтаксическими факторами,
или просто факторами. В данном примере B и C — синтаксические
факторы. Если конкатенируемые символы могут обозначаться более
чем одним знаком (как это обычно бывает при описании языков
программирования), они разделяются одним или более пробельными
символами (пробелы, переводы строк, табуляции). Например,
Присваивание = Переменная ":=" Выражение. — здесь
нетерминал Присваивание определён как конкатенация термов
Переменная, «:=» и Выражение.
 Выбор. Обозначается вертикальной чертой. Правило вида A = B|C|
D. обозначает, что нетерминал A может состоять либо из B, либо из C,
либо из D. Элементы выбора называют ещё синтаксическими термами,
или просто термами. В данном примере B, C, D — синтаксические
термы.
 Условное вхождение. Квадратные скобки выделяют необязательный
элемент выражения, который может присутствовать, а может и
отсутствовать. Правило вида A = [B]. обозначает, что нетерминал A
либо является пустым, либо состоит из символа B.

53
 Повторение. Фигурные скобки обозначают конкатенацию любого
числа (включая нуль) записанных в ней элементов. Правило вида A =
{B}. обозначает, что A — либо пустой, либо представляет собой
конкатенацию любого числа символов B (то есть A — это либо пустой
элемент, либо B, либо BB, либо BBB и так далее). Если требуется,
чтобы A представлял собой либо B, либо произвольное число B, но не
мог быть пустым, используется запись A = B{B}.
 Помимо основных операций, в РБНФ могут использоваться обычные
круглые скобки. Они применяются для группировки элементов при
формировании сложных выражений. Например, правило A = (B|C)(D|
E). обозначает, что A состоит из двух символов, первым из которых
является либо B, либо C, вторым — либо D, либо E, то есть A может
быть одной из цепочек BD, BE, CD, CE.
Варианты синтаксиса
В некоторых работах встречаются модифицированные варианты синтаксиса
РБНФ.
 Можно встретить использование в правилах символа «::=» вместо «=»
(по аналогии с БНФ).
 Иногда конкатенация в выражениях обозначается не простым
следованием символов друг за другом, а с помощью запятой. В таком
случае несколько слов, написанных через пробелы, следует понимать
как одно многословное имя нетерминального символа. Например:
Условный оператор = "IF", Логическое выражение,
"THEN",
Группа операторов,
{"ELSIF", Группа операторов},
["ELSE", Группа операторов],
"ENDIF"
— правило, задающее грамматику условного оператора языка Modula-
2, где «Условный оператор» и «Группа операторов» —
нетерминальные символы с составными именами.
 Стандарт BSI. Принятый в 1981 году Британским институтом
стандартов (BSI) стандарт на EBNF отличается от варианта,
предложенного Виртом, следующими особенностями:
o конкатенация обозначается запятой;
o конец определения правила обозначается точкой с запятой;
o пробелы в правиле, за исключением заключённых в кавычки,
считаются незначимыми.
Примеры конструкций
Формальное самоопределение РБНФ
Общую форму грамматики РБНФ-описания можно описать в виде РБНФ
следующим образом:
Синтаксис = { СинтОператор }.
СинтОператор = идентификатор "=" СинтВыражение ".".
СинтВыражение = СинТерм {"|" СинТерм}.
54
СинТерм = СинтФактор { СинтФактор }.
СинтФактор = идентификатор | цепочка
| "(" СинтВыражение ")" | "[" СинтВыражение "]"
| "{" СинтВыражение "}".
В данном описании предполагается, что идентификатор и цепочка —
предопределённые термы. При желании нетрудно записать и их определение
в РБНФ, для этого потребуется лишь задать определённый алфавит и, если
это необходимо, дополнительные ограничения на вид идентификатора.
Число и идентификатор в РБНФ
Следующие грамматики определяют запись десятичного числа общего вида
(с ведущим знаком, возможной дробной частью и порядком) и типичного
идентификатора языка программирования (последовательность букв, цифр и
знаков подчёркивания, начинающаяся с буквы).
Число = ["+"|"-"]НатЧисло["."[НатЧисло]][("e"|"E")["+"|"-"]НатЧисло].
НатЧисло = Цифра{Цифра}.
Цифра = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9".
Идент = Буква{Буква|Цифра|"_"}.
Определение нетерминала Буква здесь не приведено ввиду очевидности и
громоздкости — он представляет собой выбор из принятого алфавита.
РБНФ и другие способы описания формальных грамматик
РБНФ и БНФ
Сходства и различия между БНФ и РБНФ очевидны из описания. Отличие
состоит, по большому счёту, в двух основных моментах:
1. В РБНФ упрощён синтаксис записи правил: знак определения «::=»
заменён на «=» и упразднено использование угловых скобок для
выделения нетерминалов. В результате исчезла возможность называть
нетерминалы многословными идентификаторами, зато запись стала
короче. В модификации синтаксиса РБНФ, в которой конкатенация
обозначается запятой, многословные идентификаторы использовать
можно.
2. В РБНФ введены два новых синтаксических элемента: условное
вхождение (выражение в квадратных скобках) и повторение
(выражение в фигурных скобках).
Об удачности или неудачности первого изменения могут быть разные
мнения, но, в любом случае, на выразительных возможностях формы оно не
сказывается. А вот второе нововведение весьма существенно. Оно также не
добавляет принципиально новых выразительных возможностей (всё, что
записано в РБНФ, можно адекватно записать и в обычной БНФ), но
существенно сокращает и упрощает запись.
Главное преимущество РБНФ перед БНФ — возможность описывать
простые повторяющиеся конструкции неопределённой длины (списки,
строки, последовательности и так далее) без рекурсивных правил. Отсутствие
в БНФ конструкции повторения приводит к тому, что любое повторение

55
приходится определять путём введения дополнительных промежуточных
нетерминальных символов и рекурсивных правил, из-за чего определение
становится чрезмерно большим по объёму и малопонятным. Описание
повторений в РБНФ оказывается одновременно и короче, и удобнее для
восприятия человеком.
В качестве примера можно рассмотреть правила, определяющие нетерминал
«список», представляющий собой набор от нуля до любого числа
идентификаторов, перечисленных через запятую (предполагается, что
символы «ПраваяСкобка», «ЛеваяСкобка», «Запятая» и «Идент» уже
определены).
Определение в РБНФ включает всего одно правило:
Список = ЛеваяСкобка [Идент {Запятая Идент}] ПраваяСкобка.
Определение в БНФ выглядит так:
<Список> ::= <ЛеваяСкобка> <ПраваяСкобка> | <ЛеваяСкобка>
<ИдентСпис> <ПраваяСкобка>
<ИдентСпис> ::= <Идент> | <Идент> <Запятая> <ИдентСпис>
Уже из этого примера видны отличия форм:
 В БНФ в правиле, определяющем Список, присутствует два варианта
— для пустого списка и для любого другого. В РБНФ за счёт
конструкции условного вхождения необходимость в явном описании
двух вариантов исчезла.
 В БНФ потребовалось ввести искусственное рекурсивное правило
ИдентСпис, чтобы описать последовательность идентификаторов,
разделённых запятыми. В РБНФ за счёт конструкции повторения
данный фрагмент синтаксиса записан прямо в основном правиле,
причём в более простом виде.
 Поскольку РБНФ-правило одно, его длина меньше и оно не содержит
вариантов и рекурсии, его гораздо легче понять. Чтобы восстановить
форму списка по приведённым описаниям, в случае РБНФ-описания
достаточно последовательно записать значения символов, а для БНФ-
описания придётся определить порядок применения правил и
построить списки для каждого варианта (а их по два в каждом
правиле).
Естественно, что платой за преимущества РБНФ перед БНФ является
бо́ льшая сложность автоматической интерпретации РБНФ-описаний.
Генераторы программ синтаксического разбора по формальным описаниям
грамматики, использующие БНФ, проще тех, которые используют РБНФ.
РБНФ и синтаксические диаграммы
РБНФ эквивалентны подклассу синтаксических диаграмм, которые широко
используются для описания грамматик. Любую РБНФ-грамматику можно
адекватно представить синтаксической диаграммой, но, в общем случае,
синтаксические диаграммы позволяют создать описания, которые
невозможно представить в РБНФ (или, во всяком случае невозможно

56
перевести в РБНФ напрямую, не преобразуя перед этим графическое
описание).
Применение, достоинства и недостатки РБНФ
РБНФ, как и её предшественница — БНФ, — чрезвычайно широко
применяется как средство описания искусственных языков, прежде всего —
языков программирования и родственных им систем обозначений. В
частности, изобретатель РБНФ, Никлаус Вирт, использовал этот формализм в
своих книгах для описания всех рассматриваемых там языков
программирования.
Более высокая сложность РБНФ по сравнению с БНФ приводит к тому, что
генераторов программ грамматического разбора, работающих на основе
РБНФ, существенно меньше, чем тех, что основаны на БНФ. Тем не менее,
они существуют и применяются. РБНФ является основой для генераторов
программ грамматического анализа Spirit C++ Parser Framework, Coco/R, The
SLK Parser Generator, а также ряда других. Для применения в таких системах
синтаксис РБНФ расширяется в том же направлении, что синтаксис БНФ при
использовании парсер-генераторов Yacc или Bison— в описание грамматики
напрямую вставляется обрабатывающий её код, так или иначе организуется
взаимодействие с лексическим анализатором. Могут накладываться
дополнительные ограничения и на структуру правил — не все правила,
которые можно описать на РБНФ, могут быть эффективно преобразованы в
код.
К безусловным достоинствам РБНФ можно отнести простоту (сам язык
РБНФ содержит всего 10 специальных знаков — три вида скобок,
вертикальную черту, знак «равно» и кавычки, возможно, ещё запятую; его
синтаксис определяется пятью правилами), достаточную мощность и
наглядность, что делает его удобным для выполнения описаний,
предназначенных не только для автоматической интерпретации, но и для
чтения людьми. Близость конструкций РБНФ к синтаксическим диаграммам
позволяет рисовать последние прямо по РБНФ-описанию.
К недостаткам РБНФ, как, впрочем, и БНФ, можно отнести тот факт, что они
описывают грамматическую структуру формального языка без учёта
контекстных зависимостей, а значит, при наличии таких зависимостей
РБНФ-описание оказывается неполным, и некоторые правила синтаксиса
описываемого языка приходится излагать в обычной текстовой форме. Это
приводит к тому, что текст, точно соответствующий РБНФ-грамматике,
может, тем не менее, оказаться синтаксически некорректным. Например, в
РБНФ-грамматике невозможно естественным образом отобразить тот факт,
что некоторая операция требует операндов одного и того же типа. Подобные
проверки приходится проводить уже написанным вручную кодом
грамматического анализатора. С другой стороны, системы описания
грамматики, включающие определение контекстных зависимостей,
например, грамматика ван Вейнгаардена, оказываются существенно сложнее,
и использование их для автоматической генерации парсеров оказывается
затруднительным.
57
1.12. Элементы теории информационных систем

В настоящее время термин «система» употребляется достаточно широко


и практически во всех областях. Словосочетания «система управления»,
«система контроля», «вычислительная система» и многие другие
практически у всех на слуху. Однако, во многом понятие «система» мы
воспринимаем на интуитивном уровне, не вдаваясь в подробный анализ того,
что это означает на самом деле.
Понятие системы. Попытаемся дать точное формальное определение
системы. Итак, будем понимать под некоторой абстрактной системой S пару,
или набор из двух связанных множеств:

S = <O, L> , (1)

где O – некоторое множество объектов; L – множество связей.

Определим объект как тройку:


= < >, (2)
где - множество значений объекта; - множество операций над объектом;
– область видимости объекта.
Фактически представляет собой множество множеств, в котором
каждый элемент является отображением множества и определяет
набор допустимых операций для некоторого объекта над объектом (т.е.
набор ограничений множества Ci объекта ).
Теперь определим множество связей L как объединение всех множеств
:
L = , (3)

где n – количество объектов в системе S.


Таким образом, задавая различные определения множеств O и L с
помощью множеств D, C и V, мы будем получать совершенно различные
классы систем - биологические системы, социальные системы,
информационные системы и так далее. Нас в дальнейшем будут
интересовать, прежде всего, информационные системы.

58
Понятия процесса и ресурса. Говоря об информационных системах, мы
очень часто сталкиваемся с такими распространенными понятиями как
процесс и ресурс, которые не совпадают с теми понятиями, под которыми мы
понимаем процессы и ресурсы в обыденной жизни. Например, мы говорим
«ресурс двигателя», имея в виду максимальную продолжительности его
работы без ремонта, или «технологический процесс», имея в виду
необходимую последовательность действий по производству некоторого
продукта. В нашем случае эти привычные термины будут иметь совершенно
другое значение.

Процесс. Определим процесс как некоторый объект, имеющий


право захвата (затребования) других объектов для обеспечения
своей работы.

Ресурс. Объект , допускающий возможность своего захвата


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

Таким образом, множество объектов в информационных системах


можно определить как

. (4)

Очевидно, что между процессами и ресурсами существуют некоторые


отношения, определяемые множеством связей L. Покажем, что эти
отношения носят динамический характер (т.е. развиваются и изменяются во
времени).
Приведем пример простой системы, состоящей из двух объектов: сыр и
мышка (рис. 1.6).
Мы видим, что в этой системе сыр является ресурсом, а мышка –
процессом. Казалось бы, никаких проблем с определением отношений нет.

Сыр Мышка

Ресурс Процесс

Рис. 1.6

59
Однако, усложним систему, добавив в нее объект кошка (рис. 1.7).

Сыр Мышка Кошка

Ресурс Процесс Ресурс Процесс

Рис. 1.7

Как видно, ситуация резко изменилась: объект мышка, бывший


процессом по отношению к ресурсу сыр, сам стал ресурсом по отношению к
объекту кошка. Нетрудно догадаться, что произойдет с кошкой, если мы
добавим в систему объект собачка. Отметим, что и объект сыр может
являться процессом по отношению к неявно присутствующему во всех
системах объекту пространство.
Таким образом, мы видим, что «чистых», или простых процессов и
ресурсов в системах не существует - их взаимоотношения являются
динамическими и справедливы только на некоторый момент или отрезок
времени. Для упрощения анализа таких динамических систем введем в них
два объекта: чистый ресурс – объект пространство - и чистый процесс -
объект человек, или оператор (пользователь). Пространство не будет
требовать для своей работы никаких ресурсов системы и человек не может
быть захвачен никакими системными процессами.
Синхронные и асинхронные системы. Система называется
синхронной, если события в ней привязаны к временной оси, т.е. тактируются
с помощью некоторого таймера. Система называется асинхронной, если
события в ней происходят произвольно и решение принимается по мере
готовности всех процессов, необходимых для его принятия.

Управление и регулирование в информационных системах.


Управлением называется задача корректного разделения ресурса (или
нескольких ресурсов) между множеством конкурирующих процессов.
Регулированием называется задача удержания характеристик (параметров)
процесса в заданных пределах.

Рассмотрим следующий пример (рис. 1.8).

Авт. C1
60
Дорога (D)

A B

Рис. 1.8

Из пункта A в пункт B по дороге D движется автомобиль C1. Какие


задачи решает водитель за рулем автомобиля? Для ответа на этот вопрос
прежде всего определим, что в приведенной системе является ресурсом и что
процессом. Очевидно, что основным ресурсом при движении автомобилей по
дороге является сама дорога, а основными процессами - множество
движущихся по ней автомобилей. Есть ли задача управления на рис. 3?
Нет, ибо на нем приведен только один автомобиль C1, и , следовательно,
отсутствует одно из необходимых условий существования задачи –
конкуренция процессов.
Таким образом, водитель решает только задачу регулирования, стремясь
удержать автомобиль в пределах дороги.

Рассмотрим следующий пример (рис. 1.9)

Дорога
Авт. C1 (D)
Авт. C2

A B

Рис. 1.9

Как видно, на дороге появился еще один автомобиль С2 и теперь оба


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

Глава 2. ОСНОВЫ ТЕОРИИ ИНФОРМАЦИИ

В настоящее время существует достаточно много определений такого


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

61
Специально изучением информации как таковой (т.е. в виде
абстрактного объекта, лишенного конкретного содержания), выявлением
общих свойств информации, законов, управляющих ее рождением, развитием
и уничтожением, занимается теория информации. К этой науке близко
примыкает теория кодирования, в задачу которой входит изучение тех
форм, в которые может быть «отлито» содержание любой конкретной
информационной единицы. В теории информации имеется раздел,
специально занимающийся теоретическими вопросами передачи информации
по различным каналам связи.
Теория информации была основана американским ученым К. Шенноном
в конце 40-х годов ХХ века. Новизна, общность и абстрактность понятий
теории информации побудили многих специалистов приложить ее к областям
разных наук. Наиболее естественными оказались связи новой науки с
математической статистикой (теорией извлечения информации из
измерений), статистической радиотехникой (теорией извлечения
информации из сигналов, передаваемых по каналам связи), статистической
физикой. Вместе с тем не следует полагать, что теория информации (по
Шеннону, «статистическая теория информации») описывает все стороны
информационных отношений и претендует на исчерпывающее описание той
роли, которую играет информация в человеческом обществе, живых
организмах и других системах. Попытки снять ограничения теории (вводя
количественные меры для ценности, верности, смысла информации)
продолжаются.
Большая часть существующей теории информации создана
математиками. В главе содержатся некоторые элементарные результаты и
выводы теории, анализируются возможности ее применения к процессам,
происходящим в компьютерах.

ОСНОВНЫЕ ПОНЯТИЯ

Одно из достоинств современной теории информации – это то, что в ней


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

Понятие количества информации можно дать исходя, по крайней мере,


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

62
1. Неопределенность. «Я получил очень малую информацию, поскольку
знал, что он скажет еще до того, как он заговорил».
Чтобы измерить количество информации, исходя из понятия
неопределенности, инженер ставит себя на место приемника действительной
или возможной информации. В этом случае конкретное количество
информации он рассматривает как результат определенного выбора среди
возможных вариантов сообщений. Слово «выбор» несет в себе важный
смысл. С принятой здесь точки зрения понятие количества информации
связано с неопределенностью или неправдоподобием конкретной
информации безотносительно к ее структуре. Другими словами, мы
совершенно не интересуемся ее семантическим (смысловым) содержанием.
2, Сложность структуры. «Прибор, делающий измерения через 0,01
секунды, дает больше информации в расчете на 1 секунду (т.е. больше
отсчетов), чем прибор, делающий измерения через 0,1 секунды».
Количество различимых признаков, характеризующих данный предмет,
т.е. его размерность или число степеней свободы, является мерой
структурной информации. Ясно, что цветное изображение содержит в себе
больше информации по сравнению с черно-белым изображением того же
объекта.
3. Метрическая информация. «Эксперимент, результат которого
обладает погрешностью, равной 1%, более информативен (т.е. дает
больше информации), чем эксперимент, характеризующийся
погрешностью 10%».
По отношению к измерению некоторой численной величины количество
метрической информации представляет собой меру «точности», с которой эта
величина определяется.

СООБЩЕНИЯ И СИГНАЛЫ

Информация выражается (передается, обрабатывается, используется и


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

Нельзя сказать, что сообщение однозначно определяет информацию.


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

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

Шум. Во многих реальных системах по тем или иным причинам к месту


назначения приходят два различных сигнала, в то время как желателен
только один из них. Нежелательный сигнал рассматривается как помеха. В
подобных случаях обычно говорят, что «сигнал смешан с шумом».
В некоторых случаях невозможно отличить по какому-либо правилу
шумовые сигналы от полезных сигналов. Лишь различие в их сравнительной
значимости при приеме делает возможным различие между полезным
сигналом и шумом. Но полностью разделить полезный и шумовой сигналы в
принципе невозможно. Если же два (и более) сигнала можно полностью
разделить, то тогда само понятие «шум» не имеет особого смысла. С точки
зрения информации не существует «чистого шума».
Радиоволны дают нам информацию об ионосфере, космическое
излучение – информацию о звездах (используемую в радиоастрономии).
Шум всегда что-то говорит о своем источнике; таким образом, шум сам
может служить информацией.
Случай, когда шум добавляется к сигналу умышленно, называется
маскировкой.

Запаздывание и искажение информации. Генератор информации,


объект и другие компоненты физической системы разделены в пространстве.
64
Сигналы распространяются с конечной скоростью, так что для преодоления
определенного расстояния сигналу требуется некоторое конечное время.
Этот интервал времени иногда называют запаздыванием.
Если каждому сигналу на входе соответствует вполне определенный
сигнал на выходе и выходные сигналы определенным образом отличаются от
входных, то это явление называют искажением. Если искажающая функция
обладает обратной, то (по крайней мере, в принципе) искажение можно
устранить, произведя над принятым сигналом обратное функциональное
преобразование. Например, ослабление сигнала можно устранить с помощью
усиления.
Однако в случае, когда входной сигнал не приводит к одному и тому же
выходному сигналу, не всегда возможно с определенностью восстановить
входной сигнал. Некоторая информация при этом теряется.
Если выбранные информационные значения образуют дискретное
множество, сигнал называется дискретным, или цифровым. Если это
множество непрерывно, сигнал называется непрерывным, или аналоговым.
Разница между дискретным и непрерывным представлением информации
хорошо видна на примере часов. В электронных часах с цифровым
циферблатом информация представляется дискретно – цифрами, каждая из
которых четко отличается друг от друга. В механических часах со
стрелочным циферблатом информация представляется непрерывно –
положениями двух – трех стрелок, причем два разных положения стрелки
не всегда четко отличимы (особенно если на циферблате нет минутных и
секундных делений). Вообще, любое представление информации с
помощью конечного множества символов (букв, цифр, знаков препинания,
математических знаков) дискретно, графическое представление (рисунок,
чертеж) непрерывно.

ДИСКРЕТНЫЕ СООБЩЕНИЯ

Итак, для дискретной информации характерно наличие конечного


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

Набор символов, из которых строятся сообщения, образуют алфавит.


Часто символы (буквы) алфавита располагаются в каком-либо условном
порядке.

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

Кодирование и декодирование. Процесс представления символов


одного алфавита символами другого алфавита называется кодированием.

Проблема решается довольно просто, если количество символов


кодирующего алфавита больше числа символов кодируемого алфавита,
достаточно задать соответствие «символ – символ».
Пусть кодируемый – английский алфавит A1 = {a, b, c, d, e, …, z}, всего
26 букв; кодирующий – русский алфавит А2 = {а, б, в, г, д, …, я}, всего 33
буквы. Поставив в соответствие символы:
а b,
б c,
в d,

ш z,
можно построить «закодированное сообщение».
Если число элементов кодируемого алфавита больше, то при кодировании
возникает необходимость использования последовательности кодирующих
символов.
Типичный пример – ASCII – код, приведенный в книге 1. Здесь для
кодирования символов использовался восьмиразрядный двоичный код
(последовательность из двух символов двоичного алфавита – 0 и 1).

Декодирование – операция, обратная кодированию.

Кодирование производится передатчиком, декодирование –


приемником.

Типичный пример устройства, обрабатывающего дискретные сообщения –


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

Переход от аналоговых сигналов к цифровым (например ввод результатов


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

66
меняться без потери информации. Например, при телефонной связи сначала
акустический сигнал от говорящего преобразуется в электрический, который
затем в телефонной трубке снова превращается в акустический. Может
измениться и информационный характер сигнала: непрерывный сигнал
становится дискретным (такое преобразование – дискретизация, или
квантование) и наоборот. При вводе результатов измерений в ЭВМ
происходит дискретизация сигналов.

В таблице приведены некоторые примеры сообщений и сигналов.

№ Информацио Сообщения Сигналы


п/п нная
система
1 Телеграф Последовательность из Набор дискретных
букв и промежутков импульсов для каждой
между ними буквы
2 Телефон Группы голосовых Одна непрерывная функция
звуков времени, изображающая
изменение силы тока или
напряжения
3 Радиовеща Группы голосовых Несущая частота,
ние звуков и модулированная одной
последовательности непрерывной функцией,
музыкальных звуков изображающей изменение
силы тока или напряжения
4 Черно- Трехмерные образы, Несущая частота,
белое изменяющиеся во модулированная одной
телевидение времени (всего 4 непрерывной функцией
переменных) горизонтальной
координаты, изображающей
изменение силы тока или
напряжений. Эта функция
изменяется скачкообразно
от одной строки к другой, а
также с течением времени
5 Озвученное Сочетание 3 и 4 Сочетание 3 и 4
телевидение
6 Печатный Последовательность из Отраженный свет от бумаги
текст букв и промежутки и букв
между ними

67
КЛАССИЧЕСКИЕ МЕРЫ КОЛИЧЕСТВА ИНФОРМАЦИИ

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


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

В главе представлены два подхода к оценке меры количества


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

Мера Хартли. Чтобы измерить количество информации, содержащееся


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

Глубина сообщения q – количество различных элементов (символов,


знаков), принятых для представления сообщений. В каждый момент времени
реализуется только один какой-либо элемент.
Например, если сообщение представляется символами – буквами
русского алфавита, то q = 32 (для простоты буква ё во внимание не
принимается), английского – q = 26. Если сообщение – десятичные числа, то
q = 10 (десятичные цифры – элементы – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9).

Длина сообщения n – количество позиций, необходимых и достаточных


для представления сообщений заданной величины.
Если символы сообщения - цифры, то сами сообщения – числа и их
последовательности.

68
Далее в настоящей книге понятие глубины сообщения будет
трансформировано в понятие основания системы счисления.

При заданных глубине и длине сообщения количество всех возможных


сообщений (N), которое можно представить:

N = q n. (2.1)

Например, всего трехбуквенных русских слов N = 32 3 = 32768. Заметим,


что в это количество включены и «совершенно невозможные» слова,
например «ааа» или «ььы», но, подчеркнем, что при описываемом подходе
смысл (семантика) сообщения не рассматривается. Другой пример:
трехзначных десятичных чисел всего N = 10 3 = 1000.
Величина N не удобна для оценки информационной емкости. Определим
логарифмическую меру, позволяющую вычислять количество информации в
битах. Такую информационную емкость (I) называют мерой Хартли:
I = log 2 N = n • log 2 q . (2.2)

Для трехбуквенных русских слов I = 3 • log 2 32 = 15.

Значение b = log 2 q – количество двоичных разрядов для кодирования


(представления) одного элемента. Это значение не может быть дробным,
поэтому более точно:

(2.3)

где Ent (…) означает целую часть числа.


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

I=I1+I2+…+Ik= . (2.4)
Здесь I i – количество информации от источника i. Всего источников – k.
Логарифмическая мера информации позволяет измерить количество
информации и используется на практике.
В качестве примера рассмотрим следующую задачу. Необходимо
определить, какое количество информации в битах содержит книга,
написанная на русском языке, содержащая 200 страниц (каждая страница
содержит приблизительно 2000 символов).
Для решения воспользуемся мерой Хартли
I = n • log 2 q = 200 • 2000 • log 2 32 = 2000000 бит.

69
Здесь n – длина сообщения в знаках: n = 200 страниц • 2000 знаков/страница
= 400000 знаков.
Итак, книга содержит около 2-х мегабит (Мбит) информации.

Мера неопределенности Шеннона. В статистической теории


информации Шеннона вводится более общая мера количества информации, в
соответствии с которой рассматривается не само событие, а информация о
нем. (Напомним, что в теории информации под информацией понимаются
дополнительные сведения о событии.)
Во введении к главе были приведены несколько примеров сообщений,
которые описывали состояние физической системы.
Очевидно, если бы состояние этой системы было известно заранее, то не
имело бы смысла передавать сообщение: оно не имело бы никакой
информации. Сообщение приобретает смысл только тогда, когда состояние
системы заранее неизвестно, обладает какой-то степенью
неопределенности. Очевидно, сообщение, выясняющее для нас состояние
такой системы, будет тем богаче и содержательнее, чем больше была
неопределенность системы до этого сообщения (априори). Возникает
естественный вопрос: что значит «большая» или «меньшая» степень
неопределенности и как ее можно измерить?
Чтобы уяснить себе этот вопрос, сравним между собой две физические
системы, каждой из которых присуща некоторая неопределенность. В
качестве первой системы (обозначим ее А) возьмем монету, которая
подбрасывается и может случайным образом выпасть той или иной стороной,
то есть оказаться в одном из двух состояний:

А1 – «орел»;
А2 – «решка».

В качестве второй системы (пусть будет В) возьмем игральный кубик,


который тоже подбрасывается и может оказаться в одном из шести
состояний:

В1 – выпала единица;
В2 – выпала двойка;
...
В6 – выпала шестерка.

70
Какая из этих систем обладает большей неопределенностью? Очевидно,
вторая, так как она отличается большим разнообразием возможных
состояний. С первого взгляда может показаться, что все дело в числе
состояний: у первой системы их два, а у второй – шесть. Однако степень
неопределенности зависит не только от числа состояний, но и от их
вероятностей. Здесь под вероятностью появления какого-либо состояния
понимается величина, равная частоте (или средней частоте) появления:
отношению числа благоприятных исходов (появления события) к общему
количеству состояний.
Чтобы убедиться в том, что степень неопределенности зависит от
вероятности появления события, рассмотрим третью систему С, у которой,
как и у системы А, два возможных состояния. Пусть системой С будет
техническое устройство, которое имеет два возможных состояния:

С1 – устройство исправно;
С2 – устройство отказало.

Если вероятности этих двух состояний одинаковы (по 0,5 или 50%), то
степень неопределенности системы С такая же, как системы А (монета).
Теперь представим себе, что состояния С1 и С2 неравновероятны,
например, вероятность первого – 0,99 (99%), а вероятность второго – 0,01
(1%).
Очевидно, степень неопределенности такой системы будет гораздо
меньше, чем в первом случае: ведь мы почти уверены, что устройство будет
исправно. А если состояние С1 будет совершенно достоверно (то есть иметь
вероятность 1), то, очевидно, система С вообще никакой неопределенностью
обладать не будет.
Таким образом, мы убедились, что степень неопределенности
физической системы зависит не только от числа состояний, но и от того, как
распределены вероятности между состояниями.
В теории информации в качестве меры неопределенности системы
принята так называемая энтропия.
Если система А имеет n возможных состояний А1 , А2 , . . ., Аn, причем
вероятности этих состояний равны соответственно p 1 , p 2 , …, p n ; и p1
+ p 2 + … + p n = 1, то энтропией системы А называется величина:

H(A) = -(p1 •log2 p1 + p2 • log p2 + … + pn • log pn), (2.5)

или
H(A) = - pi • log q , (2.6)
то есть сумма произведений вероятностей состояний на логарифмы этих
вероятностей, взятая с обратным знаком (обратный знак берется просто для
того, чтобы энтропия была неотрицательной).

71
Логарифм в формуле (2.6) может быть взят при любом основании.
Обычно логарифм берется по основанию 2. Тогда говорят, что энтропия
измеряется в двоичных единицах (битах):

(2.7)

Один бит – это энтропия простейшей физической системы, которая


может быть только в одном из двух состояний, причем эти состояния
равновероятны.
Действительно, пусть система А обладает двумя состояниями А1 и А2 с
вероятностями p1 = 0,5 и p2 = 0,5. Согласно формуле (2.7), энтропия такой
системы равна H(A) = - (0,5•log 2 0,5 + 0,5•log 2 0,5) = 1, то есть одному биту.
В классической теории информации количество информации,
заключенной в сообщении, измеряется уменьшением энтропии системы под
действием этого сообщения. Пусть, например, до поступления сообщения
энтропия системы была равна двум битам, а после него стала равной одному
биту. Из этого мы заключаем, что информация, заключенная в сообщении,
равна одному биту.
Понятию «информация в битах» можно дать очень наглядное
истолкование: она равна числу ответов «да» и «нет» на разумно
поставленные вопросы, с помощью которых можно получить ту же
информацию.
Пусть, например, система А может иметь два равновероятных
состояния: А1 и А2. Тогда полное выяснение состояния этой системы несет
информацию один бит, и, значит, можно ее получить в результате ответа на
один вопрос. Действительно, задав один-единственный вопрос: «Находится
ли система в состоянии А1?» и получив на него ответ «да» или «нет», мы
полностью выясним состояние системы.
Возьмем другой пример. Имеется шахматная доска, на одну из клеток
которой поставлена фигура (слон). Предположим, что все клетки выбираются
с одинаковой вероятностью.
Определим информацию, заключенную в сообщении о том, где стоит
слон. У системы А (слон) 64 равновероятных состояния; ее энтропия равна:
.
Значит, сообщение, полностью устраняющее неопределенность
состояния системы (указание, где стоит слон), должно содержать ровно
шесть битов информации. А из этого следует, что положение слона можно
точно выяснить с помощью не более чем шести вопросов. Предлагаем
читателю в качестве упражнения самостоятельно сформулировать эти шесть
вопросов.
Энтропия обладает следующими свойствами:

72
а) энтропия всегда неотрицательна, так как значения вероятностей
выражаются величинами, не превосходящими единицу, а их логарифмы –
отрицательными числами или нулем, так что члены суммы (2.7)
неотрицательны;
б) если pi = 1 (а все остальные pj = 0, j = 1, …, (n-1)), то Н(А) = 0. Это тот
случай, когда об опыте или величине все известно заранее и результат не
дает новую информацию;
в) H(A) = Hmax при p1 = p2 = … = pn = ,
при этом
;
г) энтропия системы, состоящей из двух подсистем А и В (состояния
системы образуются совместной реализацией объектов А и В), то есть:

Н(АВ) = Н(А) + Н(В).

30. Если события равновероятны и статистически независимы, то оценки


количества информации, по Хартли и Шеннону, совпадают. Это
свидетельствует о полном использовании информационной емкости системы.
В случае неравных вероятностей количество информации, по Шеннону,
меньше информационной емкости системы.
Количество информации только тогда равно энтропии, когда
неопределенность ситуации снимается полностью. В общем случае нужно
считать, что количество информации есть уменьшение энтропии вследствие
опыта или какого-либо другого акта познания. Если неопределенность
снимается полностью, то информация равна энтропии:

I=H.

В случае неполного разрешения имеет место частичная информация,


являющаяся разностью между начальной (H0) и конечной (H1) энтропией:

I = H0 – H1.
Таковы в самых общих чертах принципиальные основы классической
теории информации. Она дает полезный аппарат, позволяющий решать ряд
важных практических задач (например, в теории связи при кодировании
речи или изображений). Однако этот аппарат не универсальный, и множество
ситуаций не укладывается в шенноновскую модель.

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

А1 – противник есть;
А2 – противника нет.

Выяснение, в каком из них именно она находится, в рамках


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

ДРУГИЕ МЕРЫ КОЛИЧЕСТВА ИНФОРМАЦИИ

Семантическая мера. Поскольку классические меры не дают оценки


степени важнсти информации, возникают естественные попытки создания
методов количественной оценки информации, которые бы учитывали ее
смысловое содержание. Эта ветвь науки некоторыми учеными называется
теорией семантической (смысловой) информации. Укажем некоторые ее
подходы.
Предположим, что поступает сообщение S, нужное нам для того, чтобы
в соответствии с его содержанием организовать свою дальнейшую
деятельность. Например, мы слушаем по радио прогноз погоды с тем, чтобы
решить: как одеться для предстоящей рыбалки? Одним словом, мы
собираемся предпринять какое-то мероприятие или совокупность
мероприятий (короче – “операцию”), а сообщение касается тех условий, в
которых она будет проходить.

74
В этом случае, естественно, нужно оценивать информацию,
содержащуюся в сообщении, по увеличению эффективности той операции, в
интересах которой поступает информация. Предположим, что эффективность
операции может быть оценена численно с помощью какого-то критерия W, и
мы хотим эту величину сделать максимальной. Пусть без сообщения S
эффективность операции оценивается величиной Ws. Естественно
предположить, что приращение эффективности в какой-то мере
характеризует ценность и важность полученного сообщения.
Пусть, например, операция состоит в подборе ассортимента товаров для
торговой точки, а сообщение S касается покупательского спроса на
отдельные виды товаров в данном районе. В качестве критерия
эффективности W рассматривается вырученная прибыль. Тогда ценность
информации, заключенной в сообщении S, можно оценить разницей (
), где W0 – прибыль, которую мы получили бы без сообщения S, W s -
прибыль, которую мы получили с учетом сообщения S.
Выделим в качестве семантических мер наиболее распространенные в
теории содержательность и целесообразность.

Содержательность сообщения (события) S выражается через функцию


меры m(s) - содержательности его отрицания. Оценка содержательности
основана на математической логике, в которой логические функции
истинности и ложности имеют формальное сходство с функциями
вероятностей события p(s) и антисобытия q(s) в теории вероятностей.
Как и вероятность, содержательность события изменяется в пределах
.

Мера целесообразности информации определяется как изменение


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

, (2.8)

где p(s) и p0 – конечная (после получения сообщения S) и начальная (до


получения сообщения) вероятности достижения цели.

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

ПРЕОБРАЗОВАНИЕ И ПРЕДСТАВЛЕНИЕ
ИНФОРМАЦИИ

Информационное сообщение всегда связано с источником информации,


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

Дискретизация и квантование. В большинстве случаев информация о


протекании того или иного физического процесса вырабатывается
соответствующими датчиками в виде сигналов, непрерывно изменяющихся
во времени. Переход от аналогового представления сигнала к цифровому дает
в ряде случаев значительные преимущества при передаче, хранении и
обработке информации. Преобразование осуществляется с помощью
специальных устройств – преобразователей непрерывных сигналов – и может
быть выполнено дискретизацией во времени и квантованием по уровню.
Рассмотрим разновидности сигналов, которые описываются функцией
x(t):
а) непрерывные сигналы. Математическая модель – непрерывная
функция непрерывного аргумента. Значения, принимаемые функцией x(t) и
аргументом t, могут быть любыми в диапазонах [x min, xmax] и [tmin, tmax] (рис.
3.1, а);

76
б) непрерывно - дискретные сигналы. Модель 1 – непрерывная
функция дискретного аргумента. Значения x(t) определяются на дискретном
множестве значений аргумента t i,
i=0, 1, 2, … Величина x(t) может принимать любые значения из диапазона
[xmin, xmax] (рис. 3.1, б). Модель 2 – дискретная функция непрерывного
аргумента. Значения, которые может принимать функция x(t) образуют
дискретный ряд чисел x1, x2, …, xk. Значение аргумента t может быть любым в
интервале [tmin, tmax];
в) дискретные сигналы. Модель – дискретная функция дискретного
аргумента. Значения, которые может принимать функция x(t) и аргумент t,
образуют дискретные ряды чисел x1, x2, …, xk и t1, t2, …, tk, заданные на
интервалах [xmin, xmax], [tmin, tmax] (рис. 3.1, в).

Преобразование сигнала x(t) непрерывного аргумента t в сигнал x(t i)


дискретного аргумента ti называется дискретизацией (квантованием по
времени).
Преобразование непрерывного множества значений сигнала x(t) в
дискретное множество значений xk, k = 0, 1, 2, …, (m-1);
называется квантованием (по уровню).
Дискретизация и квантование – типичные способы преобразования
информации при вводе ее в компьютер.

77
Х
xmax

хmin

T
t1 t2 t3 tk
б

Рис. 2.1. Разновидности сигналов

Различают две формы представления информации – статическую (рис.


3.2, а) и динамическую (рис. 3.2, б).

78
Рис. 2.2. Формы представления информации

Возможность передачи сообщения посредством электрического


сигнала реализуется с помощью канала связи, соединяющего источник и
приемник информации (рис. 2.3).

79
Рис. 2.3. Информационная модель канала связи

Чтобы передать информацию, необходимо ее предварительно


преобразовать.

Кодирование – преобразование сообщения в форму, удобную для


передачи по данному каналу. В качестве простого примера можно привести
передачу сообщения в виде телеграммы. Все символы кодируются с
помощью телеграфного кода.

Декодирование – операция восстановления принятого сообщения. В


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

Рис. 2.4. Информационная модель системы связи

80
ГЛАВА 3. МОДЕЛИ И КЛАССИФИКАЦИИ
ИНФОРМАЦИОННЫХ СИСТЕМ

3.1. Модель ISO/OSI

Модель ISO/OSI (семиуровневая архитектура открытых систем)


разработана на основе концепции взаимодействия процессов пользователей
(прикладных процессов) через транспортную сеть с помощью метода обмена
сообщениями (рис. 1.1) [21, 253].

Процесс польз Процесс польз Процесс польз


. . . .
ователя ователя ователя

Транспортная сеть

Рис.3.1

При этом в задачу транспортной сети входит доставка сообщений из


одной точки в другую без всякой их интерпретации, а также маскирование
механизма доставки сообщений (т.е. сглаживание различных реализаций
сегментов сети, или обеспечение прозрачности). Таким образом, в
соответствии с концепцией, сеть представляется процессам пользователей
однородной, или гомогенной.
Модель ISO/OSI (рис. 1.2) является детализацией рассмотренной
концепции. Помимо детализации, модель производит упорядочивание
процессов по вертикали (интерфейсные взаимодействия) и горизонтали
(протокольные взаимодействия). Рассмотрим основные особенности модели
ISO/OSI (далее просто модели). Как видно из рисунка, для ее рассмотрения
необходимо наличие как минимум двух систем. На рисунке эти две системы
обозначены как система А и система В.

81
Система А Система В

Прикладной Прикладной

Представление данных Представление данных

Сеансовыый Сеансовыый
Интерфейсы

Интерфейсы
Транспортный Протоколы Транспортный

Сетевой Сетевой

Канальный Канальный

Физический Физический

Среда передачи данных

Рис. 3.2

Нижние четыре уровня (транспортный - физический) в соответствии с


концепцией образуют транспортную сеть, прозрачную для процессов
высоких уровней (прикладной – сеансовый). Протоколы для транспортной
сети в настоящее время стандартизованы (например, семейство протоколов
IP или Х.25).

82
Рис. 3.3

Механизмы взаимодействия процессов в соответствии с этими


протоколами хорошо описаны в литературе [116, 117, 253] и в документации
по стандартам (RFC и МККТТ), поэтому мы их касаться не будем. Отметим
лишь, что протокол транспортного уровня называется сквозным (end-to-end).
Процессы именно этого уровня предоставляют в рамках систем единый для
всей сети интерфейс (интерфейс транспортного уровня).
Рассмотрим взаимодействие процессов на сеансовом уровне. По
определению, основная задача этих процессов состоит в выделении ресурсов,
необходимых для проведения сеанса связи между прикладными процессами,
расположенными в разных системах (как правило, между клиентским и
серверным процессами). Поддержка протоколов сеансового уровня
осуществляется операционной системой [11, 26]. При этом выполняются
следующие шаги:
Идентификация пользователя (установление его уникального имени).
Аутентификация (проверка подлинности пользователя).
Авторизация (предоставление пользователю соответствующих прав и
выделение необходимых для поддержания сеанса ресурсов).
Контроль (на протяжении всего сеанса) за корректностью
использования ресурсов, а также (при необходимости) ведение статистики
взаимодействия процессов-участников сеанса.
Основной трудностью при организации сеанса является решение
задачи построения логической звезды процессов (рис. 1.3), т.е. построение
алгоритма взаимного исключения при множественном доступе (МД)
процессов к общему ресурсу (серверу) в режиме разделения времени [21,
138]. Эта задача является достаточно сложной даже для сосредоточенных
систем с централизованным управлением; в распределенных системах она
усложняется, как минимум, на порядок. Целью задачи является устранение
конфликта, возникающего при МД, и, как следствие, обеспечение
безопасного управления общими ресурсами (ОР).
Приведем способы решения задачи взаимного исключения,
реализованные в семействе протоколов TCP/IP (Transport Control
Protocol/Internet Protocol). Первый способ реализован в протоколе UDP (User
Datagram Protocol) (рис. 1.4). Способ предполагает, что имеется некий
83
централизованный процесс-сервер, обеспечивающий упорядочивание
запросов с помощью общей очереди. В этом случае задача разделения
ресурса при МД решается достаточно тривиально с помощью монитора
Хоора [138].
Недостаток способа состоит в том, что в случае цепочечных запросов
(т.е. запросов, состоящих из нескольких связанных команд) серверу
необходимо хранить предысторию каждого из своих клиентов, что является
достаточно трудной задачей. Тем не менее, способ достаточно широко
используется именно в силу простоты решения проблемы МД.

Рис. 3.4

Более того, в работе [41] приведен метод, позволяющий организовать


хранение предыстории в области памяти клиентских процессов. В этом
методе предложено после выполнения каждой элементарной команды
посылать клиенту те только данные (результат), но и текущее состояние
серверного процесса (контекст). При этом клиент при каждом запросе
посылает серверу не только команду с необходимыми данными, но также и
сохраненный контекст. Таким образом, сервер как бы возобновляет
обслуживание с точки выполнения последней команды клиента. Недостатком
метода является невозможность его использования в распределенных
телекоммуникационных системах (РТКС) с низкой скоростью передачи
данных. Однако, на этот недостаток можно закрыть глаза в силу
многократного увеличения быстродействия компьютеров, объема их памяти
и возросшими на несколько порядков скоростями передачи даных в РТКС.

84
Поток заявок 1 Очередь заявок 1 Cервер 1

Сеть связи
Поток заявок 1
Очередь заявок 2 Cервер 2
....

....

Поток заявок
Очередь заявок N Cервер N
N

Порождающий се
рверный процесс

Рис. 3.5

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


распараллеливании сервера (рис. 1.5). При этом на серверной машине
постоянно присутствует некий порождающий процесс. При каждом
подключении нового клиента этот процесс запускает копию сервера так, что
у каждого клиента возникает своя очередь запросов.
Таким образом, хранение предыстории и сохранение контекста
возлагается на операционную систему. Схема весьма популярна в силу
простоты ее реализации, и применяется в широком классе систем «клиент-
сервер» (например, в WWW – всемирной паутине). Однако, в силу
отсутствия в схеме общей очереди запросов, в ней возникает необходимость
решения доступа к общему ресурсу – например, базе данных, и проблемы
синхронизации транзакций встают на первый план. Типичная ситуация для
таких систем – отказ в обслуживании, когда все время тратится на
разрешение конфликта [116,117], или некорректное обслуживание (продажа
двух билетов на одно и то же место – система «Сирена»).

Способ реализован в протоколе TCP/IP. К его вышеперечисленным


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

85
администрировании РТКС или РИС необходимо обратить внимание, прежде
всего, на ОС сервера.
Рассмотрим следующий интересующий нас уровень модели ISO/OSI –
уровень представления данных (ПД). Если на сеансовом уровне решается
задача защиты ресурса от разрушения при МД, то на уровне ПД должна
решаться задача шифрации передаваемых данных. Модель ISO/OSI
предоставляет такую возможность в силу своей открытости. Если на нижних
уровнях модели мы не имеем права на использование нестандартных
протоколов (ибо в этом случае разрушится сама РТКС), то на верхних
уровнях, помимо общепризнанных стандартов (например, FTP, SMTP, HTTP
и так далее) мы имеем право на разработку и использование собственных
методов, алгоритмов и процедур управления ресурсами.
Последний, самый высокий уровень модели ISO/OSI – прикладной
позволяет нам решать любые задачи с случае, если их невозможно решить с
помощью штатных средств ОС. Например, в ОС UNIX и Microsoft Windows
задача МД решается с помощью флага блокировки ресурса, что фактически
приводит нас к случайным алгоритмам обслуживания со всеми
вытекающими негативными последствиями (перегрузка систем, отказ в
обслуживании и так далее). Поэтому в безопасных РИС и РТКС необходимо
размещать соответствующие алгоритмы (работа с очередями FIFO, HPF, RR
и так далее) на прикладном уровне.

3.2. Классификация по Флинну

Рассмотрим классификацию систем по принципу взаимодействия


потоков команд с потоками данных (классификацию по Флинну [12]). Такая
классификация предполагает наличие четырех моделей – SISD (Single
Instructions, Single Data), SIMD (Single Instructions, Multiply Data), MISD
(Multiply Instructions, Single Data) и MIMD (Multiply Instructions, Multiply
Data). Первоначально модели были разработаны для анализа принципов
синхронизации команд в мультипроцессорных системах, и в настоящее время
они применяются именно в этой области. При этом используются
практически только две модели – SIMD и MIMD, как наиболее приемлемые
для таких систем, и исследуются взаимодействия на уровне достаточно
простых объектов (команд и данных). Таким образом, представляет интерес
рассмотрение всех четырех моделей с точки зрения их применимости при
исследовании характера взаимодействия более сложных объектов (процессов
и ресурсов) в более сложных системах (распределенных
телекоммуникационных системах).
Введем некоторые определения.
Поток (по Флинну) будем называть процессом, если он требует для
своего выполнения некоторого (возможно, удаленного) ресурса.
Под ресурсом будем понимать любой объект системы (данные,
процедуры, другие процессы), если он может быть предоставлен системой в
распоряжении одного или нескольких процессов. Будем говорить, что задача
86
управления ресурсом существует, если существует конкуренция нескольких
процессов за некоторый ресурс. Рассмотрим применимость моделей Флинна
в рамках введенных определений.
Модель SISD (рис. 1.6) является бесконфликтной в силу наличия всего
лишь одного процесса (потока, процессора), и не может отражать суть задачи
управления ресурсом в силу отсутствия в ней конкуренции. Тем не менее,
SISD может служить прекрасной моделью монитора Хоора [138] –
некоторого привилегированного процесса операционной системы (ОС),
отвечающего за корректное разделение охраняемого монитором ресурса.
По сути дела, все возникающие при МД задачи так или иначе сводятся
к упорядочиванию запросов (т.е. к постановке параллельных процессов в
некоторую последовательно обслуживаемую очередь) с целью облегчения
синхронизации процессов. Строго говоря, основной задачей при решении
проблемы взаимного исключения в параллельном окружении как раз
является сведение всех достаточно сложных взаимодействий к модели
SISD.

Рис. 3.6

Модель SIMD (рис. 1.7) предполагает наличие многих процессов,


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

87
Рис. 3.7
В рамках такой модели (это справедливо и для других классических
мультипроцессоров, в которых каждый процессор выполняет только один
процесс) термины «процесс» и «процессор» по сути, тождественны.
Модель не может быть использована для решения задачи управления
ресурсом по двум причинам. Во-первых, в отличии от SISD в ней не
существует общего ресурса. Во-вторых, в РТКС невозможно в силу
топологических причин засинхронизировать действия нескольких процессов
так, чтобы команды в этих процессах выполнялись синхронно. Таким
образом, возможности применения модели в РТКС, как минимум, весьма
ограничены и могут быть использованы только концептуально при анализе
систем, имеющих дело с распределенными ресурсами (поиск в
распределенных СУБД и так далее). При этом должны быть решены
вопросы синхронизации процессов.

88
Поток заявок 1 Поток заявок 2 Поток заявок N

Поток команд Поток команд . . . . Поток команд


1 2 N

Общий поток данных

Рис. 3.8.

Модель MISD (рис. 1.8). Флинн определил эту модель как «пустой
класс», поскольку на момент создания классификации не было систем,
подходящих под MISD. В настоящее время известна система, имеющая
явные MISD-признаки. Это класс конвейерных процессоров, в котором
множество разных процессоров выполняют операции над общими данными;
при этом действий процессоров должны быть взаимосвязаны. Переходя от
конвейерных процессоров к множеству процессов в РТКС и от общих
данных к общему ресурсу видим, что MISD, по сути, идеально подходит для
решения нашей задачи. В самом деле, в MISD есть оба признака,
определяющих задачу управления ресурсом – наличие множества процессов
и их конкуренция за общий ресурс. Таким образом, применительно к РТКС в
рамках этой модели может быть получен новый класс алгоритмов,
принципиально (на модельном уровне) отличающихся от алгоритмов,
используемых в настоящее время.

89
Рис. 3.9

Модель MIMD (рис. 3.9) представляет собой некоторое


неопределенное множество процессов и ресурсов, способное гибко
подстраиваться под любую из рассмотренных выше моделей. С этой точки
зрения, MIMD идеально подходит для описания РТКС, однако мало что дает
для исследования. В этой модели предполагается, что каждый процесс имеет
доступ к собственному ресурсу; наличие взаимосвязей между процессами
выносится за рамки модели.
Однако, в реальных системах это не так. Например, широко
используемая в настоящее время технология «клиент-сервер» прямо
ориентирована на доступ множества процессов к централизованным данным;
системы репликации предусматривают тиражирование ресурса с целью
обеспечения высокой надежности и так далее. Следовательно, MIMD можно
рассматривать лишь как некоторую исходную модель, подлежащую
дальнейшей детализации.
В качестве примера рассмотрим применение классификации Флинна
для анализа взаимодействия процессов в технологии клиент-сервер [47].
Предположим, что некоторый сервер имеет базу данных (БД),
организованную в виде набора файлов. Доступ к БД возможен для любого
процесса, выполняющегося в РТКС. Такой процесс будем называть
клиентом. Пусть каждый клиент имеет доступ к своему файлу. Поскольку
имеется набор (множество) файлов в БД и множество процессов, опишем
систему как MIMD. От такой модели мы вправе ожидать параллелизма
операций и, как следствие, высокой эффективности. Однако посмотрим, что
происходит на самом деле. Предположим, что все файлы БД находятся на
одном накопителе (магнитном диске). Тогда при доступе все запросы от
клиентов так или иначе будут выстраиваться сервером в одну общую очередь
к этому накопителю. При этом безразлично, сколько процессоров реально
90
имеет сервер. Но в этом случае обслуживание, фактически, будет
производиться одним процессом – монитором накопителя; все остальные
процессы, даже при выполнении параллельно на разных процессорах, будут
вынуждены ждать. Но монитор накопителя, как уже отмечалось выше,
работает в соответствии с моделью SISD. Следовательно, и вся система,
определенная нами предварительно как MIMD, оказывается в
действительности системой SISD.
Приведенный достаточно простой пример показывает
привлекательность моделей Флинна для качественного анализа
эффективности тех или иных схем управления на самых ранних этапах
проектирования. Такой подход позволяет выявить концептуальные ошибки
на ранних стадиях и выбрать наиболее эффективные модели управления
ресурсами.

Часть II. ИНФОРМАТИКА

Глава 4. ОПЕРАЦИОННЫЕ СИСТЕМЫ

Термин «операционная система» (ОС) имеет двоякое значение: под ним


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

Вид ОС, задачи, которые она решает в процессе работы (основные


функции), зависят от режима функционирования компьютерной системы.
Ниже перечисляются основные способы функционирования вычислительных
систем и особенности соответствующих ОС.

4.1. Однопользовательские операционные системы

Режим индивидуального пользования. Машина предоставлена


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

Программа, управляющая ходом вычислительного процесса внутри


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

В больших системах ходом вычислительного процесса управляет не


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

Количество
Модель ресурсов мониторов
1-я 1 1
2-я >1 1
3-я 1 >1
4-я >1 >1

Модель 1 является полностью централизованной, модель 2 -


централизованной по монитору и распределенной по ресурсу, модель 3 -
централизованной по ресурсу и распределенной по монитору. Наконец,
модель 4 является полностью распределенной.

92
Модели 1 и 2 наиболее просты в реализации алгоритмов управления и
широко применяются в различных системах. Вместе с тем они имеют
недостатки, основные из которых – низкая надежность централизованного
монитора и его ограниченная пропускная способность.

Модели 3 и 4 обладают очень высокой надежностью и пропускной


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

Программа–монитор, как правило, «резидентна» в оперативной памяти,


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

Монитор принимает и организовывает выполнение команд, вводимых


пользователем (команды монитора) или выдаваемых программами
пользователя (процессами), например, команду LOAD для чтения
прикладных программ с кассеты или гибкого диска и размещения их в
оперативной памяти. Другая команда - RUN - заставляет монитор «управлять
прохождением данных» загруженной программы, организовывая и
инициируя последовательное выполнение команд (инструкций) программы.
Когда прикладная программа завершает выполнение, или если она пытается
неправильно использовать оборудование (например, попытка деления на
ноль), монитор принимает управление и делает соответствующую
«подсказку» пользователю. В случае преждевременного завершения
выполнения программы выдается сообщение об ошибках, например
«ОШИБКА: ПОПЫТКА ДЕЛЕНИЯ НА НОЛЬ».

Для некоторых систем характерны дополнительные функции


монитора:
- «подсказки» пользователю;
- сообщения об ошибках в режиме диалога;
- контроль устройств;
- распределение памяти.

В таких системах есть «нерезидентные части» монитора. Они хранятся,


например, на жестком диске и вызываются (загружаются) по мере
надобности. Резидентная же часть монитора может называться
«Исполнителем», «Супервизором», хотя часто эти названия вместе с
названием «Монитор» используются как синонимы.

93
4.2. Операционные системы с разделением времени (системы с
многопользовательской защитой)

Режим коллективного пользования, или мультидоступа, - форма


обслуживания, при которой возможен одновременный доступ нескольких
независимых пользователей к одной ЭВМ.
Одновременность доступа означает:
- каждому пользователю должны быть предоставлены собственные
средства связи с системой (терминалы, т. е. устройства ввода/вывода), с
помощью которых он может обращаться к системе в любой удобный момент
времени;
- при одновременном обращении нескольких пользователей время
ожидания ответа (результата решения задачи) должно быть по возможности
близко к тому, которое было бы при единоличном использовании системы.
Конечно, одновременность доступа есть иллюзия, возникающая из
несоответствия скоростей реакции человека и компьютера.

Мультипрограммная пакетная обработка обеспечивает высокую


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

В наиболее простых системах подобного типа обработка всех запросов


занимает примерно одно и то же время (системы типа «запрос-ответ»).

Обеспечение более тесного взаимодействия пользователей с


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

Операционная система с разделением времени организует


виртуальную (воображаемую) оперативную память, объем которой
складывается из объема реального ОЗУ и объема внешней памяти (во всяком
случае - полного объема памяти на магнитном диске). Каждая программа
получает свою область подобного воображаемого ОЗУ, на которой
полностью помещается как сама программа, так и все данные, которыми она
оперирует. Кроме того, каждая программа получает свою элементарную
94
порцию времени, по истечении которого по сигналу от таймера производится
прерывание данной программы и передача управления следующей по
порядку программе.

Подобный процесс повторяется циклически, так что в течение полного


цикла каждая программа продвигается в своем исполнении в соответствии с
выделенной для нее порцией времени. Правда, при этом требуется
заблаговременно «перебросить» нужные страницы виртуальной памяти в
реальное физическое ОЗУ. Благодаря цикличности подобного процесса
можно построить такое обслуживание, при котором будет осуществляться
упреждающая подготовка нужных страниц.

Режим разделения времени во многих случаях гарантирует решение


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

Во многих ЭВМ режим разделения времени сочетается с режимом


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

4.3. Операционные системы реального времени

Режим реального времени. Работа в реальном (масштабе) времени


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

, (5)

где tr – момент выработки реакции; ts – момент поступления сигнала; Tkrit -


предельно допустимое время ожидания реакции системы на сигнал.

При этом в случае запаздывания системы управляющее воздействие не


должно выдаваться вообще. Работа в реальном времени характерна для
систем управления. Для различных подсистем этих систем временные
интервалы колеблются в очень широких пределах и могут задаваться
детерминированно или стохастически.

95
Следует отметить, что работа в реальном времени далеко не всегда
означает, что задача решается «очень быстро». Например, в стекольном
производстве (варка стекла) технологические процессы протекают медленно,
и управлять ими могут ЭВМ с относительно небольшим быстродействием.
Хотя, конечно, есть очень много процессов, которые протекают крайне
быстро и требуют переработки больших объемов информации.

В системах массового обслуживания (например, резервирование и


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

Одно из основных различий между системами реального времени


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

4.4. Операционные системы персональных ЭВМ

Для персональных компьютеров платформы IBM PC в настоящее время


наиболее широк выбор ОС. В большинстве своем эти системы принадлежат
семейству Windows: Windows 95, Windows NT, Windows 98, Windows
Millenium, Windows 2000, Windows XP и Windows Vista. Операционные
системы Windows являются универсальными многоцелевыми системами для
широкого круга задач. Их сфера применения: бытовые и учебные
компьютерные системы, а также офисные системы автоматизации рабочих
мест малых предприятий.

Все вышеуказанные ОС являются графическими. Программы, которые


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

Windows NT/2000 (NT - англ. New Technology) - это операционная


система, предназначенная для построения на ее основе серверных систем
широкого класса. Она использует все возможности новых моделей
персональных компьютеров и работает без DOS. Windows NT/2000 - 32-раз-
96
рядная ОС со встроенной сетевой поддержкой и развитыми
многопользовательскими средствами. Она предоставляет пользователям
истинную многозадачность, многопроцессорную поддержку, секретность,
защиту данных. Эта ОС очень удобна для пользователей, работающих в
рамках локальной сети, для коллективных пользователей, особенно для
групп, работающих над большими проектами и обменивающихся данными.

Windows XP/Vista - универсальные высокопроизводительные


многозадачные и многопотоковые 32-разрядные клиентские ОС
обеспечивают работу пользователя в сети, предоставляя встроенные средства
поддержки для обмена файлами и меры по их защите, возможность
совместного использования принтеров, факсов и других общих ресурсов.
Windows XP/Vista позволяяют отправлять сообщения электронной почтой,
факсимильной связью, поддерживает удаленный доступ. Применяемый в
Windows XP/Vista защищённый режим не позволяет прикладной программе в
случае сбоя нарушить работоспособность системы, надежно предохраняет
приложения от случайного вмешательства одного процесса в другой,
обеспечивает определённую устойчивость к вирусам. Пользовательский
интерфейс Windows XP/Vista прост и удобен.

Глава 5. ЯЗЫКИ ПРОГРАММИРОВАНИЯ И ТРАНСЛЯТОРЫ

Под языком программирования принято понимать фиксированную


систему обозначений для описания алгоритмов и структур данных. Такой
язык имеет два «лица». Одно - обращено к программисту, использующему
язык для записи своих программ, а другое - адресовано компьютеру, который
должен понимать эти программы.
Существуют различные классификации языков программирования.
Например такая:
- языки низкого уровня;
- языки высокого уровня.

Специальные программы, переводящие входные программы,


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

5.1. Языки низкого уровня

97
Языки низкого уровня - это машинно-ориентированные языки, в
которых каждая команда соответствует машинной команде или
элементарной операции.

Группу таких языков обычно открывает «язык микрокоманд». По


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

На основе этого набора микрокоманд создаются специальные


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

Языки символического кодирования (ассемблер) - следующий в


иерархии языков низкого уровня. О преимуществах мнемонических кодов
(LDA 5 вместо 0000000000000101) и символических адресов (LDA N) такого
языка уже говорилось.

Программа, написанная на ассемблере должна транслироваться в


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

Следующим естественным усложнением стала замена часто


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

98
Все языки низкого уровня ориентированы на определенный тип
аппаратуры, а потому специализированы. В настоящее время наиболее
популярны языки ассемблеров для систем команд IBM-PC и VAX.

5.2. Языки высокого уровня

Для всех языков высокого уровня общее то, что ориентированы они не
на систему команд той или иной ЭВМ, а на систему операторов, характерных
для записи определенного класса алгоритмов. Типичные операторы таких
языков - операторы присваивания (по сути дела, это формулы, значения
которых запоминаются в заданных переменных); перехода; цикла; условные
операторы; операторы ввода/вывода; операторы описания данных.

Введем «прикладную» классификацию языка программирования


высокого уровня, согласно которой языки, в зависимости от области
применения делятся:

- на экономические (коммерческие);
- научные;
- специализированные;
- многоцелевые.

Экономические языки. Наиболе известен язык обработки


экономической информации - КОБОЛ (Common Business Orieted Language).
Основные особенности: обширные средства создания файлов, набор средств
работы с таблицами и составления отчетных ведомостей - сделали его
лидером в этой области на протяжении долгого промежутка времени.
Разработан он в 1964 г. КОДАСИЛ (CODASIL Conference of Data System
Languages - Конференция по языкам систем данных США).

Научные языки. Самые распространенные - АЛГОЛ (ALGorithmic


Oriented Language) и ФОРТРАН (FORmula TRANslation).

ФОРТРАН - один из самых первых языков высокого уровня. Уже


название говорит о том, что основное внимание здесь уделено удобному
представлению формул. Первая версия разработана группой американских
ученых в 1954 г. под руководством профессора Дж. В. Бэкуса. Вторая версия
- ФОРТРАН-2 (1958 г.) содержала значительные расширения языка. В 1961 г.
появился ФОРТРАН-3, включающий инструкции обработки сложных
логических выражений и буквенно-символьной информации, в 1962 г. -
ФОРТРАН-4, который продержался практически до 1980-х гг. Модификации:
ФОРТРАН-77, ФОРТРАН-82. В 1990-х гг. был достаточно популярным
ФОРТРАН-5, одно из основных достоинств которого - работа с
комплексными числами.

99
Основу ФОРТРАНА составляют арифметические операторы,
соответствующие по своему синтаксису традиционной записи
математических выражений. Кроме того, в языке имеются средства
представления условий и средств представления циклов. Имеются
достаточно развитые средства форматного ввода/вывода числовых данных.
Наконец, есть средства разбиения сложных алгоритмов на более простые за
счет явного определения подпрограмм (Subroutine) и функций (Function).
Описание данных в ФОРТРАНЕ ориентированы на представление, главным
образом, чисел. Поэтому типы данных просты: это целые и действительные
числа, а также массивы из таких чисел (одномерные и многомерные).

АЛГОЛ. Первая версия появилась в 1958 г. Можно отметить несколько


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

По составу исполняемых операторов АЛГОЛ-60 и АЛГОЛ-68 (более


всесторонняя и современная версия) близки к ФОРТРАНУ. Здесь почти те же
средства записи арифметических выражений. Наиболее интересны средства
управления выполнением отдельных фрагментов программного текста,
способы передачи параметров между процедурами и функциями, а также
средства описания программных структур. Именно в АЛГОЛе появились
понятия блока и рекурсивного вызова процедуры.
Отличает АЛГОЛ и то, что с самого начала это был алгоритмический
язык, синтаксис и семантика которого закреплены международным
стандартом.

Итак, для научных языков характерны:


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

Специализированные языки. Это языки, приспособленные для


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

100
Среди таких языков выделим:

- ЛИСП (LIST Processing Language, Дж. Маккарти, 1960 г.). Язык стал
основой рода программных реализаций интеллектуальных систем.
Предназначен для обработки списков. ЛИСП-программа представляет собой
рекурсивную функцию над текстовыми данными со скобочно-списковой
структурой;
- ПРОЛОГ ( PROgramming in LOGin) - язык «логического
программирования», разработан А. Калмероэ в 1978 г.;
- РЕФАЛ (рекурсивных функций алгоритмический язык) - ориентирован
на реализацию в виде программ нормальных алгоритмов Маркова.
Разработан В.Тургиным. Подобно ЛИСПу, этот язык активно использует
мощные средства преобразования списков на основе концепции
распознавания образов;
- СИМУЛА. Разработан как расширение АЛГОЛ-60 (У.И. Дал, 1964 г.,
СИМУЛА-1, 1968 г., СИМУЛА-67) для моделирования дискретных систем
(задач имитационного моделирования);
- АДА - язык программирования для встроенных вычислительных
систем (Дж. Ишбиа, 1980 г.). Для него характерны статический контроль
программ, абстракция данных, пакеты, концепция «рандеву». За счет этого
язык обеспечивает программирование задач реального времени, возможности
моделирования параллельного решения задач и обработку прерываний.
Назван в честь Ады Лавлейс (иногда АДА трактуется как сокращение от
Automatic Data Acquisitian).

5.3. Многоцелевые языки

Выделим следующие:

- ПЛ/1 (PL/1, Programming Language/1) - универсальный многоцелевой


язык программирования с большим разнообразием типов данных и
операторов их обработки, с гибкими средствами управления ресурсами
больших стационарных ЭВМ. Был разработан как преемник ФОРТРАНа
фирмой «IBM» в 1966 г. Всесторонние средства сделали этот язык слишком
большим для использования в микроЭВМ (ПЭВМ), поэтому многие
изготовители персональных компьютеров отказались принимать его;
- БЕЙСИК (Beginners ALLpurpose Symbolic Instruction Code). Был создан
в 1964 г. под руководством профессора Дж. Кемени (США). Язык
первоначально разработан как упрощенная версия ФОРТРАНа для
использования в обучении программированию. Из тех простых начал язык
вырос и стал очень популярным языком, доступным для широкого круга
машин;

- ПАСКАЛЬ. Разработан как преемник АЛГОЛ-60 и как альтернатива


АЛГОЛ-68 Н. Виртом в 1971 г. Назван в честь английского ученого
101
Б.Паскаля. Алголоподобный язык вобрал в себя все лучшие проектные
решения предшественника. Здесь впервые была воплощена концепция
абстрактных типов данных. Если раньше все данные, преобразования
которых описывались в программе, относились к одному из заранее
определенных типов (целые, действительные и т. п.), то в ПАСКАЛе были
введены средства конструирования новых типов данных. Кроме того, в языке
есть средства работы с множествами. Благодаря таким свойствам ПАСКАЛЬ
стал не только мощным многоцелевым средством программирования, но и
языком, пригодным для обучения программированию как систематической
дисциплине, основанной на функциональных понятиях, ясно и естественно
отображенных в самом языке ПАСКАЛЬ;

- СИ. Разработан в 1972 г. Д. Ритчи. Изначально создавался как


инструментальное средство для реализации операционной системы UNIX для
компьютеров PDP (фирмы «DEC»), но популярность его быстро переросла
рамки конкретной машины, ОС и задач системного программирования.
Сейчас СИ можно назвать одним из самых мощных универсальных языков
программирования. С одной стороны, в нем имеются средства определения
новых типов данных, широкий набор операторов, характерных для языков
высокого уровня, модульность и структурность, с другой - в язык включены
средства программирования на уровне ассемблера: побитовые операции,
работа с указателями.

5.4. Трансляторы

Для того, чтобы программа, написанная на том или ином языке


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

Трансляторы подразделяются на два типа:

- компиляторы (программы-компиляторы, от слова compile - составлять,


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

Любой транслятор (и компилятор и интерпретатор) решает две основные


задачи:

- синтаксический анализ исходного текста, т. е. выделяются все


основные компоненты, из которых состоит программа. В процессе
синтаксического анализа выявляются возможные ошибки в исходном тексте.
Такие ошибки называют синтаксическими (связанными с неправильной
записью программы на исходном языке программирования, например, с
использованием недопустимых операторов или недопустимых
последовательностей символов, отсутствием необходимых описаний
объектов языка и т. п.);

- генерирование выходной программы. Для всякой инструкции входного


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

Процесс трансляции начинается с чтения исходного текста. Процедура


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

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

Если в трансляторе имеются специальные возможности оптимизации


выходной программы, то используется многопроходной транслятор.

Оптимизация программ осуществляется по двум основным


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

Одной из существенных задач, решаемых в процессе трансляции,


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

5.5. Современные системы программирования

Система программирования - это система для разработки новых


программ на конкретном языке программирования. Современные системы
программирования обычно предоставляют пользователям мощные и удобные
средства разработки программ. В них входят:

- компилятор или интерпретатор;


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

Популярные системы программирования - Turbo Basic, Quick Basic,


Turbo Pascal, Turbo C.

В последнее время получили распространение системы


программирования, ориентированные на создание Windows-приложений:
- пакет Borland Delphi (Дельфи) — блестящий наследник семейства
компиляторов Borland Pascal, предоставляющий качественные и очень
удобные средства визуальной разработки. Его исключительно быстрый
компилятор позволяет эффективно и быстро решать практически любые
задачи прикладного программирования;
- пакет Microsoft Visual Basic — удобный и популярный инструмент для
создания Windows-программ с использованием визуальных средств.
Содержит инструментарий для создания диаграмм и презентаций;
- пакет Borland C++ — одно из самых распространённых средств для
разработки DOS и Windows-приложений.

Инструментальные программные средства - это программы, которые


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

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

Инструментальные программные средства могут оказать помощь на всех


стадиях разработки программного обеспечения.

Глава 6. ЗАПОМИНАЮЩИЕ УСТРОЙСТВА

105
Запоминающее устройство – одно из основных устройств
вычислительной машины. Оно используется для записи, хранения и выдачи
по запросу информации, необходимой для решения задачи.

Запись информации основана на устойчивом изменении физических,


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

При считывании (извлечении) из запоминающего устройства


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

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


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

Время доступа - промежуток времени, за который может быть


записано или прочитано содержимое ячейки памяти после подачи ее
адреса и соответствующего управляющего сигнала.

Емкость определяет количество ячеек в устройстве памяти.

Стоимость измеряется денежными затратами в расчете на единицу


емкости памяти.

Различают два основных вида памяти – основную (внутреннюю) и


внешнюю.

106
6.1. Основная память

Основная память (ОП) - запоминающее устройство (ЗУ), напрямую


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

ОП делится на различные виды, основными из которых является


оперативное запоминающее устройства и постоянные запоминающие
устройства.

Оперативное запоминающее устройство (ОЗУ, англ. RAM - Random


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

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


данных и программ, так как, когда машина выключается, все, что находилось
в ОЗУ, пропадает. Оперативные запоминающие устройства являются
энергозависимыми.

Доступ к элементам оперативной памяти прямой - это означает, что


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

В зависимости от способа хранения информации ОЗУ подразделяют на:

а) статические ОЗУ, каждый бит информации (1 или 0) хранится на


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

б) динамические ОЗУ, каждый информационный бит хранится в виде


заряда конденсатора;

в) статические векторные ОЗУ, имеет быстродействие динамической


памяти при произвольном и статической памяти при последовательном
доступе;

г) псевдостатические ОЗУ представляют собой динамическое ОЗУ, но


имеют встроенную схему регенерации заряда каждой ячейки памяти.
107
Объем ОЗУ обычно составляет 1 - 4 Гбайта.

Обычно ОЗУ исполняется из интегральных микросхем памяти DRAM


(Dynamic RAM - динамическое ОЗУ). Микросхемы DRAM работают
медленнее, чем другие разновидности памяти, но стоят дешевле. Каждый
информационный бит в DRAM запоминается в виде электрического заряда
конденсатора, образованного в структуре полупроводникового кристалла.
Из-за токов утечки такие конденсаторы быстро разряжаются, и их
периодически (примерно каждые 2 миллисекунды) подзаряжают
специальные устройства. Этот процесс называется регенерацией памяти
(Refresh Memory).

Современные микросхемы имеют ёмкость 1 Гбайт и более. Они


устанавливаются в корпуса и собираются в модули памяти.

Наиболее распространены модули типа SIMM (Single In-Line Memory


Module - модуль памяти с однорядным расположением микросхем). В
модуле SIMM элементы памяти собраны на печатной плате длиной около 10
см. Ёмкость таких модулей неодинаковая - 256 Кбайт, 1, 2, 4, 8, 16, 32, 64,
128, 256 Мбайт. Различные модули SIMM могут иметь разное число
микросхем - девять, три или одну, и разное число контактов - 30 или 72.

Важная характеристика модулей памяти - время доступа к данным,


которое обычно составляет 60 - 80 наносекунд.

Кэш-память (англ. cache), или сверхоперативная память - очень быстрое


ЗУ небольшого объёма, которое используется при обмене данными между
микропроцессором и оперативной памятью для компенсации разницы в
скорости обработки информации процессором и несколько менее
быстродействующей оперативной памятью.

Кэш-памятью управляет специальное устройство - контроллер, который,


анализируя выполняемую программу, пытается предвидеть, какие данные и
команды вероятнее всего понадобятся в ближайшее время процессору, и
подкачивает их в кэш-память. При этом возможны как «попадания», так и
«промахи». В случае попадания, то есть, если в кэш подкачаны нужные
данные, извлечение их из памяти происходит без задержки. Если же
требуемая информация в кэше отсутствует, то процессор считывает её
непосредственно из оперативной памяти. Соотношение числа попаданий и
промахов определяет эффективность кэширования.

Кэш-память реализуется на микросхемах статической памяти SRAM


(Static RAM), более быстродействующих, дорогих и малоёмких, чем DRAM.

108
Современные микропроцессоры имеют встроенную кэш-память, так
называемый кэш первого уровня. Кроме того, на системной плате компьютера
может быть установлен кэш второго уровня.

Видеопамять (VRAM) - разновидность оперативного ЗУ, в котором


хранятся закодированные изображения. Это ЗУ организовано так, что его
содержимое доступно сразу двум устройствам - процессору и дисплею.
Поэтому изображение на экране меняется одновременно с обновлением
видеоданных в памяти.

Постоянное запоминающее устройство (ПЗУ), являясь


энергонезависимым, обеспечивает надежное хранение и выдачу информации.
Содержимое ПЗУ не может быть изменено, в нем хранятся часто
используемые (универсальные) программы и данные. К таким устройствам
относятся постоянная память (ROM), перепрограммируемая постоянная
память (Flash Memory), память CMOS RAM, питаемая от батарейки и
некоторые другие виды памяти.

Постоянная память (ПЗУ, англ. ROM, Read Only Memory - память


только для чтения) - энергонезависимая память, используется для хранения
данных, которые никогда не потребуют изменения. Содержание памяти
специальным образом «зашивается» в устройстве при его изготовлении для
постоянного хранения. Из ПЗУ можно только читать.

Перепрограммируемая постоянная память (Flash Memory) -


энергонезависимая память, допускающая многократную перезапись своего
содержимого.

Прежде всего, в постоянную память записывают программу управления


работой самого процессора. В ПЗУ находятся программы управления
дисплеем, клавиатурой, принтером, внешней памятью, программы запуска
и остановки компьютера, тестирования устройств.

Важнейшая микросхема постоянной или Flash-памяти персонального


компьютера - модуль BIOS. BIOS (Basic Input/Output System - базовая
система ввода-вывода) - совокупность программ, предназначенных для
автоматического тестирования устройств после включения питания
компьютера и загрузки операционной системы в оперативную память. Роль
BIOS двоякая: с одной стороны это неотъемлемый элемент аппаратуры
(Hardware), а с другой строны - важный модуль любой операционной
системы (Software).

CMOS RAM - память с невысоким быстродействием и минимальным


энергопотреблением от батарейки. Используется для хранения информации о
109
конфигурации и составе оборудования компьютера, а также о режимах его
работы. Содержимое CMOS изменяется специальной программой Setup,
находящейся в BIOS.

6.2. Внешние запоминающие устройства

Внешнее запоминающее устройство (ВЗУ) - дополнительное


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

В качестве ВЗУ в ЭВМ обычно используются:


- накопители на жестких магнитных дисках;
- накопители на гибких магнитных дисках;
- накопители на компакт-дисках;
- накопители на магнитной ленте;
- накопители на оптических дисках.

6.3. Накопители на гибких магнитных дисках

Гибкий диск, дискета (англ. floppy disk)- устройство для хранения


небольших объёмов информации, представляющее собой гибкий
пластиковый диск в защитной оболочке. Дискеты необходимы для решения
следующих задач:
а) резервирование (дублирование) информации;
б) обеспечение конфиденциальности данных;
в) транспортирование информации;
г) распространение программного обеспечения.

Дискета состоит из круглой полимерной подложки, покрытой с обеих


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

Способ записи двоичной информации на магнитной среде называется


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

На дискете можно хранить от 360 Килобайт до 2,88 Мегабайт


информации.

В настоящее время наибольшее распространение получили дискеты со


следующими характеристиками: диаметр 3,5 дюйма (89 мм), ёмкость 1,44
Мбайт, число дорожек 80, количество секторов на дорожках 18.

Дискета устанавливается в накопитель на гибких магнитных дисках


(англ. floppy-disk drive), автоматически в нем фиксируется, после чего
механизм накопителя раскручивается до частоты вращения 360 мин –1. В
накопителе вращается сама дискета, магнитные головки остаются
неподвижными. Дискета вращается только при обращении к ней.

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

6.4. Накопители на жестких магнитных дисках

Если гибкие диски - это средство переноса данных между компьютерами,


то жесткий диск - информационный склад компьютера.

Накопитель на жёстких магнитных дисках (англ. HDD - Hard Disk


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

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


концентрические дорожки, а дорожки - на секторы. Головки считывания-
записи вместе с их несущей конструкцией и дисками заключены в
герметически закрытый корпус, называемый модулем данных. При
установке модуля данных на дисковод он автоматически соединяется с
системой, подкачивающей очищенный охлажденный воздух.
Поверхность платтера имеет магнитное покрытие толщиной всего лишь в
1,1 мкм, а также слой смазки для предохранения головки от повреждения при
опускании и подъёме на ходу. При вращении платтера над ним образуется
воздушный слой, который обеспечивает воздушную подушку для зависания
головки на высоте 0,5 мкм над поверхностью диска.

Винчестерские накопители имеют очень большую ёмкость: до десятков


Гбайт. У современных моделей скорость вращения шпинделя достигает 7200
111
оборотов в минуту, среднее время поиска данных - 10 мс, максимальная
скорость передачи данных до 40 Мбайт/с.

В отличие от дискеты, винчестерский диск вращается непрерывно.

Винчестерский накопитель связан с процессором через контроллер


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

6.5. Накопители на компакт-дисках

CD-ROM состоит из прозрачной полимерной основы диаметром 12 см и


толщиной 1,2 мм. Одна сторона покрыта тонким алюминиевым слоем,
защищенным от повреждений слоем лака. Двоичная информация
представляется последовательным чередованием углублений (pits — ямки) и
основного слоя (land — земля).
На одном дюйме (2,54 см) по радиусу диска размещается 16 тысяч
дорожек с информацией. Для сравнения — на дюйме по радиусу дискеты
всего лишь 96 дорожек. Ёмкость CD до 780 Мбайт. Информация заносится на
диск на заводе и не может быть изменена.

Достоинства CD-ROM:
- при малых физических размерах CD-ROM обладают высокой
информационной ёмкостью, что позволяет использовать их в справочных
системах и в учебных комплексах с богатым иллюстративным материалом;
- один CD, имея размеры примерно дискеты, по информационному
объёму равен почти 500 таким дискетам;
- считывание информации с CD происходит с высокой скоростью,
сравнимой со скоростью работы винчестера;
- CD просты и удобны в работе, практически не изнашиваются;
- CD не могут быть поражены вирусами;
- на CD-ROM невозможно случайно стереть информацию;
- стоимость хранения данных (в расчете на 1 Мбайт) низкая.

В отличие от магнитных дисков, компакт-диски имеют не множество


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

Для работы с CD ROM нужно подключить к компьютеру накопитель


CD-ROM (CD-ROM Drive), в котором компакт-диски сменяются как в
обычном проигрывателе. Накопители CD-ROM часто называют
проигрывателями CD-ROM или приводами CD-ROM.
112
Накопитель CD-ROM с технической точки зрения. Участки CD, на
которых записаны символы «0» и «1», отличаются коэффициентом
отражения лазерного луча, посылаемого накопителем CD-ROM. Эти отличия
улавливаются фотоэлементом, и общий сигнал преобразуется в
соответствующую последовательность нулей и единиц.

Многие накопители CD-ROM способны воспроизводить обычные аудио-


CD. Это позволяет пользователю, работающему за компьютером, слушать
музыку в фоновом режиме.

На смену CD-ROM приходят цифровые видеодиски DVD. Эти диски


имеют тот же размер, что и обычные CD, но вмещают 4,7 Гбайт данных, т.е.
по объёму заменяют семь стандартных дисков CD-ROM. В скором времени
ёмкость дисков DVD возрастет до 17 Гбайт. На таких дисках будут
выпускаться полноэкранные видеофильмы отличного качества, программы-
тренажёры, мультимедийные игры и многое другое.

6.6. Записывающие оптические и магнитооптические накопители

Накопитель на магнито-оптических компакт-дисках СD-MO (Compact


Disk-Magneto Optical). Диски СD-MO можно многократно использовать для
записи, но они не читаются на традиционных дисководах CD-ROM. Ёмкость
от 128 Мбайт до 2,6 Гбайт.
Записывающий накопитель CD-R (Compact Disk Recordable) способен,
наряду с прочтением обычных компакт-дисков, записывать информацию на
специальные оптические диски. Ёмкость 650 Мбайт.

Накопитель WARM (Write And Read Many times), позволяет


производить многократную запись и считывание.

Накопитель WORM (Write Once, Read Many times), позволяет


производить однократную запись и многократное считывание.

6.7. Накопители на магнитных лентах

Накопители на магнитных лентах (НМЛ) стали применяться в


ЭВМ в пятидесятых годах. Тенденция развития вычислительной техники
такова, что НМЛ стали уделом лишь больших ЭВМ.

Сегодня в ЭВМ накопители на магнитной ленте используются


только для резервирования (дублирования) информации. Несмотря на
последовательный доступ к информации, т. е. более медленный, чем в
накопителях на жестких магнитных дисках, НМЛ гарантируют более
высокую надежность хранения данных.
113
Широкое распространение получили кассетные НМЛ, называемые
стримерами. Кассета для такого устройства внешне похожа на
видеокассету.

Стример (англ. tape streamer) - устройство для резервного копирования


больших объёмов информации. В качестве носителя здесь применяются
кассеты с магнитной лентой ёмкостью 1 - 2 Гбайта и больше. Стримеры
позволяют записать на небольшую кассету с магнитной лентой огромное
количество информации. Встроенные в стример средства аппаратного
сжатия позволяют автоматически уплотнять информацию перед её
записью и восстанавливать после считывания, что увеличивает объём
сохраняемой информации.

Глава 7. УСТРОЙСТВА ВВОДА ИНФОРМАЦИИ

В главе рассматриваются самые распространенные средства ввода


информации в компьютерной системе.

7.1. Клавиатура

Единственным основным устройством ввода информации в ЭВМ и


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

В клавиатурах используются клавиши различных типов, но наибольшее


распространение получили емкостные и контактные.

Емкостные клавиши состоят из подвижной металлической пластины,


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

Контактные клавиши изготавливаются в различных вариантах, но


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

Любая клавиатура ЭВМ имеет четыре группы клавиш:

а) клавиши пишущей машинки для ввода прописных и строчных букв,


цифр и специальных знаков;

б) служебные клавиши, меняющие смысл нажатия остальных клавиш и


осуществляющие другие действия по управлению вводом с клавиатуры;

в) функциональные ( программируемые ) клавиши, смысл нажатия


которых зависит от используемого программного продукта;

г) клавиши двухрежимной малой цифровой клавиатуры,


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

Клавиатура должна быть эргономичной, т. е. удобной для работы. К


основным эргономическим показателям клавиатуры относят:

а) общекомпоновочные решения клавиатуры в ЭВМ;

б) толщину клавиатуры и угол ее наклона относительно горизонтали;

в) схему распространения клавиш, их цвет, форму и размеры;

г) необходимое усилие для нажатия клавиши и ее свободный ход;

д) коэффициент отражения света клавишами и всей поверхностью


клавиатуры;

е) легкость чтения надписей на клавишах.

7.2. Манипуляторы

Манипуляторы (координатно-указательные устройства, устройства


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

Джойстик обеспечивает перемещение курсора на экране в одном из


четырех направлений. Он представляет собой рычаг, установленный на
соответствующем корпусе. Корпус с помощью присосок фиксируется на
неподвижной поверхности вблизи ЭВМ. Сам рычаг, шарнирно
соединенный с преобразователем углов, может совершать движения (в
результате воздействий руки пользователя) вдоль координат X и Y в
пределах телесного угла. На рычаге может находиться одна или
несколько кнопок. Джойстик используется в ЭВМ для взаимодействия с
игровыми программами, при этом курсор может принимать форму какого-
либо движущегося объекта.

Световое перо может применяться для указания точки на экране


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

Манипулятор типа «мышь» представляет собой приспособление


для указания нужных точек на экране путем перемещения его вручную
по плоской поверхности. Координаты местоположения «мыши»
передаются в ЭВМ и вызывают соответствующее перемещение курсора
в виде указателя “мыши” по экрану дисплея. Иногда с помощью
«мыши» вычерчиваются изображения.

По принципу действия различают механические и оптические


«мыши».

Основным узлом механической мыши является шар, выступающий из


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

Оптическая мышь перемещается по специальному планшету, на


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

Недостаток, присущий перечисленным выше манипуляторам, а


именно, наличие кабеля, соединяющего мышь с ЭВМ, устранен с
помощью беспроводного манипулятора типа «мышь». Информация о
перемещении этого манипулятора передается в ЭВМ инфракрасными
лучами или радиосигналами посредством передатчика, встроенного в его
корпус. Эти сигналы фиксируются специальным приемником и
поступают в компьютер. Радиус действия беспроводных манипуляторов
достигает несколько метров, питаются они от батареек или
аккумуляторов. Ощутимый недостаток оптических и механических
“мышей” в том, что нужно иметь на рабочем столе дополнительное
место для их перемещения.

От этого недостатка свободен манипулятор типа «шар», который


представляет собой просто перевернутую механическую “мышь” с теми
же возможностями. Достаточно вращать шар, а не перемещать весь
прибор. Тем более шар позволяет гораздо точнее мыши позиционировать
курсор, так как сам шар может быть большим и вращать его гораздо
удобнее. Если такой манипулятор встраивать в клавиатуру компьютера,
то в скором времени мыши будут вынуждены уйти в сторону.

7.3. Сканеры

Сканером называется устройство ввода, позволяющее вводить в


ЭВМ изображения. Ввод изображений может потребоваться при
размножении документов, для их редактирования, а также в системах
хранения и поиска изображений.

18. Сканеры характеризуются:

а) разрешающей способностью;

б) количеством воспринимаемых оттенков;

в) возможностью ввода цветных или черно-белых изображений;

г) быстродействием;

д) размером обрабатываемых изображений;

е) стоимостью.
117
Сканер освещает оригинал, а его светочувствительный датчик с
определенной частотой производит замеры интенсивности отраженного
оригиналом света. Разрешающая способность сканера прямо
пропорциональна частоте замеров. В процессе сканирования устройство
выполняет преобразование величины интенсивности в двоичный код,
который передается в ЭВМ для дальнейшей обработки.

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


настольные и портативные (ручные).

Настольные сканеры - это высококачественные устройства. Они


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

Портативные сканеры обладают весьма скромными возможностями.


Кроме того малейшая вибрация в процессе ручного сканирования
приводит к искажению изображения. Портативный сканер похож на
“мышь” с длинным “хвостом”, который подключается к ЭВМ.
Достоинством ручного сканера является возможность обработки не
только плоских изображений.

7.4. Графические планшеты

В то время как сканеры обеспечивают ввод в ЭВМ готовых


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

Наиболее распространены графические планшеты, ввод информации в


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

118
7.5. Сенсорные экраны

Сенсорный экран является функциональным аналогом светового


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

К основным характеристикам сенсорных экранов относят скорость


преобразования касания в цифровую форму, разрешение и стоимость.

В зависимости от физических принципов функционирования


сенсорных экранов, их разделяют на следующие типы:

а) резистивного типа;

б) c емкостными датчиками;

в) с акустическими датчиками;

г) с оптическими датчиками.

Сенсорный экран резистивного типа чаще всего выполняется в виде


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

В сенсорных экранах с акустическими датчиками вдоль двух


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

В сенсорных экранах с оптическими датчиками вдоль двух


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

7.6. Средства речевого ввода

Средства речевого ввода открывают широкие возможности и


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

а) возможности распознавать слитную речь;

б) степени зависимости от диктора;

в) быстродействию;

г) объему словаря;

е) вероятности ошибок интерпретации слов.

По первому параметру средства речевого ввода делятся на две


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

Глава 8. УСТРОЙСТВА ВЫВОДА ИНФОРМАЦИИ

В главе описываются основные распространенные средства вывода


информации в компьютерной системе.

8.1. Дисплеи и дисплейные адаптеры

Дисплеем называют устройство визуализации (отображения) текстовой


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

Дисплей является основным периферийным устройством ЭВМ и


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

Часто вместо термина дисплей употребляют термины монитор


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

Терминалом же называется (обычно удаленное) устройство ввода-


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

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


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

По количеству выводимых цветов различают монохромные


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

8. По физическим принципам формирования изображения существуют:


а) дисплеи на базе электронно-лучевой трубки;
б) жидкокристаллические дисплеи;
в) плазменные (газоразрядные) дисплеи;
г) электролюминесцентные дисплеи.

Дисплеи на базе электронно-лучевой трубки традиционны, а


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

Для дисплеев данного типа графические изображения могут


формироваться двумя способами.
В векторном дисплее электронный луч непрерывно «вырисовывает»
контур изображения. Само изображение формируется из отдельных
элементарных отрезков (векторов).
В растровых же дисплеях изображение получается с помощью
матрицы точек, которые могут «светиться», а могут быть невидимыми:
электронный луч пробегает по строкам экрана, подсвечивая требуемые
точки люминофора. В этом случае и небольшом разрешении при
воспроизведении ряда фигур хорошо заметен эффект «мозаичности».
Цветные экраны имеют точки (зерна) трех цветов: красного, зеленого и
синего, собранные в триады. Каждый их трех электронных лучей
отвечает за свой цвет, подсвечивая при необходимости нужные зерна.
Манипулируя яркостью зерен можно сформировать точку любого цвета.

Жидкокристаллический экран (индикатор) представляет собой


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

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

Экран плазменного дисплея представляет собой матрицу


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

Экран люминесцентного дисплея состоит из матрицы активных


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

В стационарных ЭВМ в настоящее время применяются дисплеи на


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

В зависимости от степени универсальности дисплеи подразделяются


на однорежимные и многорежимные.

Однорежимный дисплей способен работать только совместно с


видеоадаптером одного типа, многорежимный, соответственно, с
видеоадаптерами различных типов.

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


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

123
Разрешение дисплея измеряется в различных единицах. Для
алфавитно-цифровых устройств указывается число воспроизводимых
символов в строке и строк на экране.
Для графических дисплеев указывается разрешающая способность, т. е.
количество высвечиваемых точек по горизонтали и вертикали, например:
320x200 или 640x480.

Еще один немаловажный показатель качества дисплеев на базе ЭЛТ -


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

Возможность многорежимной работы дисплея на базе ЭЛТ определяется


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

а) дисплеи с фиксированной частотой;

б) мультичастотные дисплеи, способные работать на нескольких


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

С точки зрения количества воспроизводимых цветов, для цветных


мониторов используют понятия базовой и рабочей палитры. Базовая
палитра - совокупность цветов, которые могут отображаться на экране.
Но цвета базовой палитры нельзя отобразить на экране одновременно.
Обычно, из базовой формируется рабочая палитра, цвета которой могут
сочетаться на дисплее одновременно и в любой комбинации. Как
правило, рабочая палитра является подмножеством базовой. Изменять
рабочую палитру можно программными средствами.

Возможности ЭВМ по отображению информации определяются


совокупностью и совместимостью технических характеристик дисплея и
его адаптера, т. е. видеосистемы в целом. Любой адаптер содержит
видеопамять, хранящую воспроизводимую на экране информацию. Каждой
точке экрана или знакоместу соответствует поле видеопамяти (несколько
бит или байт), в котором хранится элемент отображения, или изображения -
пиксел (pixel - сокращение от англ. picture element). Элемент
отображения определяет режим высвечивания и цвет точки или
124
символа. Видеопамять логически содержится в одном адресном
пространстве с оперативной памятью. Допускается запись данных в
видеопамять и считывание из нее информации программными
средствами. То, что находится в видеопамяти, немедленно отображается
на экране.

Видеоадаптеры делятся на две большие группы - алфавитно -


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

Различают следующие дисплейные адаптеры:


а) адаптер монохромного дисплея (MDA);
б) монохромный графический адаптер (HGA);
в) цветной графический адаптер (CGA);
г) усовершенствованный графический адаптер (EGA);
д) профессиональный графический адаптер (PGA);
е) видеографический адаптер или массив (VGA);
ж) видеоадаптер IBM 8514/A;
з) расширенный графический адаптер или массив (XGA).

Некоторые из перечисленных адаптеров уже устарели и


практически не используются. А некоторые, например VGA, претерпели
ряд модификаций и усовершенствований, а именно: усовершенствованный
VGA (EVGA) и супер-VGA (SVGA). Хотя терминология для расширений
стандарта VGA не устоялась и сейчас можно встретить ее различные
трактовки.

8.2. Печатающие устройства

Печатающие устройства, или принтеры предназначены для


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

125
Принтеры классифицируются по технологии печати.

Принтеры ударного типа характеризуются тем, что изображение на


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

В безударных печатающих устройствах передвижение бумаги и


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

Основными техническими характеристиками принтеров являются:


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

Дополнительно печатающие устройства характеризуются


следующими показателями:

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

8.3. Графопостроители

Графопостроитель, или плоттер - это устройство вывода,


представляющее выводимые из ЭВМ данные в форме рисунка или графика
на бумаге или другом подобном ей носителе информации.
Графопостроители являются высококачественной альтернативой принтерам
при выводе изображений. Используются данные устройства обычно при
автоматизированном проектировании деталей и узлов машин, зданий и т.д.

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

Задаваемые через ЭВМ координаты переносятся на рабочее поле


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

Глава 9. ВЫЧИСЛИТЕЛЬНЫЕ СЕТИ.

9.1. Основные понятия и определения

Вычислительной сетью называется система взаимосвязанных и


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

127
Аппаратное обеспечение составляют ПК или ЭВМ различных типов,
средства связи и оборудование абонентских пунктов (в литературе для
абонентских пунктов принято сокращение АП, в некоторых источниках
литературы они называются рабочими станциями – РС). К ЭВМ сети
предъявляются требования универсальности и модульности. Универсальность
ЭВМ необходима для решения широкого круга задач пользователей сети.
Модульность структуры ЭВМ сети обеспечивает возможность изменения
конфигурации ЭВМ и расширения сети. ЭВМ могут размещаться либо
непосредственно у пользователя сети (персональные компьютеры - ПК), либо
в вычислительном центре, куда пользователи обращаются с запросами со
своих терминалов по каналам связи.
Информационное обеспечение представляет собой массивы (файлы)
данных общего применения (в литературе их называют базами данных,
банками данных, хранилищем данных) и структурированные данные
индивидуального пользования. Данные общего применения доступны для всех
пользователей сети.
Программное обеспечение сети предназначено для нескольких целей:
- организации коллективного доступа к ресурсам;
- динамического распределения и перераспределения ресурсов
сети с целью максимальной загрузки различных технических
средств;
- координации работы основных звеньев и элементов сети;
- автоматизации программирования;
- проведения технического обслуживания вычислительной
техгики сети.
Программное обеспечение (ПО) сети состоит из: общего, специального и
системного.
Общее ПО сети включает операционную систему, систему
программирования и систему технического обслуживания. Операционная
система (ОС) сети решает следующие задачи:
- распределение потока заданий между ЭВМ;
- координация работы звеньев и элементов сети;
- управление подключением и отключением от сетевого
процесса отдельных ЭВМ;
- генерация ПО системы передачи данных в сети и управление
передачей данных.
Специальное ПО включает программы часто решаемых пользователями
задач и программы, обеспечивающие рациональное использование
вычислительных ресурсов сети. В него входят программы поддержки в
актуальном состоянии информационного обеспечения общего пользования,
информационно-поисковые системы и автоматизированные фонды алгоритмов
и программ (общие библиотеки).
Системное ПО представляет собой распределенную операционную
систему сети (РОСС). С ее помощью объединяются ресурсы сети для их

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

9.2. Классификация вычислительных сетей.

По степени территориальной рассредоточенности различают сети:


глобальные, региональные и локальные. К глобальным сетям относится
INTERNET. Региональные сети имеют РС в пределах региона, в качестве
которого может быть город, область или республика. Например, в нашем
министерстве чрезвычайных ситуаций создана и расширяется республиканская
сеть по мониторингу состояния окружающей среды, основанная на
геоинформационной технологии обработки информации. Локальные
вычислительные сети создаются в конкретном предприятии для коллективного
доступа к информации, представляющей интерес для многих работников. Так,
в УГАТУ многие ПК связаны в локальную вычислительную сеть, которая
используется в основном для передачи форм, таблиц и отчетов между
общевузовскими службами и кафедрами университета.
По функциональному назначению выделяют сети информационные,
вычислительные и информационно-вычислительные. Для информационных
сетей характерно большое количество абонентов, связанных с
вычислительным центром в котором расположен достаточно мощный
компьютер, который называют сервером ВС. Если несколько терминальных
сетей по продажи билетов объединить на уровне города, то получим пример
информационной сети заказа и продажи билетов на транспорте.
Вычислительные сети отличаются наличием более мощных ЭВМ, наличием
баз данных и знаний, возможностью перераспределения ресурсов сети между
пользователями. Однако редко сети создаются только для обеспечения
информацией или только для решения научно-технических задач, Чаще в сети
обе эти задачи объединяются и они (сети) создаются как информационно-
вычислительные. К таким сетям относится упомянутая региональная сеть
мониторинга окружающей среды.
Распределение нагрузки между ЭВМ сети и выбор маршрута передачи
сообщений в сетях осуществляется либо централизованно, с помощью
операционной системы верхнего уровня, либо децентрализованно (локально) с
помощью ОС ЭВМ сети. В соответствии с этим, сети бывают с
централизованным и децентрализованным управлением. В большинстве
129
случаев выбор вида управления определяется топологией сети. Под
топологией понимают способ соединения АП или РС в единую систему—сеть.
Топологическая структура оказывает существенное влияние на пропускную
способность, устойчивость сети к отказам оборудования, надежность
обслуживания запросов пользователей, на возможности обслуживания и
стоимость сети.

9.3. Топология сетей.

Достаточно широко распространены вычислительные сети с


централизованной радиальной топологией, получившей название ‘звезда’.
Эта топология изображена на рис. 1а.

а)
б)
- центр обработки и коммутации - АП (РС)

Рисунок 10.1 - Сети с топологией ‘звезда’ (а) и ‘кольцо’ (б)

В радиальной сети основу составляет центральный узел обработки


информации и коммутации. В АП выполняются достаточно простые задачи
обработки информации, как правило, контроль вводимой информации,
отображение вводимой информации и результатов обработки. Наиболее
ответственные и объемные вычислительные задачи решаются в центральном
узле. При большом количестве абонентов между АП и центральным узлом
могут находиться коммутационные узлы более низкого уровня, чем
центральный узел. Такие сети просты по структуре и управлению. Основные
недостатки определяются централизованной системой управления:
- при выходе из строя центрального узла вся сеть становится
неработоспособной;
- нет выбора маршрутов для связи с центральным узлом;
частично снять проблему можно введением дополнительных
(резервных или избыточных) каналов связи, что естественно
приведет к удорожанию сети;
- при перегрузке центрального узла увеличиваются задержки в
обслуживании запросов.

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

У
К

а) б)

- узлы коммутации

Рисунок 10.2 – Сети с топологией ‘дерево’ (а) и ‘общая шина’ (б).

В сети с древовидной топологией (рис.10.2а) центры обработки


связываются между собой через узлы коммутации. Абоненты подключаются
либо к центрам обработки, либо к узлам коммутации. Для сети древовидной
структуры справедливы все достоинства и недостатки, характерные для
кольцевой топологии. Дополнительным преимуществом является то, что в
этой сети проще и дешевле решаются вопросы наращивания сети за счет
подключения новых центров обработки и узлов коммутации.
Полносвязные вычислительные сети получаются, если в сети с топологией
‘кольцо’ каждый центр обработки информации связывается каналами с
каждым другим центром (на рис. 1б пунктиром показаны такие связи, однако
не все). Такое построение вычислительной сети требует большого числа
соединительных линий связи. Оно эффективно для малых сетей с небольшим
количеством центров обработки, работающих в режиме полной загрузки
каналов связи. Очевидно, что наращивание возможностей сети путем
добавления новых центров обработки и узлов коммутации приводит к
значительному увеличению числа соединительных каналов связи и
необходимости модификации всех уже функционирующих узлов.
131
Оправдывается существование таких сетей их высокой гибкостью и
возможностями соединения по разным путям.
Сети с общей шиной (рис.10.2б) являются развитием вычислительных
систем с общей шиной. Между центрами обработки информации нет
устойчивых постоянных связей, информация между ними передается в
режиме разделения времени общей шины. В каждый момент времени по
шине передается пакет информации от какого-либо одного центра к другому,
остальные центры в это время находятся в режиме ожидания или
обрабатывают данные автономно. Каждый передаваемый пакет информации
содержит информативную часть и адресную часть, в которой записывается
адрес приемника информации. Каждый абонентский пункт имеет аппаратуру
для распознавания адресов и, если передаваемый адрес совпадает с адресом
абонента, в память АП записывается передаваемый пакет информации. При
таком управлении функционированием сети исключаются конфликты между
несколькими пакетами информации.
Основные преимущества таких сетей:
- сети имеют невысокие функциональную сложность и стоимость;
- легко осуществляется реконфигурация структуры путем
добавления или исключения АП.
Недостатки:
- производительность сети ограничивается пропускной
способностью общей шины;
- быстродействие сети уменьшается из-за необходимости
разрешать конфликты, когда несколько модулей одновременно
претендуют на занятие общей шины;
- отказ общей шины приводит к отказу всей сети;
- поскольку к такой сети легко подключиться, то трудно
обеспечить несанкционированный доступ.
-
Реальные вычислительные сети, как правило, имеют комбинированную
топологию, что позволяет достигать компромисс между функциональной
сложностью сети и ее стоимостью.
ГЛАВА 10. Протокол TCP/IP
Термин "TCP/IP" обычно обозначает все, что связано с протоколами TCP
и IP. Он охватывает целое семейство протоколов, прикладные программы и
даже саму сеть. В состав семейства входят протоколы UDP, ARP, ICMP, TEL-
NET, FTP и многие другие. TCP/IP - это технология межсетевого взаимо-
действия, технология internet. Сеть, которая использует технологию internet,
называется "internet". Если речь идет о глобальной сети, объе- диняющей
множество сетей с технологией internet, то ее называют Internet.
10.1. Модуль IP создает единую логическую сеть
Архитектура протоколов TCP/IP предназначена для объединенной сети,
состоящей из соединенных друг с другом шлюзами отдельных разнородных
пакетных подсетей, к которым подключаются разнородные машины. Каждая
из подсетей работает в соответствии со своими специфическими
132
требованиями и имеет свою природу средств связи. Однако предполагается,
что каждая под- сеть может принять пакет информации (данные с
соответствующим сетевым заголовком) и доставить его по указанному
адресу в этой конкретной под- сети. Не требуется, чтобы подсеть
гарантировала обязательную доставку пакетов и имела надежный сквозной
протокол. Таким образом, две машины, подключенные к одной подсети
могут обмениваться пакетами.
Когда необходимо передать пакет между машинами, подключенными к
раз- ным подсетям, то машина-отправитель посылает пакет в
соответствующий шлюз (шлюз подключен к подсети также как обычный
узел). Оттуда пакет направ- ляется по определенному маршруту через
систему шлюзов и подсетей, пока не достигнет шлюза, подключенного к той
же подсети, что и машина-получатель; там пакет направляется к получателю.
Объединенная сеть обеспечивает датаграммный сервис.
Проблема доставки пакетов в такой системе решается путем реализации
во всех узлах и шлюзах межсетевого протокола IP. Межсетевой уровень
является по существу базовым элементом во всей архитектуре протоколов,
обеспечивая возможность стандартизации протоколов верхних уровней.

10.2. Структура связей протокольных модулей


Логическая структура сетевого программного обеспечения, реализующего
протоколы семейства TCP/IP в каждом узле сети internet, изображена на
рис.10.1.

Прикладные процессы

TCP UDP

IP

ARP
Рис. 10.1. Структура протокольных
модулей в узле сети TCP/IP
Ethernet
10.3. Терминология
Введем ряд базовых терминов, которые мы будем использовать в даль-
нейшем.

133
Драйвер - это программа, непосредственно взаимодействующая с сетевым
адаптером.
Модуль - это программа, взаимодействующая с драйвером, сете- выми
прикладными программами или другими модулями. Драйвер сетевого
адаптера и, возможно, другие модули, специфичные для физической сети
передачи данных, предоставляют сетевой интерфейс для протокольных
модулей семейства TCP/IP.
Название блока данных, передаваемого по сети, зависит от того, на каком
уровне стека протоколов он находится. Блок данных, с которым имеет дело
сетевой интерфейс, называется кадром; если блок данных находится между
сетевым интерфейсом и модулем IP, то он называется IP-пакетом; если он -
между модулем IP и модулем UDP, то - UDP-датаграммой; если между
модулем IP и модулем TCP, то - TCP-сегментом (или транспортным сообще-
нием); наконец, если блок данных находится на уровне сетевых прикладных
процессов, то он называется прикладным сообщением.
Эти определения, конечно, несовершенны и неполны. К тому же они
меняются от публикации к публикации. Более подробные определения
можно найти в RFC-1122, раздел 1.3.3.
10.4. Потоки данных
Рассмотрим потоки данных, проходящие через стек протоколов, изобра-
женный на рис.1. В случае использования протокола TCP (Transmission Con-
trol Protocol - протокол управления передачей), данные передаются между
прикладным процессом и модулем TCP. Типичным прикладным процессом,
использующим протокол TCP, является модуль FTP (File Transfer Protocol -
протокол передачи файлов). Стек протоколов в этом случае будет
FTP/TCP/IP/ENET.
При использовании протокола UDP (User Datagram Protocol - протокол
пользовательских датаграмм), данные передаются между приклад- ным
процессом и модулем UDP. апример, SNMP (Simple Network Management
Protocol - простой протокол управления сетью) пользуется транспортными
услугами UDP. Его стек протоколов выглядит так: SNMP/UDP/IP/ENET.
Модули TCP, UDP и драйвер Ethernet являются мультиплексорами n x 1.
Действуя как мультиплексоры, они переключают несколько входов на один
выход. Они также являются демультиплексорами 1 x n. Как демультиплек-
соры, они переключают один вход на один из многих выходов в соответствии
с полем типа в заголовке протокольного блока данных (рис.2).
Когда Ethernet-кадр попадает в драйвер сетевого интерфейса Ethernet, он
может быть направлен либо в модуль ARP (Address Resolution Protocol -
адресный протокол), либо в модуль IP (Internet Protocol - межсетевой про-
токол). а то, куда должен быть направлен Ethernet-кадр, указывает зна- чение
поля типа в заголовке кадра.
Если IP-пакет попадает в модуль IP, то содержащиеся в нем данные могут
быть переданы либо модулю TCP, либо UDP, что определяется полем
"протокол" в заголовке IP-пакета.

134
Если UDP-датаграмма попадает в модуль UDP, то на основании значения
поля "порт" в заголовке датаграммы определяется прикладная программа,
которой должно быть передано прикладное сообщение. Если TCP-сообщение
попадает в модуль TCP, то выбор прикладной программы, которой должно
быть передано сообщение, осуществляется на основе значения поля "порт" в
заго- ловке TCP-сообщения.
Мультиплексирование данных в обратную сторону осуществляется
довольно просто, так как из каждого модуля существует только один путь
вниз. Каждый протокольный модуль добавляет к пакету свой заголовок, на
основании которого машина, принявшая пакет, выполняет
демультиплексирова- ние. Данные от прикладного процесса проходят через
модули TCP или UDP, после чего попадают в модуль IP и оттуда - на уровень
сетевого интер- фейса.
Хотя технология internet поддерживает много различных сред передачи
данных, здесь мы будем предполагать использование Ethernet, так как
именно эта среда чаще всего служит физической основой для IP-сети.
Машина на рис.1 имеет одну точку соединения с Ethernet. Шестибайтный
Ethernet-адрес является уникальным для каждого сетевого адаптера и рас-
познается драйвером.
Машина имеет также четырехбайтный IP-адрес. Этот адрес обозначает
точку доступа к сети на интерфейсе модуля IP с драйвером. IP-адрес дол- жен
быть уникальным в пределах всей сети Internet.
Работающая машина всегда знает свой IP-адрес и Ethernet-адрес.

ГЛАВА 11. ТЕХНОЛОГИЯ ETHERNET.


Кадр Ethernet содержит адрес назначения, адрес источника, поле типа и
данные. Размер адреса в Ethernet - 6 байт. Каждый сетевой адаптер имеет
свой Ethernet-адрес. Адаптер контролирует обмен информацией,
происходящий в сети, и принимает адресованные ему Ethernet-кадры, а также
Ethernet-кадры с адресом "FF:FF:FF:FF:FF:FF" (в 16-ричной системе), кото-
рый обозначает "всем", и используется при широковещательной передаче.
В документации по TCP/IP термины шлюз (gateway) и IP- маршрутизатор
(IP-router) часто используются как синонимы. Мы сочли воз- можным
использовать более распространенный термин "шлюз".
Ethernet реализует метод МДК/ОС (множественный доступ с контролем
несущей и обнаружением столкновений). Метод МДК/ОС предполагает, что
все устройства взаимодействуют в одной среде, в каждый момент времени
может передавать только одно устройство, а принимать могут все одновре-
менно. Если два устройства пытаются передавать одновременно, то происхо-
дит столкновение передач, и оба устройства после случайного (краткого)
периода ожидания пытаются вновь выполнить передачу.

135
11.1. Аналогия с разговором
Хорошей аналогией взаимодействиям в среде Ethernet может служить
разговор группы вежливых людей в небольшой темной комнате. При этом
ана- логией электрическим сигналам в коаксиальном кабеле служат звуковые
волны в комнате.
Каждый человек слышит речь других людей (контроль несущей). Все
люди в комнате имеют одинаковые возможности вести разговор
(множественный доступ), но никто не говорит слишком долго, так как все
вежливы. Если человек будет невежлив, то его попросят выйти (т.е. удалят из
сети). Все молчат, пока кто-то говорит. Если два человека начинают говорить
одновременно, то они сразу обнаруживают это, поскольку слышат друг друга
(обнаружение столкновений). В этом случае они замолкают и ждут некоторое
время, после чего один из них вновь начинает разговор. Другие люди слы-
шат, что ведется разговор, и ждут, пока он кончится, а затем могут начать
говорить сами. Каждый человек имеет собственное имя (аналог уникального
Ethernet-адреса). Каждый раз, когда кто-нибудь начинает говорить, он
называет по имени того, к кому обращается, и свое имя, например, "Слушай
Петя, это Андрей, ... ля-ля-ля ..." Если кто-то хочет обратиться ко всем, то он
говорит: "Слушайте все, это Андрей, ... ля-ля-ля ..." (широковеща- тельная
передача).
11.2. Протокол ARP
В этом разделе мы рассмотрим то, как при посылке IP-пакета определя-
ется Ethernet-адрес назначения. Для отображения IP-адресов в Ethernet-
адреса используется протокол ARP (Address Resolution Protocol - адресный
протокол). Отображение выполняется только для отправляемых IP-пакетов,
так как только в момент отправки создаются заголовки IP и Ethernet.
11.3. ARP-таблица для преобразования адресов
Преобразование адресов выполняется путем поиска в таблице. Эта таб-
лица, называемая ARP-таблицей, хранится в памяти и содержит строки для
каждого узла сети. В двух столбцах содержатся IP- и Ethernet-адреса. Если
требуется преобразовать IP-адрес в Ethernet-адрес, то ищется запись с
соответствующим IP-адресом. Ниже приведен пример упрощенной ARP-
таблицы.

IP-адрес Ethernet-адрес
| 223.1.2.1 08:00:39:00:2F:C3
223.1.2.3 08:00:5A:21:A7:22
223.1.2.4 08:00:10:99:AC:54

Рис.11.1. Пример ARP-таблицы

136
Принято все байты 4-байтного IP-адреса записывать десятичными чис-
лами, разделенными точками. При записи 6-байтного Ethernet-адреса каждый
байт указывается в 16-ричной системе и отделяется двоеточием.
ARP-таблица необходима потому, что IP-адреса и Ethernet-адреса выби-
раются независимо, и нет какого-либо алгоритма для преобразования одного
в другой. IP-адрес выбирает менеджер сети с учетом положения машины в
сети internet. Если машину перемещают в другую часть сети internet, то ее IP-
адрес должен быть изменен. Ethernet-адрес выбирает производитель сетевого
интерфейсного оборудования из выделенного для него по лицензии
адресного пространства. Когда у машины заменяется плата сетевого адап-
тера, то меняется и ее Ethernet-адрес.

11.4. Порядок преобразования адресов


В ходе обычной работы сетевая программа, такая как TELNET, отправ-
ляет прикладное сообщение, пользуясь транспортными услугами TCP.
Модуль TCP посылает соответствующее транспортное сообщение через
модуль IP. В результате составляется IP-пакет, который должен быть передан
драйверу Ethernet. IP-адрес места назначения известен прикладной
программе, модулю TCP и модулю IP. еобходимо на его основе найти
Ethernet-адрес места назначения. Для определения искомого Ethernet-адреса
используется ARP-таблица.
11.5. Запросы и ответы протокола ARP
Как же заполняется ARP-таблица? Она заполняется автоматически моду-
лем ARP, по мере необходимости. Когда с помощью существующей ARP-
таблицы не удается преобразовать IP-адрес, то происходит следующее:
1) По сети передается широковещательный ARP-запрос.
2) Исходящий IP-пакет ставится в очередь.
Каждый сетевой адаптер принимает широковещательные передачи. Все
драйверы Ethernet проверяют поле типа в принятом Ethernet-кадре и пере-
дают ARP-пакеты модулю ARP. ARP-запрос можно интерпретировать так:
"Если ваш IP-адрес совпадает с указанным, то сообщите мне ваш Ethernet-
адрес". Пакет ARP-запроса выглядит примерно так:

| IP-адрес отправителя 223.1.2.1


Ethernet-адрес отправителя 08:00:39:00:2F:C3
Искомый IP-адрес 223.1.2.2
Искомый Ethernet-адрес <пусто>

Рис. 11.2. Пример ARP-запроса

Каждый модуль ARP проверяет поле искомого IP-адреса в полученном


ARP-пакете и, если адрес совпадает с его собственным IP-адресом, то посы-
137
лает ответ прямо по Ethernet-адресу отправителя запроса. ARP-ответ можно
интерпретировать так: "Да, это мой IP-адрес, ему соответствует такой-то
Ethernet-адрес". Пакет с ARP-ответом выглядит примерно так:

IP-адрес отправителя 223.1.2.2


Ethernet-адрес отправителя 08:00:28:00:38:A9
Искомый IP-адрес 223.1.2.1
Искомый Ethernet-адрес 08:00:39:00:2F:C3

Рис.11.3. Пример ARP-ответа

Этот ответ получает машина, сделавшая ARP-запрос. Драйвер этой


машины проверяет поле типа в Ethernet-кадре и передает ARP-пакет модулю
ARP. Модуль ARP анализирует ARP-пакет и добавляет запись в свою ARP-
таблицу. Обновленная таблица выглядит следующим образом:

IP-адрес Ethernet-адрес
223.1.2.1 08:00:39:00:2F:C3
223.1.2.2 08:00:28:00:38:A9
223.1.2.3 08:00:5A:21:A7:22
223.1.2.4 08:00:10:99:AC:54

Рис.11.4. ARP-таблица после обработки ответа

11.6. Продолжение преобразования адресов


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

1) По сети передается широковещательный ARP-запрос.

2) Исходящий IP-пакет ставится в очередь.

138
3) Возвращается ARP-ответ, содержащий информацию о соответствии IP- и
Ethernet-адресов. Эта информация заносится в ARP-таблицу.

4) Для преобразования IP-адреса в Ethernet-адрес у IP-пакета, постав- ленного


в очередь, используется ARP-таблица.

5) Ethernet-кадр передается по сети Ethernet.


Короче говоря, если с помощью ARP-таблицы не удается сразу осущест-
вить преобразование адресов, то IP-пакет ставится в очередь, а необходи- мая
для преобразования информация получается с помощью запросов и ответов
протокола ARP, после чего IP-пакет передается по назначению.
Если в сети нет машины с искомым IP-адресом, то ARP-ответа не будет и
не будет записи в ARP-таблице. Протокол IP будет уничтожать IP-пакеты,
направляемые по этому адресу. Протоколы верхнего уровня не могут отли-
чить случай повреждения сети Ethernet от случая отсутствия машины с иско-
мым IP-адресом.
Некоторые реализации IP и ARP не ставят в очередь IP-пакеты на то
время, пока они ждут ARP-ответов. Вместо этого IP-пакет просто уничтожа-
ется, а его восстановление возлагается на модуль TCP или прикладной про-
цесс, работающий через UDP. Такое восстановление выполняется с помощью
таймаутов и повторных передач. Повторная передача сообщения проходит
успешно, так как первая попытка уже вызвала заполнение ARP-таблицы.
Следует отметить, что каждая машина имеет отдельную ARP-таблицу для
каждого своего сетевого интерфейса.
11.7. Правила маршрутизации в IP
Выше мы показали, что происходит при передаче сообщений, а теперь
рассмотрим правила или алгоритм маршрутизации.
Для отправляемых IP-пакетов, поступающих от модулей верхнего уровня,
модуль IP должен определить способ доставки - прямой или косвенный - и
выбрать сетевой интерфейс. Этот выбор делается на основании результатов
поиска в таблице маршрутов.
Для принимаемых IP-пакетов, поступающих от сетевых драйверов,
модуль IP должен решить, нужно ли ретранслировать IP-пакет по другой
сети или передать его на верхний уровень. Если модуль IP решит, что IP-
пакет дол- жен быть ретранслирован, то дальнейшая работа с ним
осуществляется также, как с отправляемыми IP-пакетами.
Входящий IP-пакет никогда не ретранслируется через тот же сетевой
интерфейс, через который он был принят.
Решение о маршрутизации принимается до того, как IP-пакет передается
сетевому драйверу, и до того, как происходит обращение к ARP-таблице.
11.8. IP-адрес
Менеджер сети присваивает IP-адреса машинам в соответствии с тем, к
каким IP-сетям они подключены. Старшие биты 4-х байтного IP-адреса опре-
деляют номер IP-сети. Оставшаяся часть IP-адреса - номер узла (хост-
139
номер). Для машины из табл.1 с IP-адресом 223.1.2.1 сетевой номер равен
223.1.2, а хост-номер - 1. апомним, что IP-адрес узла идентифицирует точку
доступа модуля IP к сетевому интерфейсу, а не всю машину.
Существуют 5 классов IP-адресов, отличающиеся количеством бит в
сетевом номере и хост-номере. Класс адреса определяется значением его
первого октета.
В табл.8 приведено соответствие классов адресов значениям первого
октета и указано количество возможных IP-адресов каждого класса.
Адреса класса A предназначены для использования в больших сетях
общего пользования. Они допускают большое количество номеров узлов.
Адреса класса B используются в сетях среднего размера, например, сетях
университетов и крупных компаний. Адреса класса C используются в сетях с
небольшим числом компьютеров. Адреса класса D используются при
обраще- ниях к группам машин, а адреса класса E зарезервированы на
будущее.
Некоторые IP-адреса являются выделенными и трактуются по-особому.
Как показано на рис.9, в выделенных IP-адресах все нули соответст- вуют
либо данному узлу, либо данной IP-сети, а IP-адреса, состоящие из всех
единиц, используются при широковещательных передачах. Для ссылок на
всю IP-сеть в целом используется IP-адрес с нулевым номером узла. Особый
смысл имеет IP-адрес, первый октет которого равен 127. Он используется для
тестирования программ и взаимодействия процессов в пределах одной
машины. Когда программа посылает данные по IP-адресу 127.0.0.1, то обра-
зуется как бы "петля". Данные не передаются по сети, а возвращаются
модулям верхнего уровня, как только что принятые. Поэтому в IP-сети зап-
рещается присваивать машинам IP-адреса, начинающиеся со 127.
11.9. Выбор адреса
Прежде чем вы начнете использовать сеть с TCP/IP, вы должны получить
один или несколько официальных сетевых номеров. Выделением номеров
(как и многими другими вопросами) занимается DDN Network Information
Center (NIC). Выделение номеров производится бесплатно и занимает около
недели. Вы можете получить сетевой номер вне зависимости от того, для
чего предназначена ваша сеть. Даже если ваша сеть не имеет связи с объе-
диненной сетью Internet, получение уникального номера желательно, так как
в этом случае есть гарантия, что в будущем при включении в Internet или при
подключении к сети другой организации не возникнет конфликта адресов.
Одно из важнейших решений, которое необходимо принять при установке
сети, заключается в выборе способа присвоения IP-адресов вашим машинам.
Этот выбор должен учитывать перспективу роста сети. Иначе в дальнейшем
вам придется менять адреса. Когда к сети подключено несколько сотен
машин, изменение адресов становится почти невозможным.
Организации, имеющие небольшие сети с числом узлов до 126, должны
запрашивать сетевые номера класса C. Организации с большим числом
машин могут получить несколько номеров класса C или номер класса B.

140
Удобным средством структуризации сетей в рамках одной организации
являются под- сети.
11.10. Подсети
Адресное пространство сети internet может быть разделено на непере-
секающиеся подпространства - "подсети", с каждой из которых можно рабо-
тать как с обычной сетью TCP/IP. Таким образом единая IP-сеть организа-
ции может строиться как объединение подсетей. Как правило, подсеть соот-
ветствует одной физической сети, например, одной сети Ethernet.
Конечно, использование подсетей необязательно. Можно просто назна-
чить для каждой физической сети свой сетевой номер, например, номер
класса C. Однако такое решение имеет два недостатока. Первый, и менее
существенный, заключается в пустой трате сетевых номеров. Более серьез-
ный недостаток состоит в том, что если ваша организация имеет несколько
сетевых номеров, то машины вне ее должны поддерживать записи о
маршрутах доступа к каждой из этих IP-сетей. Таким образом, структура IP-
сети организации становится видимой для всего мира. При каких-либо
изменениях в IP-сети информация о них должна быть учтена в каждой из
машин, поддер- живающих маршруты доступа к данной IP-сети.
Подсети позволяют избежать этих недостатков. Ваша организация должна
получить один сетевой номер, например, номер класса B. Стандарты TCP/IP
определяют структуру IP-адресов. Для IP-адресов класса B первые два октета
являются номером сети. Оставшаяся часть IP-адреса может использоваться
как угодно. апример, вы можете решить, что третий октет будет определять
номер подсети, а четверый октет - номер узла в ней. Вы должны описать
конфигурацию подсетей в файлах, определяющих маршрутизацию IP-
пакетов. Это описание является локальным для вашей организации и не
видно вне ее. Все машины вне вашей организации видят одну большую IP-
сеть. Следовательно, они должны поддерживать только маршруты доступа к
шлюзам, соединяющим вашу IP-сеть с остальным миром. Изменения,
происхо- дящие в IP-сети организации, не видны вне ее. Вы легко можете
добавить новую подсеть, новый шлюз и т.п.
11.11. Как назначать номера сетей и подсетей
После того, как решено использовать подсети или множество IP-сетей, вы
должны решить, как назначать им номера. Обычно это довольно просто.
Каждой физической сети, например, Ethernet или Token Ring, назначается
отдельный номер подсети или номер сети. В некоторых случаях имеет смысл
назначать одной физической сети несколько подсетевых номеров. апример,
предположим, что имеется сеть Ethernet, охватывающая три здания. Ясно,
что при увеличении числа машин, подключенных к этой сети, придется ее
разделить на несколько отдельных сетей Ethernet. Для того, чтобы избе- жать
необходимости менять IP-адреса, когда это произойдет, можно заранее
выделить для этой сети три подсетевых номера - по одному на здание. (Это
полезно и в том случае, когда не планируется физическое деление сети.
Просто такая адресация позволяет сразу определить, где находится та или
иная машина.) Однако прежде, чем выделять три различных подсетевых
141
номера одной физической сети, тщательно проверьте, что все ваши
программы спо- собны работать в такой среде.
Вы также должны выбрать "маску подсети". Она используется сетевым
программным обеспечением для выделения номера подсети из IP-адресов.
Биты IP-адреса, определяющие номер IP-сети, в маске подсети должны быть
равны 1, а биты, определяющие номер узла, в маске подсети должны быть
равны 0. Как уже отмечалось, стандарты TCP/IP определяют количество
октетов, задающих номер сети. Часто в IP-адресах класса B третий октет
используется для задания номера подсети. Это позволяет иметь 256 подсе-
тей, в каждой из которых может быть до 254 узлов. Маска подсети в такой
системе равна 255.255.255.0. о, если в вашей сети должно быть больше
подсетей, а в каждой подсети не будет при этом более 60 узлов, то можно
использовать маску 255.255.255.192. Это позволяет иметь 1024 подсети и до
62 узлов в каждой. (апомним, что номера узлов 0 и "все единицы"
используются особым образом.)
Обычно маска подсети указывается в файле стартовой конфигурации
сетевого программного обеспечения. Протоколы TCP/IP позволяют также
зап- рашивать эту информацию по сети.

11.12. Имена
Людям удобнее называть машины по именам, а не числами. апример, у
машины по имени alpha может быть IP-адрес 223.1.2.1. В маленьких сетях
информация о соответствии имен IP-адресам хранится в файлах "hosts" на
каждом узле. Конечно, название файла зависит от конкретной реализации. В
больших сетях эта информация хранится на сервере и доступна по сети.
есколько строк из файла "hosts" могут выглядеть примерно так:

223.1.2.1 alpha

223.1.2.2 beta

223.1.2.3 gamma

223.1.2.4 delta

223.1.3.2 epsilon

223.1.4.2 iota

Рис 11.5. В первом столбце - IP-адрес, во втором - название машины.

142
В большинстве случаев файлы "hosts" могут быть одинаковы на всех
узлах. Заметим, что о узле delta в этом файле есть всего одна запись, хотя он
имеет три IP-адреса (рис.11). Узел delta доступен по любому из этих IP-
адресов. Какой из них используется, не имеет значения. Когда узел delta
получает IP-пакет и проверяет IP-адрес места назначения, то он опознает
любой из трех своих IP-адресов.
IP-сети также могут иметь имена. Если у вас есть три IP-сети, то файл
"networks" может выглядеть примерно так:

223.1.2 development

223.1.3 accounting

223.1.4 factory

Рис 11.6. В первой колонке - сетевой номер, во второй - имя сети.


В данном примере alpha является узлом номер 1 в сети development, beta
является узлом номер 2 в сети development и т.д.
11.13. Протокол UDP
Протокол UDP (User Datagram Protocol - протокол пользовательских
датаграмм) является одним из двух основных протоколов, расположенных
непосредственно над IP. Он предоставляет прикладным процессам
транспорт- ные услуги, которые не многим отличаются от услуг,
предоставляемых прото- колом IP. Протокол UDP обеспечивает ненадежную
доставку датаграмм и не поддерживает соединений из конца в конец. К
заголовку IP-пакета он добавляет два поля, одно из которых, поле "порт",
обеспечивает мультип- лексирование информации между разными
прикладными процессами, а другое поле - "контрольная сумма" - позволяет
поддерживать целостность данных.
Примерами сетевых приложений, использующих UDP, являются NFS
(Net- work File System - сетевая файловая система) и SNMP (Simple Network
Management Protocol - простой протокол управления сетью).

11.14. Порты
Взаимодействие между прикладными процессами и модулем UDP
осуществ- ляется через UDP-порты. Порты нумеруются начиная с нуля.
Прикладной процесс, предоставляющий некоторые услуги другим
прикладным процессам (сервер), ожидает поступления сообщений в порт,
специально выделенный для этих услуг. Сообщения должны содержать
запросы на предоставление услуг. Они отправляются процессами-клиентами.
Например, сервер SNMP всегда ожидает поступлений сообщений в порт
161. Если клиент SNMP желает получить услугу, он посылает запрос в UDP-
порт 161 на машину, где работает сервер. В каждом узле может быть только

143
один сервер SNMP, так как существует только один UDP-порт 161. Данный
номер порта является общеизвестным, то есть фиксированным номером,
офици- ально выделенным для услуг SNMP. Общеизвестные номера
определяются стан- дартами Internet.
Данные, отправляемые прикладным процессом через модуль UDP, дости-
гают места назначения как единое целое. апример, если процесс- отправитель
производит 5 записей в UDP-порт, то процесс-получатель должен будет
сделать 5 чтений. Размер каждого записанного сообщения будет сов- падать с
размером каждого прочитанного. Протокол UDP сохраняет границы
сообщений, определяемые прикладным процессом. Он никогда не
объединяет несколько сообщений в одно и не делит одно сообщение на
части.
11.15. Контрольное суммирование
Когда модуль UDP получает датаграмму от модуля IP, он проверяет
контрольную сумму, содержащуюся в ее заголовке. Если контрольная сумма
равна нулю, то это означает, что отправитель датаграммы ее не подсчиты-
вал, и, следовательно, ее нужно игнорировать. Если два модуля UDP взаи-
модействуют только через одну сеть Ethernet, то от контрольного суммиро-
вания можно отказаться, так как средства Ethernet обеспечивают достаточ-
ную степень надежности обнаружения ошибок передачи. Это снижает
наклад- ные расходы, связанные с работой UDP. Однако рекомендуется
всегда выпол- нять контрольное суммирование, так как возможно в какой-то
момент измене- ния в таблице маршрутов приведут к тому, что датаграммы
будут посылаться через менее надежную среду.
Если контрольная сумма правильная (или равна нулю), то проверяется
порт назначения, указанный в заголовке датаграммы. Если к этому порту
подключен прикладной процесс, то прикладное сообщение, содержащееся в
датаграмме, становится в очередь для прочтения. В остальных случаях
датаграмма отбрасывается. Если датаграммы поступают быстрее, чем их
успевает обрабатывать прикладной процесс, то при переполнении очереди
сообщений поступающие датаграммы отбрасываются модулем UDP.
11.16. Протокол TCP
Протокол TCP предоставляет транспортные услуги, отличающиеся от
услуг UDP. Вместо ненадежной доставки датаграмм без установления соеди-
нений, он обеспечивает гарантированную доставку с установлением соедине-
ний в виде байтовых потоков.
Протокол TCP используется в тех случаях, когда требуется надежная
доставка сообщений. Он освобождает прикладные процессы от
необходимости использовать таймауты и повторные передачи для
обеспечения надежности. аиболее типичными прикладными процессами,
использующими TCP, являются FTP (File Transfer Protocol - протокол
передачи файлов) и TELNET. Кроме того, TCP используют система X-
Window, rcp (remote copy - удаленное копи- рование) и другие "r-команды".
Большие возможности TCP даются не бесп- латно. Реализация TCP требует
большой производительности процессора и большой пропускной
144
способности сети. Внутренняя структура модуля TCP гораздо сложнее
структуры модуля UDP.
Прикладные процессы взаимодействуют с модулем TCP через порты. Для
отдельных приложений выделяются общеизвестные номера портов. апример,
сервер TELNET использует порт номер 23. Клиент TELNET может получать
услуги от сервера, если установит соединение с TCP-портом 23 на его
машине.
Когда прикладной процесс начинает использовать TCP, то модуль TCP на
машине клиента и модуль TCP на машине сервера начинают общаться. Эти
два оконечных модуля TCP поддерживают информацию о состоянии
соединения, называемого виртуальным каналом. Этот виртуальный канал
потребляет ресурсы обоих оконечных модулей TCP. Канал является
дуплексным; данные могут одновременно передаваться в обоих
направлениях. Один прикладной процесс пишет данные в TCP-порт, они
проходят по сети, и другой приклад- ной процесс читает их из своего TCP-
порта.
Протокол TCP разбивает поток байт на пакеты; он не сохраняет границ
между записями. апример, если один прикладной процесс делает 5 записей в
TCP-порт, то прикладной процесс на другом конце виртуального канала
может выполнить 10 чтений для того, чтобы получить все данные. о этот же
процесс может получить все данные сразу, сделав только одну операцию
чтения. е существует зависимости между числом и размером записываемых
сообщений с одной стороны и числом и размером считываемых сообщений с
другой стороны.
Протокол TCP требует, чтобы все отправленные данные были подтверж-
дены принявшей их стороной. Он использует таймауты и повторные
передачи для обеспечения надежной доставки. Отправителю разрешается
передавать некоторое количество данных, недожидаясь подтверждения
приема ранее отп- равленных данных. Таким образом, между отправленными
и подтвержденными данными существует окно уже отправленных, но еще
неподтвержденных данных. Количество байт, которые можно передавать без
подтверждения, называется размером окна. Как правило, размер окна
устанавливается в стартовых фай- лах сетевого программного обеспечения.
Так как TCP-канал является дуп- лексным, то подтверждения для данных,
идущих в одном направлении, могут передаваться вместе с данными,
идущими в противоположном направлении. Приемники на обеих сторонах
виртуального канала выполняют управление потоком передаваемых данных
для того, чтобы не допускать переполнения буферов.
11.17. Протоколы прикладного уровня
Почему существуют два транспортных протокола TCP и UDP, а не один
из них? Дело в том, что они предоставляют разные услуги прикладным
процес- сам. Большинство прикладных программ пользуются только одним
из них. Вы, как программист, выбираете тот протокол, который наилучшим
образом соответствует вашим потребностям. Если вам нужна надежная
доставка, то лучшим может быть TCP. Если вам нужна доставка датаграмм,
145
то лучше может быть UDP. Если вам нужна эффективная доставка по
длинному и ненадежному каналу передачи данных, то лучше может подойти
протокол TCP. Если нужна эффективность на быстрых сетях с короткими
соединениями, то лучшим может быть протокол UDP. Если ваши
потребности не попадают ни в одну из этих категорий, то выбор
транспортного протокола не ясен. Однако прикладные программы могут
устранять недостатки выбранного протокола. апример, если вы выбрали
UDP, а вам необходима надежность, то прикладная программа должна
обеспечить надежность. Если вы выбрали TCP, а вам нужно переда- вать
записи, то прикладная программа должна вставлять маркеры в поток байтов
так, чтобы можно было различить записи.
Какие же прикладные программы доступны в сетях с TCP/IP?
Общее их количество велико и продолжает постоянно увеличиваться.
екоторые приложения существуют с самого начала развития internet. ап-
ример, TELNET и FTP. Другие появились недавно: X-Window, SNMP.
Протоколы прикладного уровня ориентированы на конкретные
прикладные задачи. Они определяют как процедуры по организации
взаимодействия опре- деленного типа между прикладными процессами, так и
форму представления информации при таком взаимодействии. В этом
разделе мы коротко опишем некоторые из прикладных протоколов.
11.18. Протокол TELNET
Протокол TELNET позволяет обслуживающей машине рассматривать все
удаленные терминалы как стандартные "сетевые виртуальные терминалы"
строчного типа, работающие в коде ASCII, а также обеспечивает
возможность согласования более сложных функций (например, локальный
или удаленный эхо-контроль, страничный режим, высота и ширина экрана и
т.д.) TELNET работает на базе протокола TCP. а прикладном уровне над
TELNET нахо- дится либо программа поддержки реального терминала (на
стороне пользова- теля), либо прикладной процесс в обсуживающей машине,
к которому осу- ществляется доступ с терминала.
Работа с TELNET походит на набор телефонного номера. Пользователь
набирает на клавиатуре
telnet delta
и получает на экране приглашение на вход в машину delta. Протокол
TELNET существует уже давно. Он хорошо опробован и широко
распространен. Создано множество реализаций для самых разных операцион-
ных систем. Вполне допустимо, чтобы процесс-клиент работал, скажем, под
управлением ОС VAX/VMS, а процесс-сервер под ОС UNIX System V.

11.19. Протокол FTP


Протокол FTP (File Transfer Protocol - протокол передачи файлов)
распространен также широко как TELNET. Он является одним из старейших
протоколов семейства TCP/IP. Также как TELNET он пользуется транспорт-
ными услугами TCP. Существует множество реализаций для различных
опера- ционных систем, которые хорошо взаимодействуют между собой.
146
Пользователь FTP может вызывать несколько команд, которые позволяют
ему посмотреть каталог удаленной машины, перейти из одного каталога в
другой, а также скопировать один или несколько файлов.
11.20. Протокол SMTP
Протокол SMTP (Simple Mail Transfer Protocol - простой протокол
передачи почты) поддерживает передачу сообщений (электронной почты)
между произвольными узлами сети internet. Имея механизмы
промежуточного хране- ния почты и механизмы повышения надежности
доставки, протокол SMTP допус- кает использование различных
транспотных служб. Он может работать даже в сетях, не использующих
протоколы семейства TCP/IP. Протокол SMTP обеспе- чивает как
группирование сообщений в адрес одного получателя, так и разм- ножение
нескольких копий сообщения для передачи в разные адреса. ад модулем
SMTP располагается почтовая служба конкретных вычислительных сис- тем.
11.21. R-команды
Существует целая серия "r-команд" (от remote - удаленный), которые
впервые появились в ОС UNIX. Они являются аналогами обычных команд
UNIX, но предназначены для работы с удаленными машинами. апример,
команда rcp является аналогом команды cp и предназначена для копирования
файлов между машинами. Для передачи файла на узел delta достаточно
ввести
rcp file.c delta:
Для выполнения команды "cc file.c" на машине delta можно использовать
комаду rsh: &nb>
Передача прервана!
rsh delta cc file.c Для организации входа в удаленную систему
предназначена команда rlogin: rlogin delta Команды r-серии используются
главным образом в системах, работающих под управлением ОС UNIX.
Существуют также реализации для MS-DOS. Команды избавляют
пользователя от необходимости набирать пароли при входе в удаленную
систему и существенно облегчают работу. 9.5. NFS Сетевая файловая
система NFS (Network File System) впервые была разработана компанией Sun
Microsystems Inc. NFS использует транспортные услуги UDP и позволяет
монтировать в единое целое файловые системы нескольких машин с ОС
UNIX. Бездисковые рабочие станции получают доступ к дискам файл-
сервера так, как-будто это их локальные диски. NFS значительно
увеличивает нагрузку на сеть. Если в сети используются медленные линии
связи, то от NFS мало толку. Однако, если пропускная способность сети
позволяет NFS нормально работать, то пользователи получают большие
преимущества. Поскольку сервер и клиент NFS реализуются в ядре ОС, все
обычные несетевые программы получают возможность работать с
удаленными файлами, расположенными на подмонтированных NFS-дисках,
точно также как с локальными файлами. 9.6.
11.22. Взаимосвязь протоколов в Internet.

147
Протокол SNMP Протокол SNMP (Simple Network Management Protocol - простой
протокол управления сетью) работает на базе UDP и предназначен для использования
сетевыми управляющими станциями. Он позволяет управляющим станциям соби- рать
информацию о положении дел в сети internet. Протокол определяет формат данных, их
обработка и интерпретация остаются на усмотрение управ- ляющих станций или
менеджера сети. 9.7. X-Window Система X-Window использует протокол X-Window,
который работает на базе TCP, для многооконного отображения графики и текста на
растровых дисплеях рабочих станций. X-Window - это гораздо больше, чем просто
утилита для рисования окон; это целая философия человеко-машинного взаимо- действия.
10. Взаимозависимость протоколов семейства TCP/IP иже на рисунке предсавлена схема
взаимосвязей между протоколами семейства TCP/IP.
Прикладной уровень

FTP TELNET SMTP TFTP DNS Сужба времени Эхо

Транспортный уровень

TCP GGP HMP EGP UDP

Межсетевой уровень
IP/ICMP

Сетевой уровень
Локальные сети INTERNET ARPANET SATNET радиосети

Канальный и физический уровень


Интерфейсы и протоколы маршрутизаторов

Рис.11.7. Структура взаимосвязей протоколов семейства TCP/IP

ВОПРОСЫ К ЭКЗАМЕНУ

148
1. Дайте определение или толкование понятий: система счисления,
основание системы счисления, позиция цифры, разряд, вес.
2. Какие системы счисления используются в ЭВМ? Охарактеризуйте
кратко каждую.
3. Переведите целые двоичные числа в десятичную систему счисления:

10; 111; 101101;


100; 1000; 100000;
110; 1001; 100110;
11; 1111; 1111111111.

5. Переведите целые восьмеричные числа в десятичную систему


счисления:

10; 15; 33;


100; 27; 40;
11; 77; 102;
5; 50; 77777.

6. Переведите целые шестнадцатеричные числа в десятичную систему


счисления:

12; F; 40;
16; F0; 100;
10; 20; ABC;
AB; A1; FFFFF.

149
7. Что такое непрерывный и дискретный сигналы? Приведите
разновидности.
8. В чем заключается дискретизация и квантование информационного
сигнала?
9. Определите понятия кодирования и декодирования информационного
сигнала.
10. Определите понятия «глубина сообщения» и «длина сообщения».
11. Как оценивается количество информации, по Хартли?
12. Какое количество информации можно изобразить с помощью
двадцатиразрядных десятичных чисел?
13. Какое количество информации содержит настоящая книга?
14. Дайте определение множества.
15. Дайте определение счетного множества.
16. Какими способами можно задать множество?
17. Какие операции существуют на множествах?
18. Дайте определение группы.
19. Дайте определение абелевой группы.
20. Дайте определение кольца.
21. Дайте определение системы.
22. Дайте определение процесса.
23. Дайте определение ресурса.
24. Дайте определение синхронной системы.
25. Дайте определение асинхронной системы.
26. Что такое управление?
27. Что такое регулирование?
28. Что такое модель ISO/OSI? Назовите ее уровни.
29. Приведите основные модели классификации Флинна.
30. Приведите примеры других классификаций.
31. Дайте определение операционной системы.
32. Назовите основные разновидности операционных систем.
33. Назовите основные отличия операционных систем для персональных
ЭВМ.
34. Назовите основные отличия операционных систем с
многопользовательской защитой.
35. Назовите основные отличия операционных систем реального времени.
36. Дайте определение языка программирования.
37. Сделайте сравнительный анализ языков программирования низкого
уровня.
38. Приведите основные особенности языков программирования высокого
уровня.
39. Проанализируйте АЛГОЛ и ФОРТРАН. Какие основные свойства
языков программирования для них характерны?
40. Для каких целей создаются специализированные языки?
41. Приведите примеры многоцелевых языков высокого уровня.
150
42.Что такое транслятор?
43.Проведите сравнительный анализ компиляторов и интерпретаторов.
44.Определите основные задачи и функции трансляторов.
45.Что такое система программирования? Приведите примеры
современных систем программирования.
46.Что такое инструментальные программные средства?
47.Дайте толкование понятий: запоминающее устройство, запись,
считывание, хранение информации.
48.Назовите основные показатели ЗУ.
49.Назовите две основные разновидности памяти компьютера.
50.Перечислите основные компоненты внутренней памяти.
51.Что представляет собой ОЗУ? Каково её назначение?
52.В чём разница между памятью статической и динамической?
53.Что собой представляет модуль памяти типа SIMM?
54.Каково назначение кэш-памяти? Каким образом она реализуется?
55.Каково назначение внешней памяти? Перечислите разновидности
устройств внешней памяти.
56.Что собой представляет гибкий диск?
57.В чём суть магнитного кодирования двоичной информации?
58.Как работают накопители на гибких магнитных дисках и накопители
на жёстких магнитных дисках?
59.Каковы достоинства и недостатки накопителей на компакт-дисках?
60.Опишите работу стримера.
61.Дайте классификацию технических средств ввода информации в
компьютерной системе.
62.Что собой представляет клавиатура? Поясните принцип ее
функционирования.
63.Какие устройства относятся к манипуляторам?
64.Поясните принцип действия джойстика, светового пера, мыши,
трекбола.
65.Что такое сканер? Какой сканер используете Вы? Назовите его
основные характеристики.
66.Опишите принцип функционирования диджитайзера.
67.Какие средства речевого ввода информации в компьютерной системе
Вы знаете? В чем заключается принцип их функционирования?
68.Что такое дисплей? Как можно классифицировать дисплеи?
69.Назовите основные технические характеристики дисплеев.
70.Какие дисплейные адаптеры Вы знаете?
71.Что такое принтер? Какие типы принтеров Вы знаете?
72.Приведите основные технические характеристики принтеров.
73.Охарактеризуйте плоттер.

151
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА

1. Илларионов Ю.А. Введение в теорию информационной безопасности:


учеб. пособие/Ю.А. Илларионов; под ред. М.Ю. Монахова;
Владимирский гос. ун-т. – Владимир: Ред.-издат. Комплекс ВлГУ, 2005,
103 с.
2. Ю.А.Илларионов, М.Ю.Монахов. Безопасное управление ресурсами в
распределенных информационных и телекоммуникационных
системах./Монография. – Владимир, ВлГУ, 2004, 206с.
3. HTTP:/www.izi.vladimir.ru
4. HTTP:/ www.faq.ru
5. HTTP:/ www.narod.ru

ОГЛАВЛЕНИЕ

Часть I. МАТЕМАТИКА

Глава 1. АНАЛИТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ……..……..4

Глава 2. ОСНОВЫ ТЕОРИИ ИНФОРМАЦИИ……………………………46


Глава 3. МОДЕЛИ И КЛАССИФИКАЦИИ ИНФОРМАЦИОННЫХ
СИСТЕМ…………………………………………………………….67

Часть II. ИНФОРМАТИКА

Глава 4. ОПЕРАЦИОННЫЕ СИСТЕМЫ………………………...………...99


Глава 5. ЯЗЫКИ ПРОГРАММИРОВАНИЯ И ТРАНСЛЯТОРЫ…………105

Глава 6. ОСНОВНАЯ ПАМЯТЬ……………………………………………..114


Глава 7. УСТРОЙСТВА ВВОДА ИНФОРМАЦИИ………………………123
Глава 8. УСТРОЙСТВА ВЫВОДА ИНФОРМАЦИИ…………………….131
Глава 9. ВЫЧИСЛИТЕЛЬНЫЕ СЕТИ……………………..………………...138
Глава 10. ПРОТОКОЛ TCP/IP………………………………………………...143
Глава 11. ТЕХНОЛОГИЯ ETHERNET………………………………………..147
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА.…….……..…………………………166

152
153

Вам также может понравиться