close

Вход

Забыли?

вход по аккаунту

?

Alekseev Informatika dlya kriptoanalitikov

код для вставкиСкачать
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ
Алексеев А. П.
ИНФОРМАТИКА ДЛЯ КРИПТОАНАЛИТИКОВ
Учебное пособие
Самара - 2015
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное образовательное бюджетное учреждение
высшего профессионального образования
«ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ»
Кафедра информатики и вычислительной техники
А.П. Алексеев
ИНФОРМАТИКА
ДЛЯ КРИПТОАНАЛИТИКОВ
Учебное пособие
Самара
2015 г.
2
004:004.056(075.8)
Рекомендовано к изданию методическим советом ПГУТИ,
протокол №______ от _______________2014 г.
Рецензенты:
Заведующий кафедрой компьютерных систем и технологий Шуменского университета им.
Епископа Константина Преславского (Болгария), д.т.н, профессор
Станев Станимир Стоянов.
Профессор кафедры геоинформатики и информационной безопасности Самарского государственного аэрокосмического университета им. С.П.Королѐва (Национального исследовательского университета) д.т.н., профессор, Лауреат Государственной Премии СССР
Мостовой Яков Анатольевич.
Алексеев, А.П.
Информатика для криптоаналитиков: учебное пособие/ Алексеев А. П.- Самара: ИУНЛ
ПГУТИ, 2015. – 378 с.
Книга соответствует типовой программе по информатике для высших учебных заведений. Отличительной особенностью публикации является изложение основных принципов,
идей, исторического аспекта излагаемых вопросов, обзоров по программным продуктам и
аппаратным средствам, толкование терминов. Такой подход позволяет сохранить актуальность изученного материала в течение нескольких лет.
В книге в компактной форме даны основные понятия информатики, рассмотрены
арифметические и логические основы работы ЭВМ, принцип действия важнейших устройств
ЭВМ. Дано представление о локальных и глобальных сетях, описана организация данных в
ЭВМ, методы сжатия информации, помехоустойчивого кодирования. Дано понятие о вирусах и антивирусных программах. Рассмотрены основные понятия криптографии, стеганографии. Заметный акцент в книге сделан на изложение вопросов защиты информации.
Учебное пособие предназначено для студентов специальностей «Информационная
безопасность» и «Информационная безопасность в телекоммуникационных системах»
(10.03.01, 10.05.02).
3
Введение
Все должно быть изложено так просто,
как только возможно,
но не проще.
А. Эйнштейн
Современный период развития цивилизации характеризуется тем, что человечество переходит
от индустриального общества к информационному обществу. Основным перерабатываемым «сырьѐм» становится информация. Труд современников делается в меньшей степени физическим и в
большей степени интеллектуальным. В наиболее развитых странах производство информации и разработка информационных технологий стали одними из самых прибыльных и стремительно растущих
отраслей.
В мире накоплен громадный объем информации, но большинство людей не в состоянии в полном объѐме воспользоваться этим благом в силу ограниченности своих психофизических возможностей и неумения применять новые информационные технологии обработки информации. Самыми
мощными усилителями интеллектуальных способностей человека за всю историю развития цивилизации становятся компьютер и глобальные сети, объединяющие множество компьютеров.
Стремительное развитие прогресса в области создания программных и аппаратных средств
приводит к тому, что компьютеры и программы быстро морально устаревают. Пользователь ещѐ не
успевает освоить и половины возможностей практически новой программы, а уже на рынке появляются еѐ следующие более совершенные модификации.
И все же в круговерти быстро меняющихся картин есть устойчивые моменты, которые являются основой, фундаментом многих процессов, трамплином, с помощью которого можно быстро достичь новых высот.
Неизменной является История. Исторический аспект каждого изучаемого вопроса позволяет
увидеть тенденцию развития, экстраполировать (перенести) сегодняшнее положение дел на Будущее.
Основное внимание в книге автор уделил идеям и принципам — они самые живучие в этом
быстро меняющемся мире вычислительной техники.
Важными теоретическими аспектами информатики являются арифметические и логические
основы работы ЭВМ, алгебра логики, понятия о системах счисления. На этих вопросах базируются
многие разделы информатики (например, методы архивации, помехоустойчивого кодирования, QRкоды, криптографиия, стеганография).
Обилие терминов (их англоязычная основа), неоднозначность их трактовки приводит к тому,
что пользователь, начинающий изучать информатику, теряется в джунглях туманных понятий. Автор
стремился уделить серьѐзное внимание формулировке возможно точных определений (терминологии).
При работе над книгой автор пытался из большого объѐма информации по рассматриваемым
вопросам отобрать самое главное, основное. Это должно облегчить студентам сделать первый шаг в
освоении бурно развивающейся дисциплины.
Очевидно, что основным инструментом при изучении информатики является вычислительная
машина или устройство, содержащее процессор. По этой причине значительное внимание в публикации уделяется конструкции ЭВМ.
Рассматриваемый материал был многократно апробирован на лекциях, семинарах, конференциях, лабораторных и практических занятиях, многочисленных курсах и в научно-исследовательских
работах. Книга четырежды переиздавалась в центральных издательствах [12, 28, 29, 30], рецензировалась ведущими специалистами России, получено множество положительных отзывов.
Тем не менее, автор хорошо понимает, что досадные ошибки и неточности неизбежны в любой
работе. Критические замечания и пожелания просим направлять по адресам:
apa_ivt@rambler.ru
ICQ 52690147
4
1. Основные понятия
В данном разделе даны определения понятиям «информация», «информатика»,
«информационные технологии», рассмотрены этапы развития вычислительной техники,
сферы ее использования, отмечены основные вехи создания Интернета.
1.1. Основные понятия об информации и информатике
Два часа убито,
информации – полбита.
Информация наряду с материей и энергией является первичным понятием нашего материального мира. Дать строгое исчерпывающее определение этому термину через другие,
более простые понятия, сложно. Это понятие остается одним из самых дискуссионных в науке. Тем не менее, существует несколько определений понятия «информация». Приведем одно
из них.
Информация — это совокупность каких-либо сведений, данных, передаваемых устно
(в форме речи), письменно (в виде текста, таблиц, рисунков, чертежей, схем, условных обозначений) либо другим способом (например, с помощью звуковых или световых сигналов,
электрических и нервных импульсов, запахов, вкусовых ощущений, перепадов давления или
температуры и т. д.).
В середине ХХ века термин «информация» стал общенаучным понятием. Этот термин
используется для описания процессов обмена сведениями между людьми, человеком и автоматом (например, электронной вычислительной машиной), автоматом и автоматом. Обмен
сигналами в животном и растительном мире, передача наследственных признаков от клетки
к клетке, от организма к организму также описываются с помощью этого термина.
Теоретические и практические вопросы, относящиеся к информации, изучает информатика.
Информатика — наука, изучающая структуру и свойства информации, а также вопросы, связанные с ее сбором, хранением, поиском, передачей, преобразованием, распространением и использованием в различных сферах человеческой деятельности.
Современная информатика коренным образом меняет не только сферу материального
производства, но и сферу духовной жизни.
Пристальное внимание к информатике связано с бурным ростом объема человеческих
знаний, который порой называют «информационным взрывом».
Колоссальный объем информации циркулирует и хранится в глобальной сети Интернет. Человечеством накоплен большой объем информации, обработать которую отдельному
человеку вручную затруднительно в силу своих ограниченных психофизических возможностей. Эффективным инструментом обработки большого объема информации является электронная вычислительная машина (ЭВМ).
Различают две формы представления информации — непрерывную (аналоговую) и
прерывистую (цифровую, дискретную). Непрерывная форма характеризует процесс, который
не имеет перерывов и теоретически может изменяться в любой момент времени и на любую
величину (например, речь человека, музыкальное произведение). Цифровой сигнал может
изменяться лишь в определенные моменты времени и принимать лишь заранее обусловленные значения (например, только значения напряжений 0 и 3,5 В). Моменты возможного изменения уровня цифрового сигнала задает тактовый генератор конкретного цифрового устройства.
Для преобразования аналогового сигнала в цифровой сигнал требуется провести дискретизацию непрерывного сигнала во времени, квантование по уровню, а затем кодирование
отобранных значений.
5
Дискретизация — замена непрерывного (аналогового) сигнала последовательностью
отдельных во времени отсчетов этого сигнала [1].
На рисунке схематично показан процесс преобразования аналогового сигнала в цифровой сигнал. Цифровой сигнал в данном случае может принимать лишь пять различных уровней. Естественно, что качество такого преобразования невысокое. Из рисунка видно, что изменение цифрового сигнала возможно лишь в некоторые моменты времени (в данном случае
этих моментов одиннадцать).
После такого преобразования непрерывный сигнал представляют последовательностью
чисел. Показанный на рисунке непрерывный сигнал заменяется числами 2-3-4-4-4-3-2-2-3-44. Десятичная система счисления в рассматриваемом примере использована лишь для большей наглядности. Фактически аналоговый сигнал преобразуют в последовательность единиц
и нулей. Результаты данного преобразования можно представить таблицей:
Время
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
Десятичные
числа
2
3
4
4
4
3
2
2
3
4
4
Двоичные
числа
0010
0011
0100
0100
0100
0011
0010
0010
0011
0100
0100
Здесь цифровые сигналы представлены четырьмя разрядами двоичных чисел. Очевидно, что, чем больше разрядов у двоичных чисел (то есть чем больше число уровней квантования) и чем чаще во времени осуществляются отсчеты (выборки), тем точнее будет преобразован непрерывный сигнал в цифровой.
Образное представление о качестве оцифрованного сигнала дают кинофильмы, снятые
с разной скоростью. Первые немые фильмы были сняты с частотой 16 кадров в секунду. Изза низкой частоты съемки некоторые фазы движения объектов терялись, и перемещение персонажей на экране становилось комичным, дѐрганным. Переход на частоту 24 кадров в секунду сняло эту проблему, движение стало плавным.
6
Предыдущий рисунок показывает, как влияет частота
дискретизации аналого-цифрового преобразования на качество оцифрованного сигнала. В нижней части диаграмм показан исходный аналоговый сигнал (синусоида частотой 1
кГц). В верхней части рисунков изображен сигнал после
двойного преобразования при разных значениях частоты
дискретизации. В данном случае аналоговый сигнал был
вначале преобразован в цифровой, а затем цифровой сигнал
обратно конвертирован в аналоговый. Рисунки отличаются использованной частотой дискретизации. В первом случае частота дискретизации составляла 8 кГц, во втором – 32 кГц. Из
рисунка видно, что с ростом частоты дискретизации качество преобразования улучшается.
На качество цифрового сигнала сильно влияет также его разрядность.
Первое представление об аналоговом и цифровом способах хранения и распространения информации можно получить, рассматривая два способа записи звуковых сигналов: аналоговую и цифровую аудиозаписи.
При аналоговой аудиозаписи непрерывный электрический сигнал, формируемый источником звука на выходе микрофона, с помощью магнитной головки наносится на движущуюся магнитную ленту. Недостатком аналогового способа обработки информации является
то, что копия бывает всегда хуже оригинала.
При цифровой аудиозаписи используется процесс выборки, заключающийся в периодическом измерении уровня (громкости, амплитуды) аналогового звукового сигнала (например, поступающего с выхода микрофона) и превращении полученного значения в последовательность двоичных чисел. Для преобразования аналогового сигнала в цифровой используется специальный конвертор, называемый аналогово-цифровой преобразователь (АЦП).
Сигнал на выходе АЦП представляет собой последовательность двоичных чисел, которая
может быть обработана компьютером. Обратная конверсия цифрового сигнала в непрерывный сигнал осуществляется с помощью цифроаналогового преобразователя (ЦАП).
Качество аналогово-цифрового преобразования характеризует параметр, называемый
разрешением. Разрешение — это количество уровней квантования, используемых для замены непрерывного аналогового сигнала цифровым сигналом. Восьмиразрядная выборка позволяет получить только 256 различных уровней квантования цифрового сигнала, а шестнадцатиразрядная выборка — 65 536 уровней.
Еще один показатель качества трансформации непрерывного сигнала в цифровой сигнал — это частота дискретизации — количество преобразований аналог-цифра (выборок),
производимое устройством в одну секунду. Этот показатель измеряют килогерцами (кило7
герц — тысяча выборок в секунду). Типичное значение частоты дискретизации современных
лазерных (оптических) аудиодисков — 44,1 кГц.
На рисунке показана структура лазерного аудиодиска. Все звуки преобразованы в последовательность единиц и нулей, которые на диске выглядят как выступы и впадины. При
этом копию можно получить практически такого же качества, как и оригинал.
С позиции каждого отдельного человека количество информации, содержащееся в каком-либо сообщении, — субъективная величина.
Объективная количественная мера информации может быть введена на основе вероятностной трактовки информационного обмена.
Этот способ измерения количества информации впервые предложил в 1948 г. К. Шеннон [2]. В соответствии с идеями К. Шеннона, информация — это сведения, уменьшающие
неопределенность (энтропию), существовавшую до их получения.
Наименьшей единицей информации является бит (от англ. binary digit — двоичный
разряд). Сообщение о том, что произошло одно из двух возможных равновероятных событий, дает получателю один бит информации.
Один бит информации получает человек, когда он узнает, опаздывает с прибытием
нужный ему поезд или нет, был ночью мороз или нет, присутствует на лекции студент Иванов или нет и т. д.
Более крупная единица информации — байт — равна 8 бит. Проверка присутствия или
отсутствия на лекции 24 студентов дает лектору три байта информации. Еще более крупная
единица информации — 1 Кбайт — равна 1024 байтам. Далее — 1 Мбайт равен 1024 Кбайтам, 1 Гбайт равен 1024 Мбайтам, 1 Тбайт равен 1024 Гбайтам, а 1 Пбайт равен 1024 Тбайт.
Перечисленные единицы измерения информации произносятся так:
Кбайт — килобайт, Мбайт — мегабайт, Гбайт — гигабайт, Тбайт — терабайт, Пбайт —
петабайт.
8
1.2. Основные понятия теории информации
Знаки несут информацию только
для получателя, способного их распознать.
Теория информации – раздел математики, исследующий процесс хранения, преобразования и передачи информации. Теория информации базируется на фундаментальной работе
американского инженера и математика Клода Элвуда Шеннона [2], и она тесно сопряжена со
статистической теорией связи.
Согласно теории информации, количество полученных сведений следует рассматривать
с учетом понятия неопределенности состояния системы, например, неопределенность состояния системы связи. Вместо термина «неопределенность состояния системы» часто используют эквивалентный термин - «энтропия системы».
Под неопределенностью состояния системы связи понимается тот факт, что на приемной стороне получатель информации не знает, какое сообщение пошлет отправитель информации, который находится на передающей стороне системы связи. Лишь после приема сообщения (букв, цифр, символов, звуков, изображения и т.д.) у получателя уменьшается неосведомленность относительно содержания передаваемого сообщения. Иначе говорят: полученная информация уменьшает энтропию системы.
Рассмотрим основные понятия, которые используются в теории информации [1].
Сообщение – это совокупность знаков или первичных сигналов, отображающих ту или
иную информацию. Например, текст электронного письма представляет собой совокупность
таких знаков, как буквы, цифры, знаки препинания, специальные символы. Примерами сообщений являются: текст телеграммы, текст электронного письма, SMS, MMS данные на выходе ЭВМ, речь, музыка, рисунок, фотография, запись в блоге и т.п.
Передача сообщений на расстояние осуществляется с помощью какого-либо материального носителя (бумаги, магнитных дисков, микросхем памяти и т.п.) или физического
процесса (звуковых, световых или электромагнитных волн и т.п.). Таким образом, информация передается путем обмена между отправителем и получателем материей (бумага, фотоплѐнка, лента) или энергией (электромагнитные волны). Физический процесс, несущий передаваемое сообщение, называется сигналом.
Сообщения могут быть функциями времени (информация представляется в виде первичных сигналов, которыми являются: музыка, речь, видеоизображение, показания датчиков). Сообщения могут не являться функциями времени (информация представляется в виде
совокупности знаков, например, письмо, статья, книга).
В современных системах связи чаще всего используются электрические и оптические
сигналы. Передача информации осуществляется путем изменения какого-либо параметра
сигнала в соответствии с передаваемым сообщением. Например, путем изменения амплитуды, частоты, фазы гармонических колебаний или длительности прямоугольных импульсов.
Процесс изменения параметров сигнала на передающей стороне, происходящий в соответствии с содержанием передаваемого сообщения, называется модуляцией. Благодаря модуляции сигнал получает возможность распространяться на большие расстояния с помощью системы связи. Процесс восстановления сообщения из принятого сигнала называется демодуляцией (или детектированием).
На рисунке показаны две осциллограммы, иллюстрирующие сигналы с двумя видами
модуляции - амплитудной и частотной. Здесь в качестве сигнала, несущего информацию, использованы синусоидальные гармонические колебания. В первом случае предаваемая информация содержится в изменении амплитуды колебаний (размаха по вертикали). Во втором
случае информативным параметром является частота – плотность колебаний по горизонтали.
Таким образом, можно передать по аналоговому каналу, например, цифровые сигналы 1 и 0.
9
В качестве сигналов, переносящих информацию, может быть использована последовательность прямоугольных импульсов. В этом случае при модуляции могут изменяться длительность импульсов, их временное положение или частота.
На рисунке показано, как, изменяя скважность импульсов (отношение периода следования импульсов к их длительности), можно передавать единицы и нули.
Линией связи называется физическая среда, которая используется для транспортировки сигналов от передатчика к приемнику. В качестве примера линии связи можно назвать
оптоволоконный и коаксиальный кабели связи, пространство, в котором распространяются
радиоволны.
Совокупность технических средств, предназначенных для передачи сообщений от отправителя к получателю, называется системой связи. В качестве составных частей в систему
связи входят: передающее устройство (передатчик), канал связи и приемное устройство
(приемник).
Отправителями и получателями информации могут быть субъекты (пользователи,
абоненты, корреспонденты) и объекты (датчики, компьютеры, факс-модемы, принтеры, устройства автоматики и т.п.).
Каналом связи называют часть системы связи, которая обеспечивает передачу сигналов между передатчиком и приѐмником информации. В состав канала связи входят линии
связи и каналообразующая аппаратура (КА). Задачей каналообразующей аппаратуры является уплотнение сигналов, то есть передача по одной физической линии информации сразу от
нескольких отправителей.
Существуют каналы проводной связи (кабельные, световодные и др.) и каналы радиосвязи (телевизионные, радио и сотовые станции). Широкое распространение получили радиорелейные линии (РРЛ). В радиорелейных линиях радиосигнал передается от одной станции к другой (ретранслируется) как бы по эстафете в пределах прямой видимости. Разновидностью РРЛ являются тропосферные линии, которые используют отражения радиосигнала от
неоднородностей тропосферы. Существуют спутниковые сети - радиорелейные линии, в которых ретранслятор располагается на искусственном спутнике земли.
Канал связи
Отправитель
Передатчик
КА
КА
Приемник
Получатель
Линия связи
10
Применительно к глобальной сети Интернет можно сказать, что она содержит самые
разнообразные каналы связи, которые соединяют между собой узлы с коммутационным оборудованием и компьютерами-серверами.
При обмене сообщениями с помощью мессенджера ICQ или при работе социальной сети получатель информации не знает, какую клавишу на клавиатуре в данный момент нажал
отправитель сообщения. Другими словами, существует неопределѐнность состояния системы
связи при приеме информации (неизвестно, какой сигнал передается в данный момент времени по каналу связи). Чем выше неопределенность (неизвестность, неосведомленность,
хаотичность), тем больше энтропия системы.
Энтропия характеризует степень упорядоченности передаваемого текста, степень его
отклонения от полного хаоса. В наиболее хаотичном тексте вероятности появления любых
букв (символов) текста практически одинаковые. В этом случае текст представляет собой
нечитаемый набор бессмысленных символов. Примером такого текста является шифрограмма, полученная с помощью криптостойкого шифра. Бессмысленный нечитаемый текст, состоящий из равновероятных символов, имеет наибольшую энтропию.
Предположим, что получатель информации имеет какие-то предварительные (априорные) сведения о некоторой системе . Мерой неосведомленности получателя информации о
системе является функция H( ).
После получения по каналу связи некоторого сообщения получатель приобретает дополнительную информацию I ( ). Полученная информация уменьшает имевшуюся (априорную) неосведомленность H( ), которая в результате получения сообщения становится равной H ( ). Новую неопределенность H ( ) называют апостериорной, то есть неопределенностью после проведения опыта (после передачи и приема сообщения ).
Таким образом, количество принятой информации можно выразить соотношением:
I ( ) = H( ) - H ( ).
Простыми словами это соотношение можно прокомментировать так: количество информации I ( ), содержащейся в полученном сообщении , измеряется величиной уменьшения неосведомленности (незнания) о состоянии системы . То есть полученная информация
увеличивает знание.
Количество
информации
=
Априорная
неопределенность
=
Апостериорная
неопределенность
Порядок расчета энтропии системы и количества полученной информации зависит от
того, какова вероятность появления каждого знака (символа) в сообщении. Если вероятности
появления всех символов выбранного алфавита одинаковые (например, в криптограмме), то
используется формула Хартли. Если вероятности появления каждого символа в сообщении
различны, то используется формула Шеннона.
Формула Хартли применяется в случаях, когда появление различных символов в сообщении равновероятно. Это бывает, например, при передаче по каналу связи результатов математических расчетов (набор цифр), криптографических ключей, шифрограмм, паролей и
т.п. Получение по каналу связи одного символа из N допустимых (возможных) символов используемого алфавита дает получателю такой объем информации:
I log 2 N .
Здесь N – число допустимых символов (знаков), которое отправитель может использовать при формировании своего сообщения.
11
Указанную величину I можно трактовать, как количество информации, приходящееся
на один символ (знак) сообщения. Согласно формуле Хартли количество информации, содержащейся в двоичном числе, равно количеству двоичных разрядов в этом числе. Один разряд двоичного числа позволяет сформировать два знака (символа): 0 и 1. Если N = 2, то I = 1
бит. Если N=32, то каждый символ несет 5 бит информации. Для алфавита, состоящего из
256 символов, объем информации, который несѐт каждый символ I = 8 бит = 1 байт.
Формула Хартли является частным случаем формулы Шеннона. Формула Шеннона используется при расчете энтропии в ситуациях, когда вероятности появления символов различны (передается осмысленный текст):
N
I
( p1 log 2 p1
p2 log 2 p2
...
pi log 2 pi .
p N log 2 p N )
i 1
Здесь pi – вероятность появления i-го символа.
Указанную величину I следует трактовать, как среднее значение (математическое ожидание) информации, приходящееся на один из неравновероятных символов.
Знак минус в формуле поставлен для того, чтобы измерять информацию положительными числами. В противном случае логарифм числа, меньшего единицы, даст отрицательное
значение. Заметим, что
N
pi
1.
i 1
Безусловно, формулы Хартли и Шеннона не охватывают всех возможных случаев расчета энтропии. Например, эти формулы нельзя использовать для расчета условной энтропии.
Установлено, что текстовые (осмысленные) сообщения содержат много избыточной
информации. Так, например, если во время передачи сообщения, произошел отказ в работе
канала связи, и на приемной стороне было принято оборванное (неполное) сообщение типа
«Спартак – чемпи», то легко «догадаться», что, вероятно, полное сообщение было «Спартак
– чемпион». Содержательный анализ принятого сообщения позволяет восстановить пропущенный или недостающий фрагменты осмысленного текста.
К.Шеннон установил, что в английских текстах избыточная информация достигает 80%
от общего объема информации, заключенной в письменном сообщении. Оставшиеся 20%
текста являются источником снятия неопределенности, непредсказуемости полученного текста. Именно эти 20% текста несут новую информацию, снимают неопределенность, дают
знание.
В русском языке (так же, как и в языках других народов) существует статистическая
устойчивость вероятности появления каждой буквы алфавита. Так буква «о» в русских текстах появляется значительно чаще, чем буква «ъ». Кроме того, существует зависимость вероятности появления буквы от того, какая буква в осмысленном тексте ей предшествовала.
Очевидно, что вероятность появления сочетания букв «ма» значительно выше, чем у сочетания букв «мъ».
Знание правил грамматики конкретного естественного языка позволяет с высокой вероятностью заранее предсказать очередную букву сообщения, если по каналу связи был получен какой-то осмысленный текст (то есть из контекста). Полученную с помощью существующих правил грамматики информацию К.Шеннон определил, как «избыточную» - лишнюю. Это объясняется тем, что знание правил построения сообщений позволяет предсказывать появление букв раньше, чем они будут переданы по каналу связи.
Избыточность текста наблюдается в тех случаях, когда вероятности появления различных символов различны, и когда вероятность появления очередного символа зависит от ранее принятого символа. Избыточность позволяет правильно понять содержание осмысленного текста даже при наличии в нем ошибок или пропуска символов. Для подобных случаев
выведены формулы, которые учитывают тот факт, что вероятность появление очередного
символа зависит от принятых предыдущих символов (учитывается условная энтропия.
12
Современные достижения в области теории информации позволили разработать эффективные криптографические системы, системы массового обслуживания. На основании теории информации разработаны алгоритмы и программы для сжатия файлов, а также для кодирования, обнаружения и исправления ошибок в полученных данных. Теория информации
помогла разработать эффективные способы ослабления действия помех, действующих в каналах связи.
Теория информации позволила эффективно решить множество прикладных вопросов,
например, создать модемы для телефонных каналов, у которых скорость передачи информации приблизилась к теоретической пропускной способности существующих каналов связи.
13
1.3. Этапы развития вычислительной техники
Лучший способ спрогнозировать будущее –
изобрести его.
А.Кэй
Основные этапы развития вычислительной техники представлены в таблице.
Этап
Ручной
Механический
Электромеханический
Электронный
Период развития
не установлен
с середины XVII века
с 90-х годов XIX века
с 40-х годов ХХ века
Рассмотрим особенности каждого этапа.
Более трех тысяч лет назад в Средиземноморье было распространено простейшее приспособление для счѐта: доска, разделенная на полосы, где перемещались камешки. Такая
счетная дощечка называлась абак и использовалась для ручного счѐта. В Древнем Риме абак
назывался calculi или abaculi и изготавливался из бронзы, камня, слоновой кости или цветного стекла. Слово calculus означает «галька», «голыш». От этого слова произошло латинское
слово calculatore (вычислять), а затем слово «калькуляция».
Первое механическое счетное устройство было построено немецким математиком и астрономом Вильгельмом Шиккардом (1592 – 1635 г.г.). Устройство было реализовано в единственном экземпляре (предположительно в
1623 г.) и предназначалась для выполнения арифметических операций. Из-за недостаточной известности машины
Шиккарда более 300 лет считалось, что первую суммирующую машину сконструировал Блез Паскаль.
Блез Паскаль (французский математик, физик, религиозный философ и писатель) в 1642 г. построил механическую счетную машину, выполнявшую сложение. В 1674 г. Готфрид Лейбниц расширил
возможности машины Паскаля, добавив операции умножения, деления и извлечения квадратного корня. Для своей машины Лейбниц
применил систему счисления, использующую вместо привычных
для человека десяти цифр две: 1 и 0. Двоичная система счислений
широко используется в современных ЭВМ.
Ни одна из перечисленных машин не была автоматической и
работала под управлением человека. В 1834 г. Чарлз Бэббидж
(Charles Babbage) первым разработал подробный проект автоматической вычислительной машины. Однако построить эту машину не
удалось, так как в то время невозможно было достичь требуемой
точности изготовления ее механических деталей.
Ч. Бэббидж выделял в своей машине следующие составные
части:
«склад» для хранения чисел (по современной терминологии — память);
«мельницу» для производства арифметических действий
(арифметическое устройство, процессор);
устройство, управляющее последовательностью выполнения операций (устройство управления);
14
устройства ввода и вывода данных.
В качестве источника энергии для приведения в действие механизмов машины Ч. Бэббидж предполагал использовать паровой двигатель.
Ч.Бэббидж предложил управлять работой своей машины с помощью перфорированных карт, содержащих коды команд, подобно
тому, как использовались перфокарты в ткацких станках Жаккара. На
перфокартах с помощью отверстий, пробитых в определенных местах,
размещалась управляющая программа.
Ч. Бэббидж довольно подробно рассматривал вопросы, связанные, как мы сейчас говорим, с программированием. В частности, им
была разработана важная для программирования идея «условной передачи управления». Идеи Бэббиджа заложили фундамент, на котором
со временем были построены ЭВМ.
Первые программы для вычислительной машины Ч.Бэббиджа
создавала Ада Лавлейс (Ada Lovelace) — дочь известного поэта
Джорджа Байрона, в честь которой впоследствии был назван один
из языков программирования. Выражаясь современным языком,
Лавлейс составила программу вычисления чисел Бернулли. Ада
Лавлейс разработала основные принципы программирования, которые остаются актуальными до настоящего момента времени. Ряд
терминов, введенных Адой Лавлейс, используются и сейчас, например, «цикл», «рабочие ячейки».
Теоретические основы современных цифровых вычислительных машин заложил английский математик Джордж Буль (1815—
1864). Он разработал алгебру логики, ввел в обиход логические
операторы И, ИЛИ и НЕ.
В 1888 г. Германом Холлеритом (Herman Hollerith) была сконструирована первая
электромеханическая машина для сортировки и подсчета перфокарт. Эта машина, названная
табулятором, содержала реле, счетчики, сортировочный ящик. Изобретение Холлерита было
использовано при подведении итогов переписи населения в США. Успех вычислительных
машин с перфокартами был феноменален. То, чем за десять лет до этого занимались 500 сотрудников в течение семи лет, Холлерит сделал с 43 помощниками на 43 вычислительных
машинах за 4 недели.
В 1896 г. Герман Холлерит основал фирму Computing Tabulation Company. Спустя несколько лет, это предприятие переименовали в известнейшую теперь фирму International
Business Machine Corporation (IBM).
Немецкий инженер Конрад Цузе (Konrad Zuse) был первым, кто успешно осуществил
идею создания автоматической электромеханической вычислительной машины на основе
двоичной системы счисления. В 1936 г. он начал конструировать вычислительный аппарат,
работающий в двоичной системе счисления, который впоследствии был назван Zuse 1 (Z1). В
1941 г. Была построена действующая модель Zuse 3, которая состояла из 600 реле счетного
устройства и 2000 реле устройства памяти.
В 1943 г. в Англии было разработано полностью автоматическое вычислительное устройство Colossus. Основным назначением этого устройства было дешифрование перехваченных сообщений противника.
Еще одна полностью автоматическая вычислительная машина, изобретенная профессором Гарвардского университета Говардом Айкеном (Aiken Howard, 1900—1973) при участии группы инженеров фирмы IBM, была построена в 1944 г. Она была названа ASCC (другое название Mark 1), и была электромеханической (построена на реле), состоящей приблизительно из 750 тысяч компонентов. На умножение она тратила около 4 секунд. До знаком15
ства с работами Цузе научная общественность считала машину ASCC первой электромеханической машиной.
В 1937 г. в США Джон Атанасов начал работы по созданию электронной вычислительной машины. Им были созданы и запатентованы первые электронные схемы отдельных
узлов ЭВМ. Совместно с К. Берри к 1942 г. была построена электронная машина ABC
(Atanasoff-Berry Computer).
Электронная вычислительная машина, разработанная Эккертом и Маучли (John W.
Mauchly and J. Presper Eckert, Jr.) в США в 1946 г., была названа ENIAC. При создании этой
машины Эккерт и Маучли заимствовали основные идеи у Дж. Атанасова. Машина ENIAC
была примерно в 1000 раз быстрее, чем ASCC. Она состояла из 18 тысяч электронных ламп,
1500 реле, имела вес более 30 тонн, потребляла мощность более 150 кВт.
Фотография позволяет наглядно оценить прогресс вычислительной техники. Несколько
человек находятся внутри ENIAC. Современные
ЭВМ уже можно разместить внутри человека.
Первоначально ENIAC программировалась путем соединения проводами соответствующих гнезд
на коммутационной панели, что делало составление
программы очень медленным и утомительным занятием. Американский математик и физик венгерского
происхождения Джон фон Нейман (1903—1957)
предложил хранить программу — последовательность команд управления ЭВМ — в памяти ЭВМ, что позволяло оперировать с программой так же, как с данными. Последующие ЭВМ строились с
большим объемом памяти, с учетом того, что там будет храниться программа.
Фон Неймана выделил пять базовых элементов компьютера:
арифметико-логическое устройство (АЛУ);
устройство управления (УУ);
запоминающее устройство (ЗУ);
система ввода информации;
система вывода информации.
Описанную структуру ЭВМ принято называть архитектурой фон Неймана.
ЭВМ первого поколения в качестве элементной базы использовали электронные лампы
и реле.
Изобретение в 1948 г. транзисторов и запоминающих устройств на магнитных сердечниках оказало глубокое воздействие на вычислительную технику. Ненадежные вакуумные
лампы, которые потребляли большую мощность для нагревания катода, заменялись небольшими германиевыми (впоследствии кремниевыми) транзисторами. Компьютеры, построенные в середине 50-х годов ХХ в., стали называть машинами второго поколения.
Революционный прорыв в миниатюризации и повышении надежности компьютеров
произошел в 1958 г., когда американский инженер Д. Килби (Jack Kilby) разработал первую
интегральную микросхему. В середине 60-х годов прошлого столетия появилось третье поколение ЭВМ, основу элементной базы которых составляли микросхемы малой и средней
степени интеграции.
Другая революция в технологии изготовления ЭВМ произошла в 1971 г., когда американский инженер Маршиан Эдвард Хофф (Marcian E. Hoff) объединил основные элементы
компьютера в один небольшой кремниевый чип (кристалл), который он назвал микропроцессором. Первый микропроцессор получил маркировку Intel 4004.
ЭВМ четвертого поколения строятся на интегральных микросхемах с большой степенью интеграции. На одном кристалле размещается целая микроЭВМ. Заметим, что переход
16
от третьего поколения ЭВМ к четвертому не был революционным. Отличия коснулись не
столько принципов построения ЭВМ, сколько плотности упаковки элементов в микросхемах.
Развитие ЭВМ идет по пути непрерывного повышения быстродействия, надежности,
расширения функциональных возможностей, уменьшения габаритов и потребляемой мощности, упрощения правил работы на компьютере. Среди ЭВМ четвертого поколения появились персональные компьютеры (ПК или ПЭВМ), которые позволяют индивидуально работать каждому пользователю.
Первой ПЭВМ можно считать компьютер Altair-8800, созданный в 1974 г.
Э. Робертсом. Для этого компьютера П. Аллен и Б. Гейтс в 1975 г. создали транслятор с
популярного языка Basic. Впоследствии (1976 г.) П. Аллен и Б. Гейтс создали известную
компанию Microsoft.
В заслугу Б.Гейтса (и компании Microsoft) можно поставить разработку следующих
программных продуктов: операционных систем MS-DOS (1981 г.), ОС семейства MS Windows (от Windows 1.0, 1985 г. до Windows 8.1, 2013 г.), языка программирования Visual Basic
(1991 г.), приложений MS Office (MS Word, MS Excel, MS Access и
др.), браузера Internet Explorer (1995 г.) и др. Филиалы фирмы Microsoft производят аппаратные средства: планшетные ЭВМ, мобильные телефоны, клавиатуру, ручные манипуляторы и др.
Бесконечные усовершенствования операционных систем MS
Windows, жѐсткая борьба с конкурентами, агрессивная рекламная
политика, потрясающая работоспособность позволили Б.Гейтсу
стать самым богатым человеком на нашей планете.
В 1976 г. Стивен П. Джобс и Стефан Г. Возниак основали в
гараже Пало-Альто (Калифорния) предприятие Apple Computer.
После шести месяцев работы С.Возниак собрал действующий макет компьютера под названием Apple 1. В настоящее время компания с таким названием хорошо известна многим
пользователям ЭВМ.
В дальнейшем С.Джобс стал выдающимся менеджером, под
руководством которого разработаны и промышленно реализованы: музыкальный проигрыватель iPod (октябрь 2001 г.), компьютер iMac (2002 г.), мобильный телефон iPhone (январь 2007 г.), вобравший в себя функции многих цифровых устройств, планшет
iPad (январь 2010 г.), операционная система iOS. Поражает гениальная интуиция С.Джобса, сумевшего увидеть перспективность
ряда технических решений в области информационных технологий.
Сейчас ведется разработка ЭВМ пятого поколения, характерными особенностями которых будут способность к самообучению и наличие речевого ввода и вывода информации.
Таким образом, вычислительная техника постоянно впитывала в себя самые последние
достижения науки, техники и технологии (электронные лампы, транзисторы, микроэлектроника, лазеры, средства связи), благодаря чему ее развитие идет необычайно высокими темпами.
В текущем столетии, когда на смену электронным приборам придут квантовые, оптические или биоэлектронные приборы, тогда современные нам ЭВМ будут казаться будущим
пользователям такими же монстрами, какими нам кажутся вычислительные машины 40-х годов ХХ века.
17
1.4. Развитие отечественной вычислительной
техники
В бывшем СССР работы по созданию ЭВМ были начаты перед Великой Отечественной войной. Однако работы в этом направлении из-за
войны были приостановлены.
Разработка ЭВМ возобновилась в 1947 г. в Институте электротехники Академии наук Украины под руководством Сергея Алексеевича
Лебедева.
В декабре 1948 г. С.А. Лебедевым (независимо от Джона фон Неймана) были разработаны принципы построения ЭВМ, у которой программа хранилась в оперативной памяти. К концу 1949 г. были спроектированы общая компоновка машины и принципиальные схемы ее блоков. В
первой половине 1950 г. были изготовлены отдельные блоки и к концу 1950 г. закончена отладка созданного макета. В ноябре 1950 г. был испытан макет первой отечественной ЭВМ —
малой электронно-счетной машины (МЭСМ). В 1952 г. она была введена в эксплуатацию.
С помощью МЭСМ решались важнейшие научно-технические задачи: исследование
термоядерных процессов, разработка космической и ракетной техники, проектирование
дальних линий электропередачи, разработка методов статистического контроля качества и
др.
В 1952 г. была создана большая электронно-счетная машина (БЭСМ). В качестве элементной базы у этой машины использовались электронные лампы (первое поколение ЭВМ).
Работы, имевшие для страны большое значение, проводились независимо несколькими
организациями. В 1952 г. стали действовать машины М-1 и М-2, созданные в коллективе, которым руководил член-корреспондент Академии наук СССР И.С. Брук.
К ЭВМ первого поколения можно отнести МЭСМ, БЭСМ, М-1, М-2, М-З, «Стрелу»,
«Минск-1», «Урал-1», «Урал-2», «Урал-3», M-20, «Сетунь», БЭСМ-2, «Раздан».
В то время появилось немало оригинальных конструкций и идей.
В 1953 г. Н.П. Брусенцов предложил для построения ЭВМ использовать не традиционную двоичную систему счисления, а троичную систему счисления. Троичная СС в ряде
случаев позволяла создавать более компактные (эффективные) программы. Машину, разработанную Н.П. Брусенцовым, назвали «Сетунь» — по имени речки, протекающей недалеко
от Московского университета.
Первая отечественная ЭВМ на полупроводниковых приборах (второе поколение ЭВМ)
под названием «Днепр» была разработана в конце 50-х годов прошлого столетия в Институте
кибернетики АН Украины под руководством академика В.М. Глушкова.
ЭВМ второго поколения БЭСМ-6 (1966 г.), разработанная под руководством
С.А. Лебедева, была одной из самых производительных машин в мире.
К ЭВМ второго поколения относятся: М-40, М-50 — для систем противоракетной обороны; «Урал-11» (14, 16) — для решения инженерно-технических и планово-экономических
задач; «Минск-2» (12, 14) — для решения инженерных, научных и конструкторских задач;
«Минск-22» — для решения научно-технических и планово-экономических задач; БЭСМ-3
18
(4, 6) — для решения сложных задач науки и техники; М-20, (220, 222) — для решения сложных математических задач; «МИР-1» — для решения широкого круга инженерноконструкторских математических задач; «Наири» — для решения широкого круга инженерных, научно-технических, планово-экономических и учетно-статистических задач и др.
В бывшем СССР первым серийным компьютером на интегральных микросхемах
(третье поколение ЭВМ) была машина «Наири-3», появившаяся в 1970 г.
В нашей стране вплоть до 70-х годов прошлого столетия создание машин велось самостоятельно. Использовались идеи, разработанные в основном отечественными учеными и конструкторами (М.А. Карцев, Б.И. Рамаев, Ю.А. Базилевский, Б.Н. Малиновский и др.). Дело в
том, что вычислительная техника с самого момента ее появления стала стратегическим инструментом, который использовался для решения задач военно-промышленного комплекса. Поэтому разработка в СССР велась автономно и в условиях секретности (как, впрочем, и за рубежом). Когда занавес секретности был приоткрыт, появился соблазн использовать готовые
зарубежные наработки (в том числе разнообразное программное обеспечение). В тот период
времени было принято, вероятно, ошибочное решение, сводившееся к копированию зарубежной техники.
В СССР и странах-союзниках по Варшавскому Договору в 70—80-х годах ХХ в. разрабатывались машины Единой Системы (ЕС) — большие, средние машины, система малых
ЭВМ (СМ) и серия микроЭВМ. В их основу были положены американские образцы фирм
IBM и DEC (Digital Equipment Corporation).
К машинам третьего поколения относились «Днепр-2», ЭВМ Единой Системы (ЕС1010, ЕС-1020, ЕС-1030, ЕС-1040, ЕС-1050, ЕС-1060 и несколько их промежуточных модификаций — ЕС-1021 и др.), «МИР-2», «Наири-2» и ряд других.
Элементная база ЭВМ четвертого поколения — большие и сверхбольшие интегральные
схемы.
К
четвертому
поколению
можно
отнести
отечественные
ЭВМ:
ЕС-1015, ЕС-1025, ЕС-1035, ЕС-1045, ЕС-1055, ЕС-1065 («Ряд 2»), ЕС-1036, ЕС-1046, ЕС1066, СМ-1420, СМ-1600, СМ-1700, персональные ЭВМ («Электроника МС 0501», «Электроника-85», «Искра-226», ЕС-1840, ЕС-1841, ЕС-1842, «Нейрон И9.66» и др.), многопроцессорный вычислительный комплекс «Эльбрус» и другие ЭВМ.
Многие программисты в России начинали изучение компьютерной грамотности с программируемых калькуляторов Б3-34, МК-54. С их помощью пользователи решали арифметические задачи и задачи математического анализа (численными методами). Трудно поверить,
но для программируемых калькуляторов были разработаны даже игровые программы (например, крестики-нолики).
В конце 80-х — начале 90-х годов ХХ столетия в России были популярны бытовые
персональные компьютеры «Микроша», «Радио-86», «Микро-88», «Криста», «Лик», «Специалист», «Квант» (на процессоре К580ВМ80А), БК-0010 (на процессоре К1801ВМ1), «Ассистент», «Поиск», МС-0511, МС-1502 (на процессоре К1810ВМ86).
Большое число ПЭВМ было изготовлено на базе процессора Z80A. Среди них можно
назвать Spectrum ZX (фирмы Sincklair Radions LTD) и наши отечественные модели: Sintez,
«Север», «Элин», «Дельта», «Байт», «Магик», «Компаньон», «Коле», «Форум БК01», «Синтака 002», «Ленинград», «Москва» и др. При этом многие ПЭВМ, использовавшиеся российскими программистами, например, «Радио-86», «Специалист», Spectrum ZX, «Ленинград»,
«Москва», были самодельными.
Российский компьютер «Ломоносов» входит в список 50-ти самых быстрых компьютеров в мире. Производительность этой ЭВМ – 1,3 Пфлоп/с. (1,3 квадриллиона операций с
фиксированной точкой в секунду).
В ноябре 2013 года самым мощным компьютером в мире был признан китайский суперкомпьютер Tianhe-2. Его производительность составила 33,86 Пфлоп/с.
19
2. Арифметические и логические основы работы ЭВМ
2.1. Системы счисления
Единица — вздор, единица — ноль.
В. Маяковский
Все фантастические возможности вычислительной техники (ВТ) реализуются путем
создания разнообразных комбинаций сигналов высокого и низкого уровней, которые условились называть «единицами» и «нулями». Поэтому мы, в отличие от поэта В. Маяковского,
не склонны недооценивать роль единицы, как, впрочем, и нуля. Особенно если речь идет о
двоичной системе счисления.
Под системой счисления (СС) понимается способ представления любого числа с помощью алфавита символов, называемых цифрами.
СС называется позиционной, если одна и та же цифра
имеет различное значение, которое определяется ее местом в
числе.
Десятичное число
Десятичная СС является позиционной. На рисунке слева
значение цифры 9 изменяется в зависимости от ее положения в
числе. Первая слева девятка делает вклад в общее значение десятичного числа 900 единиц, вторая — 90, а третья — 9 единиц.
1 9 9 9
Римская СС является непозиционной. Значение цифры Х
в числе ХХI остается неизменным при вариации ее положения
в числе.
Цифры
Количество различных цифр, употребляемых в позиционной СС, называется основанием СС. В десятичной СС используется десять цифр: 0, 1, 2, ..., 9; в двоичной СС — две цифры: 0
и 1; в восьмеричной СС — восемь цифр: 0, 1, 2, ..., 7. В СС с основанием Q используются
цифры от 0 до Q – 1.
В общем случае в позиционной СС с основанием Q любое число х может быть представлено в виде полинома:
x = an Qn + an-1 Qn-1 + … + a1 Q1 + a0 Q0 + a-1 Q-1 + a-2 Q-2 + …+ a-m Q-m
целая часть
дробная часть
В этом полиноме в качестве коэффициентов ai могут стоять любые цифры, используемые в данной СС.
Принято представлять числа в виде последовательности входящих в полином соответствующих цифр (коэффициентов):
x = an an-1 … a1 a0 , a-1 a-2 … a-m
Запятая отделяет целую часть числа от дробной части. В ВТ чаще всего для отделения
целой части числа от дробной части используют точку. Позиции цифр, отсчитываемые от
точки, называют разрядами. В позиционной СС вес каждого разряда отличается от веса
(вклада) соседнего разряда в число раз, равное основанию СС. В десятичной СС цифры 1-го
справа разряда — единицы, 2-го — десятки, 3-го — сотни и т. д.
В ВТ применяют позиционные СС с недесятичным основанием: двоичную, восьмеричную и шестнадцатеричную системы. Для обозначения используемой СС числа заключают в
скобки и индексом указывают основание СС:
(15)10; (1011)2; (735)8; (1EA9F)16.
20
Чаще всего скобки опускают и оставляют только индекс:
1510; 10112; 7358; 1EA9F16.
Есть еще один способ обозначения СС: при помощи латинских букв, добавляемых после числа. Например,
15D; 1011B; 735Q; 1EA9FH.
Установлено, что, чем больше основание СС, тем компактнее запись числа. Так двоичное изображение числа требует примерно в 3,3 раза большего количества цифр, чем его десятичное представление.
Несмотря на то, что десятичная СС имеет широкое распространение, цифровые ЭВМ
строятся на двоичных (цифровых) элементах, так как реализовать элементы с десятью четко
различимыми состояниями сложно. В другой системе счисления могут работать приборы декатрон и трохотрон. Декатрон — газоразрядная счетная лампа — многоэлектродный газоразрядный прибор тлеющего разряда для индикации числа импульсов в десятичной СС.
Указанные устройства не нашли применения для построения средств ВТ. Историческое
развитие вычислительной техники сложилось таким образом, что цифровые ЭВМ строятся
на базе двоичных цифровых устройств (триггеров, регистров, счетчиков, логических элементов и т. п.).
Заметим, что отечественная ЭВМ «Сетунь» (автор — Н.П. Брусенцов) работала с использованием троичной системы счисления.
Шестнадцатеричная и восьмеричная СС используются при составлении программ на
языке машинных кодов для более короткой и удобной записи двоичных кодов — команд,
данных, адресов и операндов. Перевод из двоичной СС в шестнадцатеричную и восьмеричную СС (и обратно) осуществляется достаточно просто.
Задача перевода из одной системы счисления в другую часто встречается при программировании и особенно часто при программировании на языке Ассемблера. Например, при
определении адреса ячейки памяти, для получения двоичного или шестнадцатеричного эквивалента десятичного числа. Отдельные стандартные процедуры языков программирования
Паскаль, Бейсик, HTML и Си требуют задания параметров в шестнадцатеричной системе
счисления. Для непосредственного редактирования данных, записанных на жесткий диск,
также необходимо умение работать с шестнадцатеричными числами. Отыскать неисправность в ЭВМ практически невозможно без представлений о двоичной системе счисления. Без
знания двоичной СС невозможно понять принципы архивации, криптографии и стеганографии. Без знания двоичной СС и булевой алгебры нельзя представить, как происходит слияние объектов в векторных графических редакторах.
В табл. 1 приведены некоторые числа, представленные в различных СС.
Таблица 1
Системы счисления
Десятичная
Двоичная
ВосьмеричШестнадцаная
терич.
0
0
0
0
1
1
1
1
2
10
2
2
3
11
3
3
4
100
4
4
5
101
5
5
6
110
6
6
7
111
7
7
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
21
13
14
15
16
17
1101
1110
1111
10000
10001
15
16
17
20
21
D
E
F
10
11
Перевод целых чисел из десятичной СС в двоичную, восьмеричную или шестнадцатеричную СС удобно делать с помощью следующего правила:
Для перевода целого числа из S-системы счисления в W-систему
счисления нужно последовательно делить это число, а затем получаемые частные на основание W новой СС до тех пор, пока частное не станет меньше W.
Пример 1. Перевести целое десятичное число 37D в двоичную СС:
Решение.
Результат перевода: (37)10 = (100101)2.
При переводе наиболее частой ошибкой является неверная запись результата. Запись
двоичного числа следует начинать со старшего значащего разряда (СЗР), а заканчивать записью младшего значащего разряда (МЗР). Следует помнить, что при делении первым получается значение МЗР.
Перевод из десятичной СС в двоичную СС можно осуществить с помощью таблицы
степеней числа 2.
n
6
степень
2n
64
5
4
3
2
1
0
-1
-2
-3
32
16
8
4
2
1
0.5
0.25 0.125
Пример 2.
Преобразовать десятичное число 87.625D в двоичную СС с помощью таблицы степеней.
Решение.
Для перевода нужно выбрать из таблицы числа, которые в сумме дадут переводимое
число. Коэффициенты перед этими слагаемыми в полиноме принимаются равными единице.
Остальные коэффициенты считаются равными нулю.
n
6
степень
2n
64
ai
1
5
4
3
2
1
0
-1
-2
-3
32
0
16
1
8
0
4
1
2
1
1
1
0.5
1
0.25 0.125
0
1
87.625 = 64+16+8+4+2+1+0.5+0.125
Двоичное число запишется в виде:
1010111.101B
22
Для перевода правильной дроби из S-системы счисления в СС с основанием W нужно умножить исходную дробь и дробные части получающихся произведений на основание W, представленное в старой S-системе.
Целые части получающихся произведений дают последовательность цифр,
которая является представлением дроби в W-системе счисления.
Напомним, что правильной называется дробь, числитель которой меньше знаменателя.
Пример 3. Перевести правильную десятичную дробь 0.1875D в двоичную СС.
Решение.
0
0
1
1
0.1875
х
2
0.3750
х
2
0.7500
х
2
1.5000
х
2
1.0000
Запишем результат перевода: 0.1875D = 0.0011B.
Обычно перевод дробей из одной СС в другую производят приближенно. При переводе неправильной дроби переводят отдельно целую и дробную части, руководствуясь соответствующими правилами.
Примечание.
Нередко при переводе правильной дроби из десятичной СС в двоичную СС результатом вычислений является иррациональная дробь. В этом случае число необходимых знаков
после запятой определяет пользователь, исходя из необходимой погрешности.
При переводе неправильной дроби переводят отдельно целую и дробную части, руководствуясь соответствующими правилами.
Пример 4. Перевести десятичное число 9.625D в двоичную СС.
Решение.
Вначале переведем целую часть десятичного числа в двоичную СС:
9D = 1001B.
Затем переведем правильную дробь:
0.625D = 0.101B.
Окончательный ответ: 9.625D = 1001.101B.
Пример 5. Перевести десятичное число 164D в восьмеричную СС
Решение.
Результат перевода: (164)10 = (244)8.
Рассмотрим правило перехода из восьмеричной СС в двоичную СС.
23
Для перевода восьмеричного числа в двоичную СС достаточно
заменить каждую цифру восьмеричного числа соответствующим трехразрядным двоичным числом. Затем необходимо удалить крайние нули
слева, а при наличии дробной части — и крайние нули справа.
Пример 6. Перевести число 305.4Q из восьмеричной СС в двоичную СС.
Решение. Переводимое число
Результат
(3
011
0
5.
000
101.
4)8 = (11000101.1)2
100
Отмеченные символами « » нули следует отбросить. Заметим, что двоичные числа взяты из
табл. 1.
Еще одно правило перевода чисел:
Для перехода от шестнадцатеричной СС к двоичной СС каждая
цифра шестнадцатеричного числа заменяется соответствующим четырехразрядным двоичным числом. У двоичного числа удаляются лидирующие нули (крайние слева), а если имеется дробная часть, то и крайние правые нули.
Пример 7. Перевести число 7D2.E H из шестнадцатеричной СС в двоичную СС.
Решение.
Переводимое число
(7
D
0111
1101
2.
Результат
E) 16 = (11111010010.111)2
0010. 1110
Отмеченные крайние нули следует отбросить.
Рассмотрим ещѐ одно правило:
Для перехода от двоичной СС к восьмеричной (или шестнадцатеричной) СС поступают следующим образом: двигаясь от точки
сначала влево, а затем вправо, разбивают двоичное число на группы
по три (четыре) разряда, дополняя при необходимости нулями крайнюю правую группу. Затем каждую группу из трех (четырех) двоичных разрядов заменяют соответствующей восьмеричной (шестнадцатеричной) цифрой.
Пример 8. Перевести число 111001100.001В из двоичной СС в восьмеричную СС.
Решение.
Переводимое число
(111
001
100.
7
1
4.
Результат
001) 2 = (714.1)8
1
24
Пример 9. Перевести число 10111110001.001В из двоичной СС в шестнадцатеричную
СС.
Решение.
Результат
Переводимое число
(0101 1111
5
F
0001.
0010) 2
1.
2
=
(5F1.2)16
Для перевода двоичного числа в десятичную СС следует представить число в виде полинома, подставить в него известные коэффициенты и вычислить сумму.
Пример 10. Перевести число 11011.11В из двоичной СС в десятичную СС.
Решение.
(11011.11)2 = 1 24 + 1 23 + 0 22 + 1 21 + 1 20 + 1 2-1 + 1 2-2 =
= 16 + 8 + 0 + 2 + 1 + 0.5 + 0.25 = (27.75)10.
Для перевода шестнадцатеричного числа в десятичную СС
следует представить число в виде полинома, подставить в него известные коэффициенты и вычислить сумму.
Пример 11. Перевести шестнадцатеричное число 2E5.AH в десятичную СС.
Решение.
(2E5.A)16 = 2 162 + 14 161 + 5 160 + 10 16-1 = (741.625)10.
Несерьёзное примечание. В силу физиологического строения человека наибольшее
распространение на Земле получила десятичная СС (у человека десять пальцев на руках). Но
если бы первую систему счисления изобретали разумные осьминоги или сороконожки, то
наибольшее распространение имели бы другие СС.
25
2.2. Логические основы работы ЭВМ
- А почему «операция Ы»?
- Чтобы никто не догадался.
Из фильма «Операция «Ы» и
другие приключения Шурика».
Для описания работы аппаратных и программных средств ЭВМ используется алгебра
логики или, как ее часто называют, булева алгебра. Основоположником этого раздела математики был Джордж Буль.
Булева алгебра оперирует с логическими переменными, которые могут принимать
только два значения: истина или ложь, обозначаемые соответственно 1 и 0.
Как ранее отмечалось, основной системой счисления ЭВМ является двоичная СС, в которой также используются только две цифры: 1 и 0. Таким образом, одни и те же цифровые
устройства ЭВМ могут применяться для выполнения арифметических и логических операций. Это обуславливает универсальность (однотипность) схемной реализации процесса обработки информации в ЭВМ.
Логические операции широко используются при аппаратной реализации самой ЭВМ и
при программной реализации многих приложений (например, слияние объектов в векторных
графических редакторах осуществляют с помощью логических операций И, ИЛИ, И-НЕ).
Совокупность значений логических переменных x1, x2, ..., xn называется набором переменных.
Логической функцией от набора логических переменных (аргументов) F(x1, x2, ..., xn )
называется функция, которая может принимать только два значения: истина или ложь (1 или
0). Любая логическая функция может быть задана с помощью таблицы истинности, в левой
части которой записываются возможные наборы аргументов, а в правой части — соответствующие им значения функции. Логическую функцию порой называют функцией алгебры
логики (ФАЛ).
Ниже приведена таблица истинности для логической функции «Равнозначность».
Аргументы
Функция
x2
x1
F
0
0
1
0
1
0
1
0
0
1
1
1
В случае большого числа аргументов табличный способ задания функции алгебры логики становится громоздким, поэтому ФАЛ удобно выражать через другие, более простые
ФАЛ.
Общее число ФАЛ n переменных определяется возведением числа 4 в степень n, т. е.
n
4 . Существуют четыре ФАЛ одной логической переменной.
Таблица 1
x
0
1
F0(x)
0
0
F1(x)
0
1
F2(x)
1
0
F3(x)
1
1
Функции F0(х) = 0 и F3(х) = 1 являются константами (функции не изменяются при изменении аргумента). Функция F1(х) = х повторяет значение аргумента х. Функция F2(x) называется отрицанием переменной или инверсией и обозначается так:
F2(x) = x .
26
Число ФАЛ двух переменных x1 и x2 равно 16: F0(x) ... F15(x). Шесть функций являются
вырожденными: F0(x) = 0, F3(x) = x1, F5(x) = x2, F10(x) = x 2 , F12(x) = x1 , F15(x) = 1.
Из оставшихся десяти логических функций широкое распространение имеют функции
F1(х) (конъюнкция, логическое умножение, логическая операция И) и F7(х) (дизъюнкция, логическое сложение, логическая операция ИЛИ), которые совместно с функцией инверсии
составляют функционально полную систему логических функций. С помощью этих трех
функций можно представить (аналитически выразить) любую сколь угодно сложную логическую функцию. Очень важной для вычислительной техники и информатики является логическая функция Исключающее ИЛИ (неравнозначность, сложение по модулю два). Ниже
приведены таблицы истинности для трех функций и их условные обозначения.
Инверсия
х
0
1
x
1
0
x2
x1
0
0
1
1
0
1
0
1
x2
x1
x2
x1
x2
x1
дизъюнк.
конъюнк.
неравноз.
0
1
1
1
0
0
0
1
0
1
1
0
Логические переменные, объединенные знаками логических операций, составляют логические выражения. Приведем пример логического выражения.
F ( a b) ( a b a )
При определении значения логического выражения принято следующее старшинство
(приоритет) логических операций: сначала выполняется инверсия, затем конъюнкция и в последнюю очередь — дизъюнкция. Для изменения указанного порядка используют скобки.
Рассмотрим аксиомы, тождества и основные законы алгебры логики.
В алгебре логики рассматриваются переменные, которые могут принимать только два
значения: 0 и 1. Базируется алгебра логики на отношении эквивалентности и трех упомянутых ранее операциях: дизъюнкции (синонимы — логическое сложение, операция ИЛИ),
конъюнкции (логическое умножение, операция И) и отрицании (инверсия, операция НЕ).
Отношение эквивалентности обозначается знаком =.
Дизъюнкция обозначается знаком , а иногда символом +.
Конъюнкция обозначается символом либо точкой, которую можно опускать.
Отрицание обозначается чертой над переменной: x .
Алгебра логики определяется следующей системой аксиом:
x = 0, если x 1.
x = 1, если x 0.
1
0
0
1=1
0=0
1=1
0=1
0
1
1
0=0
1=1
0=0
1=0
1 0.
0 1
Если в аксиомах произвести взаимную замену операций дизъюнкции и конъюнкции, а
также элементов 0 и 1, то из одной аксиомы данной пары получается другая. Это свойство
называется принципом двойственности.
С помощью аксиом можно получить ряд тождеств:
x x 1
x x 0
0 x x
1 x x
1 x 1
0 x 0
x x x
x x x
Перечислим законы алгебры логики:
переместительный (или коммутативный)
27
x y y x,
x y y x.
От перестановки местами аргументов результат не изменяется.
сочетательный (или ассоциативный)
( x y) z x ( y z) ,
( x y) z x ( y z) .
Указанные операции можно выполнять в любом порядке.
распределительный (или дистрибутивный)
x ( y z) x y x z ,
x y z ( x y) ( x z ) .
двойственности (или де Моргана)
x y x y,
x y x y.
Инверсия от дизъюнкции дает конъюнкцию инверсий.
Инверсия от конъюнкции дает дизъюнкцию инверсий.
двойного отрицания
x
x.
поглощения
x x
x (x
y x,
y) x .
склеивания
(x
x y x y x,
y) ( x y ) x .
28
2.3. Арифметические основы работы ЭВМ
В бинарной системе счѐт ведут
не по пальцам, а по кулакам.
NN
Правила выполнения арифметических действий над двоичными числами задаются таблицами сложения, вычитания и умножения.
Таблица 1
Сложение
Вычитание
Умножение
0+0=0
0–0=0
00=0
0+1=1
1–0=1
01=0
1+0=1
1–1=0
10=0
1 + 1 = 10
10 – 1 = 1
1  1 =1
Правила арифметики во всех позиционных СС аналогичны. В двоичной СС арифметическое сложение происходит по правилу сложения по модулю два с учетом переноса единицы в старший разряд (см. табл. 1).
Пример 1. Выполнить операцию арифметического сложения в двоичной системе счисления.
Решение.
Точками показаны переносы.
В устройствах, реализующих операцию арифметического
.
....
сложения двоичных чисел, операнды представляют числами опре13
01101
деленной разрядности (одинаковой для обоих операндов). При
+ 7
+ 00111
этом неиспользуемые старшие разряды заполняются нулями. Так20
10100
10
2
же заполняются нулями младшие разряды дробной части вещественного числа (справа от точки).
Следует заметить, что в реальных ЭВМ чаще всего используются 32-, 64-, 128-разрядные сетки (машинные слова). Однако для учебных целей при рассмотрении правил выполнения арифметических операций не будем обращать внимание на
разрядность операндов (т. е. будем использовать разрядность, отличающуюся от разрядности
реальных ЭВМ).
Пример 2. Выполнить операцию арифметического
.
.. ...
сложения
двух вещественных чисел в двоичной системе
55,25
0110111.01
счисления.
+ 19,5
+ 0010011.10
Решение.
74,75
1001010.11
10
2
Результаты сложения двух чисел показаны на рисунке
слева. При сложении вещественных чисел в общем случае
перенос осуществляется и из дробной части числа в целую
часть.
Рассмотрим правило умножения многоразрядных двоичных чисел.
Умножение двоичных многоразрядных чисел производится путем образования частичных произведений и последующего их суммирования. Каждое частичное произведение равно нулю, если в соответствующем разряде множителя стоит 0, или равно множимому, сдвинутому на соответствующее число разрядов влево, если в разряде множителя стоит 1.
29
Таким образом, операция умножения многоразрядных двоичных чисел внутри ЭВМ
сводится к операции сдвига и сложения. Положение точки, отделяющей целую часть от
дробной части, определяется так же, как и при умножении десятичных чисел.
Пример 3. Перемножить в двоичной СС числа 7,5D и 5D.
Решение.
111.1
101
1111
+ 0000
1111 .
100101.1
x
7,5
x 5
37,5
10
множимое
множитель
1-е част. произв.
+ 2-е част. произв.
3-е част. произв.
.
произведение
x
2
В рассмотренном примере второй двоичный разряд множителя равен нулю, поэтому
второе частичное произведение также равно нулю.
Пример 4. Выполнить деление в двоичной СС десятичного числа 65D на число 5D.
Полученный результат 1101B = 13D свидетельствует о верности выполненной операции деления.
В ВТ, с целью упрощения реализации арифметических операций, применяют специальные коды. За счет этого облегчается определение знака результата операции, а операция
вычитания чисел сводится к арифметическому сложению. В результате упрощаются устройства, выполняющие арифметические операции.
В ВТ применяют прямой, обратный и дополнительный коды.
Прямой двоичный код Рпр(х) — это такое представление двоичного числа х, при котором знак «+» кодируется нулем в старшем разряде числа, а знак «–» — единицей. При этом
старший разряд называется знаковым. Остальные разряды двоичного числа называются
значащими.
Например, числа +5D и –5D, представленные в прямом четырѐхразрядном двоичном
коде, выглядят так: +5D = 0'101B; –5D = 1'101B. Здесь апострофом условно (для удобства
определения знака) отделены знаковые разряды.
Обратный код Робр(х) получается из прямого кода по следующему правилу:
0' Pпр(х),
при х
0
1' Pпр(х),
при х
0.
Робр(х) =
Из приведенного выражения видно, что обратный код для положительных чисел совпадает с прямым кодом. Чтобы представить отрицательное двоичное число в обратном коде,
нужно поставить в знаковом разряде 1, во всех значащих разрядах заменить 1 на 0, а 0 на 1.
Такая операция называется инверсией и обозначается горизонтальной чертой над инвертируемым выражением (см. раздел «Логические основы работы ЭВМ»).
Пример 5. Получить обратный код для числа х = –11D.
30
Решение.
Рпр(х) = 1'10112
Робр(х) = 1'01002.
Считается, что здесь числа представлены пятью разрядами. Из рассмотренного примера
видно, что обратный код для положительных чисел совпадает с прямым, а для отрицательных чисел получается инверсией (переворотом) всех разрядов, кроме знакового разряда.
Дополнительный код Рдоп(х ) образуется следующим образом:
0' Pпр(х),
при х
0
1' Pпр(х) + 1,
при х
0.
Рдоп(х) =
Из выражения видно, что дополнительный код положительного числа совпадает с прямым кодом, а для отрицательного числа получается инверсией всех значащих разрядов и добавлением единицы к младшему разряду результата.
Дополнительный код отрицательного числа может быть получен из обратного кода путем прибавления 1 к младшему разряду обратного кода (естественно, с учетом переносов
между разрядами).
Pдоп ( x )
Pобр ( x )
1.
Пример 6. Получить дополнительный код для числа х = –14D.
Решение.
Рпр(х) = 1'11102
прямой код
Робр(х) = 1'00012
обратный код
Рдоп(х ) = 1'00102
дополнительный код.
В табл. 2 представлены прямые, обратные и дополнительные коды чисел в диапазоне от
–7D до +7D.
Таблица 2
Десятичное
число х
0
1
2
3
4
5
6
7
-0
-1
-2
-3
-4
-5
-6
-7
Рпр(х)
Робр(х)
Рдоп(х )
0'000
0'001
0'010
0'011
0'100
0'101
0'110
0'111
1'000
1'001
1'010
1'011
1'100
1'101
1'110
1'111
0'000
0'001
0'010
0'011
0'100
0'101
0'110
0'111
1'111
1'110
1'101
1'100
1'011
1'010
1'001
1'000
0'000
0'001
0'010
0'011
0'100
0'101
0'110
0'111
—
1'111
1'110
1'101
1'100
1'011
1'010
1'001
Рассмотрим правило сложения двоичных чисел в дополнительном коде.
31
При алгебраическом сложении двоичных чисел положительные
слагаемые представляют в прямом коде, а отрицательные слагаемые —
в дополнительном коде, производят арифметическое суммирование этих
кодов, включая разряды знаков, которые при этом рассматривают как
старшие разряды. При возникновении переноса из разряда знака единицу переноса отбрасывают. В результате получают алгебраическую сумму в прямом коде, если эта сумма положительная, и в дополнительном
коде, — если сумма отрицательная.
Напомним, что алгебраическое сложение — это сложение, в котором могут участвовать
как положительные, так и отрицательные числа.
Пример 7. Выполнить алгебраическое сложение с использованием дополнительного
кода для чисел х1 = 7D и х2 = –3D.
Решение.
Необходимо найти сумму: y = x1 + x2.
Учитывая, что x1 > 0, это число нужно представить в прямом коде, а так как x2 < 0, то
число x2 нужно перевести в дополнительный код.
P(y) = Рпр(x1) + Рдоп(x2).
. ..
Рпр(x1) = 0'111В
0'111
Рпр(x2) = 1'011B
P(y) = + 1'101
Робр(х2) = 1'100B
0'100
Рдоп(x2) = 1'101B.
2
Так как результат положителен (в знаковом разряде P(y) — 0), значит, он представлен в
прямом коде Рпр(y) =0'100B. После перевода двоичного числа в десятичную СС получим ответ: y = +4D.
Пример 8.
Выполнить алгебраическое сложение чисел х1 = 8D и х2 = –13D с использованием дополнительного кода.
Решение.
Необходимо найти сумму: y = x1 + x2.
Число x1 нужно представить в прямом коде, а x2 — в дополнительном коде.
P(y) = Рпр(x1) + Рдоп(x2).
Рпр(x1) = 0'1000В
Рпр(x2) = 1'1101B
Робр(х2) = 1'0010B
Рдоп(x2) = 1'0011B.
P(y) =
0'1000
+ 1'0011
1'1011
2
В знаковом разряде стоит единица, и, значит, результат получен в дополнительном коде. Для перехода от дополнительного кода
Pдоп(y) = 1'1011B
к прямому коду Рпр(y) необходимо выполнить следующие преобразования:
Робр(y) = Рдоп(y) – 1 = 1'1011B – 1 = 1'1010B,
Рпр(y) = Робр(y) = 1'1010B = 1'0101B.
Переходя от двоичной СС к десятичной СС, получим ответ: y = –5D.
32
Пример 9. Выполнить алгебраическое сложение с использованием дополнительного
кода для чисел х1 = – 6D и х2 = –17D.
Решение
Необходимо найти сумму: y = x1 + x2.
Числа x1 и x2 нужно представить в дополнительном коде.
P(y) = Рдоп(x1) + Рдоп(x2).
Рпр(x1) = 1'00110В
1'11010
Робр(х1) = 1'11001B
P(y) = + 1'01111
Рдоп(х1) = 1'11010B
1'01001
Рпр(x2) = 1'10001B
2
Робр(х2) = 1'01110B
Рдоп(x2) = 1'01111B.
В знаковом разряде стоит единица, и, значит, результат получен в дополнительном коде. Для перехода от дополнительного кода
Pдоп(y) = 1'01001B
к прямому коду Рпр(y) необходимо выполнить следующие преобразования:
Робр(y) = Рдоп(y) – 1 = 1'01001B – 1 = 1'01000B,
Рпр(y) = Робр(y) = 1'01000B = 1'10111B.
Переходя от двоичной СС к десятичной СС, получим ответ: y = –23D.
33
3. Кодирование информации в ЭВМ
В этом разделе рассматриваются вопросы кодирования передаваемой информации с
помощью двоичных чисел, форматы представление чисел и команд внутри ЭВМ, способы
сжатия двоичных чисел, помехоустойчивого кодирования и примеры эффективного использования помехоустойчивого кодирования (QR-коды).
3.1. Кодовая таблица
Кодовая таблица определяет порядок внутреннего представления в ЭВМ букв, цифр,
знаков препинания, символов и управляющих сигналов в виде кодовых комбинаций. Так, латинская буква А в кодовой таблице СР-1251 представлена десятичным числом 65D, латинская буква С — числом 67D, латинская буква М — 77D и т. д. Таким образом, слово «САМАРА», написанное заглавными латинскими буквами, будет циркулировать внутри ЭВМ в
виде цифр:
67D-65D-77D-65D-80D-65D.
Если говорить точнее, то внутри ЭВМ данное слово циркулирует в виде двоичных чисел:
01000011В-01000001В-01001101В-01000001В-01010000В-01000001В.
Аналогично кодируются цифры (например, 1 — 49D, 2 — 59D) и символы (например,
! — 33D, + — 43D).
Наряду с алфавитно-цифровыми символами в кодовой таблице закодированы управляющие сигналы. Например, код 13D заставляет печатающую головку принтера вернуться к
началу текущей строки, а код 10D перемещает бумагу, заправленную в принтер, на одну
строку вперед.
Кодовая таблица может быть представлена не только с помощью десятичной СС, но и
при помощи шестнадцатеричной СС. Еще раз обращаем внимание на тот факт, что внутри
ЭВМ циркулируют сигналы, представленные в двоичной системе счисления, а в кодовой
таблице для большего удобства чтения пользователем — в десятичной или шестнадцатеричной СС.
Каждая буква, цифра, знак препинания или управляющий сигнал кодируются восьмиразрядным двоичным числом. С помощью восьмиразрядного числа (однобайтового числа)
можно представить (закодировать) 256 произвольных символов — букв, цифр и вообще графических образов.
Во всѐм мире в качестве стандарта принята кодовая таблица ASCII (American Standard
Code for Information Interchange — Американский стандарт кодов для обмена информацией).
Таблица ASCII регламентирует (строго определяет) ровно половину возможных символов
(латинские буквы, арабские цифры, знаки препинания, управляющие сигналы). Для их кодировки используются коды от 0D до 127D. Вторая половина кодовой таблицы ASCII (с кодами
от 128 до 255) не определена американским стандартом и предназначена для размещения
символов национальных алфавитов других стран (в частности, кириллицы — русских букв),
псевдографических символов, некоторых математических знаков. В разных странах, на различных моделях ЭВМ, в разных операционных системах могут использоваться и разные варианты второй половины кодовой таблицы (их называют расширениями ASCII). Например,
таблица, которая используется в операционной системе MS-DOS, называется CP-866. Используя эту таблицу для кодировки слова «САМАРА», записанного русскими буквами, получим такие коды:
145D-128D-140D-128D-144D-128D.
34
При работе в операционной системе Windows
используется таблица кодов CP-1251, в которой коди192 А 202 К 212 Ф 222 Ю 232 и 242 т 252 ь
193 Б 203 Л 213 Х 223 Я 233 й 243 у 253 э
ровка латинских букв совпадает с кодировкой таблиц
194 В 204 М 214 Ц 224 а 234 к 244 ф 254 ю
CP-866 и ASCII, а вторая половина таблицы имеет
195 Г 205 Н 215 Ч 225 б 235 л 245 х 255 я
собственную раскладку (кодировку) символов. По196 Д 206 О 216 Ш 226 в 236 м 246 ц
этому слово «САМАРА», написанное заглавными
197 Е 207 П 217 Щ 227 г 237 н 247 ч
198 Ж 208 Р 218 Ъ 228 д 238 о 248 ш
русскими буквами, будет иметь внутри ЭВМ другое
199 З 209 С 219 Ы 229 е 239 п 249 щ
представление:
200 И 210 Т 220 Ь 230 ж 240 р 250 ъ
209D-192D-204D-192D-208D-192D.
Таким образом, внешне одинаковое слово (например, «САМАРА») внутри ЭВМ может
быть представлено различным образом. Естественно, это вызывает определѐнные неудобства. Общим недостатком всех однобайтовых кодовых таблиц (в них для кодировки используются восьмиразрядные двоичные числа) является отсутствие в коде символа какой-либо
информации, которая подсказывает машине, какая в данном случае используется кодовая
таблица.
Сообществом фирм Unicode предложена в качестве стандарта другая система кодировки символов. В этой системе для представления (кодирования) одного символа используются
два байта (16 битов), и это позволяет включить в код символа информацию о том, какому
языку принадлежит символ и как его нужно воспроизводить на экране монитора или на
принтере. Два байта позволяют закодировать 65 536 символов. Правда, объем информации,
занимаемой одним и тем же текстом, увеличится вдвое. Зато тексты всегда будут «читаемыми» независимо от использованного национального языка и операционной системы.
201 Й 211 У 221 Э 231 з 241 с 251 ы
35
3.2. Представление данных в ЭВМ
При проведении математических расчѐтов числа в ЭВМ могут быть представлены с помощью естественной и нормальной форм записи.
Примером записи в естественной форме может служить вещественное число 173,856. Для
записи числа в естественной форме машинное слово (операнд) делится на две части (на два поля).
Первое поле отводится для записи целой части числа, второе — для записи дробной части числа.
Старший разряд машинного слова используется для указания знака числа. Разряды машинного
слова нумеруются справа – налево, начиная с нуля.
В вычислительной технике принято отделять целую часть числа от дробной части точкой.
Так как положение точки между целой и дробной частями числа чѐтко определено, то такое представление чисел называют представлением с фиксированной точкой.
На следующем рисунке дана иллюстрация формата чисел с фиксированной точкой.
Недостатком формы с фиксированной точкой является малый диапазон представления чисел. В современных ЭВМ в этой форме записывают только целые числа. При этом отпадает необходимость отводить поле для записи дробной части числа (см. следующий рисунок).
Разряд кода числа, в котором размещается знак, называется знаковым разрядом. Знаковый
разряд размещается в старшем разряде машинного слова. Знак положительного числа кодируется
двоичной цифрой 0, а знак отрицательного числа – цифрой 1.
n
m d p,
Нормальная форма записи числа n имеет следующий вид:
где m — мантисса числа; р — порядок; d — основание системы счисления.
Приведѐм пример записи числа в нормальной форме:
n 1.541 10 2 .
Порядок p изменяет местоположение точки в мантиссе. В зависимости от значения порядка
p точка перемещается (плавает) по мантиссе. Например, пусть m = 0.3, основание системы счисления d = 10, а порядок p будем брать разным:
0.3 10
1
0.03; 0.3 10
2
0.003; 0.3 10 2
30; 0.3 10 3
300 .
Рассматриваемая форма представления чисел называется формой с плавающей точкой. Из
приведѐнного примера видно, что благодаря изменению порядка точка перемещается (плавает) по
мантиссе. При этом если порядок отрицательный, точка смещается по мантиссе влево, а если положительный, то - вправо.
36
В нормальной форме машинное слово делится на два поля. В одном поле записывается мантисса числа, а во втором — указывается порядок числа. Следующий рисунок иллюстрирует форму числа с плавающей точкой на примере 32-х разрядного машинного слова.
Диапазон представления чисел с плавающей точкой значительно больше диапазона представления чисел с фиксированной точкой. Однако быстродействие ЭВМ при обработке чисел с
плавающей точкой гораздо ниже, чем при обработке чисел с фиксированной точкой. Этим объясняется одновременное существование двух форм чисел.
Последовательность нескольких битов или байтов называют полем данных [4]. В ЭВМ используют поля постоянной и переменной длины.
Перечислим поля постоянной длины: полуслово — 1 байт; слово — 2 байта; двойное слово
— 4 байта; расширенное слово — 8 байт.
Поля переменной длины могут иметь любой размер от 1 до 256 байт. При этом поле должно
состоять из целого числа байтов.
Пример 1. Записать число -19310 = -110000012 в формате слова со знаком и фиксированной
точкой.
Решение.
N разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Число
1
0 0 0 0 0 0 0 1 1 0 0 0 0 0 1
Примечание.
В старшем разряде (пятнадцатом) указан знак числа.
Для чисел с плавающей точкой под знак и порядок отводится восемь старших бит числа.
Для представления как положительных, так и отрицательных порядков применяют смещѐнный порядок. При этом машинный порядок Мр формируют со смещением на 64 разряда по отношению к фактическому порядку p: Мр = p + 64. Это сделано для того чтобы не отводить отдельный разряд под знак порядка. При фактическом порядке p, равном нулю, машинный порядок
Мр равен 64, а при фактическом порядке равном +63D машинный порядок равен своему максимальному значению 127D. Для отрицательного порядка -64D машинный порядок равен нулю. Таким образом, и положительные и отрицательные порядки представляют только положительными
числами.
Пример 2. Записать число -19310 в формате двойное слово и плавающей точкой.
Решение.
Переведѐм десятичное число в двоичную СС.
-19310 = -110000012 = -0.11000001*28.
Заметим, что целая часть мантиссы должна быть равна нулю, а первый знак после точки
должен быть равен единице.
Здесь мантисса m = -0.11000001, фактический порядок p = 810 = 10002.
Машинный порядок: Мр = p + 64 = 10002 + 10000002= 10010002.
37
Двоично-десятичная система счисления получила большое распространение в современных
ЭВМ ввиду лѐгкости перевода в десятичную систему счисления и обратно. Она используется при
решении задач учѐтно-статистического характера. В этой системе счисления все десятичные цифры отдельно кодируются четырьмя двоичными цифрами (тетрадами) и в таком виде записываются последовательно друг за другом.
Двоично-десятичные числа могут быть представлены в ЭВМ полями переменной длины в
так называемых упакованном и распакованном форматах.
Пример 3. Записать десятичное число 9703 в двоично-десятичной системе счисления.
Решение.
1001
0111
0000
0011
Таким образом, перевод десятичного числа 9703D в двоично-десятичную СС дал такой результат: 1001011100000011. Этот перевод напоминает перевод шестнадцатеричных чисел в двоичную СС,
В упакованном формате для каждой десятичной цифры отводится по 4 двоичных разряда,
при этом знак числа кодируется в крайнем правом полубайте числа. Принят следующий порядок
кодировки: код 1100 означает знак "+", а 1101 — знак "-".
Структура поля двоично-десятичного упакованного формата:
Цф
Цф
...
Цф
Знак
Здесь и далее: Цф — цифра, Знак — знак числа.
Упакованный формат используется обычно в ЭВМ при выполнении операций сложения и
вычитания двоично-десятичных чисел.
Пример 4. Представить число -193D в упакованном формате.
Решение.
0001
1001
0011
1101
В распакованном формате для каждой десятичной цифры отводится по целому байту, при
этом старшие полубайты (зоны) каждого байта (кроме самого младшего) заполняются кодом
0011, а в младших полубайтах обычным образом кодируются десятичные цифры. Старший полубайт (зона) самого младшего (правого) байта используется для указания кода знака числа.
Структура поля распакованного формата:
Распакованный формат используется при вводе-выводе информации в ЭВМ, а также при
выполнении операций умножения и деления двоично-десятичных чисел.
Пример 5. Представить число -193D в распакованном формате.
Решение.
0011 0001 0011 1001 1101 0011
38
3.3. Представление команд в ЭВМ
Программа работы ЭВМ состоит из последовательности команд.
Под командой понимается информация, обеспечивающая выработку управляющих
сигналов, за счет которых машина выполняет определенные, запланированные программистом действия. Эти сигналы формируются в устройстве управления процессора. С помощью
совокупности команд (с помощью программы) программист определяет, что должна делать
ЭВМ.
Поле команды состоит из двух частей: операционной и адресной. В операционной части команды указывается код операции (КОП). Код определяет действие, которое должна выполнить ЭВМ. Например, арифметическое действие — суммировать, логическое действие —
инвертировать.
Адресная часть команды содержит адреса операндов (чисел или символов), участвующих в операции. Под адресом понимается номер ячейки ОЗУ или ПЗУ (либо номер порта),
где находятся данные, необходимые для выполнения команды.
Таким образом, ЭВМ (точнее, процессор) выполняет действие, определяемое кодом
операции, над данными, местоположение которых указано в адресной части команды. Количество указываемых в команде адресов может быть различным. Различают следующие форматы команд: одно-, двух- и трехадресные. Бывают и безадресные команды.
КОП
КОП
КОП
Операционная
часть команды
А1
А1
А1
А2
А2
А3
Адресная часть команды
Трехадресная команда, выполняющая, например, операцию сложения, должна содержать код операции сложения и три адреса.
Действия, выполняемые этой командой, описываются следующей последовательностью операций.
1. Взять число, хранящееся по первому адресу А1.
2. Взять число, хранящееся по второму адресу А2, и сложить его с первым числом.
3. Результат сложения записать по третьему адресу А3.
В случае двухадресной команды третий адрес отсутствует, и результат сложения можно
записать либо по второму адресу А2 (с потерей исходной информации, которая была там записана), либо оставить в регистре сумматора, где производилась операция сложения. Тогда для
освобождения регистра сумматора потребуется дополнительная команда перезаписи числа по
необходимому адресу. Таким образом, для выполнения операции сложения с помощью двухадресной команды потребуется не одна команда (как в первом случае), а две.
При организации сложения двух чисел, хранящихся по адресам А1 и А2, с записью результата в ячейку А3 с использованием одноадресных команд, потребуется уже три команды.
1. Вызов в АЛУ числа, хранящегося по адресу А1.
2. Вызов в АЛУ числа, хранящегося по адресу А2 и сложение его с первым числом.
3. Запись результата по адресу А3.
Таким образом, чем меньше адресов содержит команда, тем большее число команд
требуется для составления одной и той же программы. Увеличивая число адресов в команде,
приходится увеличивать длину машинного слова, чтобы отвести в нем необходимые поля
для адресной части команд.
С увеличением объема памяти ЭВМ увеличивается длина поля, необходимого для указания одного адреса, а значит и длина команды. В то же время не все команды полностью
39
используют адресные поля. Например, для команды записи числа по заданному адресу требуется только одно адресное поле. Неоправданное (нерациональное) увеличение длины машинного слова для использования многоадресных команд приводит к уменьшению быстродействия ЭВМ, так как необходимо обрабатывать поля большей длины.
Существуют безадресные команды, которые содержат только код операции, а необходимые данные заранее помещаются в определенные регистры процессора.
Современные ЭВМ автоматически выполняют несколько сотен различных команд. Все
машинные команды можно разделить на группы по видам выполняемых операций:
операции пересылки данных;
арифметические операции;
логические операции;
операции обращения к внешним устройствам ЭВМ;
операции передачи управления;
обслуживающие и вспомогательные операции.
При проектировании новых процессоров и машин разработчикам приходится оптимально решать сложную задачу выбора длины команды и определения списка необходимых
команд (системы команд). Противоречивые требования к конфигурации команд привели к
созданию процессоров с различными форматами команд (архитектуры CISC и RISC).
3.4. Методы сжатия информации без потерь
Нужно писать так, чтобы словам было тесно,
а мыслям просторно.
Чехов А.П.
Несмотря на то, что объемы внешней памяти ЭВМ постоянно растут, потребность в архивации не уменьшается. Это объясняется тем, что сжатие информации необходимо не только для экономии места в памяти, но и для быстрой передачи информации по сети на другие
ЭВМ. Кроме того, возможность отказа магнитных, оптических и электронных носителей информации, разрушающее действие вирусов заставляют пользователей делать резервное копирование ценной информации на другие (запасные) носители информации. Очевидно, что разумнее информацию хранить сжатой.
Сжатие информации без потерь (архивация) — это такое преобразование информации, при котором объем файла уменьшается, а количество информации, содержащейся в архиве, остается прежним.
Процесс записи файла в архивный файл называется архивированием (упаковкой, сжатием), а извлечение файла из архива — разархивированием (распаковкой, извлечением).
Упакованный (сжатый) файл называется архивом.
Степень сжатия информации зависит от содержимого файла и формата файла, а также
от выбранного метода архивации. Степень (качество) сжатия файлов характеризуется коэффициентом сжатия Kc, который определяется как отношение объема исходного файла Vo к
объему сжатого файла Vc:
Kc
Vo
.
Vc
Чем больше величина Kc, тем выше степень сжатия информации.
Заметим, что в некоторых литературных источниках встречается определение коэффициента сжатия, обратное приведенному отношению.
Все существующие методы сжатия информации можно разделить на два класса: сжатие
без потерь информации (обратимый алгоритм) и сжатие с потерей информации (необратимый алгоритм). В первом случае исходную информацию можно полностью извлечь из архива. Во втором случае распакованное сообщение будет отличаться от исходного сообщения.
40
В настоящее время разработано много методов архивации без потерь. Рассмотрим две
наиболее известные идеи.
Первая идея, основанная на учете частот появления символов в тексте, была разработана Клодом Шенноном и независимо от него Робертом Фано, а затем в 1952 г. развита Дэвидом Хаффманом - аспирантом Массачусетского технологического института при написании им курсовой работы. Идея базируется на том факте, что в обычном тексте частоты появления различных символов неодинаковые. По этой причине для сжатия нужно использовать
кодовые комбинации различной длины.
При кодировании символов в ЭВМ используют кодовые таблицы. При этом каждый
символ кодируется либо одним байтом (CP-1251, КОИ-8), либо двумя байтами (Unicode). Кодовые таблицы стандартизируют процедуру кодирования. Однако для передачи информации
по каналу связи (или для долговременного хранения на вешнем носителе) можно использовать
более сложную процедуру кодирования. При данном методе архивации стандартные кодовые
таблицы не используются, а создаются собственные. При этом вид кодовой таблицы каждый
раз изменяется и зависит от содержимого архивируемого документа.
Задачу экономного кодирования сообщений источника, имеющего отличное от равномерного распределения вероятностей появления символов его алфавита, позволяют решить
неравномерные префиксные коды.
Рассмотрим принцип построения кода методом Шеннона-Фано [2, 7, 8]. Построение
кода основываются на статистических свойствах источника сообщений. При этом часто
встречающимся символам алфавита ставят в соответствие короткие кодовые комбинации.
Из-за того, что разным символам алфавита соответствуют кодовые комбинации разной длины, такие коды называют неравномерными.
В качестве примера сжатия методом Шеннона-Фано рассмотрим процедуру архивации
сообщения «ИНН 637322757237». Данный текст содержит избыточность, которая определяется по формуле:
L
H
n
1
100% ,
где H - энтропия сообщения;
n - длина кодовой комбинации при равномерном кодировании.
Энтропия сообщения вычисляется по формуле:
N
pi log2 pi ,
H
i 1
где N - число символов в алфавите источника;
pi - относительная частота (вероятность) появления символа в сообщении.
Относительная частота встречаемости символа определяется как отношение абсолютной частоты появления символа в сообщении к общей длине сообщения (числу символов в
сообщении):
pi
i
m
,
где i - абсолютная частота (частость) встречаемости i-ого символа алфавита источника; m – число символов в сообщении.
В данном случае энтропия сообщения равна:
4
4
log 2
16
16
H
где
p2
p4
2
3
3
log 2
16
16
2
2
log2
16
16
4
1
1
log2
16
16
2,781 бит/символ,
4 1
- относительная частота появления символа «7»;
16 4
3
- относительная частота появления символов «2» и «3»;
p3
16
2 1
- относительная частота появления символа «Н»;
16 8
p1
41
p5
p6
p7
p8
1
16
- относительная частота появления символов «5», «6», «И», Пробел.
При использовании равномерного кода (например, СР-1251) длина кодовой комбинации определяется так:
n log2 N ,
x - функция округления аргумента до ближайшего целого значения, не меньшего,
чем x .
В данном примере n log 2 256 8 бит.
Избыточность сообщения при кодировании равномерным кодом равна:
2,781
L 1
100 % 65,23 % .
8
На первом этапе построения кода Шеннона-Фано формируется таблица абсолютных
частот символов.
Символ
7
2
3
Н
Абсолютная частота
4
3
3
2
i
Символ
5
6
И
Пробел
Абсолютная частота
1
1
1
1
i
Для получения кодовых комбинаций строится кодовое дерево. При формировании кода
Шеннона-Фано дерево строится от корня к листьям (в отличие от настоящего дерева здесь
корень располагается вверху, а листья – внизу). В качестве корня используется множество
всех символов алфавита сообщения, упорядоченное (ранжированное) по частоте встречаемости символов. Число сверху таблицы указывает на количество символов в исходном сообщении (см. следующий рисунок).
Затем множество символов делят на два подмножества так, чтобы новые подмножества
имели равные (насколько это возможно) суммарные частоты встречаемости входящих в них
символов. Например, вес 11 желательно разделить на два подмножества 5 и 6, деление на
подмножества 4 и 7 будет ошибочным. Два новых подмножества соединяются с корнем дерева ветвями, становясь потомками. Левая ветвь дерева обозначается символом 1, а правая
ветвь – символом 0.
Полученные подмножества рекурсивно делятся до тех пор, пока не будут сформированы листья дерева – отдельные символы сообщения.
42
Кодовые комбинации (на предыдущем рисунке они указаны в кавычках под соответствующими листьями) получаются при движении от корня дерева к кодируемому символулисту путем объединения (конкатенации) бит, присвоенных пройденным ветвям дерева. Запись кодовой комбинации ведут в направлении от старших разрядов к младшим. Например,
при кодировании символа «3» сначала следует пройти по правой ветви к множеству {3, Н, 5,
6, И, Пробел}. При этом в кодовую комбинацию нужно записать бит 0. Затем нужно пройти
по левой ветви к множеству {3, Н} (к кодовой комбинации добавляется бит 1). Наконец,
нужно пройти по левой ветви, чтобы достичь листа «3». Таким образом, получена кодовая
комбинация «011».
При декодировании биты считываются из входного потока и используются, как указатели направления движения по кодовому дереву от корня к искомому листу. При достижении листа найденный символ записывается в выходной поток, а движение по кодовому дереву снова начинают от корня. Например, декодирование комбинации «010» происходит следующим образом. Из потока данных считывается бит 0, следовательно, нужно пройти по
правой ветви от корня дерева к узлу {3, Н, 5, 6, И, Пробел}. Следующий бит единичный, что
требует пройти по левой ветви к множеству {3, Н}. Наконец, следующий бит 0 приводит декодер по правой ветви к листу «Н».
В следующей таблице приведены все разрешенные комбинации полученного кода
Шеннона-Фано. Это так называемый словарь сообщения. Он передается на приемную сторону вместе с архивом.
Символ
7
2
3
Н
Кодовая комбинация
11
10
011
010
Символ
5
6
И
Пробел
Кодовая комбинация
0011
0010
0001
0000
Закодированное сообщение будет иметь вид:
000101001000000010011110111010110011111001111
Общая длина закодированного сообщения составляет 45 бит.
Средняя длина кодовой комбинации равна (напомним, что число символов в сообщении – 16):
n
45
16
2,813 бит/символ.
Избыточность сообщения после применения кода Шеннона-Фано снизилась до значения:
43
L
1
2, 781
100% 1,13% .
2,813
Несложно убедиться, что применение кода Шеннона-Фано позволило существенно
уменьшить избыточность сообщения. При равномерном кодировании рассмотренного сообщения с помощью кодовой таблицы CP-1251 пришлось бы передать не 45 бит, а 128 бит.
Вторая идея архивации состоит в учете того факта, что в файлах часто встречаются несколько подряд идущих одинаковых байтов, а некоторые последовательности байтов повторяются многократно. При архивации такие места файла можно заменить командами вида
«повторить данный байт n раз» или «взять часть данных длиной k байтов, которая встречалась m байтов назад». Такой алгоритм архивации носит имя RLE (Run Length Encoding —
кодирование путем учета повторений).
Понять идею этого метода упаковки позволяет следующий анекдот.
Один в прошлом известный полководец решил написать достаточно объемные мемуары. Составленные воспоминания звучали примерно так.
«Утром я вскочил на своего коня и помчался в штаб армии. Подковы коня издавали
звуки «цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок …». Через двое
суток я соскочил с коня и вошел в штаб».
Для увеличения объема литературного произведения словосочетание «цок» было написано «писателем» на двухстах страницах. Очевидно, что информативность «мемуаров» не
изменилась бы, если вместо 200 страниц перечисления цокающих звуков было бы указано:
«Затем следуют 64 000 раз звуки «цок-цок».
Проиллюстрируем эту же идею другим примером.
Пусть имеется следующее изображение звездного неба: на черном фоне видны редкие
белые звезды. При растровом представлении неба информация в ЭВМ будет храниться в таком виде: черное-черное-черное-черное-черное-белое-черное-черное-черное-черное-черное
и т. д.
Естественно, что значительно компактнее хранить информацию, указав, сколько раз
подряд идут черные пиксели, сколько раз белые и т. д.
Среди известных художественных произведений наибольшему сжатию методом RLE можно подвергнуть «Черный квадрат» Малевича К.С.
Рассмотрим детально основную идею метода архивации RLE.
Упакованная методом RLE последовательность состоит из управляющих байтов, за
которыми следуют один или несколько байтов данных. При этом если старший бит управляющего байта равен 1, то следующий за ним байт данных нужно повторить при распаковке
столько раз, сколько указано в оставшихся 7 битах управляющего байта.
Например, управляющий байт 10001001 говорит, что следующий за ним байт нужно
повторить 9 раз, так как 10012 = 910.
Если старший бит управляющего байта равен 0, то при распаковке архива нужно взять
несколько следующих байтов без изменений. Число байтов, которые берутся без изменений,
указывается в оставшихся 7 битах. Например, управляющий байт 00000011 говорит, что следующие за ним 3 байта нужно взять без изменений.
Рассмотрим пример архивации методом RLE.
Выполним сжатие сообщения «ИНН 22223133333» методом RLE.
Текст
Десятичный код
(таблица CP-1251)
Двоичный
код
Архив
И
Н
Н
200
205
205
11001000
11001101
11001101
00000001
11001000
10000010
44
Пробел
2
2
2
2
3
1
3
3
3
3
3
32
50
50
50
50
51
49
51
51
51
51
51
00100000
00110010
00110010
00110010
00110010
00110011
00110001
00110011
00110011
00110011
00110011
00110011
11001101
00000001
00100000
10000100
00110010
00000010
00110011
00110001
10000101
00110011
Таким образом, пятнадцать байт исходного текста сжаты до тринадцати байт. Коэффициент сжатия в данном случае составил:
Kc
15
13
1,154 .
На рисунке показан пользовательский интерфейс одного из наиболее популярных архиваторов — WinZip.
Выделим важные возможности архиваторов:
• создание многотомных архивов с возможностью задания произвольного размера тома;
• создание
самораспаковывающихся
SFXархивов;
• создание пароля для доступа к архиву.
3.5. Методы сжатия информации с потерями
Не прожить нам в мире этом,
без потерь, без потерь.
Петерс Я., Шаферан И.
(Слова из песни)
Для уменьшения размеров мультимедийных файлов используют процедуру сжатия.
Под сжатием (компрессией, упаковкой) с потерями понимается такое преобразование
информации, в результате которого исходный файл уменьшается в объеме, а количество информации в сжатом файле уменьшается на такую небольшую величину, которой практически можно пренебречь.
Многие приемы сжатия аудио- и видеоинформации основываются на «обмане» органов
чувств (зрение и слух) человека путем исключения избыточной информации, которую человек (в силу своих психофизических особенностей) не способен воспринять.
Разработано несколько стандартов сжатия видео- и аудиоинформации.
Большее влияние на настоящее и будущее мультимедийных средств оказывает MPEG
(Moving Picture Experts Group) — объединенный комитет двух организаций: Интернациональной организации по стандартизации (ISO) и Интернациональной электротехнической
комиссии (IEC). Этот комитет разрабатывает стандарты с одноименными названиями. Так
стандарт MPEG-1 был разработан с учетом возможностей двухскоростных проигрывателей
лазерных дисков CD-ROM и компьютеров с 486-м процессором.
В январе 1992 г. комитет MPEG опубликовал проект стандарта MPEG-1, а в декабре
1993 г. проект был принят в качестве стандарта. По требованиям стандарта скорость пере45
дачи информации сжатого видео и звука должна укладываться в 1,5 Мбайт/с, хотя были
предусмотрены режимы вплоть до 4—5 Мбайт/с.
Окончательное утверждение MPEG-2 в качестве международного стандарта произошло
в ноябре 1994 г. В его спецификациях была определена допустимая интенсивность потока
данных: от 2 до 10 Мбайт/с.
Стандарт MPEG-2 позволяет записывать на лазерные диски, изготовленные по технологии DVD, полноэкранные фильмы «вещательного» качества. Для телевидения высокой
четкости разрабатывался стандарт MPEG-3, который впоследствии стал частью стандарта
MPEG-2 и отдельно теперь не упоминается.
Рассмотрим принципы сжатия звуковой информации, а затем — методы сжатия видеоинформации.
Согласно теореме Котельникова, чтобы восстановить без искажений аналоговый сигнал после его преобразования в цифровой сигнал, необходимо, чтобы частота выборки (дискретизации) была хотя бы вдвое выше верхней граничной частоты исходного сигнала. Для
записи звука на компакт-диски используется частота выборки 44,1 кГц. Эта частота более
чем в 2 раза превышает верхнюю граничную частоту, которую слышит человек.
Второй фактор, влияющий на качество воспроизводимого звука, — количество двоичных разрядов квантования. Исходный аналоговый сигнал изменяется непрерывно. В результате цифроаналогового преобразования восстановленный сигнал неизбежно отличается по
форме от исходного сигнала, и это отличие тем больше, чем меньше разрядов использовалось для квантования сигнала. Искажение формы сигнала при воспроизведении эквивалентно добавлению некоего шума — шума квантования. Чтобы достичь практически полной неразличимости шумов квантования, при производстве компакт-дисков используется 16разрядное квантование, при этом уровень громкости воспроизводимого звука может принимать одно из 216 = 65 536 значений.
Для записи стереофонического звука с частотой дискретизации 44,1 кГц и 16-ти битном квантовании требуется скорость передачи данных:
44100 16 2 = 1 411 200 бит/c или 172,27 Кбайт/c.
При такой скорости передачи информации сохраняются мельчайшие детали звуковой
картины (в том числе и исходные шумы). Этот способ кодирования информации избыточен,
так как многие детали исходной звуковой картины не воспринимается человеком из-за биологических ограничений.
Применение алгоритмов сжатия без потерь для файлов, содержащих оцифрованный
звук в 16-битном формате, не позволяет сжать исходный файл более чем в 2 раза. Оцифрованный (преобразованный с помощью АЦП) звуковой сигнал обычно не повторяет сам себя
и по этой причине плохо сжимается с помощью алгоритмов компрессии без потерь.
Адаптивная разностная компрессия (Adaptive Differential Pulse Code Modulation,
ADPCM) используется в основном для сжатия речевых сигналов. Для сжатия музыкальных
произведений этот метод не подходит из-за сильных искажений. Идея компрессии ADPCM
заключается в том, что оцифрованный речевой сигнал представляют не самими отсчетами, а
разностями соседних отсчетов, меньших по величине и, следовательно, требующих меньшего числа битов для своего представления.
Рассмотрим основные идеи сжатия аудиоинформации, которые базируются на учѐте
психофизических ограничений человека.
Основные приемы, положенные в основу сжатия информации с помощью стандартов
MPEG, базируются на объективно существующих психоакустических ограничениях органов
чувств человека. Человеческое ухо способно воспринимать звуковые колебания, лежащие
лишь в диапазоне частот 20—20000 Гц, причем с возрастом этот диапазон сужается. Методы
сжатия звуковых данных, основанные на использовании физиологических особенностей человека, относятся к классу компрессии с потерями. Эти методы не пытаются достичь абсолютно точного восстановления формы исходных колебаний. Их главная задача — достиже46
ние максимального сжатия звукового сигнала при минимальных слышимых искажениях восстановленного после сжатия сигнала.
Звуковой файл можно сжать с помощью компандирования. Название этого метода
происходит от английского термина compander, который образован от английских слов:
compressing — expanding coder — decoder. Этот метод основан на законе, открытом психологами: если интенсивность раздражителя меняется в геометрической прогрессии, то интенсивность человеческого восприятия меняется в арифметической прогрессии.
Компандирование заключается в компрессии (сжатии) по амплитуде исходного звукового сигнала. Затем сжатый сигнал восстанавливается с помощью экспандера (расширителя).
Компрессия — это сжатие динамического диапазона сигнала, когда слабые звуки усиливаются сильнее, а сильные — слабее. На слух это воспринимается как уменьшение различия между тихим и громким звучанием исходного сигнала.
Установлено, что, если повышать громкость звука в 2, 4, 8 и т. д. раз, то человеческое
ухо будет воспринимать этот процесс как линейное увеличение интенсивности звука. Изменение уровня громкости с 1 единицы до 2 единиц столь же заметно для человеческого уха,
как и изменение громкости от 50 до 100 единиц. В то же время изменение громкости от 100
единиц до 101 единицы человеком практически не ощущается. Таким образом, ухо человека
логарифмирует громкость слышимых звуков.
При компандировании значение амплитуды звука заменяется логарифмом этого значения. Полученные числа округляются, и для их записи требуется меньшее число разрядов.
При 16-битном кодировании звука максимальное значение кода не превышает значе16
ние 2 . Логарифм этого числа по основанию 2 равен 16. Последнее число может быть закодировано пятью двоичными разрядами (1610 = 100002). Таким образом, для представления
информации вместо 16 бит можно использовать лишь 5 бит. Этим достигается сжатие информации. Для воспроизведения компрессированного сигнала его подвергают обратному по
сравнению с логарифмированием преобразованию — потенцированию.
Еще один способ сжатия звуковой информации заключается в том, что исходный звуковой сигнал очищается с помощью фильтров от неслышимых компонентов (например, убирают низкие басовые шумы). Затем производится более сложный анализ сигнала: удаляются
замаскированные частоты, заглушенные другими мощными сигналами. Таким образом,
можно исключить до 70% информации из сигнала, практически не изменив качество его
звучания.
Сжатие сигнала также можно получить за счет еще одного приема.
Если исходный сигнал является стереофоническим, то его можно преобразовать в так
называемый совмещенный стереофонический сигнал. Установлено, что слуховой аппарат
человека может определить местоположение источника звука лишь на средних частотах, а
высокие и низкие частоты звучат как бы отдельно от источника звука. Таким образом, высокие и низкие частоты можно представить в виде монофонического сигнала (т. е. без разделения на два стереофонических канала). Это позволяет вдвое уменьшить объем информации,
передаваемой на низких и высоких частотах.
Еще одна возможность сжатия звукового сигнала связана с наличием двух потоков информации для левого и правого каналов. Например, если в правом канале наблюдается какое-то время полная тишина, то это пустующее место используется для повышения качества
звучания левого канала или туда помещают данные, которые не уместились в компрессированный поток в предыдущие моменты времени.
Одно из свойств человеческого слуха заключается в маскировании тихого звука, следующего сразу за громким звуком. Так после выстрела пушки в течение некоторого времени
трудно услышать стрекот кузнечиков.
При сжатии звукового сигнала замаскированный, почти неслышимый звук не сохраняется в памяти ЭВМ и не передаѐтся через каналы связи. Например, громкий звук длительностью 0,1 с может замаскировать тихие последующие звуки, запаздывающие на время до 0,5
47
с, а значит, их не надо сохранять. Такая процедура исключения сигнала, следующего за
громким звуком, называется маскированием во временной области.
Для человеческого уха характерно также и явление маскирования в частотной области,
заключающееся в том, что постоянно звучащий громкий синусоидальный сигнал маскирует
(«глушит») тихие сигналы, которые близко лежат на оси частот к громкому сигналу. Когдато в СССР таким приемом «глушили» западные радиостанции, например, «Голос Америки».
Для этого на близкой к рабочей частоте передавали мощный «белый шум» и принимаемая
информация становилась неразборчивой.
При техническом использовании таких физиологических особенностей человеческого
слуха уплотняемый сигнал переносят с помощью быстрого преобразования Фурье из временной области в частотную область. Затем удаляют спектральные составляющие, замаскированные громким сигналом, и делают обратное преобразование Фурье.
Еще одна возможность компрессии основывается на следующей особенности человеческого слуха. Экспериментально установлено, что в диапазонах частот 20—200 Гц и 14—20
кГц чувствительность человеческого слуха существенно ниже, чем на частотах 0,2—14 кГц.
По этой причине допустимо более грубое квантование сигналов в указанных диапазонах
частот. На этих частотах для представления непрерывных сигналов двоичными числами требуется меньшее число уровней, а значит и меньшее число битов. Так, в среднем диапазоне
частот амплитуды кодируются 16 битами, а на частотах, где ухо менее чувствительно — 6 и
даже 4 битами.
Биоакустические свойства человеческого слуха не позволяют сжать звуковой сигнал,
если он представляет собой однотонные звуки с постоянным уровнем громкости. В этом
случае наряду с рассмотренными приемами сжатия дают эффект традиционные методы архивации информации (например, алгоритм Хаффмана или RLE).
Познакомимся с основными показателями, характеризующими качество движущихся
изображений.
Частота кадра (Frame Rate). Стандартная скорость воспроизведения видеосигнала 30
кадров/с (для кино этот показатель составляет 24 кадра/с). Экспериментально установлено,
что иллюзия равномерно движущегося изображения возникает при частоте смены кадров
более 16-ти в секунду. В этом случае человек воспринимает быстроменяющиеся картинки в
виде динамичного непрерывного изображения. Заметим, что первые фильмы были сняты с
использованием частоты 8 кадров/c (вспомним фильмы Чарли Чаплина).
Глубина цвета (Color Resolution). Этот показатель определяет количество цветов, которые можно одновременно отобразить на экране. Компьютеры обрабатывают цвет в RGBформате (красный — зеленый — синий). RGB-формат позволяет путем смешения в разных
пропорциях трех основных цветов получить любой другой цвет или оттенок. Для цветовой
модели RGB обычно характерны следующие режимы глубины цвета: 8 бит/пиксель (256 цветов), 16 бит/пиксель (65 535 цветов) и 24 бит/пиксель (16,7 миллиона цветов).
Экранное разрешение (Spatial Resolution) или, другими словами, количество точек, из
которых состоит изображение на экране, например, 1920 х 1080 точек (пикселей).
Качество изображения (Image Quality). Это комплексный показатель, который вбирает
в себя три предыдущих. Требования к качеству зависят от конкретной задачи.
Расчеты показывают, что 24-битное цветное видео при разрешении 640  480 пикселей
и частоте 30 кадров/с требует передачи более 26 Мбайт данных в секунду. Для наглядности
приводим здесь эти расчеты.
640  480  24  30 = 221 184 000 бит/с = 26,37 Мбайт/с.
Для оптимизации процесса кодирования информации необходимо, с одной стороны, не
передавать избыточную информацию, а с другой стороны, не допускать чрезмерной потери
качества изображения.
В зависимости от скорости упаковки изображений методы сжатия подразделяются на
две группы. К первой группе относится метод сжатия неподвижных изображений. Сжатие
может выполняться с любой скоростью, так как этот процесс не регламентирован временем
48
(в силу статичности изображения). Вторую группу образуют методы сжатия движущихся
изображений. Сжатие движущихся изображений должно выполняться, как правило, в режиме реального времени по мере ввода данных.
Стандарт JPEG (Joint Photographic Experts Group), предложенный Объединенной группой экспертов в области фотографии, позволяет сократить размеры графического файла с
неподвижным изображением в 10—20 раз.
Наибольшее распространение для сжатия движущихся изображений получил стандарт
MPEG.
С помощью стандарта MPEG обрабатывается каждый кадр по отдельности, а также
анализируется динамика изменения изображения. Этим удается уменьшить избыточные
данные, так как в большинстве случаев фон изображения остается достаточно стабильным, а
изменения происходят в основном на переднем плане. MPEG начинает сжатие с создания
исходного (ключевого) кадра, называемого Intra (внутренний) кадр. I-кадры играют роль
опорных при восстановлении остального видеоизображения и размещаются последовательно через несколько кадров. I-кадры формируют с помощью методов, разработанных стандартом JPEG для сжатия неподвижных изображений (например, фотографий).
Фрагменты изображений, которые претерпевают изменения, сохраняются при помощи
Predicted (расчетных, предсказываемых) кадров. P-кадры содержат различия текущего изображения с предыдущим кадром. Р-кадры формируются с использованием информации, полученной из предыдущих кадров.
Кроме перечисленных кадров, используются B-кадры, название которых происходит от
английских слов Bidirectional Interpolated. В переводе с английского языка этот термин означает «кадры двунаправленной интерполяции (предсказания)». B-кадры содержат усредненную информацию относительно двух смежных (предыдущего и последующего) I-кадров или
P-кадров. Это позволяет предположительно восстанавливать (реконструировать, интерполировать) отсутствующие кадры.
B-кадры учитывают тот факт, что человек не способен за доли секунды рассмотреть
детали движущегося изображения, поэтому можно формировать некоторое приблизительное, усредненное (промежуточное) изображение, учитывая информацию опорных кадров.
Здесь происходит умышленный обман органов чувств человека, за счет чего происходит
сжатие информации. Примерная последовательность кадров выглядит следующим образом:
IBBPBBIBBPBBIBB…
Очевидно, что существенный выигрыш в сжатии информации дают P- и особенно Bкадры, так как для формирования I-кадров необходимо использовать всю имеющуюся информацию об изображении.
При сжатии изображений (как и при сжатии звуков) используются физиологические
особенности человека. Установлено, что ошибки в изображении заметны глазом (визуально),
если они превышают некоторый порог заметности. Различают пространственную и временную заметность искажений изображений.
Порог заметности пространственных изменений яркости зависит от многих факторов:
яркости деталей изображения, яркости фона, относительного положения деталей различной
яркости, условий внешнего освещения.
Что касается временного восприятия цвета, то известно, что вариация цветности менее
заметны, чем вариация яркости. Наиболее заметны изменения зеленого цвета, затем красного. Наименее заметны изменения синего цвета.
Используя эту особенность зрения человека, можно при упаковке (сжатии) изображения исключить данные о цвете, скажем, каждой второй точки изображения (сохранив только
ее яркость), а при распаковке брать вместо исключенного цвета цвет соседней точки. Аналогично для группы соседних точек брать можно некоторый средний цвет.
За высокое качество сжатия, как правило, приходится платить большими затратами
времени на упаковку и распаковку. Алгоритмы, дающие хорошее качество сжатия, могут
оказаться неприменимыми из-за слишком большого времени, необходимого для распаковки
49
информации. Разработчики новых методов упаковки всегда ищут компромисс между качеством сжатия и скоростью распаковки.
Как правило, информацию можно «не торопясь» сжать, а при воспроизведении распаковать с большой скоростью. Но бывают случаи, когда информацию нужно упаковать «на
лету», т. е. в режиме реального времени. Такая ситуация возникает, например, при передаче
изображения с видеокамеры в Интернет.
Степень сжатия характеризуется коэффициентом сжатия, который численно равен
отношению объема исходного файла к объему сжатого файла.
Выбор коэффициентов сжатия — это компромисс между скоростью передачи файлов и
качеством восстанавливаемого изображения. Чем выше коэффициент сжатия, тем ниже это
качество. При этом следует иметь в виду, что при очень высокой разрешающей способности
и большой степени сжатия можно получить изображение с низкой разрешающей способностью. Что касается требующегося качества изображения, то оно зависит от конкретной поставленной задачи. Например, в системах видеоконференций основной объем необходимой
информации содержится в речи (звуке). Качество же изображения играет второстепенную
роль.
При сжатии информации часто используется термин «кодек», который образован путем сокращения слов «кодер» и «декодер». Этим термином обозначается алгоритм, предназначенный для кодирования (сжатия) и декодирования (распаковки) цифровых сигналов,
идущих от системы цифровой аудио- и видеозаписи. Алгоритм может быть реализован программно и загружен в память компьютера, либо может быть реализован аппаратно с помощью специальной микросхемы. Симметричные кодеки упаковывают и распаковывают сигнал в реальном времени.
Некоторые сложные алгоритмы кодирования, например, алгоритм сжатия видеосигнала MPEG, не могут выполняться в реальном времени (при записи), поэтому кодек MPEG называется асимметричным.
3.6. Помехоустойчивое кодирование
При работе устройств вычислительной техники и телекоммуникационной аппаратуры
возможно появление ошибок в обрабатываемых цифровых данных. Причинами сбоев могут
быть мощные электромагнитные помехи, малый уровень принимаемого сигнала (например,
от космического аппарата, находящегося на комете), резкое изменение напряжения питания,
старение радиоэлементов, ненадежный контакт разъемов, радиоактивное излучение естественных и искусственных источников и т.п. Сбои проявляются в виде случайного изменения
одного или нескольких битов машинного слова (вместо единицы в отдельных разрядах передается ноль или наоборот).
Автоматическое обнаружение и исправление ошибок сопровождается введением избыточности в передаваемые или хранимые данные. Для этих целей разработаны специальные
коды, в которые помимо информационных битов b1b2 ...bn дополнительно вводят контрольные
(проверочные) биты k1k 2 ...k m . Контрольные биты позволяют проверять целостность (неискажѐнность) информационных битов машинного слова, а наиболее сложные коды могут не
только обнаружить, но и исправить неверно принятые биты.
Разработанные помехоустойчивые коды позволяют решать разные задачи: обнаружить
одиночную ошибку, обнаружить и исправить единственную ошибку, обнаружить и исправить несколько ошибок. Первые коды называются обнаруживающими, а вторые – корректирующими кодами.
Простейший код, предназначенный для обнаружения одной ошибки (точнее – для обнаружения нечетного числа ошибок), основан на добавлении к информационным битам одного контрольного бита. При этом контрольный бит должен быть таким, чтобы суммарное
50
число единиц в образованном машинном слове было четным. Добавляемый бит называется
битом паритета.
Проверочный бит k для n-битного двоичного слова b1b2 ...bn вычисляется по формуле:
1, если b1 b2 ... bn 1
0, если b1 b2 ... bn 0
k
В результате такого преобразования формируется (n+1) – битное слово b1b2 ...bn k , число
единиц в котором будет четное.
Рассмотрим пример.
Пусть дан байт 10111100. Число информационных единиц в этом байте нечетное, поэтому бит паритета нужно установить равным единице. В результате этого получается машинное слово 101111001.
Идею обнаружения и определения неверно принятого бита можно проиллюстрировать
с помощью кода Хэмминга. Для иллюстрации принципа кодирования можно воспользоваться диаграммами Вена [21]. Пусть передаѐтся сообщение 1010.
Окружности A, B и C дают семь сегментов. В четыре
внутренних сегмента помещаются информационные биты числа 1010 (см. рис. a). Оставшиеся три сегмента дополняются
контрольными битами (рис. b).
Правило формирование контрольных битов такое: в каждой окружности должно быть четное число единиц. В данном
случае в каждой окружности получилось по две единицы.
Пусть в процессе передачи информации один информационный
бит будет искажѐн (рис. с). На приемной стороне осуществляется анализ принятой информации. Легко заметить, что в окружности С число единиц осталось четным, а окружностях А и
В число единиц стало нечетным. Это говорит о том, что искаженный бит находится в сегменте, который принадлежит окружностям А и В, но не принадлежит окружности С (рис. d).
Рассмотрим пример нахождения искажѐнного бита с помощью кода Хэмминга. Места
расположения информационных битов (ИБ) и контрольных битов (КБ) в передаваемых данных указаны в следующей таблице. В верхней строке таблицы записан порядковый номер
каждого бита в машинном слове.
№
раз.
ИБ
12
11
10
9
b8
b7
b6
b5
8
КБ
7
6
5
b4
b3
b2
4
3
2
1
k2
k1
b1
k4
k8
Форма записи машинного слова, приведенная в предыдущей таблице, выбрана такой с
целью повышения наглядности (из методических соображений). Фактически данные представляют единым двенадцатибитным машинным словом: b8b7b6b5k8b4b3b2k4b1k2k1 .
Предположим, что в процессе передачи некоторых данных произошло искажение одного информационного бита и на приѐме получены указанные в следующей таблице данные.
Требуется найти и исправить искаженный информационный бит.
Разряд
Слово
ИБ
КБ
12
b8
1
11
b7
0
10
b6
0
9
b5
0
8
k8
0
7
b4
1
6
b3
1
5
b2
0
4
k4
1
3
b1
1
2
k2
1
k1
0
0
51
Вычислим значения контрольных битов на приеме. Будем обозначать проверочные
биты на приеме со штрихом (чтобы отличить их от контрольных битов, сформированных на
передающей стороне). Расчет производится по формулам [21]:
k1`
k
`
2
b1
b3
b4
b1
b2
b6
b4
b5
b7 ;
b7 ;
k
`
4
b2
b3
b4
b8 ;
k
`
8
b5
b6
b7
b8 .
Используя предыдущие формулы и исходные данные, получим значения контрольных
битов на приѐме:
k1` 1
0 1 0 0 0;
k2` 1 1 1 0 0 1;
k 4` 0 1 1 1 1;
k 8`
0
0
0
1 1.
Расчѐты показывают, что контрольные биты, сформированные на передающей и приѐмной сторонах, различаются:
k1`
k1 ;
k 2`
k2 ;
k 4`
k8`
k4 ;
k8 .
Различие контрольных битов, сформированных на передающей и приемной сторонах,
говорит о том, что в процессе передачи произошло искажение машинного слова. Теперь необходимо определить, какой именно бит был принят неверно.
Для определения неверно принятого бита требуется вычислить так называемый синдром S s8 s4 s2 s1 , где
s1
k1`
k1 ; s 2
k 2`
k 4`
k 2 ; s4
k 4 ; s8
k8`
k8 .
Используя результаты расчѐтов и исходные данные, можно определить четыре бита
синдрома:
s1
0
0
0; s2
1
0 1; s4
1 1 0; s8
1
0 1.
Перевод синдрома S = 10102 из двоичной системы счисления в десятичную СС даѐт
значение S = 1010. Десятичное число 10 говорит о том, что десятый разряд принятых данных
(b6) искажѐн, и этот бит нужно исправить (проинвертировать). Таким образом, после корректировки принятые данные будут иметь вид, показанный в следующей таблице. Напомним,
что счет разрядов ведѐтся справа налево.
Разряд
Слово
ИБ
КБ
12
b8
1
11
b7
0
10
b6
1
9
b5
0
8
k8
0
7
b4
1
6
b3
1
5
b2
0
4
k4
1
3
b1
1
2
k2
1
k1
0
0
Устранить две ошибки (и более) в принятых данных позволяют циклические коды
Боуза-Чоудхури-Хоквингема (БЧХ).
Циклический код БЧХ v(x) на передающей стороне формируется следующим образом
[22]:
(1)
v( x) x n k u( x) ( x n k u( x) mod( g ( x))) ,
где x – фиктивная переменная; u(x) - кодируемая последовательность данных (информационные биты, сообщение); n – число бит в передаваемых данных (суммарное число информационных и контрольных бит); k - число информационных бит в машинном слове; mod
- операция вычисления остатка от деления; + - операция конкатенации (соединения, склеивания) информационных и контрольных битов; g(x) – порождающий полином.
В приведѐнном выше выражении первое слагаемое описывает информационные биты,
сдвинутые влево на x n k разрядов. Второе слагаемое описывает контрольные биты.
52
Выберем одну из разновидностей БЧХ с кодовой последовательностью длиной n = 15.
Данный код формируется с помощью порождающего полинома восьмой степени (r = 8):
g ( x)
x8
x7
x6
x4 1.
Число информационных разрядов в таком коде k = n – r = 15 – 8 = 7. Код позволяет исправить две ошибки (s = 2).
Рассмотрим порядок построения циклического кода БЧХ на передающей стороне.
Дано 7 информационных бит 1011011. Запишем информационные биты в виде полинома:
(2)
u ( x) x 6 x 4 x 3 x 1 .
Порядок построения полинома u(x) иллюстрирует следующая таблица:
Номера
7
разрядов
Слагаемые x 6
6
x5
5
4
3
2
1
x3
x2
x
1
x4
Таблицу нужно трактовать следующим образом: если в соответствующем разряде данных информационный бит равен единице, то в полином нужно включить нижерасположенный член ряда. Этим объясняется отсутствие в полиноме (2) слагаемых x 2 и x 5 .
Для нахождения первого слагаемого в выражении (1) нужно полином (2) умножить на
8
x (заметим, что число контрольных битов n k 15 7 8 ):
(3)
x n k u(x) x8 ( x6 x4 x3 x 1) x14 x12 x11 x9 x8 .
Смысл предыдущей операции очень прост: информационные разряды за счѐт умножения на x 8 смещаются влево на восемь позиций (в сторону старших разрядов). Это сделано для
того, чтобы разделить информационные и контрольные биты (информационные разряды будут располагаться в передаваемых данных слева, а контрольные биты – справа).
Для нахождения контрольных битов нужно найти остаток от деления полинома (3) на
порождающий полином g(x):
( x14
x12
x11 x9
x8 ) mod( x8
x7
x6
x 4 1)
(4)
Именно контрольные биты (4) позволяют на приѐмной стороне определить, есть ли искажения и при необходимости восстановить неверно принятые биты. Сформированный в соответствии с (1) помехоустойчивый код описывается полиномом:
(5)
v( x) x14 x12 x11 x 9 x 8 x 6 x 5 x 3 x 2 1.
Чтобы проверить верно ли сформирован полином (5), достаточно его разделить на порождающий полином g(x). Если остаток от деления равен нулю, то код сформирован правильно. В соответствии с полиномом (5) в линию нужно передать двоичный код:
101101101101101.
(6)
Несложно заметить, что первые семь бит сформированного кода полностью совпадают
с информационными битами (с сообщением). Следующие восемь бит являются контрольными. Соотношение между числом информационных и контрольных битов наглядно показывает, почему такие коды называют избыточными.
В процесс передачи по каналу связи (или записи в память цифрового устройства)
сформированный код БЧХ v(x) может быть искажѐн и на приѐм поступит код f (x) . Декодирование полученных данных f (x) происходит в соответствии со следующим алгоритмом:
1) выполняется деление принятой последовательности f (x) на порождающий полином
g (x ) ;
2) вычисляется вес остатка w (количество единиц в остатке);
3) если w s , где s – допустимое число ошибок, исправляемых данным кодом, то производится циклический сдвиг влево на один разряд принятой последовательности f (x) и
вновь выполняется шаг 1;
x6
x5
x3
x2 1 .
53
4) если w s , то производится суммирование полученной последовательности с остатком;
5) производится циклический сдвиг полученной последовательности вправо на количество разрядов, равное числу сдвигов влево, выполненное в процессе декодирования принятой последовательности.
При описании алгоритма декодирования использован термин «циклический сдвиг».
Сдвиг – это изменение позиций битов в машинном слове на одну и ту же величину. Следующий рисунок иллюстрирует порядок перемещения битов при циклических сдвигах влево и
вправо.
На рисунке приняты обозначения: LSB –
младший значащий разряд; MSB – старший значащий разряд.
Рассмотрим процесс декодирования на примере кода, сформированного ранее.
Предположим, что в данных (6) произошло
искажение разрядов 13 и 11. В результате на приѐм поступило двоичное число 111001101101101.
Запишем его в виде полинома:
f ( x) x14 x13 x12 x 9 x 8 x 6 x 5 x 3 x 2 1 .
Выполним декодирование. Результаты расчетов на каждой итерации поместим в таблицу. Так как данный код позволяет исправлять две ошибки (s = 2), расчѐты следует вести до
тех пор, пока не будет выполнено условие w ≤ 2.
В таблице использованы такие обозначения:
C i (x) - частное от деления f i (x) на порождающий полином g (x ) на i – той итерации;
i
P i (x) - остаток от деления f (x) на порождающий полином g(x) на i – той итерации.
На пятой итерации вес остатка достиг значения, при котором следует прекратить дальнейшие расчеты (w = 2). За пять проведенных итераций было выполнено четыре циклических сдвига влево.
Выполненные операции позволяют наглядно понять, почему этот код называю циклическим. При выполнении сдвига влево крайний левый разряд считался соседним с крайним
правым разрядом. По этой причине на итерациях 2, 3, 4 последними слагаемыми полиномов
f i (x) являются единицы. Это объясняется тем, что в этих случаях x14 1 и единица переходит
в младший разряд последовательности. На пятой итерации полином f 5 ( x) не содержит слагаемого, равного 1. Это происходит потому, что на предыдущей итерации x14 0 .
Ит.
1
Полиномы
x14
x13
x
6
x
2
x
6
x5
x
14
C ( x)
x
6
P 2 ( x)
x7
f 1 ( x)
1
C ( x)
1
P ( x)
2
2
f ( x)
2
3
x
14
C ( x)
x
6
P 3 ( x)
x6
3
f ( x)
3
x
x
x6
x
x
x
x5
10
3
x8
x6
x5
x3
x
9
x
7
x
6
x
4
x
3
x
8
x
7
x
5
x
4
x
2
x2
1
4
x
x 1
1
x4
11
5
x9
x3 1
13
4
x
x12
Вес
w
4
x
10
x 1
x
x4
x2
1
5
54
4
x12
x11
x
4
x
2
1
P ( x)
x
7
x
6
x5
f 5 ( x)
x13
x12
5
3
f 4 ( x)
4
C ( x)
4
5
5
C ( x)
x
x
P 5 ( x)
x2 1
x9
x8
x3
x10
x
x9
x6
x5
x3
x2
x 1
5
x
x7
x6
x4
x3
x2
x
1
2
В соответствии с алгоритмом декодирования теперь следует перейти к шагу 4 и найти
сумму величин на последней итерации:
R( x )
x13 x12
f 5 ( x) P5 ( x)
x10
x9
x7
x6
x4
x3
x2
x x2 1
x13 x12
x10
x9
x7
x6
x4
x3
x 1.
(7)
Полученный полином (7) преобразуем в двоичное число:
R(x) = 011011011011011.
(8)
В соответствии с шагом 5 алгоритма декодированную последовательность (8) нужно
циклически сдвинуть вправо на четыре разряда. Этапы сдвига показаны в таблице.
Номера сдвигов
Числа
R(x)
011011011011011
1 сдвиг
101101101101101
2 сдвиг
110110110110110
3 сдвиг
011011011011011
4 сдвиг
101101101101101
Первые семь битов двоичного числа, полученного после четвертого циклического
сдвига вправо, являются информационными битами, в которых были исправлены две ошибки. Таким образом, в результате декодирования получено число 1011011, которое точно совпадает с переданным числом.
Этот пример наглядно демонстрирует возможность автоматического исправления возникших ошибок.
55
3.7. QR-коды
Современные информационные технологии стремительно внедряются в нашу повседневную жизнь. Удивительные возможности помехоустойчивого кодирования можно рассмотреть на примере QR-кодов.
Информация кодируется при помощи черных и белых квадратов, которые после сканирования превращаются в логические единицы и нули.
Формирование изображений матриц ведется таким образом, чтобы обеспечить наиболее благоприятные условия для работы сканирующей аппаратуры. Для этого в процессе кодирования создаѐтся несколько графических матриц и выбирается лучшая из них. Появляющиеся в процессе эксплуатации искажения рисунка матрицы устраняются путѐм использования помехоустойчивого кода Рида-Соломона.
QR-код (англ. quick response — быстрый отклик) — матричный код, разработанный
японской компанией «Denso-Wave» в 1994 году.
Вместимость одной кодовой матрицы не является безграничной. Максимальное количество символов, которые можно поместить в одну матрицу, зависит от вида кодируемой
информации (цифры, буквы, двоичный код, иероглифы), уровня коррекции ошибок и версии
используемого QR-кода. Для версии 40 в одной матрице при минимальном уровне коррекции
ошибок можно разместить 7089 десятичных цифр, либо 4296 букв и цифр, либо 2953 двоичных данных, либо 1817 иероглифов.
Наибольшее распространение рассматриваемый код получил среди абонентов мобильной связи. Пользователь может моментально занести в свой мобильный телефон (ноутбук)
текстовую информацию, контакты в адресную книгу, перейти по Web-ссылке, отправить
SMS-сообщение и т. д.
С помощью QR-кодов удобно делать визитки и размещать их на майках, фуражках,
значках. Коды открывают большие возможности для рекламы. За счѐт размещения QR-кода
на рекламном щите, плакате (постере) или объявлении можно привлечь большое число клиентов.
Для того чтобы сделать туристические маршруты более информативными, на улицах г.
Львова (Украина) размещено более 80 изображений QR-кодов. Ими оснащены коммерческие
и культурные объекты, в том числе памятники, архитектурные сооружения.
QR-коды используются для маркировки ответственных деталей. Гравировка металлической поверхности позволяет наносить код на детали, подвергающиеся воздействиям высоких температур, давлений или агрессивных химических веществ. Данный код имеет высокую
помехоустойчивость. Даже при наличии повреждений (искажений) изображения на площади
30% всѐ еще есть возможность безошибочно считать информацию.
QR-код не является единственным вариантом двухмерного штрих-кода. Известны и
другие форматы: DataMatrix, ScanLife EZcode и Microsoft Tag (Tag).
Три квадрата в углах изображения QR-кода позволяют устройству правильно определять его пространственную ориентацию. Черные и белые точки изображения преобразуются
считывающим устройством в двоичные числа. Затем производится обработка цифровой информации. На матрице размещается системная информация, информационные биты, корректирующие биты. При обработке считанного изображения используется алгоритм РидаСоломона, который позволяет устранить треть возможных искажений матрицы.
QR-коды можно создавать с различной степенью помехозащищенности. Чем выше помехозащищенность, тем больше избыточной информации содержит матрица и тем меньше
остается места для информационных битов.
Графическую матрицу можно создать с одним из четырех уровней коррекции ошибок.
Эти уровни определяют долю информации, подлежащую восстановлению за счет использования корректирующего кода.
56
Уровень корКод
Допустимые
рекции ошибок
искажения
L
01
7%
M
00
15%
Q
11
25%
H
10
30%
Уровни L и M рекомендуется использовать для печати кодов на пригласительных билетах, объявлениях, визитках, плакатах, рекламных щитах и т.д. Уровни Q и H применяют для
маркировки промышленных деталей, когда существует высокая вероятность повреждения
изображения кода.
Следующая таблица показывает, как выглядит код слова «Проба» при различных уровнях коррекции ошибок. Визуально можно заметить, что с увеличением уровня помехоустойчивости число элементов в матрице растет.
Высокая степень помехоустойчивости QR-кодов подтверждается экспериментально.
Даже на матрицах, перечѐркнутых широкой кистью, есть возможность правильно декодировать информацию. Следует обратить внимание, что считывание информации прекращается в
случаях, когда существенно искажен один из трех прямоугольников, отвечающих за определение ориентации матрицы.
Информационные биты, контрольные биты и системная информация располагаются в
определѐнных местах матрицы. Порядок размещения всех элементов матрицы определены
правилами, которые описаны в спецификации [23].
7%
15%
25%
30%
На каждой матрице имеется три указателя ориентации 1
(УО). Между тремя УО проходят две линии синхронизации
2, которые состоят из чередующихся белых и черных модулей (пикселей). Вблизи левого нижнего указателя ориентации размещается чѐрный пиксель 3.
В настоящее время создано 40 версий QR-кодов. На
матрицах QR-кодов, начиная с версии 2, имеются метки центровки 4. В версии 1 такой метки нет, но в старших версиях
QR-кода можно насчитать 46 таких меток.
В областях 5 для версий старше шестой размещается
информация о версии кода. В четырех модулях 6 содержится
код, которые определяет, какой вид данных содержится в
матрице. Системная информация размещается в областях 7 и
8.
Информация об уровне коррекции ошибок и виде использованной маски располагается в системной строке (см.
рисунок слева). Разряды 14 и 13 содержат сведения об используемом уровне коррекции ошибок. Разряды 12, 11 и 10
показывают, какая маска использована для наложения на ин57
формационные и корректирующие биты. Три бита позволяют сформировать коды для восьми
разных масок.
Системная информация дублируется. Один раз 15 системных битов размещают в
столбце 8 (счет элементов ведется, начиная с 0 из левого верхнего угла матрицы).
Второй раз системную информацию размещают в строке 8.
Наиболее просто операция декодирования выполняется с помощью мобильного телефона или планшета со встроенной фотокамерой и установленной программой считывания.
Существует 40 версий QR-кода. С увеличением номера версии кода объем помещаемых
в матрицу данных увеличивается. Определить, к какой версии относится данная матрица,
можно тремя способами:
подсчитать, какое число пикселей содержит матрица;
определить координаты меток центровки;
для версий старше шестой существуют области на матрице, где содержится информация об используемой версии.
В таблице приведена информация о числе модулей (пикселей) для различных версий
QR-кодов.
Версия
1
2
3
…
40
Число модулей
21х21
25х25
29х29
…
177х177
Анализируя, приведенную таблицу, легко заметить линейную закономерность: очередная версия QR-кода отличается от предыдущей версии тем, что сторона матрицы увеличена
на 4 модуля. Подсчитав число модулей, можно определить версию QR-кода для данной матрицы.
В таблице приведены сведения о координатах меток центровки для версий 2…13
Версия
2
3
4
5
6
7
6
6
6
6
6
6
Строки
18
22
26
30
34
22 38
Версия
8
9
10
11
12
13
6
6
6
6
6
6
Строки
24
26
28
30
32
34
42
46
50
54
58
62
На следующем рисунке для примера показано изображение
матрицы QR-кода версии 7.
Из рисунка видно, что шесть меток центровки расположены
на пересечении строк и столбцов, указанных в предыдущей таблице. Координаты определяются по черному модулю (пикселю),
расположенному внутри белого квадрата. Метки центровки не
ставятся в местах, где расположены указатели ориентации (три
угла).
На матрицах, начиная с версии 7, имеются две области, где
содержится закодированная информация об использованной версии. Эти области отмечены на рисунке цифрами 1 и 2. В таблице
приведены коды некоторых версий QR-кода.
58
Версия
7
8
9
10
11
12
13
Код
001010010011111000
000111101101000100
100110010101100100
011001011001010100
011011111101110100
001000110111001100
111000100001101100
Следующие две таблицы показывают, в каком порядке размещаются биты восемнадцатиразрядного кода, который определяет версию программы.
0 3 6 9 12 15
1 4 7 10 13 16
2 5 8 11 14 17
0
3
6
9
12
15
1
4
7
10
13
16
2
5
8
11
14
17
Рассмотрим, как определить уровень коррекции ошибок. Так как системная информация дублируется, то сведения о имеющейся корректирующей способности кода можно отыскать в двух местах матрицы. Один раз 15 бит системной информации помещаются в строке
1 (отсчет слева направо), а второй раз - в столбце 2 (отсчѐт снизу-вверх). Естественно, что
эти два значения одинаковые. Сведения об уровне коррекции ошибок содержатся в первых
двух битах системной информации. Эти два бита расположены в 14 и 13 разрядах системной
строки.
На следующем рисунке первые два бита в системной строке равны 1. Напомним, что
логические единицы изображены в виде черных пикселей (модулей),
а логические нули – в виде белых. Чтобы определить уровень коррекции нужно эти два бита сложить по правилу Исключающее ИЛИ с
двоичной маской 10.
В результате сложения получим: 11 10 01 .
Код 01 соответствует уровню коррекции ошибок L (7%).
На следующем рисунке показана матрица, в которой использован иной уровень коррекции ошибок. Первые два бита во втором
случае равны 10. Суммирование с маской 10 дает результат 00. Это
говорит о том, что в этой матрице использован код с уровнем коррекции ошибок М (15%).
Аналогично производятся вычисления для матриц с уровнями коррекции ошибок Q и
H. На этих матрицах системная информация начинается битами 01 и 00 соответственно.
Суммирование с маской 10 даст двоичные коды 11 и 10 соответственно.
Для повышения надѐжности сканирования матрицы подвергают дополнительной обработке. Целью этой обработки является
формирование такого рисунка (конфигурации) матрицы, на котором
было бы как можно меньше смежных модулей одинакового цвета.
Простыми словами это требование можно сформулировать так:
«Матрица должна быть пѐстрой и на ней должно быть минимум однотонных сплошных протяжѐнных участков». Этим облегчается работа сканирующей аппаратуры, например, мобильных телефонов.
Цель достигается следующим образом: формируют 8 матриц с одинаковым информационным содержанием, но разного вида (разной формы). Для этого используют 8 заранее
59
подготовленных масок, которые суммируют с исходной матрицей по правилу Исключающее
ИЛИ. Полученные матрицы поочередно подвергают математической обработке, в результате
которой выбирают одну матрицу. Отбор матриц осуществляют путем вычисления штрафных
баллов. Для оптимальной (наиболее «пѐстрой») матрицы число штрафных баллов будет минимальным среди восьми чисел.
Восемь масок кодируются трехразрядными числами от 000 до 111. Математически
маски описываются формулами, приведѐнными в таблице.
Код маски
000
001
010
011
100
101
110
111
Соотношение
(i j ) mod 2 0
i mod 2 0
j mod 3 0
(i j ) mod 3 0
((i div 2) ( j div 3)) mod 2 0
(i j ) mod 2 (i j ) mod 3 0
((i j ) mod 2 (i j ) mod 3) mod 2 0
((i j ) mod 3 (i j ) mod 2) mod 2 0
В таблице использованы обозначения: j – номер строки матрицы; i – номер столбца;
mod – операция поиска остатка от целочисленного деления; div – операция деления.
Порядок определения координат модулей иллюстрирует рисунок.
Формулы используются следующим образом: если координаты рассматриваемого модуля матрицы удовлетворяют данному соотношению, то этот модуль инвертируется.
При кодировании конкретных сообщений их содержимое бывает самым разнообразным. В одном случае это только десятичные
цифры, в другом – буквы и цифры, в третьем – двоичные цифры, в
четвертом – иероглифы.
В зависимости от вида используемых данных запись битов в
матрицу происходит в разных форматах. Вид формата указывается
с помощью четырех битов, расположенных в области 6.
Следует обратить внимание, что в области 6 информация о формате
данных «искажена» маской. Причем в каждом случае маска может быть
любой из восьми допустимых. Поэтому для получения истинного значения кода формата данных нужно предварительно определить вид использованной маски.
Порядок нумерации битов показан на рисунке, причѐм старший
разряд кода формата находится в клетке, отмеченной цифрой 1.
Рассмотрим порядок ручного декодирования матрицы, показанной на
рисунке.
Вначале нужно определить, какой вид маски использован
при еѐ кодировании. В разрядах 12, 11 и 10 системной строки записано двоичное слово 111. Сложение со статической маской 101
дает двоичное число 010. По таблице кодов маски легко определить формулу, использованную для формирования маски:
j mod 3 0 .
По этой формуле можно определить вид расчѐтной маски
(см. рис. а). Этот рисунок нужно трактовать следующим образом:
если на маске имеется черный пиксель (модуль), то пиксель мат60
рицы с такими же координатами нужно проинвертировать. У этого правила большое число
исключений. На рис. в) показаны серым цветом модули, которые инвертировать не следует.
Анализируя рисунок в), можно заметить, что от изменения
защищены области матрицы, где расположены указатели ориентации, линии синхронизации, системная информация (серые модули). Скорректированную таким образом расчетную маску назовѐм фактической маской.
Процесс наложения фактической маски на декодируемую
матрицу показан на рисунке слева.
Наибольший интерес для декодирования представляет область матрицы, расположенная в еѐ правом нижнем углу. Здесь
находятся информационные биты. Рассмотрим детально эту зону.
Рисунок а) показывает фрагмент исходной матрицы, который
должен быть подвержен обработке. На рисунке б) выделены модули, которые должны быть
проинвертированы. Следует обратить внимание, что верхняя граница рисунка совпадает с
системной строкой. Результат наложения маски и декодируемой матрицы показан на рисунке
в).
а)
б)
в)
Из рисунка в) видно, что модули третьего и шестого столбца справа были проинвертированы.
Теперь есть возможность выполнить ручное декодирование матрицы. Четыре бита в
клетках 1…4 дают код 0100, который говорит о том, что в данной матрице используется двоичный формат данных.
Порядок считывания декодируемой информации показан на рисунке.
61
а)
б)
в)
В соответствии с двоичным форматом данных следующие 8 бит (клетки 5…12) указывают, сколько символов содержится в сообщении. Двоичное число 00000101 говорит о том,
что данное сообщение содержит пять символов.
В очередных восьми клетках 13…20 (см. рисунок а) размещено двоичное слово
01010000. Перевод этого байта в десятичную систему счисления даѐт число 80. По таблице
CP-1251 легко определить, что данному коду соответствует латинская буква «Р».
Следует обратить внимание на порядок нумерации модулей. Номера располагаются
друг за другом в виде змейки.
Результаты декодирования сообщения приведены в таблице.
Номера модулей
13…20
21…28
29…36
37…44
45…52
Биты
Десятичное число Символ
01010000
80
P
01110000
114
r
01101111
111
o
01100010
98
b
01100001
97
a
Таким образом, в результате ручного декодирования было определено, что матрица содержит слово «Proba».
При кодировании сообщения формируют восемь матриц с одинаковым содержанием,
но разной формы. Для выбора одной из восьми конкурирующих матриц в стандарте определены четыре правила расчета штрафов.
Согласно первому правилу штраф назначается за каждую группу из пяти или более одноцветных пикселей в одной строке. Штрафные функции по столбцам вычисляются аналогично. Второе правило дает штраф за каждый одноцветный квадрат размером 2x2 пикселя.
Третье правило определяет штраф, если на матрице есть области, которые похожи на указатели определения ориентации. Четвѐртое правило начисляет штраф, если более половины
пикселей одного цвета.
Целью расчетов штрафных баллов является выбор наиболее «пѐстрой» матрицы из
восьми возможных вариантов. Для примера используем матрицу, использованную при декодировании. Вычислим штрафные баллы построчно по первому правилу.
Первая сверху строка матрицы содержит большое число смежных черных пикселей
(две группы однотонных пикселей). Это говорит о том, что для первой строки будет начислено большое число штрафных баллов.
Расчет ведется следующим образом. Если в строке имеется группа из пяти смежных
одноцветных пикселей, то начисляется три штрафных балла. За каждый последующий пиксель, который примыкает к группе, начисляется дополнительно по одному баллу. Таким об62
разом, первая группа черных пикселей дает вклад 3 + 1 + 1 = 5 баллов. Вторая группа из семи
черных пикселей также дает 5 штрафных баллов. В общей сложности первая строка дала 10
штрафных баллов.
Вторая сверху строка матрицы показана на следующем рисунке.
В этой строке есть две группы по пять белых пикселей. Эти две группы в сумме дают 6
штрафных баллов.
Аналогичная методика подсчѐта штрафных баллов используется и для столбцов.
На следующем рисунке показаны штрафные баллы по всем строкам и столбцам матрицы.
Затем рассчитываются суммарные значения штрафных баллов по строкам и по столбцам. Для рассматриваемого примера суммарное
число штрафных баллов по строкам равно 88, а
по столбцам 102. Общее число штрафных балов, вычисленное по первому правилу для данной маски, даѐт число 190.
Используя все четыре правила расчета
штрафных баллов, находят суммарную количественную оценку данной маски. Подобные
оценки получают для всех восьми масок. Среди
этих оценок выбирают минимальную оценку и
для окончательного кодирования используют
маску, которая имеет минимальное число
штрафных баллов.
63
4. Аппаратные средства
4.1. Структурная схема ЭВМ
Электронная вычислительная машина (ЭВМ) — это устройство, выполненное на электронных приборах, предназначенное для автоматического преобразования информации под
управлением программы.
Основные элементы электронной вычислительной машины (фон-неймановской структуры) и связи между ними показаны на рисунке.
Процессор выполняет логические и арифметические операции, определяет порядок
выполнения операций, указывает источники данных и приемники результатов. Работа процессора происходит под управлением программы.
При первом знакомстве с ЭВМ можно считать, что процессор состоит из четырех устройств: арифметико-логического устройства (АЛУ), устройства управления (УУ), блока регистров (БР) и кэш-памяти. АЛУ выполняет арифметические и логические операции над
данными. Промежуточные результаты вычислений в АЛУ сохраняются в БР. Кэш-память
служит для повышения производительности процессора путем уменьшения времени его непроизводительного простоя. УУ отвечает за формирование адресов очередных команд, т. е.
за порядок выполнения команд, из которых состоит программа.
Программа — это набор команд (инструкций), составленный человеком (программистом) и выполняемый ЭВМ. Команда обеспечивает выработку в УУ управляющих сигналов,
под действием которых процессор выполняет элементарные операции. Например, операция
умножения разбивается на элементарные операции сложения и сдвига.
Таким образом, программы состоят из команд, а при выполнении программы процессор разбивает команды на элементарные операции.
Элементарными операциями для процессора являются арифметические и логические
действия, перемещение (пересылка) данных (операндов) между регистрами процессора,
сдвиг данных в регистрах, счет и т. д.
Основной функцией системной шины является передача информации между процессором и остальными устройствами ЭВМ. Системная шина состоит из трех шин: шины
управления, шины данных и адресной шины. По этим шинам циркулируют управляющие
сигналы, данные (числа, символы), адреса ячеек памяти и номера устройств ввода-вывода.
Память предназначена для записи, хранения, выдачи команд и обрабатываемых данных (операндов).
64
Существует несколько разновидностей памяти: оперативная, постоянная, внешняя,
кэш, CMOS (КМОП), регистровая. Существование целой иерархии видов памяти объясняется их различием по быстродействию, объему, энергозависимости и стоимости. Многообразие видов памяти помогает сгладить противоречие между высокой стоимостью памяти одного вида и низким быстродействием памяти другого вида.
Память современных компьютеров строится на нескольких уровнях, причем память
более высокого уровня меньше по объему, быстрее и в пересчете на один байт памяти имеет
большую стоимость, чем память более низкого уровня.
Регистровая память — наиболее быстрая (ее иногда называют сверхоперативной).
Она представляет собой блок регистров, которые размещены внутри процессора. Регистры
используются при выполнении процессором простейших операций: пересылка, сложение,
счет, сдвиг операндов, запоминание адресов, фиксация состояния процессора и т. д.
Наилучшим вариантом было бы размещение всей памяти на одном кристалле с процессором. Однако из-за существующих технологических сложностей изготовления памяти
большого объема пришлось бы большое число микросхем отправить в брак.
Кэш-память по сравнению с регистровой памятью имеет больший объем, но меньшее
быстродействие. В ЭВМ число запоминающих устройств с этим видом памяти может быть
различным.
В переводе с английского языка слово кэш (cache) означает «тайник», так как кэшпамять недоступна для программиста (она автоматически используется компьютером). Кэшпамять используется для ускорения выполнения операций за счет запоминания на некоторое
время полученных ранее данных, которые будут использоваться процессором в ближайшее
время. Введение в компьютер кэш-памяти позволяет экономить время, которое без нее тратилось бы на пересылку данных и команд из процессора в оперативную память (и обратно).
Работа кэш-памяти строится так, чтобы до минимума сократить время непроизводительного
простоя процессора (время ожидания прихода новых данных и команд). Этот вид памяти
уменьшает противоречие между быстрым процессором и относительно медленной оперативной памятью.
Кэш-память первого уровня, которая размещается на одном кристалле с процессором,
принято обозначать символами L1. Кэш-память, которая располагается на материнской плате
(второй уровень), обозначается символами L2.
На структурной схеме показана только кэш-память L1. Заметим, что в первых ЭВМ
структуры фон Неймана кэш-памяти не было.
Энергозависимая память CMOS (КМОП-память) служит для запоминания конфигурации данного компьютера (текущего времени, даты, выбранного системного диска и т. д.).
Для непрерывной работы этого вида памяти на материнской плате ЭВМ устанавливают отдельный малогабаритный аккумулятор или батарею питания.
Оперативное запоминающее устройство (ОЗУ) используется для кратковременного
хранения переменной (текущей) информации и допускает изменение своего содержимого в
ходе выполнения процессором вычислительных операций. Это значит, что процессор может
выбрать из ОЗУ команду или обрабатываемые данные (режим считывания) и после арифметической или логической обработки данных поместить полученный результат в ОЗУ (режим
записи). Размещение новых данных в ОЗУ возможно на тех же местах (в тех же ячейках), где
находились исходные данные. Понятно, что прежние команды (или данные) будут стерты.
ОЗУ используется для хранения программ, составляемых пользователем, а также исходных, конечных и промежуточных данных, получающихся при работе процессора.
В качестве запоминающих элементов в ОЗУ используются либо триггеры (статическое
ОЗУ), либо конденсаторы (динамическое ОЗУ).
ОЗУ — это энергозависимая память, поэтому при выключении питания информация,
хранившаяся в ОЗУ, теряется безвозвратно.
По быстродействию ОЗУ уступает кэш-памяти и тем более сверхоперативной памяти — БР. Но стоимость ОЗУ значительно ниже стоимости упомянутых видов памяти.
65
В постоянном запоминающем устройстве (ПЗУ) хранится информация, которая не
изменяется при работе ЭВМ. Такую информацию составляют тест-мониторные программы
(они проверяют работоспособность компьютера в момент его включения), драйверы (программы, управляющие работой отдельных устройств ЭВМ, например, клавиатурой).
ПЗУ является энергонезависимым устройством, поэтому информация в нем сохраняется даже при выключении электропитания.
Существуют ПЗУ с электрическим способом стирания и записи информации (FLASHпамять). Это даѐт возможность при острой необходимости перепрограммировать ПЗУ и тем
самым оперативно улучшить характеристики ЭВМ.
Внешние запоминающие устройства (ВЗУ) предназначены для долговременного
хранения информации. К ВЗУ относятся накопители на жестких дисках (винчестеры), проигрыватели оптических дисков, электронная Flash-память, накопители на магнитной ленте
(магнитофоны, стримеры). Внешние запоминающие устройства по сравнению с ОЗУ имеют,
в основном, больший объем памяти, но существенно меньшее быстродействие.
К устройствам ввода информации относятся: клавиатура, мышь, трекбол, джойстик,
трекпойнт, трекпад, сканер, сенсорный экран, информационные перчатки, информационный
костюм, шлем, джойстринг, диджитайзер, вебкамера, микрофон, датчики и др.
К устройствам вывода информации относятся: дисплей (монитор), LCD-проектор,
принтер, плоттер, акустические колонки, головные телефоны и др.
Модем выполняет функции и устройств ввода, и устройств вывода информации. Он
позволяет соединяться с другими удаленными компьютерами с помощью телефонных линий
связи и обмениваться информацией между ЭВМ.
Одной из плодотворных идей, положенных в основу персональных компьютеров, является открытость архитектуры. Согласно этой концепции, каждый пользователь может самостоятельно формировать конфигурацию своего компьютера по своему усмотрению. Это
означает, что в зависимости от потребности пользователь может подключить к системной
шине различные устройства: звуковую плату, клавиатуру электромузыкального инструмента, плату телевизионного приемника и т. п. Открытость архитектуры позволяет легко модернизировать имеющийся компьютер, например, путем замены винчестера на жесткий диск
большего объема, замены процессора, увеличения объема оперативной памяти, добавления
необходимого устройства ввода-вывода и т. д.
Общий принцип работы ЭВМ заключается в следующем. Из процессора на шину адреса (на структурной схеме она не показана и находится внутри системной шины) выдается
адрес очередной команды. Считанная по этому адресу команда (например, из ОЗУ) поступает по шине данных (она находится внутри системной шины) в процессор, где она выполняется с помощью АЛУ. Устройство управления процессора определяет адрес следующей выполняемой команды (фактически номер очередной ячейки памяти, где находится очередная
команда или исходные данные). После исполнения процессором текущей команды на шину
адреса выводится адрес ячейки памяти, где хранится следующая команда и т. д.
Сигналы, передаваемые по управляющей шине, синхронизируют работу процессора,
памяти, устройств ввода и вывода информации.
Порядок выбора адресов из памяти (и очередности выполнения команд) определяет
программа, которая может располагаться в ОЗУ, ПЗУ, кэш-памяти. Чаще всего выполняемая
в данный момент времени программа находится в ОЗУ. В линейных программах команды
последовательно выбираются из смежных ячеек памяти. В разветвляющихся программах последовательный порядок выбора адресов ячеек памяти может нарушаться. В результате может произойти переход (резкий скачок) к ячейке памяти, расположенной в любом месте
ОЗУ. При одном наборе исходных данных переход будет происходить, а при другом наборе
данных перехода не будет. По этой причине такие команды называют командами условной
передачи управления.
Иногда при работе ЭВМ программа вводится с клавиатуры в ОЗУ. Затем процессор под
управлением этой программы выполняет необходимые действия. Чаще управляющую про66
грамму загружают в ОЗУ с внешнего запоминающего устройства или по вычислительной сети. При выполнении загруженной программы ЭВМ запрашивает у пользователя необходимые
данные и процессор после выполнения указанных в программе команд отправляет результат
по системной шине на одно из устройств вывода информации.
Выполнение основной программы порой может приостанавливаться с целью выполнения какого-то другого срочного задания, например, для передачи данных на принтер. Такой
режим работы, когда временно приостанавливается выполнение основной программы и происходит обслуживание срочного запроса, называется прерыванием. По завершении обслуживания прерывания процессор возвращается к выполнению временно отложенной основной программы.
Запросы на прерывание могут возникать из-за сбоев в аппаратуре, переполнения разрядной сетки, деления на ноль, требования внешним устройством выполнения операции
ввода информации и т.д. Например, при нажатии клавиши на клавиатуре возникает прерывание, обработка которого сводится к записи кода нажатой клавиши в буфер клавиатуры.
Обслуживание прерываний осуществляется с помощью специальных программ обработки
прерываний.
Очевидно, что конструкция современной ЭВМ много сложнее рассмотренной здесь
конструкции. На структурной схеме не изображены тактовый генератор, который подключен
к процессору, адаптеры (или контроллеры), включенные между системной шиной и каждым
устройством ввода-вывода, и другие блоки. Однако выбранный уровень детализации достаточен для понимания общего принципа работы ЭВМ.
Приведенный вид структурной схемы ЭВМ является фон-неймановской структурой,
названной так в честь американского ученого венгерского происхождения фон Неймана.
Существуют и другие структуры, в частности многопроцессорные структуры, позволяющие вести параллельную обработку данных с помощью нескольких процессоров.
В системном блоке находятся материнская плата (на ней располагаются процессор,
ОЗУ, ПЗУ и др.), накопители на жѐстких и оптических дисках, внутренние модемы, сетевые,
звуковые карты и др.
Конфигурация современных компьютеров чрезвычайно разнообразна. Они могут содержать блоки, которые не описаны в этом разделе. Например, фотоаппарат, видеокамера,
GPS и ГЛОНАС навигаторы, картридер, USB-порты и т.п.
67
4.2. Принцип действия основных устройств ЭВМ
В этом разделе рассматривается принцип действия цифровых устройств, арифметикологического устройства, оперативной памяти, внешних запоминающих устройств, устройств
ввода и вывода информации.
4.2.1. Принцип действия цифровых устройств
Основными элементами современных ЭВМ являются цифровые устройства. При разработке новых конструкций компьютеров проверялись на практике различные варианты их
построения. Изобретались вычислительные средства, в которых сигналы могли изменяться
непрерывно (аналоговые ЭВМ). Были созданы конструкции, в которых основные элементы
компьютера могли находиться в трѐх различных устойчивых состояниях (в отечественной
ЭВМ «Сетунь» использовалась троичная система счисления). Существуют элементы, которые могут принимать только два устойчивых состояния, например, реле. Контакты реле могут быть либо замкнуты, либо разомкнуты. Первые вычислительные машины были сконструированы с использованием реле. Работу таких элементов удобно описывать с помощью
двоичной системы счисления и алгебры логики.
Радиоэлектронные элементы, которые могут принимать только два устойчивых состояния, являются цифровыми устройствами (ЦУ). Два устойчивых состояния удобно обозначать такими терминами: включено - выключено, открыто – закрыто, да – нет, истина –
ложь или единица – ноль.
Достоинством цифровых устройств является их высокая помехоустойчивость и стабильность. Такие элементы надѐжно работают при случайном изменении напряжения питания, колебаниях окружающей температуры, при действии электромагнитных помех.
Сигналы, представленные в цифровой форме, можно копировать, передавать и хранить практически без искажений. В то же время аналоговые сигналы таковы, что их копии
всегда отличаются от оригинала (искажаются).
Все цифровые устройства делятся на два класса: комбинационные ЦУ и последовательностные ЦУ (или цифровые автоматы) [5].
В комбинационных цифровых устройствах выходной сигнал в каждый момент времени зависит только от сочетания (комбинации) входных сигналов. К таким ЦУ относятся:
логические элементы (И, ИЛИ, И-НЕ, ИЛИ-НЕ, ИСКЛЮЧАЮЩЕЕ ИЛИ), арифметикологические устройства, преобразователи кодов, шифраторы, дешифраторы, мультиплексоры,
демультиплексоры, сумматоры, и др.).
Состояние последовательностных ЦУ зависит не только от входных сигналов,
имеющихся в данный момент времени, но и от предшествующего состояния ЦУ. Эти элементы обладают памятью. К последовательностным цифровым устройствам относятся триггеры, счетчики, регистры.
Аппаратно цифровые устройства могут быть реализованы на различных элементах: электромагнитных реле, электровакуумных лампах, дискретных транзисторах, в виде микросхем, выполненных по
интегральной полупроводниковой технологии.
При работе цифровых устройств их элементы в какой-то момент времени проводят электрический ток (открытое состояние), а в
другой момент времени ток не проводят (закрытое состояние). Таким образом формируются сигналы логической единицы и логического нуля (цифровые сигналы).
Принцип действия логических элементов рассмотрим на
примере работы устройства, выполняющего логическую операцию
И-НЕ. Заметим, что схемотехническое построение элемента может
быть различным: с использованием технологий РТЛ, РЕТЛ, ДТЛ,
68
ТТЛ, ЭСЛ, КМОП, И2Л. Эти технологии позволяют получить элементы, отличающиеся друг
от друга быстродействием, нагрузочной способностью и потребляемой мощностью (экономичностью).
Рассматриваемый элемент построен на комплементарных металл-окисел полупроводниках (полевых транзисторах, выполненных по КМОП - технологии). Термин «комплементарные» означает, что используемые транзисторы взаимно дополняют
друг друга. В этих конструкциях применяются транзисторы двух типов.
Транзисторы одного типа открываются высоким напряжением, а запираются низким (VT3, VT4). А другие транзисторы наоборот: запираются
высоким напряжением, а низким напряжением открываются (VT1, VT2).
Такие полупроводниковые элементы носят специальное название – полевые транзисторы с p-каналом и n-каналом. На рисунке показан полевой транзистор с изолированным затвором и каналом n-типа. Внутренняя часть транзистора
между истоком и стоком называется каналом. Транзисторы работают в так называемом
ключевом режиме. При этом каждый транзистор либо полностью открыт и проводит электрический ток, либо закрыт и практически ток не проводит. Переключение транзисторов из
одного предельного состояния в другое происходит достаточно быстро.
Если попытаться изложить принцип работы транзистора с помощью метафоры, то
транзистор можно сравнить с водопроводным краном. Поток воды, протекающий по трубе
(каналу) от истока к стоку можно перекрывать с помощью крана. Таким краном в полевом
транзисторе является затвор. Управляющее напряжение на затворе позволяет либо открыть
канал (пропустить воду), либо перекрыть этот поток.
Как известно, логический элемент И-НЕ работает в соответствии со следующей таблицей истинности.
Если входные сигналы x1 и x2 равны нулю, то
транзисторы VT1 и VT2 будут открыты, а транзисторы
x2
x1
y
VT3 и VT4 - закрыты. Термин «открытый транзистор»
1
0
0
1
означает, что сопротивление канала транзистора стано2
0
1
1
вится небольшим, и между истоком и стоком протекает
3
1
0
1
ток. Через открытые транзисторы VT3 и VT4 высокий
4
1
1
0
потенциал (примерно равный напряжению питания Ucc)
передаѐтся на выходной зажим Y. Высокое выходное
напряжение условно обозначено логической единицей (см. верхнюю строку таблицы истинности).
Если входные сигналы x1 и x2 одновременно равны высоким потенциалам (единицам),
то транзисторы VT1 и VT2 будут закрыты, а транзисторы VT3 и VT4 – открыты. В результате этого через открытые транзисторы VT3 и VT4 на выходную шину Y будет подан потенциал, близкий к нулю вольт (см. нижнюю строку таблицу истинности).
Если на входы элемента И-НЕ подать сигналы x1 = 1 и x2 = 0, то транзисторы VT3 и
VT1 будут открыты, а транзисторы VT2 и VT4 закрыты. Через открытый транзистор VT1 от
источника питания Ucc на выходной зажим Y поступит высокий потенциал, который соответствует логической единице.
69
Таблица 1
1
2
3
4
В таблице 1 схематично проиллюстрирована работа устройства при четырѐх возможных комбинациях входных сигналов. При этом открытые транзисторы изображаются в виде
замкнутых контактов переключателей, а закрытые транзисторы - в виде разомкнутых контактов. Управляющие сигналы x1 и x2 подаются на затворы полевых транзисторов (на рисунках цепи управления не показаны). Такое изображение допустимо, так как транзисторы работают в ключевом режиме, а входное сопротивление полевого транзистора высокое. Заметим, что номера рисунков в таблице совпадают с номерами строк в таблице истинности. Рассмотренные примеры показывают, как аппаратно (схемотехнически) реализуются некоторые
логические операции.
Условное графическое обозначение элемента И-НЕ показано на рисунке. Кружок на выходе логического элемента говорит о том, что элемент
выполняет операцию инверсии (отрицание, НЕ). Символ «&» внутри прямоугольника свидетельствует о том, что данный элемент выполняет логическую операцию конъюнкции (логическое умножение, И). Два указанных
символа совместно обозначают логическую операцию И-НЕ. Заметим, что
зарубежные стандарты определяют иное изображение логических элементов.
Элементы, реализующие другие логические функции, имеют другую конфигурацию
(другую схему построения). Заметим, что на базе логических элементов строятся все цифровые устройства: дешифраторы, сумматоры, триггеры, регистры и т.д.
Рассмотрим принцип действия ещѐ одного важного элемента цифровых ЭВМ – триггера. Существует несколько широко распространѐнных типов триггеров: RS, D-, T-, JK– триггеры и др. Простейшими являются RS–триггеры, причѐм
Q
они входят в состав более сложных конструкций. Триггеры D-типа испольT
S
зуются для построения регистров. T-триггеры являются счѐтными, они делят
Q
частоту входного сигнала на два и служат для построения двоичных счетчиR
ков. JK–триггеры являются универсальными. На их основе можно реализо70
вать любой из перечисленных типов триггеров.
Условное графическое обозначение RS-триггера показано на рисунке. Буквы RS являются аббревиатурой английских слов Reset (сброс) и Set (установка). Триггер управляется сигналом логического нуля (активный сигнал 0). Если на Sвход подать сигнал логического нуля, а на R-вход подать сигнал логической единицы, то триггер установится в единичное
состояние. При этом на прямом выходе Q будет присутствовать сигнал логической единицы, а на инверсном выходе Q сигнал логического нуля. Если теперь на оба входа триггера
подать сигналы логической единицы, то он перейдет в режим
хранения информации. Его состояние не изменится до прихода новых управляющих сигналов, поступающих на входы R и
S.
Принцип действия RS-триггера удобно пояснить с помощью рисунка, на котором изображѐн триггер, построенный на логических элементах И-НЕ. С помощью переключателей 1
и 2 легко изменять сигналы на входах логических элементов DD1 и DD2. Показанное на рисунке состояние соответствует подаче логического нуля на элемент DD1 и логической единицы на элемент DD2. Заметим, что логическому нулю соответствует потенциал, близкий к
нулю (поэтому переключатель 1 подсоединен к корпусу, земле устройства). Логической единице соответствует некоторое положительное напряжение. По этой причине вход R триггера
через переключатель 2 и резистор подсоединен к источнику напряжения +U.
В соответствии с таблицей истинности для логического элемента И-НЕ на выходе Q
элемента DD1 появится сигнал логической единицы (светодиод Н1 загорится). Сигнал логической единицы с выхода элемента DD1 подается на верхний вход элемента DD2, на нижний
вход которого в это время также подается сигнал логической единицы. В соответствии с таблицей истинности элемента И-НЕ на выходе DD2 появится логический ноль (светодиод Н2
погаснет). Триггер установится в единичное состояние. Такая комбинация входных сигналов
соответствует режиму установки триггера в единичное состояние.
Если теперь переключатель 1 переместить в верхнее положение (таким образом подается сигнал логической единицы на вход S), то триггер перейдет в режим хранения информации. Его состояние останется прежним, так как на нижний вход элемента DD1 подается
сигнал логического нуля.
Чтобы изменить состояние триггера (перевести его в нулевое состояние), следует на
вход R подать сигнал логического нуля. Для этого нужно переключатель 2 перевести в нижнее положение. Сигнал логического нуля на нижнем входе элемента DD2 вызовет появление
логической единицы на инверсном выходе триггера NQ. В результате загорится светодиод
Н2, а сигнал логической единицы с выхода DD2 попадет на нижний вход элемента DD1. В
соответствии с таблицей истинности, наличие двух единиц на входах приведет к появлению
логического нуля на выходе элемента И-НЕ. Триггер перейдет в нулевое состояние. Указанная комбинация входных сигналов соответствует режиму записи нуля.
Триггеры являются основными элементами, из которых состоит статическая оперативная память. На триггерах строят счетчики и регистры. С помощью регистров, например,
осуществляется операция сдвига, которая нужна для реализации операции умножения. С помощью регистров преобразуют параллельный код в последовательный (и наоборот). Это необходимо, например, для работы модема. С помощью модема многоразрядные двоичные
слова, циркулирующие внутри ЭВМ, передаются по двухпроводной линии связи.
71
На рисунке показан четырехразрядный регистр памяти, построенный на синхронных D-триггерах. Информация в триггеры DD1…DD4 записывается при поступлении
на входы C1 разрешающего (синхронизирующего) импульса. Синхронизирующий сигнал формируется с помощью
ключа С. В каждый триггер записывается та информация,
которая присутствует на входе D. Например, на входе D
триггера DD1 присутствует сигнал логической единицы,
поэтому он установится в единичное состояние и светодиод Н1 загорится. В это же время триггер DD2 установится
в нулевое состояние, так как на его D-входе присутствует
логический ноль. Этот сигнал сформирован с помощью
ключа 2.
4.2.2. Арифметико-логическое устройство
Арифметико-логическое устройство (АЛУ) – важнейшая часть процессора. Оно позволяет выполнять различные арифметические и логические операции над операндами. Вид выполняемой АЛУ операции определяет программист, составляющий управляющую программу. Программа, хранящаяся в оперативной памяти, по частям передается в процессор, где и
выполняется. Таким образом, процессор лишь исполняет указания программиста, выраженные в виде совокупности команд (программы).
Процессор (как и все другие цифровые устройства) воспринимает управляющие сигналы и операнды в виде двоичных чисел. Результат также формируется в виде двоичных чисел.
Однако программисты составляют управляющие программы чаще всего на языках программирования высокого уровня (Паскаль, Делфи, Си…). В момент трансляции программы ее
текст превращается в набор двоичных чисел (объектный код). Именно эти двоичные числа
заставляют процессор (в том числе и АЛУ) выполнять операции, запланированные программистом.
Структурная схема АЛУ показана на рисунке.
Два многоразрядных операнда (числа, буквы, символы и т.д.), подлежащие обработке в
АЛУ, подаются на входы А и В. Результат
выполнения операции появляется на выходе
F. Вид операции, выполняемой в АЛУ, определяется сигналами, которые подаются на
F
A
АЛУ
входы S и M.
Таким образом при сложении чисел 2
B
и 3 одно из них подается на вход А, а второе
на - вход В. В этот момент времени на шиS
ны S и М подаѐтся двоичное число, которое
M
на естественом языке означает команду
Cn+1
(приказ) «Выполнить арифметическое слоC0
жение». Результат сложения – число 5 появляется на выходе F.
У входов M и S одинаковое назначе-
72
ние – определять вид выполняемой в АЛУ операции. Эти входы разделены лишь с методической целью. Сигнал на входе М (Mode – режим) определяет, какую операцию будет выполнять АЛУ – логическую или арифметическую.
Рассматриваемый простейший тип АЛУ (К155ИП3, американский аналог - 74181) имеет малую разрядность – лишь 4 бита. По этой причине разработчики АЛУ предусмотрели
возможность увеличения (наращивания) разрядности устройства (в случае возникновения
такой необходимости). Увеличить (нарастить) разрядность АЛУ можно за счет использования нескольких секций (микросхем) и двух специальных шин C0 и Cn+1. За счет этого можно
создать АЛУ, у которого число разрядов равно 8, 12, 16 и т.д.
Шина C0 при создании многоразрядных конструкций используется для приема переноса, формируемого в предыдущей (младшей) секции (микросхеме). Шина Cn+1 служит для передачи арифметического переноса из младшей секции в старшую секцию. Другими словами:
если у разработчика в наличии имеется n-разрядное АЛУ, то для получения разрядности 2n
нужно взять ещѐ одну аналогичную микросхему, объединить параллельно входы S и M, а
выход Cn+1 младшей секции соединить с входом C0 старшей секции (микросхемы).
Логические и арифметические операции отличаются тем, что при выполнении логических операций вычисления производятся поразрядно. Между собой взаимодействуют только
одноименные разряды (например, второй разряд операнда А и второй разряд операнда В), и переносы между разрядами не допускаются. При выполнении арифметических операций в случае необходимости осуществ1100
ляются переносы между соседними разрядами (например, перенос от
1010
младшего разряда к старшему).
0110
Проиллюстрируем сказанное двумя примерами: логической операцией Исключающее ИЛИ и арифметическим сложением по модулю два.
Обе операции выполняются по одинаковым правилам, но в арифметическом сложении допускается перенос между разрядами.
Предположим, что имеется два десятичных числа A = 12D и B = 10D.
1100
В двоичной системе счисления эти числа имеют вид: A =1100B и B
+ 1010
=1010B.
В результате выполнения логической операции Исключающее ИЛИ
1’0110
получается четырехразрядное число 0110B. После выполнения арифметического сложения на выходе F появляется четырехразрядное число 0110B,
а на шине Cn+1 присутствует логическая единица. Этот сигнал свидетельствует о возникновении переноса в пятый разряд, то есть в следующую старшую секцию
восьмиразрядного АЛУ.
Работу четырехразрядного АЛУ можно описать выражением:
Fi
(Ai BiS3
Ai BiS2 )
(BiS1 BiS0
Ai )
(C0
M),
В этой формуле индексами i отмечены номера разрядов операндов A и B и выходного
сигнала F.
Если на управляющие входы такого АЛУ подать сигналы M = 1, S3 = 1, S2 = 0, S1 = 1, S0
= 1, то АЛУ будет выполнять операцию Fi = Ai Bi, то есть операцию конъюнкции (логическое умножение). Этот результат получается при подстановке исходных данных в приведенную формулу. Изменяя пять управляющих сигналов M, S3,…S0, можно «заставить» такое
АЛУ выполнить 32 различные операции (16 логических и 16 арифметических).
Так присутствие на управляющих входах двоичного числа M = 0, S3 = 1, S2 = 0, S1 =0, S0
= 1 заставит АЛУ выполнить арифметическое сложение чисел, поступивших на шины A и B,
и к полученному результату прибавить значение переноса из предыдущей секции, то есть Fi
= Ai + Bi + C0.
Таблица показывает, как, изменяя управляющие сигналы, можно задавать вид выполняемой операции.
73
Управляющие сигналы
S3
S2
S1
S0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
Выполняемые операции
Логические М = 1
Арифметические М = 0
A Co
A
(A
A B
A B
B) Co
0000
(A B) Co
1111 C 0
A B
A (A B) C o
( A B) ( A
B
A
B
A
B
A B Co
1111 ( A
A B Co
B
(A
B
B) C o
A (A B) C o
A B
A
B) C o
B ) ( A B) C o
A B
1111 (A B) C o
1111
A B
A A Co
(A B) A C o
A B
(A B) A C o
A
1111 A C o
4.2.3. Память
Что-то с памятью моей стало…
Все, что было не со мной, помню.
Я от памяти такой горблюсь…
Р. Рожденственский
Память — функциональная часть ЭВМ, предназначенная для записи, хранения и выдачи информации. В ЭВМ запоминание информации происходит в ОЗУ (оперативное запоминающее устройство), ПЗУ (постоянное запоминающее устройство), ВЗУ (внешние запоминающие устройства), кэш-памяти (недоступный для программистов и пользователей буфер),
CMOS-памяти (здесь хранятся системные данные) и РОН — внутренних регистрах процессора (используются при вычислениях). ОЗУ, ПЗУ, РОН, кэш-память, CMOS-память относятся к электронной памяти, а ВЗУ — в основном, к электромеханической памяти. Внешняя
Flash-память является электронной, выполненной на полупроводниковой подложке.
Заметим, что сокращение CMOS (Complement Metal Oxide Semi-conductor — комплементарные пары металл-оксид-полупроводник, отечественная аббревиатура — КМОП) указывает на технологию изготовления данной памяти, а не на ее функциональное назначение.
Точнее, ее можно было бы назвать памятью системных установок (конфигурации).
Существует еще одно понятие — видеопамять — электронная память, размещенная
на видеокарте (графическом адаптере). Она используется, как правило, в качестве буфера
для хранения кадров динамического изображения.
ОЗУ и ПЗУ совместно образуют так называемую основную память (ОП).
Объем и быстродействие памяти во многом определяют производительность всего
компьютера.
74
4.2.4. Оперативная память
ОЗУ — это наибольшая часть основной памяти. ОЗУ предназначено для хранения переменной (текущей, быстро изменяющейся) информации и допускает изменение своего содержимого в ходе выполнения процессором вычислений. Это означает, что процессор может выбрать (режим считывания) из ОЗУ команду или данные и после обработки поместить полуЭлементы памяти
Код
адреса
ЭП
1
i
Выход
m
Зп/сч
Вход
Матрица накопителя
ченный результат (режим записи) в ОЗУ. Размещение новых данных возможно на тех же местах (в тех же ячейках памяти), где ранее находились исходные данные. Понятно, что прежние
данные будут стерты. ОЗУ позволяет кратковременно (до выключения питания) хранить записанную информацию. Данные, адреса и команды, которыми процессор обменивается с памятью, часто называют операндами.
Выполняемая в данный момент компьютером программа (активная) чаще всего располагается в ОЗУ (и лишь иногда в ПЗУ или КЭШ).
Основной составной частью ОЗУ является массив элементов памяти, объединенных в матрицу накопителя. Элемент памяти (ЭП) может хранить один бит информации (запоминать
два состояния 0 или 1).
Каждый ЭП имеет свой адрес (по-другому можно сказать — порядковый номер). Для
обращения к ЭП (с целью записи или считывания информации) его необходимо «выбрать» с
помощью кода адреса. Оперативная память является электронной памятью, потому что она
создается с помощью микросхем — изделий микроэлектроники.
Микросхемы памяти бывают одноразрядные и многоразрядные.
В одноразрядных микросхемах памяти код адреса (иногда говорят просто — адрес)
выбирает один элемент памяти из множества элементов, расположенных в матрице накопителя. После выбора элемента в него можно записать информацию или, наоборот, считать из
него один бит информации. Специальный управляющий сигнал Зп/сч (Write/Read) указывает
микросхеме, что она должна делать: записывать или считывать информацию. Управляющие
сигналы на этот вход поступают в цифровом виде от процессора по шине управления. В одноразрядных микросхемах памяти имеются один вход для записи информации и один выход
для ее считывания.
Разрядность кода адреса m в одноразрядных микросхемах памяти определяет информационную емкость, т. е. число ЭП в матрице накопителя. Емкость такой микросхемы рассчитывается по формуле 2m. Например, если у одноразрядной микросхемы памяти имеется
10 адресных входов, то информационная емкость составит N = 210 = 1024 бита = 1 Кбит.
Некоторые микросхемы памяти имеют многоразрядную структуру, которая называется
словарной. У таких микросхем памяти имеется несколько информационных входов и столько же выходов. Поэтому они допускают одновременную запись (или считывание) многоразрядного кода, который принято называть словом. Один адрес позволяет считать (или запи75
сать) информацию сразу из нескольких ЭП.
па элементов памяти, из которых одновременно
x0 ЭП ЭП
a0
ЭП
считывается (или записывается) информация, на16
0
240
зывается ячейкой памяти. Таким образом, ячейка
a1
x1 ЭП ЭП
ЭП
памяти — это несколько ЭП, имеющих общий ад241
17
1
рес.
DCR
a2
На английском языке оперативная память называется Random Access Memory (RAM) — память
a3
x15 ЭП ЭП
ЭП
с произвольным доступом. Термин «произвольный
255
15
31
y0
y1
y15
доступ» означает, что можно считать (записать)
информацию в любой момент времени из любого
DCC
К561РУ2
(в любой) ЭП. Заметим, что существует и другая
организация памяти, при которой, прежде чем
считать нужную информацию, нужно «вытолкa4
a5 a6
a7
нуть» ранее записанные операнды.
Используется два основных типа оперативной памяти: статическая (SRAM — Static RAM) и динамическая (DRAM — Dynamic
RAM).
Эти две разновидности памяти различаются быстродействием и удельной плотностью
(емкостью) хранимой информации. Быстродействие памяти характеризуется двумя параметрами: временем доступа (access time) и длительностью цикла (cycle time). Эти величины, как правило, измеряются в наносекундах. Чем меньше эти величины, тем выше быстродействие памяти.
Время доступа представляет собой промежуток времени между формированием запроса на чтение информации из памяти и моментом поступления из памяти запрошенного машинного слова (операнда).
Длительность цикла определяется минимальным допустимым временем между двумя
последовательными обращениями к памяти.
В статической памяти элементы построены на триггерах — схемах с двумя устойчивыми состояниями. Для построения одного триггера требуется 4—6 транзисторов. После записи информации в статический элемент памяти он может хранить информацию сколь угодно долго (пока подается электрическое питание).
Конструктивно микросхема памяти выполняется в виде прямоугольной матрицы, причем ЭП располагаются на пересечении строк и столбцов. При обращении к микросхеме статической памяти на нее подается полный адрес, который разбивается на две части. Одна
часть адреса используется для выбора строк матрицы накопителя, а вторая — для выбора
столбцов.
На рисунке приведена структурная схема микросхемы памяти К561РУ2, у которой 8
адресных входов: a7a6, …, a0. Это позволяет разместить в матрице 28 = 256 элементов памяти. Адресные входы разделены на две равные части (матрица квадратная). Младшая часть
адреса a3a2a1a0 позволяет выбрать одну из шестнадцати строк x0, x1, x2, …, x15. При помощи
старшей части адреса a7a6a5a4 происходит выбор одного из шестнадцати столбцов y0, y1, …,
y15.
Чтобы выбрать какой-то ЭП, нужно активизировать строку и столбец, на пересечении
которых расположен нужный ЭП.
Например, чтобы выбрать ЭП 0, нужно на все адресные входы микросхемы подать нули, тогда дешифратор строк DCR (Decoder Row) и дешифратор столбцов DCC (Decoder
Column) активизируют соответственно строку x0 и столбец y0. На их пересечении располагается ЭП 0, с которым можно произвести обмен информацией.
Аналогично выбираются другие ЭП. Так, для выбора ЭП 241 нужно активизировать
строку x1 и столбец y15. Для этого на младшую группу адресов (a3, …, a0) нужно подать двоичный код 0001, а на старшую группу адресов (a7, …, a4) — все единицы.
76
Статическая память имеет высокое быстродействие и низкую удельную плотность размещения хранящихся данных. В динамической памяти ЭП построены на основе полупроводниковых конденсаторов, занимающих гораздо меньшую площадь, чем триггеры в статических ЭП. Для построения динамического элемента памяти требуется всего 1—2 транзистора.
Подключение и отключение конденсаторов в динамических ЭП осуществляется с помощью полупроводниковых транзисторов (ключей), которые в закрытом состоянии имеют
сопротивление порядка 1010 Ом. Несмотря на то, что сопротивление закрытого транзистора
велико, оно все же, конечно, и по этой причине через закрытый транзистор происходит разряд конденсатора. Самопроизвольный разряд конденсатора не позволяет без специальных
мер долгое время хранить записанную информацию (накопленный заряд). Для устранения
влияния нежелательного разряда конденсатора через так называемые паразитные цепи утечки приходится периодически подзаряжать конденсаторы. Этот процесс называется регенерацией заряда.
Регенерация (восстановление) заряда должна происходить достаточно часто. Подтверждением этого являются следующие рассуждения. Так как необходимо получить высокую удельную плотность хранения информации, емкость конденсатора не может быть
большой (практически величина емкости запоминающих конденсаторов составляет порядка 0,1 пФ). Постоянная времени разряда определяется как произведение емкости конденсатора на сопротивление закрытого транзистора. Это произведение составляет величину порядка
= RC = 1010 0,1 10-12 = 10-3 c.
Таким образом, постоянная времени разряда составляет одну миллисекунду и, значит,
регенерация заряда должна происходить примерно тысяча раз в секунду.
Необходимость частой подзарядки запоминающих конденсаторов в матрице накопителя приводит к снижению быстродействия динамической памяти. Однако, благодаря малым
размерам конденсатора и малому числу дополнительных элементов, удельная плотность
хранения информации динамической памяти всѐ же выше, чем у статической памяти.
Емкость микросхем динамической памяти составляет десятки Мбит на один корпус.
Возможность размещения на одном кристалле большого числа ЭП вызывает другую конструкторскую проблему: необходимо использовать большое число адресных входов. Для снижения остроты этой проблемы используют мультиплексирование.
Мультиплексирование — это технический прием временного уплотнения информации,
благодаря которому удается по одним и тем же электрическим цепям передать разную информацию для различных приемников (потребителей) информации. Так, конструкторы
вдвое уменьшают число адресных входов у микросхем памяти. Адрес делят на две равные
части и вводят его в микросхему поочередно: сначала младшую часть, а затем старшую
часть адреса. При этом первая часть осуществляет выбор нужной строки в матрице накопителя, а вторая часть активизирует соответствующий столбец.
Для того чтобы микросхема памяти «знала», какая часть адреса вводится в данный момент времени, ввод каждой группы адреса сопровождается соответствующим управляющим
сигналом.
Так, синхронно с вводом младшей части адреса на микросхему подается сигнал RAS
(Row Address Strobe) — сигнал стробирования (сопровождения) адреса строки. Практически
одновременно с вводом старшей части адреса на микросхему памяти подается сигнал CAS
(Column Address Strobe) — стробирование адреса столбца.
77
4.2.5. Внешние запоминающие устройства
ВЗУ — это, в основном, электромеханические запоминающие устройства, которые характеризуются большим объемом хранимой информации (сотни гигабайт) и низким (по
сравнению с электронной памятью) быстродействием. К ВЗУ относятся: накопители на жестких магнитных дисках (НЖМД), накопители на оптических дисках (НОД). К ВЗУ можно
отнести полностью электронную Flash-память.
Накопители на оптических дисках часто называют английским термином CD-ROM
(Compact Disk Read Only Memory). В переводе эта английская аббревиатура означает: компактный диск для чтения. Произносится сокращение так: сиди-ром. Однако этим же термином обозначают и сами оптические диски, поэтому здесь возможны смысловые ошибки. Поэтому разумнее устройства называть накопителями на оптических дисках (НОД), проигрывателями или приводами.
В зависимости от типа носителя ВЗУ можно подразделить на накопители на магнитной
ленте, дисковые магнитные накопители, дисковые оптические накопители и электронную
память.
Носитель — это материальный объект, способный хранить информацию. Например, в
первых ЭВМ носителями информации являлись бумажные ленты и карты, на которых были
пробиты (перфорированы) отверстия. Наличие или отсутствие отверстия соответствовали
логической единице и логическому нулю.
При магнитной записи информации с помощью записывающей головки происходит
изменение намагниченности носителя. Носитель изготавливают из ферромагнитного материала с прямоугольной петлѐй гистерезиса. Располагается носитель на подложке, в качестве
которой может выступать пластмассовая пленка, металлические или стеклянные диски.
На рисунке показан график изменения индукции носителя B при изменении напряженности внешнего магнитного поля H. Этот график называется петлей гистерезиса. Особенностью ферромагнетиков является то, что при увеличении и уменьшении напряженности
внешнего магнитного поля Н индукция В принимает разные значения. Следует обратить
внимание на следующий момент: если напряженность внешнего магнитного поля равна нулю, то индукция носителя в зависимости от предыстории может принять одно из двух значений Br или –Br.
Эти значения называются остаточной индукцией. Одно из них ставят в соответствии
логической единице, а второе значение остаточной индукции ставят в соответствие логическому нулю.
Реализация записи логических единиц и логических нулей осуществляется следующим
образом.
Ток, протекающий по обмотке записывающей головки, создает в сердечнике (магнитопроводе) магнитный поток. Через узкий зазор в сердечнике магнитный поток намагничивает
78
носитель в одном из двух направлений, что зависит от направления протекающего по обмотке тока. Разные направления намагниченности носителя соответствуют логическому нулю и
логической единице.
Таким образом, записывающая головка — это маленький электромагнит, который своим электромагнитным полем изменяет ориентацию магнитных доменов в носителе, в зависимости от полярности протекающего по обмотке тока.
При считывании информации с ленты или диска движущийся намагниченный носитель
индуцирует в считывающей головке электродвижущую силу. Полярность возникающего на
обмотке напряжения зависит от направления намагниченности носителя.
Ток
Обмотка
Сердечник
Магнитный
поток
Носитель
Направление
движения
V
Подложка
Остаточная
индукция
Винчестер (жѐсткий диск) содержит набор пластин, представляющих собой чаще всего
металлические диски, покрытые магнитным материалом (гамма-феррит-оксид, феррит бария, окись хрома и т. п.) и соединенные между собой при помощи шпинделя (вала, оси).
Жесткие диски изготавливаются из алюминия, латуни, керамики или стекла (толщина
примерно 2 мм). Для записи данных используются обе поверхности дисков. Вращение дисков и радиальное перемещение головок осуществляется с помощью двух электродвигателей.
Данные записываются или считываются с помощью головок записи и считывания, по
одной на каждую поверхность диска. На следующем рисунке упрощенно показаны головки,
расположенные только с одной стороны диска (фактически их в 2 раза больше).
Запись информации на диск ведется по строго определенным местам — концентрическим дорожкам (трекам), причем дорожки делятся на секторы. В одном секторе может размещаться 128, 256, 512 или 1024 байт информации. Число секторов на внешних дорожках
больше, чем число секторов на внутренних дорожках. Обмен данными между НМД и ОЗУ
осуществляется последовательно целым числом секторов.
79
Головки
Диски
Шпиндель
Кронштейн
Специальный двигатель с помощью кронштейна позиционирует головку над заданной
дорожкой (перемещает ее в радиальном направлении). При повороте диска головка располагается над нужным сектором. Очевидно, что все головки перемещаются одновременно и
считывают информацию с одинаковых дорожек разных дисков. Дорожки винчестера с одинаковыми порядковыми номерами, расположенные на разных дисках, называются цилиндром.
Вся конструкция винчестера заключается в герметичный корпус. Внутренняя полость
винчестера заполняется очищенным от пыли воздухом, а внутри корпуса поддерживается
атмосферное давление. При вращении дисков они создают сильный поток воздуха, который
постоянно очищается фильтром. Система очистки воздуха позволяет удалить частицы пыли,
диаметр которых более 0,3 мкм.
При включении питания и достижении некоторой критической скорости вращения
шпинделя аэродинамическая подъемная сила воздуха становится достаточной для преодоления силы прижима головок к поверхности дисков. В результате головки поднимаются
(«всплывают») над поверхностями дисков на высоту в несколько нанометров. С этого момента времени и до снижения скорости ниже критической головки «висят» на воздушной
подушке и не касаются поверхностей дисков.
Во время работы винчестера постоянно работает система слежения за радиальным положением головок над дисками. Из непрерывно считываемого сигнала выделяется сигнал
рассогласования, который подается на схему обратной связи. Если головки отклоняются от
середины дорожки, то мгновенно возникает управляющий сигнал, стремящийся с помощью
специальных устройств вернуть их на место.
Производительность диска зависит от следующих величин: времени доступа и скорости передачи данных.
Время доступа — это время, необходимое для позиционирования (перемещения) головок на соответствующую дорожку и ожидания нужного сектора. Характерное среднее время
перемещения головки между двумя случайно выбранными дорожками лежит в диапазоне
8 — 20 мс. Время перехода головок на соседнюю дорожку (можно сказать, на соседний цилиндр) значительно меньше и обычно составляет 2 мс. Чтобы нужный сектор повернулся до
совмещения с головкой, требуется некоторое время. После этого данные могут быть записаны или считаны. Для современных дисков время их полного оборота лежит в пределах 8—16
мс, а среднее время ожидания сектора составляет 4—8 мс.
По способу организации записи и считывания оптические диски могут быть разделены на три класса: только для чтения (Read Only), с однократной записью и многократным
считыванием (Write Once Read Many) и с многократной перезаписью информации (Erasable).
В основе записи информации с помощью лазера лежит модуляция интенсивности излучения лазера дискретными значениями 0 и 1. Излучение достаточно мощного лазера оставляет на поверхности диска метки, вызванные воздействием луча на металл. Поверхность
диска предварительно покрывается тонким слоем металла — теллура.
80
При записи логической единицы луч мощного лазера прожигает в пленке теллура микроскопическое отверстие. Если единицы следуют одна за другой, то за счет вращения диска
во время записи отверстие оказывается вытянутым вдоль дорожки. Начинается запись с
внутренних дорожек. Запись ведется с большой плотностью — расстояние между соседними
дорожками 1,6 мк. Длина всей спиральной дорожки более 5 км.
Таким способом изготавливается первичный «мастер-диск», с которого затем производится тиражирование всей партии дисков методом литья под давлением. Полученные копии
«мастер-диска» называют порой лазерными дисками, хотя более точное название — оптические диски.
При считывании информации с оптического диска луч считывающего лазера отражается от поверхности диска, кроме мест, выжженных при записи. Отраженные лучи с помощью
оптической системы, состоящей из призм и линз, направляются на фотодетектор. Делитель
луча отправляет отраженный луч света по отдельной траектории к фотодетектору. Напряжение на выходе фотодетектора будет некоторым образом воспроизводить (повторять) впадины и бугорки, имеющиеся на оптическом диске.
Технология записи информации на перезаписываемые диски иная.
Рассмотрим одну из них.
Запись информации в магнитооптических накопителях осуществляется на диск из
стекла, на который нанесен магнитный слой из сплава тербия, железа и кобальта. Этот сплав
Диск
Фотодетектор
Линза Отражѐнный
луч
Линза
Лазер Падающий
луч
Зеркало
Делитель луча
имеет низкую температуру Кюри (около 145°С). Напомним, что температура Кюри — это
такая температура, при которой появляется возможность перемагнитить данный сплав. Свое
название эта температура получила в честь известного физика П. Кюри.
С помощью лазера нагревают небольшой участок диска до температуры Кюри и для
записи информации прикладывают магнитное поле нужного направления. После остывания
данный участок запоминает направление намагниченности (направление внешнего магнитного поля).
Для считывания данных используют эффект Керра, который проявляется в изменении
направления поляризации лазерного луча, отраженного от намагниченной поверхности.
81
Электронная Flash-память позволяет переносить информацию с одной ЭВМ на другую. Flash-память представляет собой микросхему, которая подключается к компьютеру через порт. Отсутствие механических деталей (а значит высокая надежность), малые габариты
и большие объемы памяти (от нескольких сотен мегабайт до нескольких гигабайт) делает
этот вид памяти весьма популярным среди пользователей. Безусловным достоинством Flashпамяти является еѐ энергонезависимость. Записанная информация может храниться в течении ста лет.
4.2.6. Устройства ввода информации
Мышь! Животное, путь которого усеян
упавшими в обморок женщинами.
С.Джонсон
Пользователь может управлять работой компьютера при помощи различных устройств:
клавиатуры, джойстика, трекбола, мыши, сенсорного экрана, микрофона, светового пера,
тачпада. Перечисленные устройства относятся к устройствам ввода информации.
Устройства ввода информации служат также для преобразования информации, поступающей с периферийных устройств (например, датчиков температуры, давления), в цифровой вид.
Следующие устройства ввода информации: мышь, джойстик, трекбол, трекпойнт,
трекпад, тачпад порой называют манипуляторами.
Самым известным устройством ввода информации является клавиатура. Нагрузка на
это устройство, пожалуй, наибольшая. Клавиатура проектируется таким образом, чтобы каждая клавиша выдерживала 30—50 миллионов нажатий.
Мышью называют устройство, которое обеспечивает преобразование своего положения на плоской поверхности стола в позицию курсора на экране дисплея. Внешне мышь
представляет собой коробочку, которая перемещается по столу.
Электромеханическая мышь преобразует своѐ пространственное положение в пространственное положение курсора с помощью шарика. При вращении шарика происходит
перекрытие лучей света, идущих от светодиодов к фотодиодам.
Кроме электромеханической мыши разработана оптическая мышь.
Она перемещается по специальному планшету, на поверхность которого нанесена мелкая сетка из разноцветных перпендикулярных линий. Специальный фотоэлектрический узел
определяет направление и скорость перемещения мыши. В этой конструкции нет механических частей, и ее надежность выше.
Еще удачнее конструкция электронной мыши, которая использует фотоэлектрическую
матрицу. По сути, такая мышь содержит в себе несложный фотоаппарат, с помощью которого происходит фотографирование всего, что находится под мышью. Сопоставление соседних
82
фотографий позволяет определить направление и скорость движения манипулятора. Положительной особенностью такой мыши является использование отражающей поверхности
практически любого вида.
Трекбол (ручной шаровой манипулятор) представляет собой устройство, в котором
перемещение курсора осуществляется вращением шарика,
частично выступающего над плоской поверхностью. В результате поворотов шарика оптические датчики вырабатывают импульсы, соответствующие скорости и направлению
вращения шарика. Трекбол — это перевернутая электромеханическая мышь, в котором шар вращается рукой.
При выборе предметов (например, в магазине) человек
порой показывает на нужный объект пальцем. Именно таким
образом вводится информация в ЭВМ с помощью сенсорных
экранов (СЭ).
По принципу действия СЭ разделяются на ультразвуковые, фотоэлектрические, резистивные и емкостные экраны. Главная задача СЭ состоит в определении координаты прикосновения пальца к экрану. Определив координату, дальше можно с помощью меню управлять работой ЭВМ.
В ультразвуковых СЭ по краям экрана размещаются ультразвуковые преобразователи
(датчики), которые создают на поверхности экрана акустические волны. Ультразвуковые колебания расходятся по стеклу монитора подобно кругам на воде. Ультразвуковые преобразователи одновременно выполняют функции передатчика и приемника акустических волн.
Время прохождения от передатчика до приемника постоянно, если акустическая волна не
наталкивается на какой-либо возмущающий объект (палец). Точку прикосновения можно
достаточно точно определить методом локации путем измерения времени прихода отраженных волн. Аналогично в аэропорту радиолокатор определяет расстояние до самолета.
В фотоэлектрическом СЭ монитор освещается линейками светодиодов, расположенными по нижнему и правому краям дисплея. С левой и верхней сторон экрана установлены
линейки фотодиодов. В результате образуется матрица из световых лучей, затемнение которых позволяет определить вертикальную и горизонтальную координаты точки прикосновения к экрану.
Емкостные СЭ представляют собой матрицу конденсаторов, которые изменяют свою
емкость в месте прикосновения пальца к экрану. В резистивных СЭ измеряется электрическое сопротивление двух соприкасающихся пленок.
Цифровые (графические) планшеты — диджитайзеры обеспечивают перенос изображения с накладываемого листа бумаги в ЭВМ с помощью перемещения по планшету специального указателя. Диджитайзеры позволяют создавать чертежи сразу в электронном виде. Работа
с графическим планшетом аналогична рисованию карандашом. Особенно они удобны для
формирования штриховых рисунков и чертежей.
У графического планшета высокая разрешающая способность (свыше 4800 dpi против
200—400 dpi у мыши). Заметим, что символы dpi означают — число точек на дюйм (dot per
inch).
При контакте с поверхностью планшета указатель обретает чувствительность к нажатию (256 уровней или градаций) и наклону относительно плоскости планшета.
Ввод плоского изображения в ОЗУ обеспечивает сканер. Сканер исключает утомительную процедуру введения текста с помощью клавиатуры и формирование рисунка с помощью
мыши. Полученную копию изображения можно редактировать: изменять масштаб, добавлять
и удалять детали, изменять цвет и т. д. Электронную копию изображения можно длительное
время хранить на магнитном, оптическом или электронном носителе.
По своему конструктивному исполнению сканеры бывают ручные, планшетные, барабанные, проекционные и др.
83
На рисунке показана упрощѐнная конструкция сканера.
ПЗС
Уменьшающая
линза
Лампа
Копируемое
изображение
Копируемое изображение освещается источником света (как правило, флуоресцентная
лампа). При этом луч света осматривает (сканирует, разворачивает) каждый участок оригинала. Отраженный от бумажного листа луч света через оптическую систему попадает на
прибор с зарядовой связью (ПЗС).
В процессе сканирования на поверхности ПЗС формируется уменьшенное изображение копируемого объекта. ПЗС
осуществляет преобразование оптической картинки в электрические сигналы.
ПЗС представляет собой матрицу (прямоугольную таблицу), которая содержит большое число полупроводниковых
элементов (например, 2000  2000 элементов), чувствительных
к световому излучению. При этом в черно-белых штриховых
сканерах на выходе освещенных элементов с помощью контроллера формируется сигнал логической единицы, а на выходе неосвещенных элементов — сигнал логического нуля.
Штриховые черно-белые сканеры используются для копирования чертежей.
Существуют полутоновые черно-белые сканеры, в которых на выходе каждого элемента ПЗС с помощью аналогово-цифрового преобразователя формируется несколько (например, 256) оттенков (уровней) серого цвета. Эта конструкция сканеров позволяет копировать черно-белые фотографии и рисунки.
В цветных сканерах освещение копируемого изображения осуществляется либо от трех разноцветных источников света, либо от источника белого света, но поочередно через трехцветный фильтр.
При цветном сканировании происходит формирование изображения в полутоновом (сером) режиме с различными фильтрами или источниками света (красным, синим,
зеленым). Сигнал с выхода каждого элемента ПЗС кодируется восьмью битами, что дает 256 оттенков серого цвета. В результате такого преобразования можно получить более 16,7 миллионов возможных
цветовых оттенков (24-битное кодирование, 3 цвета по 8 бит).
84
4.2.7. Устройства вывода информации
После введения пользователем исходных данных компьютер должен их обработать в
соответствии с имеющейся программой и вывести полученные результаты для восприятия
их оператором или для использования автоматическими устройствами.
Выводимая информация может отображаться на экране монитора, печататься на бумаге
с помощью принтера или плоттера, воспроизводиться в виде звуков с помощью акустических колонок или головных телефонов, регистрироваться в виде тактильных ощущений
(технология виртуальной реальности), распространяться в виде управляющих сигналов (устройства автоматики), передаваться в виде электрических сигналов по сети.
Наиболее распространенными устройствами вывода информации являются мониторы
(дисплеи). Мониторы для формирования изображения используют электронно-лучевые
трубки (ЭЛТ) или жидкокристаллические матрицы.
Существуют мониторы, основанные на других физических принципах: плазменные,
люминесцентные и др.
Например, мониторы, изготовленные по технологии FED (Field Emission Display) базируются на эффекте создания эмиссии по всей поверхности экрана. В отличие от ЭЛТ источником электронов является не отдельная точка (электронная пушка), а целая излучающая
поверхность. Облучение производится через маску, в которой число отверстий равно числу
пикселей. За счет такой конструкции удается получить яркость изображения такую же, как у
мониторов с ЭЛТ, а габариты (толщину)- как у жидкокристаллических мониторов.
Перспективной считается новая технология изготовления мониторов — OLED (Organic
Light Emitting Diodes). Конструкция этих мониторов основана на использовании светоизлучающих диодов.
Принтеры, в зависимости от порядка формирования изображения, подразделяются на
последовательные, строчные и страничные. Принадлежность принтера к той или иной группе зависит от того, формирует ли он на бумаге символ за символом или сразу всю строку, а
то и целую страницу.
По физическому принципу действия принтеры делятся на следующие типы: термографические, лепестковые (ромашковые), матричные (игольчатые), струйные и лазерные.
Конструкция первых трех типов принтеров морально устарела, и они практически уже
не используются.
В матричных принтерах изображение формируется из точек ударами иголок по красящей ленте. Под действием управляющих сигналов, поступающих на электромагниты, иголки
«выколачивают» краску из ленты, оставляя следы на бумаге. В зависимости от конструкции
печатающая головка матричного принтера может иметь 9, 18 или 24 иголки. Все символы
формируются из отдельных точек.
Печатающие головки струйных принтеров вместо иголок содержат тонкие трубочки — сопла, через которые на бумагу выбрасываются капельки чернил. Печатающая головка
струйного принтера содержит от 12 до 64 сопел, диаметры которых тоньше человеческого
волоса.
Известно несколько принципов действия струйных печатающих головок.
В одной из конструкций на входном конце каждого сопла расположен маленький резервуар с чернилами. Позади резервуара располагается нагреватель (тонкопленочный резистор). Когда резистор нагревается проходящим по нему током до температуры 500 °С, окружающие его чернила закипают, образуя пузырек пара. Этот расширяющийся пузырек выталкивает из сопла капли чернил диаметром 50—85 мкм со скоростью около 700 км/ч.
В другой конструкции печатающей головки источником давления служит мембрана,
приводимая в движение пьезоэлектрическим элементом. Подача электрического напряжения
на пьезоэлемент вызывает его деформацию, которая используется для распыления чернил.
Во всех конструкциях принтеров электромеханические устройства перемещают печатающие головки и бумагу таким образом, чтобы печать происходила в нужном месте.
85
В лазерных принтерах используется электрографический принцип создания изображения. Процесс печати включает в себя формирование невидимого рельефа электростатического потенциала в слое полупроводника барабана с последующей его визуализацией. Визуализация (проявление) осуществляется с помощью частиц сухого порошка — тонера, наносимого на бумагу. Наиболее важными частями лазерного принтера являются полупроводниковый барабан, лазер и прецизионная оптико-механическая система, перемещающая луч.
Лазер генерирует тонкий световой луч, который, отражаясь от вращающегося зеркала,
Зеркало
Свет
Лазер
Ролик температурной
фиксации тонера
Прижимной
ролик
Бумага
Контейнер с тонером
Полупроводниковый
барабан
формирует электронное изображение на светочувствительном полупроводниковом барабане.
Поверхности барабана предварительно сообщается некоторый статический заряд. Для
создания электростатического заряда используется сетка или тонкий провод. При подаче на
провод высокого напряжения возникает коронный разряд, в результате которого вокруг провода появляется светящаяся ионизированная область пространства. За счет коронного разряда поверхность барабана равномерно заряжается.
Для получения изображения на барабане лазер должен включаться и выключаться в
соответствии с формируемым изображением, что обеспечивается схемой управления.
Управляющие сигналы поступают из ЭВМ в соответствии с хранящимся в памяти изображением. Вращающееся зеркало служит для разворота луча лазера в строку, формируемую на
поверхности барабана.
Когда луч лазера попадает на предварительно заряженный полупроводниковый барабан, заряд «стекает» с освещенной поверхности. Таким образом, освещаемые и неосвещаемые лазером участки барабана имеют разный заряд. В результате сканирования всей поверхности полупроводникового барабана на нем создается скрытое (электронное, не видимое для
человека) изображение.
Поворот барабана на новую строку осуществляет прецизионный шаговый двигатель.
Это смещение определяет разрешающую способность принтера и может составлять, например, 1/300, 1/600 или 1/1200 дюйма.
На следующем этапе работы принтера происходит проявление изображения, то есть
превращение скрытого электронного изображения в видимое изображение. При проявлении
изображения используется следующее физическое явление. Заряженные частицы тонера
притягиваются только к тем местам барабана, которые имеют противоположный заряд по
отношению к заряду тонера.
Когда видимое изображение на барабане построено, и он покрыт тонером в соответствии с изображением оригинала, подается лист бумаги, заряженный таким образом, что тонер
с барабана притягивается к бумаге. Прилипший порошок закрепляется на бумаге за счет на86
грева частиц тонера до температуры плавления. В результате этого формируется водоупорный отпечаток.
Цветные лазерные принтеры формируют изображение, последовательно нанося голубой, пурпурный, желтый и черный тонеры на фоточувствительный барабан.
В четырехпроходном цветном принтере скорость печати существенно меньше, чем у
черно-белого принтера. В однопроходном цветном принтере четыре картриджа с тонером
установлены в одной плоскости друг за другом, каждый рядом со своим бараном. Все цвета
наносятся за один проход вместо четырех, поэтому скорость формирования изображения повышается.
Кроме лазерных принтеров, существуют так называемые LED-принтеры (Light
Emitting Diode), которые получили свое название из-за того, что полупроводниковый лазер в
них заменен «гребенкой» (линейкой) светодиодов. В этом случае не требуется сложная механическая система вращения зеркала. Изображение одной строки на полупроводниковом
барабане формируется одновременно.
В табл. 1 приведены ориентировочные характеристики принтеров различной конструкции.
Таблица 1
Тип принтера
Характеристики
Матричный
Струйный
Лазерный
Разрешающая
60—240
300—720
300—1200
способность, dpi
Производительность
2
1—8
4—16
(листов А4 в минуту)
Плоттеры (или графопостроители) — устройства вывода графической информации.
Плоттеры используют для оформления больших плакатов, чертежей, географических карт,
эскизов печатных плат, диаграмм, гистограмм, рекламных баннеров.
Работа плоттера основана на механических и немеханических способах вывода графической информации. При механическом способе применяются карандаши, перья с чернилами. Аналогично принтерам в немеханических графопостроителях применяются термический, матричный, струйный и лазерный способы печати.
Вывод звуковой информации осуществляется с помощью акустических колонок и головных телефонов, которые подключаются через специальный адаптер (контроллер, звуковую плату).
Существует несколько способов воспроизведения звуков (в частности, музыкальных произведений). Частотный
способ (FM-синтез) воспроизведения звука основан на имитации звука реальных инструментов, а табличный способ
(wave-table-синтез) оперирует записанными в памяти звуками реальных инструментов.
Частотный синтез основывается на том, что для получения какого-либо звука используются математические
формулы (модели), которые описывают спектр частот конкретного музыкального инструмента. Звуки, получаемые по
этой технологии, характеризуются металлическим оттенком.
Волновой синтез основан на использовании цифровой записи реальных инструментов,
так называемых семплов (samples). Семплы — это образцы звучания различных реальных
инструментов, хранящиеся в памяти звуковой карты.
При воспроизведении звуков по технологии волнового синтеза пользователь слышит
звуки реальных инструментов, поэтому создаваемая звуковая картина ближе к естественному звучанию инструментов.
87
Семплы могут храниться двумя способами: либо постоянно в ПЗУ, либо загружаться в
оперативную память звуковой карты перед их использованием. Существует большой набор
разнообразных семплов, что позволяет формировать практически бесконечное разнообразие
звуков.
4.2.8. Жидкокристаллические мониторы
В ЖКМ используется физический эффект изменения пространственного положения
молекул кристаллов под действием электрического поля. При этом жидкие кристаллы выполняют как бы роль заслонок. При одних значениях управляющих сигналов заслонки открываются и пропускают свет. При других значениях управляющих сигналов свет через
жидкие кристаллы не проходит. В ЖКМ изображение формируется из большого числа точек
(пикселей), которые образуют прямоугольную матрицу, причем управление процессом формирования изображения идет цифровым способом. В ЖКМ одновременно изменяется свечение всех элементов целой строки матрицы.
Матрица ЖКМ (Liquid Crystal Display, LCD) сделана из вещества, находящегося в
жидком агрегатном состоянии, но обладающего свойствами кристаллов. Под действием
электрического поля жидкие кристаллы изменяют свою пространственную ориентацию (поворачиваются) и этим варьируют интенсивность проходящего света.
Монитор представляет собой многослойную конструкцию, которая содержит поляризаторы 1 и 2 (см. рисунок), матрицу управляющих транзисторов, цветные
фильтры, стеклянные пластины, между которыми размещены жидкие кристаллы.
Цветное изображение формируется за счет использования фильтров трех цветов (RGB). В цветных ЖКМ
используется известный психофизический эффект: комбинация красного, синего и зеленого цветов в разных
пропорциях позволяет получить любой цвет или цветовой оттенок.
Источник света (лампа) в ЖКМ располагается за
экраном (за матрицей). Заметим, что жидкокристаллический экран порой называют панелью. Изменяя электрическое напряжение на отдельных элементах матрицы
(транзисторах), можно управлять степенью прохождения
света от источника к наблюдателю.
Принцип действия ЖКМ основан на эффекте поляризации. Вначале свет проходит через первый поляризационный фильтр (Поляризатор 1), который характери88
зуется определенным углом поляризации. В ЖКМ установлен еще один поляризатор (Поляризатор 2). В зависимости от угла поляризации второго поляризатора, свет будет либо полностью им поглощаться (если угол поляризации второго фильтра перпендикулярен углу поляризации первого фильтра), либо беспрепятственно проходить (если углы совпадают).
Плавное изменение угла поляризации проходящего света позволяет регулировать интенсивность видимого (проходящего) света. Угол поляризации проходящего света изменяют с помощью жидких кристаллов. Их ориентация в пространстве зависит от величины управляющего напряжения, подаваемого на матрицу транзисторов.
Таким образом, изменяя управляющее напряжение на каждом транзисторе матрицы,
можно варьировать пространственное положение жидких кристаллов в данной точке. Изменение пространственного положения кристаллов приводит к изменению угла поляризации
света в данной точке экрана (а, значит, и к изменению интенсивности свечения данной точки
экрана).
89
4.3. Классификация ЭВМ
Порядок — это хаос,
к которому привыкли.
Роберт Лембке
Число классификаций ЭВМ велико, и они постоянно совершенствуются. Однако мала
вероятность появления такой исчерпывающей классификации ЭВМ, как, например, созданная Д.И. Менделеевым «Периодическая таблица химических элементов», которая позволяет
предсказать свойства неизвестного науке химического элемента.
Компьютеры могут быть классифицированы (упорядочены) по
различным признакам, в частности:
по принципу действия (аналоговые вычислительные машины АВМ, цифровые вычислительные машины - ЦВМ, гибридные вычислительные машины - ГВМ);
по функциональным возможностям (универсальные, проблемно-ориентированные и специализированные ЭВМ);
по числу потоков и команд (SISD, MISD, SIMD, MIMD);
по этапам создания и элементной базе (на электромагнитных
реле, электронных лампах, транзисторах, микросхемах малой степени
интеграции, микросхемах большой степени интеграции);
по размерам и вычислительной мощности (суперЭВМ, большие ЭВМ, малые ЭВМ, микроЭВМ, настольные — Desktop, портативные — Lap Top, Note Book и планшетные компьютеры —
Tablet computer);
степени доступности (персональные и коллективные
ЭВМ);
назначению (серверы и рабочие станции — клиенты).
Дадим небольшие комментарии к каждой классификации.
Первая электронная вычислительная машина была построена в середине 40-х годов ХХ столетия на электронных вакуумных лампах. Для ЭВМ первого поколения
характерными чертами были большая потребляемая
мощность и невысокая надежность работы, объясняемая
частыми отказами электронных ламп. ЭВМ второго поколения были построены на полупроводниковых элементах — транзисторах.
ЭВМ третьего и четвертого поколений использовали соответственно микросхемы малой и большой степени интеграции (эти
микросхемы
отличались числом элеменI
тов, размещенных в одном корпусе, на одной подложке).
D1
Исторически первыми появились большие ЭВМ.
P1
Скорее
это название было связано с габаритами ЭВМ. Что
I P1
касается производительности первых машин, то по совреF
D2
менным понятиям их возможности были чрезвычайно
P2
скромны.
P1
Появление в 70-х годах ХХ столетия малых ЭВМ
I
SIMD
было обусловлено, с одной стороны, прогрессом в области
…
микроэлектроники, а с другой — нерациональной избыточностью ресурсов больших ЭВМ для решения ряда заD
дач. Малые ЭВМ использовались чаще всего для управлеP
n
n
P1
90
ния технологическими процессами предприятий. Они были компактнее и дешевле больших
ЭВМ.
Изобретение микропроцессора привело к появлению в 70-х годах ХХ столетия еще одного класса машин — микроЭВМ. Сейчас микропроцессоры используются во всех типах
ЭВМ.
Для решения сложных задач прогнозирования метеообстановки, управления оборонными комплексами, моделирования ядерных испытаний, криптоанализа, астрофизики и др.
— были разработаны наиболее сложные и мощные машины — суперЭВМ.
Создать высокопроизводительную суперЭВМ на одном микропроцессоре не удается
из-за ограничения скорости распространения электромагнитных волн (ограничение тактовой
частоты процессора) и наличия предельного температурного барьера. Современные технологии производства интегральных полупроводниковых микросхем уже не позволяют радикально уменьшить размеры радиоэлементов. Наличие больших паразитных емкостей у транзисторов также ограничивает быстродействие устройств из-за длительных переходных процессов. Поэтому суперЭВМ проектируют в виде многопроцессорных вычислительных систем (МПВС). При этом одновременно (параллельно) работает несколько десятков тысяч (и даже
сотен тысяч) процессоров, увеличивая тем самым
суммарную производительность системы. Зримо
представить грандиозность суперЭВМ можно,
прочитав книгу Д.Брауна «Цифровая крепость».
Наибольшей производительностью на июнь
2013 г. обладает китайская суперЭВМ Тяньхэ-2. У
машины более трех миллионов вычислительных
ядер и 1,4 петабайта оперативной памяти. Еѐ производительность составила 33,86 петафлопс (число операций с плавающей точкой в секунду). СуперЭВМ занимает площадь в 720 м2, еѐ потребляемая мощность составляет 17 МВт.
МПВС имеют несколько разновидностей:
I1
D
P1
In
I2
…
P2
F
Pn
MISD
векторные МПВС, в которых все процессоры P одновременно выполняют одну команду I над различными данными D. Это однократный поток команд с многократным потоком данных — SIMD (Single Instruction Stream /Multiple Data Stream);
конвейерные МПВС, в которых процессоры одновременно выполняют разные операции I над последовательным потоком обрабатываемых данных D; по принятой классификации такие МПВС относятся к системам с многократным потоком команд и однократным потоком данных — MISD (Multiple Instruction Stream / Single Data Stream);
91
I1
I2
In
…
D
P1
P1
1
F
D
2
…
D
n
P2
P1
…
Pn
P1
MIM
D
матричные МПВС, в которых процессоры P одновременно выполняют разные операции I над несколькими потоками обрабатываемых данных D — многократный поток команд
с многократным потоком данных — MIMD (Multiple Instruction Stream / Multiple Data
Stream).
Вероятно, здесь же уместно упомянуть классические однопроцессорные SISD ЭВМ, которые по числу обрабатываемых потоков команд и данных являются простейшими.
I
Аббревиатура SISD (Single Instruction Stream / Single Data
F
D
Stream) означает одиночный поток команд и одиночный поток
P
данных. К этому классу относятся машины фон-неймановского
типа. В таких машинах есть только один поток команд, все команды обрабатываются последовательно друг за другом, и каждая
команда инициирует одну операцию с одним потоком данных.
Универсальные ЭВМ предназначены для решения широкого класса научнотехнических задач и являются наиболее сложными и дорогими машинами. Для проблемноориентированных ЭВМ характерно ограничение машинных ресурсов применительно к определенному классу задач. Такие ЭВМ используются в автоматизированных системах
управления технологическими процессами (АСУТП), автоматизированных системах научных исследований (АСНИ), системах автоматизированного проектирования (САПР), в автоматизированных рабочих местах (АРМ). Специализированные ЭВМ служат для решения
узкого класса задач (или даже одной задачи), требующих многократного повторения рутинных операций (например, продажа билетов на транспорте, коммутация на автоматической
телефонной станции, статистическая обработка информации в измерительном приборе).
В цифровых вычислительных машинах (ЦВМ) информация циркулирует в виде двоичных сигналов (кодов), с помощью которых представляются буквы, числа, знаки препинания,
математические символы, управляющие сигналы, графические изображения, звуковые картины и т. д. Все данные, адреса и команды, в конечном счете, заменяются сигналами двух
уровней — высокого и низкого, которые принято называть единицами и нулями.
В аналоговых вычислительных машинах (АВМ) электрические сигналы имеют непрерывный характер. О результатах вычислений судят по величине электрических напряжений на выходе операционных усилителей, которые составляют основу АВМ.
Гибридные вычислительные машины (ГВМ) — это комбинированные машины, которые работают с информацией, представленной и в цифровой, и в аналоговой формах.
Сервер (Server) — компьютер, предоставляющий услуги другому компьютеру — клиенту (рабочей станции). С помощью сервера другие компьютеры получают доступ к базам
данных, находящимся на сервере, принтерам и факсам, подключенным к серверу. Среди
компьютеров различают почтовые серверы, серверы печати, файл-серверы, серверы доменных имен и т. п.
В заключение еще раз отметим, что рассмотренные классификации в известной мере
условны, так как границы между группами ЭВМ размыты и очень подвижны во времени.
92
5. Системное программное обеспечение
5.1. Понятие об операционной системе
В детстве я долго ждал,
когда прогреется кинескоп.
Теперь я жду, когда загрузится у телевизора
операционная система.
Анекдот
Операционная система (ОС) — комплекс программ, предназначенных для управления
устройствами, процессами, распределения аппаратных и программных ресурсов между
процессами.
Под устройствами понимаются: компьютеры, сети, банкоматы, смартфоны,
фотоаппараты, видеокамеры, часы, электронные книги, проигрыватели (плейеры), бытовая
техника. В дальнейшем при рассмотрении операционных систем преимущественно будем
говорить о ЭВМ.
Процесс (задача) — совокупность взаимосвязанных операций (действий), с помощью
которых ЭВМ преобразует входные данные в выходные в соответствии с выбранным
алгоритмом (программой). Одни процессы запускаются по инициативе пользователя, другие
инициализируются ОС для выполнения своих функций. Процесс – это программа,
запущенная на исполнение.
Ресурсы - аппаратные и программные средства ЭВМ, которые выделяются
операционной системой процессу на ограниченный промежуток времени.
ОС распределяет имеющиеся ресурсы ЭВМ между процессами, скрывает от
пользователей и программистов второстепенные детали, упрощает взаимодействие
пользователя с устройствами. Так при записи файла на жѐсткий диск ОС скрывает от
пользователя многие технические детали: пользователь не знает, на каких дорожках и
секторах размещен сохранѐнный файл. При одновременной работе нескольких приложений
пользователь не знает, какие конкретные ячейки оперативной памяти отданы каждому
приложению.
При работе на ЭВМ пользователю приходится многократно выполнять типичные операции, которые одинаковы для многих приложений. К таким операциям относятся: запись,
поиск, считывание, копирование, переименование, перемещение и удаление файлов. Операционная система позволяет упростить выполнение этих операций.
Так, например, чтобы считать файл с жесткого диска, ОС находит в таблице размещения файлов его описание, определяет, где он находится на жестком диске (определяет номер
дорожки, сектор), перемещает считывающую головку в нужную позицию, считывает данные
и записывает их в определенное место ОЗУ.
ОС стремится создать пользователю комфортные условия при выполнении типичных,
часто повторяемых операций. Если говорить образно, то операционная система — это слуга,
который заботится об удобствах своего хозяина-пользователя. Естественно, что такие положительные свойства ОС появились не сами собой. Они созданы кропотливым трудом инженеров и программистов.
Создание и совершенствование ОС происходило (и происходит) одновременно с изобретением новых аппаратных средств. Появление ручных манипуляторов (типа «мышь») и
создание сенсорных экранов привело к появлению совершенно разных операционных систем. Системные программы и аппаратные средства модифицировались одновременно (параллельно), развивая друг друга. Программисты первой ЭВМ «ЭНИАК» вводили в ОЗУ команды с помощью переключателей (коммутаторов). Для загрузки программы в бытовом
компьютере «Радио-86» пользователь должен был вначале по слуху определить, где находится начало файла на магнитной ленте. Очевидно, что операционные системы мейнфреймов и ноутбуков - трансформеров коренным образом отличаются друг от друга.
93
Перечислим основные функции операционных систем.
Создание дружественного пользовательского интерфейса, позволяющего легко
управлять работой ЭВМ.
Распределение оперативной памяти и процессорного времени между одновременно
выполняемыми вычислительными процессами.
Обеспечение многопроцессорности (одновременная работа нескольких процессоров).
Поддержка работоспособности периферийных устройств.
Обработка прерываний.
Создание и поддержка файловой системы.
Восстановление работоспособности ЭВМ при возникновении сбоев.
Поддержка работы ЭВМ в локальных и глобальных сетях.
Защита ЭВМ от злоумышленников (аутентификация, авторизация и аудит).
Распределение ресурсов ЭВМ в соответствии с приоритетом выполняемых процессов.
Родительский контроль (защита детей от ознакомления с содержимым непристойных
сайтов).
Рассмотрим термины, перечисленные в списке функций ОС.
Пользовательский интерфейс - это совокупность правил, аппаратных и программных
средств, с помощью которых пользователь управляет работой устройства.
На рисунке показаны пользовательские интерфейсы нескольких ОС. Цифрой 1 отмечена Windows 7, цифрой 2 – Windows 8, цифрой 3 – Android 4.3, цифрой 4 – ОС телевизионного приемника Samsung.
К пользовательскому интерфейсу относятся все устройства ввода информации.
Пользовательский интерфейс (ПИ) определяет правила (способы), в соответствии с
которыми происходит взаимодействие пользователя с компьютером (щелчок, двойной
щелчок, прикосновение к сенсорному экрану, голосовой ввод, командная строка, наличие
кнопок, папок, окон, меню, иконок, полос прокрутки и т.д.). ПИ является посредником
(средой), через который человек взаимодействует с компьютером (операционной системой,
прикладными и инструментальными программами). Пользовательский интерфейс
определяет, какие действия нужно совершить пользователю, чтобы заставить ЭВМ
выполнить необходимую операцию.
Файловая система – это организация данных в памяти ЭВМ и сети (облачная технология), определяющая место размещения, имя и атрибуты файла. В настоящее время наиболее распространенной является древовидная структура каталогов (папок).
94
Аутентификация — определение легальности пользователя (осуществляется с помощью пароля, смарт-карты, отпечатка папиллярных узоров пальцев, спектра голоса или рисунка радужной оболочки глаза).
Авторизация — предоставление пользователям определенных прав доступа
к ресурсам на основании аутентификации. Администратор локальной сети имеет полные
права, а остальные пользователи – ограниченные.
Аудит — фиксация событий, имеющих отношение к безопасности системы.
Программы, написанные для решения практических задач, называют прикладными.
Прикладными программами являются, например, текстовые и графические редакторы, электронные таблицы, математические системы. Инструментальными программами считаются
программы, предназначенные для разработки и отладки программного обеспечения. В качестве примеров инструментальных программ можно назвать компиляторы, интерпретаторы,
отладчики. Системными называют программы, которые осуществляют организацию вычислительного процесса и распределение аппаратных и программных ресурсов ЭВМ (процессорного времени, оперативной памяти, дискового пространства и т.п.).
Каждая системная программа выполняет свою определенную функцию. Так, системные программы — утилиты — предназначены для выполнения часто повторяющихся операций, например, дефрагментация дисков, архивация файлов, поиск и удаление вирусов и
т. д.
Драйверы — системные программы, обеспечивающие работу периферийных устройств (принтеров, дисплеев, ручных манипуляторов, сканеров и т. п.).
Операционные системы классифицируются следующим образом:
по количеству одновременно работающих на одном компьютере пользователей на
однопользовательские и многопользовательские ОС;
по числу задач (процессов), одновременно выполняемых на ЭВМ, на однозадачные
и многозадачные;
по количеству используемых процессоров на однопроцессорные и многопроцессорные;
по типу пользовательского интерфейса на командные (текстовые) и графические
(GUI).
по способу использования аппаратных и программных ресурсов на сетевые и локальные.
Главным отличием многопользовательских ОС от однопользовательских является наличие средств защиты каждого процесса от несанкционированного доступа других пользователей. Каждому процессу выделяется свой сегмент оперативной памяти.
В многозадачном режиме каждой задаче (процессу) поочередно выделяется какая-то
доля процессорного времени. Поскольку доли процессорного времени, отводимые каждому
процессу, малы, то у пользователя создается впечатление одновременного выполнения сразу
95
нескольких задач. Многозадачность позволяет, например, серверу одновременно обслуживать множество подключенных клиентов глобальной сети. В этом режиме процессор можно
сравнить с жонглѐром, работающим с несколькими шарами.
Можно одновременно запустить на счет математическую систему, включить принтер
для печати текста, запустить проигрыватель музыкальных произведений, вести поиск вирусов и рисовать в графическом редакторе или раскладывать пасьянс. Заметить замедление работы ЭВМ удастся, пожалуй, лишь по «притормаживанию» воспроизведения видео- и аудиофайлов на компьютерах с «медленными» процессорами или недостаточной оперативной
памятью.
Различают вытесняющую и невытесняющую многозадачность.
При работе ЭВМ одним из важнейших разделяемых ресурсов является процессорное
время. Распределение процессорного времени между несколькими одновременно выполняемыми процессами может осуществляться двумя способами
При невытесняющей многозадачности активный процесс выполняется до тех пор, пока
он по собственной инициативе, не отдаст управление операционной системе. После этого ОС
выбирает из очереди другой готовый к выполнению процесс.
При вытесняющей многозадачности решение о переключении процессора с одной задачи на другую задачу принимается операционной системой, а не самим активным процессом.
Многозадачные ОС в соответствии с критериями эффективности подразделяются на
три типа:
системы пакетной обработки;
системы разделения времени;
системы реального времени.
Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Именно за решение
расчѐтных задач первые ЭВМ в шутку называли «цифрогрызами». Главной целью систем
пакетной обработки является решение максимального числа задач в единицу времени. Для
достижения этой цели в системах пакетной обработки используется следующая схема функционирования.
В начале работы формируется пакет заданий (мультипрограммная смесь). В мультипрограммной смеси желательно одновременное присутствие вычислительных задач и задач с
интенсивным вводом-выводом данных. Выбор нового задания из пакета заданий зависит от
внутренней ситуации, складывающейся в вычислительной системе, т. е. выбирается «выгодные» для ОС задания. В системах с пакетной обработкой невозможно гарантировать выполнение конкретного задания в течение определенного периода времени, так как ОС самостоятельно определяет, какие задачи ей удобно выполнять.
Взаимодействие пользователя с вычислительной машиной, на которой установлена ОС
пакетной обработки, сводится к тому, что пользователь приносит задание, отдает его диспетчеру-оператору, а в конце рабочего дня получает результат. Очевидно, что такой порядок
снижает эффективность работы самого пользователя. Однако эффективность работы вычислительной системы повышается.
ОС разделения времени позволяют исправить основной недостаток систем пакетной
обработки — изоляцию пользователя от процесса выполнения его задач. Каждому пользователю системы разделения времени предоставляется терминал, с которого он может управлять работой ЭВМ. Так как в системах разделения времени каждой задаче выделяется только
квант процессорного времени, ни одна задача не занимает процессор надолго и время ответа
оказывается приемлемым. Если квант выбран достаточно малым, то у всех пользователей,
одновременно работающих на одной и той же ЭВМ, складывается впечатление, что каждый
из них единолично использует машину.
Операционные системы разделения времени обладают меньшей производительностью,
чем системы пакетной обработки, так как на выполнение принимается каждая запущенная
96
пользователем задача, а не та, которая «выгодна» операционной системе, и, кроме того,
имеются накладные расходы на более частое переключение процессора с задачи на задачу.
Критерием эффективности систем разделения времени является не максимальная скорость
обработки информации, а удобство работы отдельного пользователя.
Системы реального времени применяются для управления различными техническими
объектами, такими, например, как конвейер, станок, робот, космический аппарат, научная экспериментальная установка, гальваническая линия, доменная печь, автомат для контроля качества выпускаемой продукции и т. п. Во всех этих случаях существует предельно допустимое
время, в течение которого должна быть выполнена та или иная программа, управляющая объектом. Говорят так: «Система должна иметь гарантированное время реакции, т. е. задержка ответа не должна превышать определенного времени». В противном случае может произойти
сбой: ракета пролетит мимо цели, экспериментальные данные, поступающие с датчиков, будут
потеряны, толщина гальванического покрытия не будет соответствовать норме.
Таким образом, критерием эффективности для систем реального времени является их
способность выдерживать заранее заданные интервалы времени между запуском программы
и получением результата (управляющего воздействия).
Наибольшую известность (каждая в своѐ время) получили следующие ОС: СР/M, DOS,
OS/2, Windows, UNIX, Linux, MacOS, Android и iOS.
В качестве примера однопользовательских однозадачных ОС можно назвать CP/M,
DOS, однопользовательских многозадачных ОС — OS/2, Windows. Операционная система
UNIX является многопользовательской многозадачной ОС. Операционная система РАФОС
является многопользовательской однозадачной.
Современные ОС содержат множество системных программ и по этой причине часто
занимают в памяти больше места, чем прикладная программа, которая использует сервис,
предоставляемый ОС.
Первоначальный успех ОС СР/М в значительной степени был обусловлен ее предельной простотой и компактностью. Первая версия занимала всего 4 Кбайта. Компактность была весьма важна в условиях ограниченных объемов памяти первых персональных ЭВМ
(ПЭВМ). Данная ОС использовалась для работы на 8-разрядных ПЭВМ.
Операционная система MS-DOS являлась промышленным стандартом для 16разрядных ЭВМ на основе микропроцессоров 8086...80486. Все программы MS-DOS хранятся на магнитных дисках, поэтому она называется дисковой операционной системой (Disk
Operating System). Буквы MS являются сокращением названия фирмы-разработчика
Microsoft. Было выпущено несколько модификаций этой ОС, поэтому можно говорить о целом семействе операционных систем MS-DOS.
MS-DOS является командной (текстовой) ОС. Это означает, что для выполнения необходимых операций следует набрать с помощью клавиатуры соответствующую команду. Такой ввод неудобен и приводит к возникновению большого числа ошибок.
Семейство операционных систем OS/2 (Operating System/2) позволяет организовать
параллельную работу нескольких прикладных программ. Операционная система работает в
режиме вытесняющей многозадачности. При этом система жестко выделяет определенное
время для работы каждого приложения.
Достоинством операционных систем семейства MS Windows является унифицированный пользовательский интерфейс (оболочка), благодаря которому в различных программах
сохраняются сходные принципы управления их работой. Эта ОС обеспечивает возможность
выполнения одновременно нескольких задач. При этом элементы управления работающей
программы размещаются в отдельной прямоугольной области, которая называется окном.
Окна можно перемещать по экрану, изменять размеры, накладывать друг на друга или
уменьшать до размера графического значка (пиктограммы или ярлыка).
Унификация оболочек программ, работающих под управлением этой ОС, значительно
упрощает освоение новых программ. Например, нажатие клавиши F1 вызывает помощь, а
одновременное нажатие клавиш Alt и F4 приводит к завершению (закрытию) работы прило97
жения. Назначение многих кнопок пользовательского интерфейса
интуитивно понятно благодаря выразительному графическому обозначению.
При создании операционных систем семейства MS Windows
фирма Microsoft использовала объектно-ориентированный подход. Объектно-ориентированный подход выражается в том, что
пользовательский интерфейс представляет собой имитацию реального мира (например, использована метафора рабочего стола). Работа с ЭВМ напоминает работу с часто используемыми в быту предметами. Так, папки можно открывать, закрывать, перемещать по рабочему столу, а документы - просматривать, исправлять, перекладывать с одного места на другое, выбрасывать в корзину. В электронных
книгах и статьях допустимо делать закладки, рукописные пометки. На рабочем столе можно
размещать записки, часы, календарь.
В ОС MS Windows заложен принцип — Plug and Play (вставь и играй, точнее, подключи и используй). Он позволяет без ручной настройки подключать новые устройства к ЭВМ,
например, принтер, сканер или внешний жѐсткий диск. Операционная система, поддерживающая этот принцип, автоматически подбирает драйвер, необходимый для работы нового
подключенного к ЭВМ устройства.
В MS Windows используется технология Drag and Drop (перетащи и положи). Благодаря технологии Drag and Drop легко изменить положение любого окна и его размеры. Для
удаления некоторого документа по этой технологии достаточно с помощью мыши взять
пиктограмму (компактное графическое изображение приложения) и, перетащив, положить
ее поверх мусорной корзины. Аналогично запускается музыкальное произведение: графическое изображение файла нужно положить поверх графического изображения проигрывателя.
На рисунке показаны три пиктограммы и два ярлыка (на ярлыках присутствует изображение стрелки). С помощью пиктограмм и ярлыков легко запускать программы на выполнение. Пиктограммы и ярлыки принято называть общим термином «значки».
В ОС MS Windows можно составлять документы из частей, которые готовятся в различных приложениях. Для связывания и внедрения документов используется технология
OLE (Object Linking and Embedding), что означает «связывание и внедрение объектов».
В документ, подготовленный в текстовом редакторе, можно вставить рисунок, созданный в графическом редакторе. При этом достаточно дважды щелкнуть мышью по рисунку,
чтобы вызвать графический редактор и сделать нужные исправления. Создается впечатление, что текстовый редактор снабжен дополнительными возможностями графического редактора.
Главными отличительными чертами операционных систем семейства UNIX является
их модульность, легкая переносимость на другие типы ЭВМ и обширный набор системных
программ, которые позволяют создать благоприятную обстановку для системных программистов, т. е. для тех специалистов, основной задачей которых является разработка новых
системных программ. Данная ОС органически сочетается с языком Си, на котором написана
основная часть модулей. Операционная система UNIX давно побила все рекорды долголетия.
Система была разработана в 1969 г. и быстро завоевала большую популярность, особенно среди телефонных компаний, поскольку обеспечивала работу в сети в режиме диалога
и в реальном масштабе времени. Авторами UNIX являются Кен Томпсон (Ken Thompson) и
Дэннис Ричи (Dennis M. Ritchie).
98
К началу 1984 г. система UNIX была инсталлирована (т. е. установлена) приблизительно на 100 000 машинах по всему миру, причем на машинах разных изготовителей с широким
диапазоном вычислительных возможностей — от микропроцессоров до больших ЭВМ.
Популярность и успех системы UNIX объясняется несколькими причинами:
— система написана на языке высокого уровня, благодаря чему ее легко читать, понимать, изменять и переносить на ЭВМ другого типа;
— система является многопользовательской, многозадачной;
— архитектура машины скрыта от пользователя, благодаря этому облегчен процесс написания программ, работающих при различных конфигурациях аппаратных средств.
Классическая ОС UNIX дала жизнь многочисленным своим потомкам, число которых
превышает несколько десятков. В начале 80-х годов ХХ века велись работы по созданию
отечественной ОС в Институте атомной энергии им. И. В. Курчатова (КИАЭ). В шутку диалект КИАЭ получил название УНАС (в противовес UNIX, т. е. У НИХ).
В настоящее время интенсивно развивается бесплатная (некоммерческая) операционная система Linux. Она становится основным конкурентом для платных ОС семейства MS
Windows. Ядро операционной системы Linux написано под влиянием ОС UNIX. Появилась
ОС в 1991 году, еѐ автором стал финн Линус Торвальдс. Достоинством этой ОС является ее
открытость и свободное распространение. Большое число энтузиастов постоянно работают
над совершенствованием Linux, поэтому существует множество модификаций этой ОС.
Сетевые операционные системы предназначены для эффективного решения задач
распределенной обработки данных. Такая обработка ведется не на отдельном компьютере, а
на нескольких компьютерах, объединенных сетью. Сетевые операционные системы поддерживают распределенное выполнение процессов, их взаимодействие,
обмен данными между ЭВМ, доступ пользователей к общим ресурсам и другие функции, которые превращают распределенную в пространстве вычислительную систему в целостную многопользовательскую систему.
Сетевые ОС имеют развитые средства обеспечения безопасности работы (разграничение вычислительных ресурсов, ограничение
полномочий). Сетевая ОС должна обеспечить обмен сообщениями
по линиям связи между разнесенными в пространстве компьютерами. Для автономных ЭВМ такая функция ОС не требуется. Сетевая
ОС должна предоставлять пользователю возможность параллельной
работы нескольких ЭВМ для решения объемных вычислительных
задач (например, для взлома шифра).
Перечислим популярные сетевые операционные системы:
Novell NetWare, LANtastic, Microsoft Windows NT, UNIX, Linux, Solaris, FreeBSD. В
приведенном списке ОС встречаются названия систем, которые устанавливаются на автономные компьютеры. Для пояснения этого факта сделаем два замечания.
1.
Все современные ОС имеют средства для работы с локальными и глобальными сетями.
2.
Сетевые ОС отличаются от остальных систем большей долей программного
обеспечения, предназначенного для работы в сетях.
Все сетевые операционные системы делятся на две группы: одноранговые ОС и ОС с
выделенными серверами.
В одноранговых сетях каждая ЭВМ может выполнять как функции сервера, так и рабочей станции. В сетях с выделенными серверами роли расписаны более жестко: рабочие станции не предоставляют свои ресурсы для других ЭВМ. Услуги предоставляют только серверы.
Операционная система UNIX одна из старейших ОС. В настоящее время регулярно появляются новые ОС, многие из которых являются потомками UNIX. Эти ОС разработаны
99
для современных гаджетов (смартфонов, коммуникаторов, планшетных компьютеров, электронных книг, цифровых проигрывателей, наручных часов и т.п.).
Перечислим наиболее распространенные ОС:
Google Android, Apple iOS, Bada, Microsoft Windows,
Symbian, BlackBerry OS.
У всех ОС есть свои особенности, но есть и одинаковые свойства. Например, в зависимости от ориентации
устройства в пространстве происходит автоматический
поворот изображения на дисплее из портретного формата
в альбомный (и наоборот). Сигналы управления возникают при прикосновении к сенсорному экрану пальца или
стилуса. ОС поддерживают работу многоядерных процессоров, GPS, Bluetooth. Многие приложения практически
одинаковы во всех ОС (часы с будильником, радиоприемник, фотоаппарат, видеокамера, диктофон, географические карты, голосовой ввод команд и
т.п.).
Android — портативная операционная система, основанная на ядре Linux. С июля 2005
года ОС Android принадлежит компании Google.
Операционная система установлена на большом числе разнообразных устройств. По
этой причине разработчикам сложно осуществить тестирование новых приложений для всех
разновидностей аппаратуры (девайсов). Нередки случаи некорректной работы новых программ.
Операционная система iOS предназначена для устройств фирмы Apple. Она появилась
в 2007 году. Передаваемые с помощью ОС сообщения шифруются, а пароли и логины хранятся в памяти в зашифрованном виде. Сведения о местоположении владельца гаджета сообщаются только с разрешения пользователя. Приложения для этой ОС характеризуются хорошей проработкой и высокой надѐжностью. Под управлением этой ОС работают планшетные ЭВМ (iPad), смартфоны (iPhone), плееры (iPod).
Мобильные операционные системы MS Window фирмы Microsoft набирают популярность. Недавно разработана операционная система Windows 8.1, которая ориентирована на
«плиточный» интерфейс. Для смартфонов создана ОС Windows Phone. Число приложений,
работающих под этими операционными системами значительно меньше числа приложений
для ОС Android и iOS, и многие из них платные.
ОС Symbian разработана в конце 20-го века и предназначена для смартфонов и коммуникаторов. Система постепенно теряет свои позиции на рынке. Операционная система
BlackBerry OS предназначена для смартфонов.
100
5.2. Файловая система
ЭВМ, как правило, имеет несколько дисков (внешних запоминающих устройств). Каждому диску присваивается имя, которое задается латинской буквой с
двоеточием, например, А:, В:, С: и т. д. Стандартно принято, что А: и
В: — это накопители на гибких магнитных дисках, а диски C:, D: и
т. д. — жесткие диски, накопители на оптических дисках или электронные диски.
Физически существующие магнитные диски могут быть разбиты на несколько логических дисков, которые для пользователя будут
выглядеть на экране монитора так же, как и физически существующие диски. При этом логические диски получают имена по тем же
правилам, что и физически существующие диски. Проще говоря, логический диск — это часть обычного жесткого диска.
Диск, на котором записана операционная система, называется системным (или загрузочным) диском. В качестве загрузочного диска чаще всего используется жесткий диск С.
При лечении вирусов, системных сбоях загрузка операционной системы может осуществляться с флеш-носителя или внешнего жесткого диска.
Операционные системы позволяют каждому диску давать имена, которые отражают их
содержание, например, Системный, Фото, Фильмы, Музыка, Книги, Документы, Дистрибутивы и т. д.
Для того чтобы на новый магнитный диск можно было
записать информацию, он должен быть предварительно отформатирован. Форматирование — это подготовка (разметдорожка
ка) диска для записи информации.
В процессе форматирования на диск записывается служебная
информация (делается разметка), которая затем иссектор
пользуется для записи и чтения информации, коррекции скорости вращения диска. Разметка производится с помощью
электромагнитного поля, создаваемого записывающей головкой дисковода.
Запись информации осуществляется по дорожкам, причем каждая дорожка разбивается
на секторы, например, по 1024 байта.
Для жесткого диска характерно еще одно понятие: цилиндр.
Цилиндром винчестера называется совокупность дорожек с одинаковыми порядковыми номерами, расположенных на разных дисках винчестера.
первая дорожка
вторая дорожка
первый диск
первая дорожка
вторая дорожка
второй диск
первая дорожка
вторая дорожка
третий диск
На рисунке видны два цилиндра, образованные равноудаленными дорожками на трех
дисках винчестера. При работе винчестера несколько головок одновременно считывают информацию с дорожек одного цилиндра.
В процессе форматирования на диске выделяется системная область, которая состоит
из трех частей: загрузочного сектора, таблицы размещения файлов и корневого каталога.
101
Загрузочный сектор (Boot Record) размещается на каждом диске в логическом секторе с номером 0. Он содержит данные о формате диска, а также короткую программу, используемую в процедуре начальной загрузки операционной системы.
Загрузочный сектор создается во время форматирования диска. Если диск подготовлен
как системный (загрузочный), то загрузочный сектор содержит программу загрузки операционной системы. В противном случае он содержит программу, которая при попытке загрузки с этого диска операционной системы выводит сообщение о том, что данный диск не
является системным.
Каждый жесткий диск может быть разбит на несколько логических дисков. На жестком
диске имеется область, которая называется главной загрузочной записью MBR (Master Boot
Record) или главным загрузочным сектором. В MBR указывается, с какого логического диска должна производиться загрузка операционной системы.
Таблица размещения файлов (File Allocation Table — сокращенно FAT) располагается после загрузочного сектора и содержит описание порядка расположения всех файлов в
секторах данного диска, а также информацию о дефектных участках диска. За FAT-таблицей
следует ее точная копия, что повышает надежность сохранения этой очень важной таблицы
(это как бы запасной парашют).
Корневой каталог (Root Directory) находится за копией FAT. В корневом каталоге содержится перечень файлов и директорий, находящихся на диске. Непосредственно за корневым каталогом располагаются данные.
Запись информации на диск ведется частями. Наименьшее место, которое могут занимать на диске записываемые данные, составляет один
кластер. Кластер может состоять из одного или нескольких секторов.
Данные и программы хранятся на носителях инкластер, соформации в виде файлов (от англ. file — досье, подшивстоящий из двух
ка).
секторов
Файл — это набор взаимосвязанных данных, воспринимаемых компьютером как единое целое, имеющих
общее имя, находящихся на магнитном или оптическом дисках, магнитной ленте, в оперативной памяти, Flash-памяти или на другом носителе информации.
Файл обычно отождествляют с участком памяти (ВЗУ, ОЗУ, ПЗУ, Flash-памяти), где
размещены логически связанные данные, имеющие общее имя. Файл хранится на носителе
информации в двоичной системе счисления, и для ОС он представляется как совокупность
байтов.
В файлах могут храниться тексты программ, документы, данные и т. д.
На рисунке показаны два файла, расположенные последовательно друг за другом. Первый файл занимает два сектора, а второй файл — десять секторов. Если кластер состоит из
двух секторов, то можно сказать, что первый файл состоит
из одного кластера, а второй файл — из пяти кластеров.
второй файл
Легко заметить, что второй файл располагается на двух дорожках. Если файл большой, то он может занимать несколько дорожек.
первый файл
При записи информации на новый (чистый) диск файлы располагаются последовательно друг за другом: от первой дорожки до последней.
Заметим, что файлы всегда занимают целое число кластеров, поэтому в одном кластере
не могут одновременно размещаться два даже небольших файла. Обратите внимание на то,
что если документ состоит всего из одной буквы, то файл все равно занимает на диске один
отдельный кластер. При этом складывается достаточно парадоксальная ситуация: файл, содержащий одну букву текста, и файл, содержащий 1000 букв, занимают одинаковое место на
диске.
102
Папка — группа файлов, объединенных по какому-либо
знаку. На каждом диске может быть несколько папок. В папках могут размещаться не только файлы, но и другие папки. Таким образом, папки образуют дерево (иерархию, файловую систему).
На рисунке слава показано дерево папок одного из дисков. Из
рисунка видно, что в корневом каталоге имеется четыре папки: A, B,
C и D. При этом внутри папки A находятся папки A1 и A2. В папке
C располагаются папки C1 и C2. В папке A1 находится папка A11, а
в последней — папка A111. Крестик на дереве говорит о том, что
внутри соответствующих папок находятся другие папки (внутри папок D и А12 находятся папки, которые не видны). На этом рисунке
не видны файлы, которые могут находиться как в корневом каталоге, так и в любой папке.
Если бы файлы всегда хранились в последовательно расположенных кластерах, то для указания места расположения файла на диске (с помощью FATтаблицы) достаточно было указать номер первого сектора (где располагается начало файла) и число занятых
третий файл
кластеров.
второй файл
При многократной перезаписи и удалении файлов
происходит фрагментация (дробление, разделение)
первый файл
дискового пространства. В результате при записи файл
может оказаться разорванным и располагаться в кластерах, находящихся на относительно большом расстоянии
друг от друга. Считывание таких файлов существенно замедляется, так как дисководу необходимо дополнительное время для перемещения головок. Причина возникновения фрагментации состоит в том, что все файлы имеют, как правило, разную длину (точнее, разный объем). Поэтому после удаления какого-то файла новый файл не может точно вписаться в освободившееся на диске место. Практически обязательно либо останется свободный участок
диска, либо заполнятся секторы, расположенные в другом месте диска (например, расположенные через несколько секторов или на других дорожках).
второй файл
первый файл
третий файл
В составе операционной системы есть специальная
системная программа (утилита), которая осуществляет дефрагментацию диска. Эта утилита располагает тело файла в
соседних секторах, тем самым ускоряет считывание информации (не нужно переходить на другие дорожки, пропускать
чужие секторы) и уменьшает износ дисковода.
На рисунке показано диалоговое окно утилиты, предназначенной для упорядочивания разрозненных файлов.
103
104
5.3. Вирусы и антивирусные программы
Дареному коню гляди в зубы –
а вдруг он троянский?
Кароль Корд
Компьютерный вирус — это программа, способная самостоятельно создавать свои
копии (не обязательно полностью совпадающие с оригиналом), внедрять их в различные
объекты (приложения, файлы) или ресурсы ЭВМ, вычислительных систем, сетей и производить определенные действия без ведома пользователя. Распространение вируса происходит
незаметно, скрытно.
Свое название компьютерный вирус получил за некоторое сходство с биологическим
вирусом. Например, к заражѐнной программе прикрепляется другая программа-вирус. Причѐм инфицированная программа может длительное время работать штатно, без ошибок.
Программа, внутри которой находится вирус, называется заражѐнной (инфицированной) программой.
Когда инфицированная программа начинает работу, то управление получает вирус.
Вирус заражает другие программы, а также выполняет запланированные разработчиком вируса действия. Для маскировки своих действий вирус активизируется не всегда, а лишь при
выполнении определенных условий (истечение некоторого времени, выполнение определенного числа операций, наступление некоторой даты или дня недели и т. д.).
После того как вирус выполнит нужные ему действия, он передает управление той программе, в которой он находится. Внешне заражѐнная программа может работать так же, как
и обычная неинфицированная программа. Подобно настоящим вирусам, компьютерные вирусы действуют незаметно, размножаются и ищут возможность перейти на другие ЭВМ. Такими возможностями их наделяют программисты.
Таким образом, вирусы должны инфицировать ЭВМ скрытно, а активизироваться лишь
через определенное время (время инкубации). Это необходимо для того, чтобы скрыть источник заражения. Вирусы не могут распространяться в полной изоляции от других программ. Они прикрепляются к телу полезных (нужных) программ. Постоянно появляются новые виды вирусов. Естественно, что они возникают не самостоятельно, а их создают кракеры — вандалы.
Следующая таблица показывает динамику изменения числа вирусов.
Год
Число
вирусов
1990
1994
500
4000
1998
более
14000
2002
более
60000
2006
более
200000
2013
более
1,8 млн.
Вирусы выполняют различные действия:
выводят на экран мешающие текстовые сообщения (поздравления, политические
лозунги, фразы с претензией на юмор, высказывания обиды от неразделенной любви, нецензурные выражения, рекламу, прославление любимых певцов, названия городов);
создают звуковые эффекты (проигрывают гимн, гамму или популярную мелодию);
создают видеоэффекты (переворачивают или сдвигают экран, имитируют землетрясение, вызывают опадание букв в тексте или симулируют снегопад, имитируют
скачущий шарик, прыгающую точку, выводят на экран рисунки или картинки);
увеличивают износ оборудования (например, головок дисководов);
вызывают отказ отдельных устройств, зависание или перезагрузку компьютера и
крах работы всей ЭВМ;
имитируют повторяющиеся ошибки работы операционной системы (например, с
целью заключения договора на гарантированное обслуживание ЭВМ);
105
уничтожают FAT-таблицу, форматируют жесткий диск, стирают в ПЗУ BIOS, стирают или изменяют установки в CMOS, стирают секторы на диске, уничтожают или
искажают данные, стирают антивирусные программы;
шифруют данные на жѐстком диске с целью получения выкупа;
осуществляют научный, технический, промышленный, военный и финансовый
шпионаж;
выводят из строя системы защиты информации, дают злоумышленникам тайный
доступ к вычислительной машине;
делают незаконные отчисления с каждой финансовой операции;
обманным способом заманивают на заражѐнные Web-страницы и выманивают личные данные пользователя;
автоматически рассылают письма по адресам, указанным в адресной книге пользователя и т. д.
заражѐнными могут оказаться не только отдельные ЭВМ, но и большая группа компьютеров, из которых злоумышленники создают так называемую bot-сеть. Эта сеть
заражѐнных компьютеров используется злоумышленниками по своему усмотрению.
Вирусы представляют собой программы (скрипты), написанные на языках программирования высокого уровня, ассемблере или с применением макрокоманд (макросов).
Большая опасность вирусов заключается в том, что после инфицирования объекта они
начинают жить собственной жизнью. Оборвать цепочку распространения вирусов достаточно сложно.
Основные симптомы вирусного заражения ЭВМ следующие.
Замедление работы некоторых программ.
Увеличение размеров файлов (особенно выполняемых).
Появление не существовавших ранее «странных» файлов.
Уменьшение объема доступной оперативной памяти (по сравнению с обычным режимом работы).
Превращение всех значков на Рабочем столе в иное изображение, например, панды.
Внезапно возникающие разнообразные видео- и звуковые эффекты.
Появление сбоев в работе операционной системы (в том числе зависание).
Запись информации на жесткий диск в моменты времени, когда этого не должно
происходить.
Прекращение работы или неправильная работа ранее нормально функционировавших программ.
Прерывание связи мобильных телефонов.
Первые исследования саморазмножающихся искусственных конструкций проводились
в середине ХХ столетия. В работах фон Неймана, Винера и других учѐных проведѐн математический анализ конечных автоматов, в том числе и самовоспроизводящихся.
Первый эксперимент по распространению вируса Ф. Коэн провѐл 10 ноября 1983 г. в
Университете Южной Калифорнии в рамках семинара по безопасности.
Большой общественный резонанс вызвало первое неконтролируемое распространение
вируса в сети. Так 2 ноября 1988 г. двадцатитрехлетний студент последнего курса Корнельского университета Роберт Тэппэн Моррис запустил в сеть свою программу, которая из-за
ошибки начала бесконтрольное распространение и многократное инфицирование узлов сети.
В результате было заражено около 6200 машин, что составило 7,3% общей численности машин в сети. Впоследствии Моррис стал первым человеком, обвинѐнным в компьютерном
мошенничестве.
Рассмотрим основные виды вирусов. Существует большое число различных классификаций вирусов.
По среде обитания они делятся на сетевые, файловые, загрузочные и файловозагрузочные вирусы.
106
По способу заражения — на резидентные и нерезидентные вирусы.
По степени опасности — на неопасные, опасные и очень опасные вирусы.
По особенностям алгоритма — на вирусы-компаньоны, паразитические вирусы, репликаторы (черви), невидимки (стелс), мутанты (призраки, полиморфные вирусы, полиморфики), макровирусы, троянские программы.
По целостности — на монолитные и распределенные вирусы.
Сетевые вирусы распространяются по различным компьютерным сетям. Примером
является вирус Melissa.
Загрузочные вирусы внедряются в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий программу загрузки системного диска (Master Boot Record — MBR). Некоторые вирусы записывают своѐ тело в свободные секторы диска, помечая их в FAT-таблице
как «плохие» (Bad cluster).
Файловые вирусы инфицируют исполняемые файлы компьютера, имеющие расширения com и exe. К этому же классу относятся и макровирусы, написанные помощью макрокоманд. Они заражают неисполняемые файлы (например, в текстовом редакторе MS Word или
в электронных таблицах MS Excel).
Загрузочно-файловые вирусы способны заражать и загрузочные секторы, и файлы.
Резидентные вирусы оставляют в оперативной памяти компьютера свою резидентную
часть, которая затем перехватывает обращения неинфицированных программ к ОС, и внедряются в них. Свои действия по заражению других файлов резидентные вирусы могут выполнять многократно.
Нерезидентные вирусы не заражают оперативную память компьютера и проявляют
свою активность лишь однократно при запуске инфицированной программы.
Действия вирусов могут быть не опасными, например, на экране появляется сообщение: «Хочу чучу». Если с клавиатуры набрать слово «чуча», то вирус временно «успокаивается». Значительно опаснее последствия действия вируса, который уничтожает файлы на
диске.
Очень опасные вирусы самостоятельно форматируют жесткий диск и этим уничтожают всю имеющуюся информацию. Примером такого вируса может служить вирус CIH
«Чернобыль», активизирующийся 26-го числа каждого месяца и способный уничтожать данные на жестком диске и в BIOS.
Вирусы компаньоны — это вирусы, не изменяющие файлы. Алгоритм работы этих
вирусов состоит в том, что они создают для EXE-файлов новые файлы-спутники (дубликаты), имеющие то же самое имя, но с расширением COM, например, для файла XCOPY.EXE
создается файл XCOPY.COM. Вирус записывается в COM-файл и никак не изменяет одноименный EXE-файл. При запуске такого файла DOS первым обнаружит и выполнит COMфайл, т. е. вирус, который затем запустит и EXE-файл.
Паразитические вирусы при распространении своих копий обязательно изменяют содержимое дисковых секторов или файлов. Например, они дописывают тело вируса в конец
исполняемого файла. В эту группу относятся все вирусы, которые не являются «червями»
или «компаньонами».
Вирусы-черви (worm) распространяются в компьютерной сети и, так же, как и вирусыкомпаньоны, не изменяют файлы или секторы на дисках. Они проникают в память компьютера из компьютерной сети, находят сетевые адреса других компьютеров и рассылают по
этим адресам свои копии. Черви уменьшают пропускную способность сети, замедляют работу серверов.
Репликаторы могут размножаться без внедрения в другие программы и иметь «начинку» из компьютерных вирусов.
Вирусы-невидимки (стелс — Stealth) используют некоторый набор средств для маскировки своего присутствия в ЭВМ. Название вируса аналогично названию американского самолета-невидимки.
107
Стелс-вирусы трудно обнаружить, так как они перехватывают обращения операционной системы к пораженным файлам или секторам дисков и «подставляют» для проверки
лишь незараженные участки файлов.
Вирусы, которые шифруют собственное тело различными способами, называются полиморфными (polymorphic). Полиморфные вирусы (или вирусы-призраки, вирусымутанты, полиморфики) достаточно трудно обнаружить, так как их копии практически не
содержат полностью совпадающих участков кода. Это достигается тем, что в программы вирусов добавляются пустые команды (мусор), которые не изменяют алгоритм работы вируса,
но затрудняют их выявление (путем изменения своего портрета, сигнатуры).
Наиболее «прославленный» из полиморфных вирусов — OneHalf.
Макровирусы используют возможности макроязыков, встроенных в системы обработки данных (текстовые редакторы и электронные таблицы). В настоящее время широко
распространяются макровирусы, заражающие документы MS Word и MS Excel.
Ниже приводится пример действия макровируса, который исказил текст документа.
Компьтерный врус спецально соданная нбольшая рограмма способня присоеиняться  другим рограмма ЭВМ, рамножатьс (создавть свои опии) и ыполнятьнежелатеьные дейтвия безведома
пльзоватея.
Троянская программа маскируется под полезную или интересную программу (например, игру), выполняя во время своего функционирования еще и разрушительную работу (например, стирает FAT-таблицу) или собирает на компьютере информацию, не подлежащую
разглашению. В отличие от вирусов, троянские программы не обладают свойством самовоспроизводства.
Троянская программа маскируется, как правило, под коммерческий продукт. Ее другое
название «троянский конь».
Программа монолитного вируса представляет собой единый блок, который можно обнаружить после инфицирования.
Программа распределенного вируса разделена на части. Эти части содержат инструкции, которые указывают компьютеру, как собрать их воедино, чтобы воссоздать вирус. Таким образом, вирус почти все время находится в распределенном состоянии и лишь на короткое время собирается в единое целое. В этот момент времени вирус производит вредоносное действие.
Есть вирусы, которые осуществляют фишинг.
Фишинг — выманивание ложным путѐм данных пользователей (логинов, паролей, номеров кредитных карт, банковских счетов, PIN-кодов). Кибепреступники создают сайт,
внешне сходный с каким-либо популярным сайтом и обманным путѐм заманивают на него
пользователей. На сайте мошенники стараются выманить у пользователей секретные данные.
В переводе с английского языка слово «фишинг» означает «рыбалка». Мошенники терпеливо «ловят» доверчивых людей.
Вирус Virus.Win32.Gpcode.ak шифрует пользовательские файлы различных типов (.doc,
.txt, .pdf, .xls, .jpg, .png и др.) при помощи криптостойкого алгоритма шифрования RSA с
длиной ключа 1024 бит. Затем злоумышленники шантажируют жертву, требуя вознаграждения за дешифрование.
Программы кейлоггеры используются для записи информации о нажатиях клавиш
клавиатуры. Записанная информация отправляется по сети на FTP-сервер, в почтовый ящик
и т. д. Современные кейлоггеры осуществляют перехват звука с микрофона и изображения с
веб-камеры.
108
Для борьбы с вирусами разрабатываются антивирусные программы. Говоря медицинским
языком, эти программы могут выявлять (диагностировать), лечить (уничтожать) вирусы и даже
делать прививку «здоровым» программам.
Различают следующие виды антивирусных программ:
программы-детекторы (сканеры);
программы-доктора (или фаги, дезинфекторы);
программы-ревизоры;
программы-фильтры (сторожа, мониторы);
программы-иммунизаторы.
Программы-детекторы рассчитаны на обнаружение конкретных вирусов. Принцип их
действия основан на сравнении характерной (специфической) последовательности байтов
(сигнатур, портретов или масок вирусов), содержащихся в теле вируса, с текстом проверяемых программ. Программы-детекторы нужно регулярно обновлять, так как они быстро устаревают и не могут выявлять новые виды вирусов.
Следует подчеркнуть, что программы-детекторы могут обнаружить только те вирусы,
которые ей «известны», т. е., если сигнатуры этих вирусов заранее помещены в библиотеку
(базу данных) антивирусных программ.
Таким образом, если проверяемая программа не опознается детектором как заражѐнная, то ещѐ не следует считать, что она «здорова». Она может быть инфицирована новым
вирусом, который не занесен в базу данных детектора.
Для устранения этого недостатка программы-детекторы стали снабжаться блоками эвристического анализа программ. В этом режиме делается попытка обнаружить новые или
неизвестные вирусы по характерным для всех вирусов кодовым последовательностям (фрагментам программы). Наиболее развитые эвристические механизмы позволяют с вероятностью около 80% обнаружить новый вирус.
Программы-доктора не только находят файлы, зараженные вирусами, но и лечат их,
удаляя из файла тело программы-вируса. Программы-доктора, которые позволяет лечить
большое число вирусов, называются полифагами.
В России получили широкое распространение программы-детекторы, одновременно
выполняющие и функции программ-докторов. Наиболее известные представители этого
класса — AVP (AntiViral Toolkit Pro, автор — Е. Касперский), Aidstest (автор —
Д. Лозинский) и Doctor Web (авторы — И. Данилов, В. Лутовинов, Д. Белоусов), AVZ (автор
– О.Зайцев), Doctor Web.
Ревизоры — это программы, которые анализируют текущее состояние файлов и системных областей диска и сравнивают его с информацией, сохраненной ранее в одном из
файлов ревизора. При этом проверяется состояние Boot-секторов, FAT-таблицы, а также
длина файлов, их время создания, атрибуты, контрольные суммы.
Контрольная сумма является интегральной оценкой всего файла (его слепком). Получается контрольная сумма путем суммирования по модулю два (Исключающее ИЛИ) всех
байтов файла. Практически всякое изменение кода программы приводит к изменению контрольной суммы файла.
Ревизоры сначала запоминают сведения о состоянии программ и системных областей
дисков (загрузочного сектора и сектора с таблицей разбиения жесткого диска). Предполагается, что в этот момент программы и системные области дисков не заражены. После этого с
помощью ревизора можно в любой момент времени сравнить состояние программ и системных областей дисков с их исходными состояниями. О выявленных несоответствиях ревизор
сообщает пользователю. Ревизоры контролируют файловую систему, отслеживая перемещение, переименование, создание и удаление файлов и папок (каталогов). Доктора-ревизоры не
только обнаруживают изменения в файлах и системных областях дисков, но и могут в случае
обнаружения изменений вернуть их в исходное состояние.
109
Антивирусная программа ADinf (Advanced Diskinfoscope, автор —Д. Мостовой) относится к классу ревизоров. Антивирус имеет высокую скорость работы, способен с успехом
противостоять вирусам, находящимся в памяти
В отличие от полифагов, ADinf не использует в своей работе «портреты» (сигнатуры)
конкретных вирусов. Поэтому ADinf особенно эффективен при обнаружении новых вирусов,
противоядие для которых еще не придумано.
Антивирусы-фильтры — это резидентные программы (мониторы), которые оповещают пользователя обо всех попытках какой-либо программы выполнить подозрительные действия. Фильтры контролируют следующие операции:
обновление программных файлов и системной области диска;
форматирование диска;
резидентное размещение программ в ОЗУ.
Обнаружив попытку выполнения таких действий, сторож (монитор) сообщает об этом
пользователю, который принимает окончательное решение по выполнению данной операции. В качестве примера такой антивирусной программы можно назвать VSafe. Заметим, что
она неспособна обезвредить даже известные вирусы. Для «лечения» обнаруженных фильтром вирусов нужно использовать программу - доктор.
К последней группе относятся наименее эффективные антивирусы — вакцинаторы
(иммунизаторы). Они записывают в вакцинируемую программу признаки конкретного вируса так, что вирус считает ее уже зараженной, и поэтому не производит повторное инфицирование. Нужно отметить, что этот вид антивирусных программ морально устарел.
Среди зарубежных антивирусных программ чаще других упоминаются в печати программы Norton AntiVirus (фирма Symantec), McAfee (США), Eset NOD32 (Словакия), Panda
(Испания), AVG Antivirus (США).
Рассмотрим основные меры по защите ЭВМ от заражения вирусами.
Необходимо оснастить ЭВМ современными антивирусными программами и регулярно обновлять их версии.
При работе в глобальной сети обязательно должна быть установлена программафильтр (сторож, монитор).
Перед считыванием информации с оптических дисков, Flash-памяти, записанной на
других ЭВМ, следует всегда проверять эти носители на наличие вирусов.
При переносе на свой компьютер файлов в архивированном виде необходимо их
проверять сразу же после разархивации.
Целесообразно делать архивные копии ценной информации на других носителях
информации.
Следует иметь в виду, что невозможно заразиться вирусом, просто подключившись
к Интернету. Чтобы вирус активизировался, программа, полученная с сервера из сети, должна быть на компьютере-клиенте запущена на выполнение. Не используйте
гиперссылки, которые находятся в письмах от неизвестных пользователей.
При считывании информации с Flash-памяти следует включить защиту от записи.
Это создаст препятствие для размножения вирусов.
Получив электронное письмо, к которому приложен исполняемый файл, не следует
запускать этот файл без предварительной проверки. По электронной почте часто
распространяются троянские программы. Заражѐнными могут быть фотографии и
музыкальные файлы.
Последняя — не совсем серьѐзная мера. Если вы хотите полностью исключить вероятность попадания вирусов в ваш компьютер, то не набирайте на клавиатуре
непонятных для вас программ, не используйте лазерные диски, Flash-память, фотоаппараты, видеокамеры, мобильные телефоны для ввода программ и документов.
Отключитесь от локальной и глобальной сетей. Не включайте питание компьютера,
так как возможно, что вирус уже зашит в ПЗУ или проник в CMOS.
110
Во всякой шутке есть доля шутки, а остальное – серьѐзная часть. Так недавно было сообщение, что мобильные телефоны одной фирмы продавались с ПЗУ, в котором был зашит
вирус.
Нужно иметь в виду, что не существует антивирусных программ, которые могут выявлять все типы вирусов. Но принципиальная возможность их создания всегда имеется. Проблема состоит в том, что некоторое время новые типы вирусов могут не обнаруживаться антивирусными программами. Это время требуется разработчикам антивирусных программ
для создания нужного «противоядия». Поэтому пользователям необходимо постоянно обновлять базы своих антивирусных программ.
Как и всякие автоматические средства, антивирусные программы могут совершать
ошибки первого и второго родов: пропускать имеющиеся вирусы и давать ложные сигналы
даже при отсутствии вирусов.
В ряде программ используется так называемое эвристическое сканирование, основанное на вероятностном методе выявления вирусов. При эвристическом сканировании антивирусная программа отыскивает характерные для вирусов комбинации команд (перезапись,
удаление и т. п.). Для таких программ не требуется обновления портретов вирусов (сигнатур), и они способны обнаружить новые разновидности вирусов.
111
5.4. Основные понятия программирования
В этом разделе рассматриваются общие сведения о языках программирования, описаны
основные свойства и способы представления алгоритма, проанализированы базовые структуры программирования.
5.4.1. Языки программирования
На голове косу носила.
Своей косой косу косила.
Пока неизвестный поэт.
Языки программирования являются искусственными языками, в них синтаксис и семантика строго определены. Поэтому языки программирования, в отличие от естественных
языков, не допускают многозначных толкований одних и тех же языковых конструкций (такое, как в эпиграфе).
Рассмотрим важные для программирования понятия: алфавит, синтаксис и семантика.
Алфавит — допустимый для данного языка программирования набор символов (букв,
цифр, специальных знаков), которые могут быть использованы при составлении программ.
Синтаксис — правила построения из символов алфавита языковых конструкций (переменных, констант, функций, процедур, операторов…).
Семантика — система правил, определяющих функциональное назначение языковых
конструкций.
Семантика определяет, что делает ЭВМ при выполнении данной языковой конструкции, а синтаксис определяет форму записи данной языковой конструкции.
Составление программ для ЭВМ первого поколения велось исключительно на машинном языке, который представляет собой свод правил кодирования действий ЭВМ с помощью чисел. Для всех цифровых ЭВМ «понятна» только двоичная система счисления (СС),
которая для сокращения записи часто заменяется восьмеричной или шестнадцатеричной СС.
Восьмеричная и шестнадцатеричная СС используются лишь для облегчения работы программистов. Для технической реализации ЭВМ нужна только двоичная СС.
Совершенствование машинных языков привело к созданию
машинноориентированных языков символического кодирования. Основной принцип создания языков символического кодирования состоит в замене двоичных кодов на их буквенные обозначения, а также в автоматизации распределения памяти и диагностики ошибок. Такой машинно-ориентированный язык получил название языка Ассемблера.
ЭВМ «понимает» только машинный язык, только команды, операнды и адреса, записанные с помощью двоичных чисел. Поэтому для преобразования программы, написанной
на языке Ассемблера, в машинные коды необходим «переводчик».
Перевод программы, написанной на языке Ассемблера, на машинный язык осуществляется с помощью транслятора — специальной программы, которая имеет созвучное с именем языка название: ассемблер.
Недостатком машинно-ориентированных языков является невозможность выполнения
программы, составленной для процессора одного типа, на ЭВМ, которая построена на процессоре другого типа. Другими словами, вид программы зависит от типа машины. Данный
язык ориентирован на определенный тип машины (точнее – процессора).
На следующем этапе развития языков программирования были созданы процедурноориентированные языки. В отличие от машинно-ориентированных языков программирования, синтаксис и семантика этих языков не зависят от состава имеющихся команд конкретной ЭВМ (конкретного процессора). Привязку составленной программы к конкретному типу
ЭВМ осуществляет транслятор (программа-переводчик).
После ввода в ОЗУ исходной программы, составленной на языке программирования
высокого уровня, осуществляется ее трансляция. В результате создается программа на ма112
шинном языке, т. е. программа, состоящая из команд того процессора (той машины), с помощью которого будет решаться задача.
Процесс перевода программы и процесс ее исполнения могут происходить двумя способами. Первый способ, называемый компиляцией, заключается в том, что процесс выполнения программы ЭВМ осуществляется после того, как процесс перевода полностью завершен.
Второй способ трансляции — интерпретация — предполагает, что отдельные операторы (или другие части исходной программы) выполняются сразу после трансляции, после
чего та же процедура совершается над другими операторами и т. д. Интерпретатор можно
сравнить с переводчиком (человеком), который выполняет устный синхронный перевод с
одного естественного языка на другой (например, перевод кинофильма с английского языка
на русский язык). Интерпретатор переводит и сразу выполняет программу последовательно,
строчку за строчкой.
Компилятор можно сравнить с писателем, который делает письменные перевод статьи
или книги. Компилятор перед выполнением программы вначале полностью переводит весь
текст программы на машинный язык.
Интерпретатор работает медленнее, чем компилятор, занимает больше места в оперативной памяти. Однако при отладке новых программ удобнее работать с интерпретатором,
так как он позволяет после исправления ошибки продолжить выполнение программы с места
еѐ остановки. При работе с компилятором после устранения ошибки необходимо повторно
компилировать программу и запускать ее с самого начала, а не с места расположения обнаруженной ошибки.
Существуют комбинированные способы трансляции и выполнения программ. Например, язык Java позволяет сначала компилировать программу в некоторый промежуточный
код (байт-код), а затем выполнять его с помощью интерпретатора (виртуальной Javaмашины).
В дальнейшем мы будем рассматривать общие характеристики различных языков программирования высокого уровня. При этом язык программирования нужно представлять себе как некоторый транслятор (интерпретатор или компилятор), который переводит программу, написанную на языке программирования, понятном для человека, в машинные коды, с
которыми работает ЭВМ.
Запись программы на процедурно-ориентированном языке достаточно близка к общепринятой математической записи, компактна и удобна для восприятия. Рассмотрим, как выглядит операция суммирования двух чисел, например, 7 и 5, запрограммированная на различных языках:
1) на машинном языке:
Адрес
1101 0001
1101 0010
1101 0011
1101 0100
1101 0101
Команда
0011 1111
0000 0101
0000 0110
0000 0111
1000 0000
2) на машинно-ориентированном языке (микропроцессорный комплект 580-й серии):
MVI A,5 MVI B, 7 ADD B;
3) на процедурно-ориентированном языке: А = 7 + 5.
Из приведенных примеров видно, что наиболее проста для понимания последняя запись. Наиболее сложна для восприятия программа, написанная на машинном языке.
Одним из первых процедурно-ориентированных языков был язык Фортран (FORmula
TRANslation — преобразование формул). Фортран является компилирующим языком. Он не
только просуществовал до наших дней, но и удерживает одно из первых мест в мире по рас113
пространенности. Среди причин такого долголетия можно отметить простую структуру, как
самого Фортрана, так и предназначенных для его преобразования в машинные коды трансляторов. Фортран используется в сфере научных и инженерно-технических вычислений.
Язык Фортран продолжает развиваться и совершенствоваться, оказывая сильное влияние на создание и развитие других языков программирования, например, Фортран заложен в
основу диалогового языка Бейсик (BASIC — beginners all-purpose symbolic instruction code).
Это переводится так: многоцелевой язык символьных команд для начинающих.
Язык Бейсик позволил привлечь к изучению технологии программирования большое
число людей из различных предметных областей (непрофессионалов-программистов). В момент его создания он предназначался в основном для обучения программированию. Современные версии языка Бейсик позволяют решать сложные задачи на профессиональном уровне.
Первые версии Бейсика были интерпретирующими, что позволяло в диалоговом режиме
быстро редактировать создаваемые программы. Последние версии Бейсика позволяют использовать оба вида трансляции: и компиляцию, и интерпретацию. При разработке программ Бейсик работает как интерпретатор, а для получения конечного варианта программа компилируется в машинные коды. Такой вариант позволяет получить высокую скорость отладки программы и одновременно большую скорость работы конечного продукта.
Алгол-60 (ALGOritmic Language — алгоритмический язык) — это более совершенный
язык, чем Фортран.
Решение экономических задач (учет материальных ценностей, выпущенной предприятием продукции, личного состава) в 60-х годах ХХ столетия удобно было выполнять на
языке Кобол.
Языки Лисп (Lisp) и Пролог (Prolog) были разработаны для решения задач, относящихся к искусственному интеллекту. Эти языки позволяют обрабатывать текстовую (символьную) информацию, решать логические и математические задачи.
Язык Пролог является непроцедурным языком логического программирования. Он
выбран основным языком при разработке ЭВМ пятого поколения, которые будут обладать
искусственным интеллектом.
Язык ЛОГО (LOGO) используется для обучения детей основам программирования.
Характерной особенностью языка является применение так называемой «черепашьей» графики (движущаяся черепаха оставляет за собой след в виде рисунка).
Обилие алгоритмических языков, появившихся в период разработки и внедрения второго поколения ЭВМ, объясняется невозможностью ни одним из существовавших языков
рационально решать разнообразные задачи. В это время появилась идея создания универсального алгоритмического языка.
Одной из попыток такого рода является разработка фирмой IBM языка ПЛ/1
(Programming Language). Он основан на языках Фортран, Алгол и Кобол.
В 1971 г. появилась публикация с описанием языка Паскаль (Pascal), в котором проводятся идеи структурного программирования. Благодаря хорошей структурированности
программ, написанных на языке Паскаль, над разработкой сложных проектов могут одновременно работать несколько программистов.
На основе языка Паскаль в конце 70-х годов ХХ в. по заказу Министерства обороны
США во Франции был разработан язык Ада (Ada). Язык назван в честь первой программистки Augusta Ada Byron, работавшей с Ч. Бэббиджем. Это хорошо структурированный язык,
однако, слишком громоздкий и многословный.
Язык Ада используется при разработке программного обеспечения для компьютерных
систем, встроенных в самонаводящиеся ракеты, космические объекты, самолеты. Эти системы работают в реальном масштабе времени, где накладываются жесткие требования на быстродействие. Язык Ада поддерживает параллельное выполнение задач в многомашинных и
в многопроцессорных вычислительных системах. В этом случае программа делится на части
и одновременно выполняется на нескольких процессорах.
114
Развитие современной вычислительной техники характеризуется тенденцией распространения многопроцессорных компьютеров и вычислительных сетей. Поэтому в области
программного обеспечения вызывают все больший интерес языки, поддерживающие разработку распределенных программ (т. е. программ, которые выполняются с помощью нескольких процессоров или машин).
Одним из таких языков является Linda — язык, предназначенный для параллельной
обработки данных. При использовании языка Linda вычислительный процесс делится на
группу процессов, среди которых выделяется главный. Указанные процессы осуществляются одновременно на нескольких процессорах и синхронизируются один относительно другого.
Кроме языков Ада и Линда, существуют и другие языки параллельного и распределѐнного программирования, например, Erlang, Occam. Язык Erlang позволяет поддерживать
связь между совместно работающими ЭВМ по протоколу TCP/IP.
Язык СИ позволяет писать эффективные программы, не прибегая к сложным конструкциям языков Ассемблера. На этом языке написана популярная операционная система
UNIX.
Перспективным направлением дальнейшего развития технологии программирования
явилось создание объектно-ориентированных языков программирования.
Объекты представляют собой многократно используемые программные модули.
Структурно объекты состоят из двух частей: методов и переменных.
Методы представляют собой набор процедур и функций, определяющих алгоритм работы объекта. Переменные могут содержать как простые данные (числа, массивы, текст и
т. д.), так и информацию сложной структуры (графика, звуки и т. д.).
Однотипные объекты объединяются в классы. Объектно-ориентированное программирование (ООП) оперирует следующими тремя терминами: инкапсуляцией, наследованием и
полиморфизмом.
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы,
работающие с ними, в объекте и скрыть детали реализации от пользователя. Такое «сокрытие» информации позволяет объектам спрятать их внутреннее устройство. При этом объект
можно использовать, ничего не зная о механизме его работы и ненужных деталях. При инкапсуляции объект заключается в непроницаемую оболочку (интерфейс), и только его внешний вид доступен для использования.
С помощью механизма наследования одни классы объектов могут происходить от
других. Дочерний класс способен перенять от своего родительского класса все его методы и
данные, причем потомок может унаследовать способности и от нескольких родителей.
Полиморфизм — это свойство, которое позволяет объекты с одинаковым интерфейсом использовать для решения двух или более сходных, но технически разных задач. С помощью полиморфизма можно создать общий интерфейс для группы близких по назначению
действий. Например, символ + используется для суммирования целых чисел, длинных целых
чисел, чисел с плавающей точкой и конкатенации символьных переменных.
Первым объектно-ориентированным языком программирования был язык Simula 67
(Симула). Он разработан в конце 60-х годов ХХ столетия в Норвегии для решения задач моделирования.
Первоначально прохладному отношению к языку Симула способствовало то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что в
60-е годы прошлого столетия было существенным недостатком, так как интерпретация связана со снижением скорости выполнения программ.
Типичные современные объектно-ориентированные языки, такие как Си++ и Smalltalk,
содержат инструменты, которые максимально облегчают повторное использование созданных программных модулей.
115
Язык Smalltalk — один из наиболее развитых и мощных объектно-ориентированных
языков программирования. В нем присутствуют все основные признаки объектноориентированного языка, в том числе наследование, полиморфизм и инкапсуляция данных.
Язык Дельфи (Delphi) разработан фирмой Borland на базе языка Турбо-Паскаль. Чаще
всего этот язык программирования используется для работы с базами данных по технологии
клиент-сервер. Основной упор в Дельфи делается на максимальном повторном использовании имеющихся программ. Это позволяет разработчикам строить приложения из уже существующих объектов, а также дает им возможность создавать свои собственные объекты.
Первая версия Visual Basic появилась в 1991 г. Язык близок к объектноориентированным языкам, но по-прежнему остается процедурным языком. Этот язык широко распространен, он интегрирован в пакеты Microsoft Office: СУБД MS Access, электронные
таблицы MS Excel, текстовый редактор MS Word.
Язык гипертекстовой разметки HTML (HyperText Markup Language) был предложен
Тимом Бернерсом-Ли в 1989 г. в качестве основного компонента технологии распределенной
гипертекстовой системы World Wide Web (WWW).
Результирующий документ, составленный на языке HTML, кроме текста может содержать иллюстрации, аудио- и видеофрагменты. В основу гипертекстовой разметки положена
теговая модель описания документа.
Теги (иногда таги или тэги) — это скобки, между которыми записаны команды, указывающие, как отображать данный фрагмент текста Web-страницы.
Для придания Web-страницам интерактивности используется язык программирования
PERL. Язык является интерпретируемым. Он создан программистом Лари Уоллом (Larry
Wall) для обработки текстов и файлов. PERL расшифровывается, как Practical Extraction and
Report Language (язык для практического извлечения данных и составления отчетов).
С помощью языка PERL Web-дизайнеры реализуют интерактивные средства Интернета
гостевые книги, чаты, поисковые системы, доски объявлений и др. Пользователь имеет возможность заполнить соответствующие формы на Web-странице, и введенная информация
будет обработана с помощью программ, написанных на языке PERL.
Сходными возможностями с языком PERL обладает язык PHP (Power Hypertext Preprocessor). Однако последний был разработан для преимущественного использования в сетевых технологиях (для создания интерактивных средств). Язык PHP служит для создания
сценариев, выполняемых на стороне сервера. Первая версия языка PHP (Пи-Эйч-Пи) была
разработана в 1994 году программистом Расмусом Лердорфом (Rasmus Lerdorf). В разработке последующих версий участвовало большое число специалистов.
Язык моделирования виртуальной реальности Virtual Reality Modelling Language
(VRML), предназначен для описания сред, имитирующих трехмерное пространство. Он является расширением гипертекстового языка разметки HTML, используемого для описания
плоских изображений.
Данный язык не только позволяет создать трехмерную среду, но и указать места расположения источников освещения и точек обзора. Более того, VRML позволяет пользователю
перемещаться в созданной виртуальной реальности.
Чаще всего язык VRML применяется в архитектуре для моделирования и проектирования зданий и помещений, в торговле — для выбора вариантов удобной компоновки мебели и
оборудования, в химии — для визуализации молекул в процессе синтеза.
Язык Java (произносится Джава или Ява) предназначен для составления программ
(приложений), которые работают в сетях. Программы, написанные на языке Java, часто используются для создания динамической рекламы (анимация, телетайпные ленты, мерцающие надписи). Java-приложения «оживляют» статические картинки Web-страниц и тем самым привлекают внимание пользователей. Первоначально этот язык предназначался для
дистанционного управления бытовыми приборами.
Язык Java является объектно-ориентированным языком. Он во многом сохраняет синтаксис и стиль программирования языков С и С++.
116
Достоинством языка является то, что он независим от конкретной архитектуры ЭВМ, и
Java-приложения могут работать на различных типах ЭВМ (на различных процессорах), под
управлением различных операционных систем: Windows, UNIX и Macintosh и др. Такое
свойство особенно привлекательно при работе в глобальной сети, состоящей из множества
ЭВМ, реализованных на различных платформах.
Язык поддерживает технологию клиент-сервер. С помощью языка Java сложные приложения разбиваются на небольшие модули, которые называются компонентами (приложениями) или апплетами (applets). Компоненты располагаются на сервере и при работе передаются по сети на ЭВМ клиента (пользователя), где и исполняются.
При работе интерпретатора языка Java исходные тексты транслируются (преобразуются) в псевдокод виртуальной Java-машины. Заметим, что виртуальная Java-машина фактически не существует в виде реальных микросхем и других устройств. Она представляет собой
программный эмулятор (имитатор), выполненный на имеющейся у пользователя аппаратной
платформе. Псевдокод чаще всего называют байт-кодом.
Корпорации SUN Microsystems и Netscape Communications создали язык JavaScript. Он
относится к языкам сценариев, которые позволяют «склеивать» готовые компоненты (вызывать подпрограммы при совершении каких-то событий). Например, 16,4 % исходного кода браузера Mozilla Firefox написано на JavaScript. Язык JavaScript - не единственный язык
управления сценариями просмотра документов. Язык VBScript, созданный на основе языка
Visual Basic, используется для решения таких же задач.
Языки программирования (ЯП) по своим возможностям и времени создания принято
делить на несколько поколений (Generation Language GL). Каждое из последующих поколений по своей функциональной мощности качественно отличается от предыдущего. К сегодняшнему дню насчитывается пять поколений ЯП.
Сведения о некоторых языках программирования приведены в табл. 1.
117
Таблица 1
Язык
Ada
Algol
APL
АПЛ
Годы
разработки
1979—1980
1960
1961—1962
Автор
Jean Ichbiah
Kenneth Iverson,
Adin Falkoff
DELPHI
1995
BASIC
Бейсик
1964—1965
С
C++
C#
COBOL
1972—1973
1980
2002
1959—1961
Dennis Ritchie
Bjarne Stroustrup
Андерс Хейлсберг
Grace Murray Hopper
1971
Charles H. Moore
FORT
FORTRAN
1950—1958
HTML
LISP
LOGO
ЛОГО
Pascal
Паскаль
1989
1956—1960
1968—1970
John Kemeny,
Thomas Kurtz
Тим Бернерс-Ли
John McCarthy
Сеймур Пейперт,
Идит Харель
1986
Larry Wall
PHP
1994
Rasmus Lerdorf
PL/1
1964—1966
Smalltalk
1970
Java
JavaScript
1996
1995
Bell Laboratories
Bell Laboratories
Microsoft
IBM
PERL
1967
Dartmouth College
John Backus
Niklaus Wirth
1978
IBM
Borland
1967—1971
PROLOG
SIMULA
Симула
Фирма,
организация
Cii-Honeywell Bull
International commitee
CERN, (Женева)
Massachusetts Institute of
Techn.
Federal Institute of Technology
IBM
Алан Калмероэ
Оле-Йохан Дал,
Кристен Нигаард
А. Кэй, Д. Ингаллс,
Т. Кэглер, А. Голдберг,
Джеймс Гослинг
Brendan Eich
Норвежский ВЦ
Xerox PARC
Sun Microsystems
Netscape Communications
118
5.4.2. Основные свойства и
способы представления алгоритма
Алгоритм — точное описание способа решения задачи, которое устанавливает состав
(вид) операций и последовательность (порядок) их выполнения.
Любой алгоритм должен обладать следующими свойствами:
— повторяемостью (неизменностью) получаемого результата при многократных расчетах с одними и теми же исходными данными;
— результативностью — обязательным получением некоторого результата (числа,
текста, звука, изображения, перемещение исполнительного механизма и т. д.) или сообщения
о том, что данный алгоритм неприменим для решения поставленной задачи;
— массовостью — возможностью получения результата при различных исходных
данных для некоторого класса сходных задач;
— дискретностью — возможностью разбиения алгоритма на отдельные элементарные
действия.
Существуют следующие формы представления алгоритма:
словесная (вербальная, текстуальная);
графическая;
на языках программирования.
Словесная форма представления алгоритма имеет ряд недостатков. Для достаточно
сложных алгоритмов словесное описание становится слишком громоздким и ненаглядным.
Эта форма представления обычно используется лишь на начальных стадиях разработки алгоритма.
Приведем пример словесной формы описания алгоритма.
Чтобы вычислить корни квадратного уравнения вначале необходимо определить дискриминант. Если дискриминант положителен или равен нулю, то имеется два вещественных
корня. Если дискриминант отрицателен, то корни комплексные (вещественных корней нет).
Далее нужно словами описать порядок вычисления корней. Очевидно, что такая форма
представления алгоритма нерациональна.
Графическая форма представления алгоритмов является более компактной и наглядной. Алгоритм изображается в виде последовательности связанных между собой блоков
(символов), каждый из которых соответствует выполнению одного или нескольких операторов. Такое графическое представление называется блок-схемой алгоритма.
Условные графические обозначения символов, используемых для составления блоксхемы алгоритма, стандартизированы. Некоторые, часто используемые, обозначения приведены в табл. 1.
Таблица 1
b
Процесс
a
a
Решение
b
0,15a
Предопределенный
процесс
(подпрограмма)
a
b
a
Вводвывод
b
0,25a
119
a
Линии
потока
Модификация
a
b
R=0,25a
a
0,5a
Началоконец
b
Комментарии
5
0,5a
Внутристраничный
соединитель
0,5a
0,5a
Межстраничный
соединитель
0,2a
Примечание. Значение a принимается из ряда чисел 10; 15; 20… мм; b = 1,5 а.
Отдельные блоки алгоритмов соединяются между собой линиями потоков информации, которые проводятся параллельно внешней рамке чертежа. Направления линий потока
сверху вниз и слева направо принимаются за основные и, если линии потоков не имеют изломов, стрелками не обозначаются. Этап вычисления (процесс) изображается прямоугольником, внутри которого записывается содержание этого этапа. Проверка условия (альтернатива) изображается ромбом. Ввод исходных данных и вывод результатов изображается параллелограммами, внутри которых пишутся слова «ввод» или «вывод» и перечисляются переменные, подлежащие вводу или выводу.
Рассмотрим блок-схему алгоритма решения квадратного уравнения
ax2 + bx + c = 0.
Начало
Ввод
a,b,c
ds
d = b2 —
4ac
d
0?
да
нет
Вывод:
«Корней
нет»
d
Вычисление
x1
x1
b ds
2a
Вычисление
x2
x2
b ds
2a
Вывод
x1 и x2
Конец
120
Представление алгоритма в виде блок-схемы является промежуточным, так как алгоритм в таком виде не может быть непосредственно выполнен компьютером. Составление
блок-схемы алгоритма является важным и в большинстве случаев необходимым этапом решения задачи на ЭВМ, значительно облегчающим процесс составления программ.
Алгоритм, записанный на каком-либо языке программирования, называется программой.
5.4.3. Базовые структуры программирования
Алгоритм любой сложности может быть представлен комбинацией трех базовых
структур:
следование;
разветвление (альтернатива, если — то — иначе);
цикл (повторение).
Характерной особенностью этих структур является наличие у них одного входа и одного выхода.
Базовая структура «следование» означает, что несколько операторов должны быть выполнены последовательно друг за другом и только один раз за время выполнения данной
программы. Совокупность связанных базовых структур «следование» называется линейным
вычислительным алгоритмом.
Под оператором понимается формальная запись предписания для выполнения некоторой последовательности действий.
Второй базовой структурой является «разветвление». Эта структура обеспечивает, в
зависимости от результата проверки условия (истина или ложь), выбор одного из альтернативных путей работы алгоритма, причем каждый из путей ведет к общему выходу.
Возможные пути выполнения алгоритма помечают метками: истина -ложь, да - нет, 1 0 и т. д.
В частном случае может оказаться, что для одного из выбранных путей действий предпринимать не нужно. Такая структура получила название «обход» или структура «если —
то».
Вход
Вход
да
Пров.
услов.
Оператор 1
нет
Оператор 2
Выход
Структура Если — То — Иначе
да
Пров.
услов.
нет
Оператор
Выход
Структура Если — То (обход)
Алгоритм, в состав которого входит базовая структура «разветвление», называется разветвляющимся. Если в алгоритме имеется три и более направления ветвления, то его можно
представить в виде совокупности нескольких базовых структур «если — то — иначе». Такую разновидность структуры «разветвление» часто называют «множественный выбор».
121
Третья базовая структура «цикл» обеспечивает многократное выполнение одних и тех
же операторов. Группа операторов, повторяющаяся в цикле, называется телом цикла. Различают две разновидности этой структуры: «цикл — пока» и «цикл — до».
Основное отличие структуры «цикл — пока» от структуры «цикл — до» заключается в
том, что в первой структуре операторы тела цикла в зависимости от условия могут не выполняться совсем, тогда как в структуре «цикл — до» тело цикла будет выполняться хотя бы
один раз. Легко заметить, что в структуре «цикл — пока» проверка выполнения условия
осуществляется перед выполнением операторов тела цикла, а в структуре «цикл — до» —
после прохождения тела цикла.
В «цикле пока» операторы тела цикла выполняются до тех пор, ПОКА справедливы
(истинны) условия. В «цикле до» тело цикла выполняется ДО тех пор, пока справедливы
заданные условия.
Вход
Пров.
услов.
Вход
нет
Тело
цикла
да
Тело
цикла
да
Выход
Цикл — Пока
Пров.
услов.
нет
Выход
Цикл — До
Циклы могут содержать внутри себя другие циклы. Такие структуры называются вложенными циклами. Алгоритмы, имеющие в своѐм составе базовую структуру «цикл», называются циклическими.
Рассмотренные выше базовые структуры рекомендуется применять для соблюдения
структурного подхода к разработке алгоритмов. Реальные алгоритмы представляют собой
совокупность всех рассмотренных базовых структур.
122
6. Прикладное программное обеспечение
В данном разделе рассматриваются наиболее популярные прикладные программы: текстовые и графические редакторы, электронные таблицы, базы данных, системы автоматизированного проектирования. Дается понятие об искусственном интеллекте, экспертных системах, мультимедиа и виртуальной реальности.
6.1. Текстовые редакторы
Иногда слова, напечатанные курсивом,
много несправедливее тех,
которые напечатаны прямым шрифтом.
К. Прутков
Представители многих профессий регулярно оформляют текстовые документы (письма, заявления, служебные записки, отчеты, рекламные материалы, приказы, объявления и
т. п.). Для создания документов, подобных перечисленным, предназначены прикладные программы — текстовые редакторы, которые порой называют текстовыми процессорами.
Текстовые редакторы (ТР) позволяют:
набирать новый текст, используя латинский и национальный алфавиты, математические, химические и другие символы;
просматривать и корректировать (редактировать) существующие документы;
разделять имеющийся документ на части и, наоборот, объединять несколько документов в один;
изменять масштаб изображения редактируемого документа;
производить поиск и замену имеющихся цепочек символов;
форматировать текст (т. е. устанавливать желаемые границы, центрировать заголовки, менять размер и начертание шрифта, устанавливать разряженный или уплотненный
шрифт, менять межстрочный интервал, определять способ выравнивания текста, форматировать по образцу и т. д.);
выполнять несложные вычисления непосредственно в тексте;
разбивать текст на страницы нужной длины и автоматически нумеровать их;
работать сразу с несколькими документами (многооконный режим);
вставлять в текст рисунки, таблицы, фигуры, диаграммы, формулы, специальные
символы, видеоклипы, звуковые файлы;
формировать колонтитулы, гиперссылки, закладки, списки;
реализовать обтекание текста вокруг вставленного объекта;
использовать имеющиеся стили;
автоматически переносить слова на следующую строку и т. д.
Возможности текстовых редакторов столь разнообразны, что даже одно их перечисление может занять недопустимо большой объем публикации.
Редактор Microsoft Word for Windows (MS Word) использует принципы, заложенные в
операционную систему MS Windows, например, механизм связывания и встраивания объектов — OLE.
Для издания книг и других типографских материалов используются издательские системы Page Maker, QuarkXPress и Ventura Publisher.
Редакторы снабжаются множеством сервисных свойств, облегчающих работу пользователя. Число команд Главного меню столь велико, что может привести в замешательство
даже искушенного пользователя.
Современные ТР имеют возможность отменить выполнение некоторого числа ошибочно
сделанных операций (такой режим называется откатом).
123
Автосохранение позволяет автоматически записывать редактируемый документ на жесткий диск через определенные промежутки времени, что снижает вероятность потери текста
из-за сбоев в системе электропитания.
ТР позволяет автоматически выделять цветом важные места в документе, создавать автореферат, устанавливать защиту (пароль) на созданный файл. В этом случае документ смогут прочитать лишь лица, знающие данный пароль.
ТР помогают сортировать слова по алфавиту, например,
До сортировки
Воронов
Галкина
Борисов
Андреев
После сортировки
Андреев
Борисов
Воронов
Галкина
ТР может автоматически подсчитывать число символов, слов, строк, абзацев в документе (вести статистику).
Редакторы обладают искусственным интеллектом: они способны дописывать некоторые слова, например, понедельник, вторник, январь, февраль и т. д. Кроме того, редакторы
«умеют» делать расстановку переносов, проверять правописание и подсказывать, как правильно писать то или иное слово, расставлять знаки пунктуации. ТР позволяют подбирать
синонимы и антонимы с помощью специального словаря — тезауруса.
Рассмотрим основные понятия, которые необходимы при работе с текстовыми редакторами.
Символ — наименьший элемент, с которым оперирует текстовый редактор. Примерами
символов являются буквы, цифры, знаки пунктуации и др.
Слово — набор символов, ограниченный с двух сторон пробелами (пустыми пространствами) или знаками препинания (точками, запятыми, восклицательными или вопросительными знаками и т. д.).
Строка — набор слов и символов, расположенных в одну линию (без переносов).
Предложение — набор символов и слов, ограниченный с двух сторон знаками препинания (точками, восклицательными или вопросительными знаками, многоточием).
Абзац — участок текста между двумя нажатиями клавиши Enter (Ввод, перевод строки).
Страница — часть текста, ограниченная сверху и снизу линиями разделения страниц.
Поля — области страницы, где не может размещаться текст.
Отступы — расстояния (зоны, участки) от границ левого и правого полей до текста.
Отступы могут быть нулевыми (малыми), и тогда границы текста будут совпадать с границами полей.
Наглядно представить поля и отступы помогает следующий рисунок.
124
Верхнее
поле
Левое
поле
Левый
отступ
Правый
отступ
Отступ
первой
строки
Правое
поле
Нижнее
поле
Маркер отступа
первой строки
Маркер
отступа
слева
Маркер
отступа
справа
Установить отступы в MS Word удобно с помощью маркеров.
Продолжим рассмотрение основных терминов, относящихся к ТР.
Красная строка — первая строка абзаца, имеющая отступ вправо.
Атрибут текста — параметр текста, который может быть изменен. Атрибутами текста
являются размер символов, шрифт (гарнитура), цвет символов, величина отступа и т. д.
Стиль — группа подобранных пользователем атрибутов текста, обозначенных уникальным именем и хранящихся совместно. Применение стиля к выделенному фрагменту текста приводит к тому, что данный фрагмент текста наследует все атрибуты текста, заложенные в данный стиль.
Стили задают внешний вид для различных элементов в документе, например, заголовков, надписей под рисунками и основного текста. Стили позволяют применить к абзацу или
слову целую совокупность атрибутов форматирования за одно действие.
Шаблон — заготовка, позволяющая быстро оформить документ. Шаблон может содержать готовые рисунки или стандартный текст, которые повторяются во всех документах
такого типа. В качестве примера шаблона можно назвать бланк доверенности, фирменный
бланк предприятия.
Автотекст — текстовые или графические элементы, которые могут быть многократно
вставлены в документ (скажем, обратный адрес, приветствие, обращение и т. д.). Например,
«С уважением, академик Дьяконов».
Автозамена — способ автоматического исправления наиболее часто встречающихся
опечаток, а также орфографических и грамматических ошибок. Например, вместо слова
«ворпос» редактор автоматически напишет слово «вопрос».
125
Автозамена дает возможность установить набор часто используемых слов, фраз, которые можно вставлять в документ, не печатая их каждый раз. Например, набрав на клавиатуре
аббревиатуру ВТ, пользователь сразу получит фразу «вычислительная техника».
Колонтитул — стандартный текст, выводимый в верхней (или нижней) части каждой
страницы документа.
Документ — набор символов, слов, предложений или страниц, логически связанных
между собой и образующих завершенную (законченную) лексическую (языковую, текстовую) конструкцию.
Текст — набор символов, слов, предложений, являющийся частью документа.
Фрагмент — непрерывная часть текста.
Блок — выделенный фрагмент текста.
Форматирование — процедура придания тексту документа желаемой формы.
Шрифт — комплект символов, воспроизводящий какой-либо алфавит.
По внешнему виду все шрифты можно разделить на две группы: шрифты с засечками
(англ. serifs) и без засечек (фр. и англ. sans serifs). Шрифты без засечек имеют другое название — рубленые.
По способу формирования рисунка символов шрифты делятся на растровые и векторные шрифты.
Изображение растрового символа кодируется по точкам в битовой карте (матрице), а
затем без изменений отображается на экране или бумаге принтера. Матрица растрового
шрифта чаще квадратная (например, 8 х 8 или 16 х 16 пикселей).
Основной недостаток растрового шрифта — заметное ухудшение качества при увеличении символа: изображение приобретает ступенчатые очертания.
При создании векторного шрифта рисунок символа не кодируется по точкам, а описывается совокупностью геометрических фигур. Другими словами, при воспроизведении символа его контур рассчитывается по определенным формулам, не зависящим от размера
шрифта. Поэтому векторные шрифты легко масштабировать без потери качества изображения.
В среде MS Windows применение растровых шрифтов в основном ограничено выводом
текстовых сообщений на экран, а для работы с документами, как правило, используются векторные шрифты специального формата TrueType.
При этом один и тот же шрифт применяется и для вывода сообщений на экран, и для
распечатки текста на принтере.
Каждый шрифт TrueType имеет название (имя), например, Arial, Times New Roman,
Symbol.
Шрифты TrueType делятся на моноширинные и пропорциональные.
В моноширинных шрифтах все символы имеют одинаковую ширину, например, символ
«.» (точка) занимает столько же места, сколько буква «ж».
В пропорциональных шрифтах ширина каждого символа разная. Точка занимает совсем
мало места, промежуточную ширину имеет буква «н», а буквы «ж», «ш» — шире всех других.
Пропорциональный шрифт Times New Roman.
Моноширинный шрифт Courier New Cyr.
Рубленый шрифт Arial
Полужирное начертание
Курсив
Подчеркнутое начертание
Шрифт с засечками
Шрифт без засечек
126
Кроме моноширинных и пропорциональных шрифтов существуют декоративные шрифты.
К ним относятся всевозможные стилизации (готический, древнерусский), рукописный
шрифт, трехмерные шрифты, шрифты в виде пиктограмм и др.
Тип шрифта (в полиграфии называется гарнитурой) определяет особенности написания целого набора символов (например, Times New Roman).
Начертание — один из четырех стилей изображения символов (полужирный, курсив,
подчеркнутый, обычный).
Кегль — размер шрифта, который определяется расстоянием между верхним и нижним
выносными элементами. Измеряется в пунктах.
Засечка
Кегль
Внутрибуквенный
просвет
Шрифт
Нижний выносной
элемент буквы
Верхний выносной
элемент буквы
Базовая линия или
линия шрифта
Пункт — единица измерения высоты шрифта. Один пункт равен 1/72 дюйма (один
дюйм равен 2,54 см).
Интерлиньяж — расстояние между базовыми линиями соседних строк. Измеряется в
пунктах и складывается из кегля шрифта и расстояний между строками.
Базовая линия — воображаемая прямая линия, проходящая по нижнему краю символов без учѐта свисаний и нижних выносных элементов.
Апрош — межбуквенный пробел.
Трекинг — регулировка плотности набора символов. Трекинг сдвигает или раздвигает
все буквы на одну и ту же величину.
Кернинг — ручная регулировка расстояний между двумя буквами.
127
6.2. Графические редакторы
Вы рисуйте, вы рисуйте,
вам зачтется.
Б.Окуджава
С помощью компьютерной графики выполняются разнообразные работы: подготовка
рисунков для объявлений, отчетов, статей, книг, диссертаций (Corel Draw, GIMP); составление радиосхем и разводка печатных плат (Altium Designer, OrCAD, P-CAD), оформление
блок-схем алгоритмов и структурных схем радиотехнических устройств ( MS Visio), разработка конструкторской документации (AutoCAD), трехмерное проектирование и моделирование (Autodesk 3ds Max), формирование стереоизображений (Anaglyph Maker), создание
анимаций и мультипликаций (Easy GIF Animator, UnFREEz, Anime Studio Pro), редактирование фотографий (Adobe Photoshop), создание шаржей (Photo Warp), подготовка фрактальных
пейзажей (Art Dabbler, Painter) и др.
Инструментом для формирования компьютерной графики являются ЭВМ и графические редакторы (ГР), которые могут работать отдельно, либо в составе других приложений
(например, программы для моделирования радиоэлектронных схем).
Графические редакторы снабжены наборами инструментов для выделения, копирования, удаления, инвертирования, зеркального отображения, заливки замкнутых контуров, наклона, вращения, перемещения, растягивания, ретуширования изображения, имитации различных манер живописи, художественного преобразования, изменения яркости и контрастности, формирования текстовых сообщений и др.
По принципам формирования изображения все объекты компьютерной графики можно
разделить на три вида: растровые, векторные и фрактальные.
Растровые изображения строятся с помощью маленьких, равных по величине квадратиков (точек, пикселей). Хорошей метафорой для объяснения принципа формирования растрового изображения может служить вышивка «крестиком». Растровую графику можно
представлять себе также как мозаику или витраж. Растровое изображение хранится в памяти
в виде двоичных чисел, которые указывают координаты и цвет отображаемых точек.
На векторных картинках форма изображаемой линии определяется начальными точками и формулой, описывающей эту линию. Этот вид графики можно сравнить с вышивкой
«гладью». Однако лучше представлять векторную графику, как изображение, образованное
из фрагментов разноцветных графиков различных математических функций. Сложное векторное изображение состоит из нескольких объектов (узлы, линии, четырехугольники, многоугольники, фигуры). Объекты могут размещаться в разных слоях, накладываться друг на
друга.
Векторное изображение хранится в памяти ЭВМ в виде чисел, которые характеризуют
координаты опорных точек, форму, толщину и цвет линий.
Фрактальное изображение формируется из одинаковых (подобных) частей (элементов).
Термин «фрактал» произошел от латинского слова fractus, которое в переводе означает
дроблѐный. Фрактал — это математическое множество, обладающее свойством самоподобия. Простейшим фрактальным элементом является треугольник.
Достоинством фрактальной картинки является малый размер файла,
а недостатком — ограниченный набор изображаемых объектов. С
помощью фракталов могут быть реалистично изображены: облака,
деревья, водоросли, кораллы, морские раковины, снежинки, морозные узоры на окне, кровеносная система и др.
Фрактальное изображение хранится в памяти ЭВМ в виде системы уравнений.
Заметим, что все виды графики (растровая, векторная, фрактальная) технически отображаются разноцветными точками на матричном дисплее.
128
Дадим более подробную характеристику каждому виду графики.
Растровая графика (РГ) получается в результате съемки с помощью цифрового фотоаппарата, цифровой видеокамеры или сканирования фотографий, иллюстраций. Растровый рисунок можно создать вручную с помощью растрового графического редактора.
Основным элементом РГ является точка (ее положение в матрице, яркость, цвет). Матричная структура изображений формируется в момент создания растрового изображения.
Фотоаппараты, видеокамеры, сканеры содержат электронные светочувствительные матрицы, которые преобразуют исходную картину в дискретное (точечное) изображение.
Растровое изображение формируется из множества отдельных точек
(пикселей), расположенных на пересечении столбцов и строк. Рисунок с
изображением буквы «Ж» иллюстрирует принцип формирования изображения с помощью растровой графики.
Термину «растровая графика» в английском языке соответствует
термин «Bitmap — графика». В переводе это означает графику, основанную на карте (плане) расположения битов в таблице. Приведенный рисунок с изображением буквы подтверждает справедливость такого названия.
Формирование цветовых оттенков цветного изображения происходит путем слияния
(сложения, смешивания) трех основных цветов в разных пропорциях. Основными цветами
являются: красный (англ. Rot), зеленый (Green) и синий (Blue). Аддитивная модель смешения основных цветов обозначается аббревиатурой RGB. Она основана на психофизических
свойствах человеческого зрения.
Максимальные значения интенсивности трех основных цветов в
модели RGB приводят к формированию белого цвета. Малые значения цветовых составляющих формируют черный цвет или темносерые оттенки. Смешивая основные цвета в различных пропорциях
можно получить любой цветовой оттенок. Например, слияние красного и зеленого цветов даст жѐлтый цвет. Отображение цветных картин
происходит на дисплеях, конструкция которых позволяет смешивать
практически в одной точке основные цвета разной интенсивности.
При типографической печати цветных изображений используется цветоразностная (субтрактивная) модель CMYK. Модель CMYK использует голубой, пурпурный, жѐлтый и чѐрный
цвета.
Рассмотрим, как располагаются компоненты в матрице цветовых составляющих модели
RGB. Для рассмотрения используем математическую систему Mathcad.
Пусть рисунок представляет собой небольшой квадрат со стороной 4 пикселя. В верхней строке квадрата расположены белый, два серых и черный пиксели. Серые пиксели имеют разную степень почернения. Во второй строке размещены три белых пикселя и один
красный. Третья строка состоит из трех белых и одного зеленого пикселя. В последней строке рисунка располагаются три белых и синий
пиксели. Первый столбец состоит из четырех белых пикселей.
Математическая система Mathcad имеет команду, которая позволяет вывести на экран цветовые составляющие любого рисунка.
Матрица цветовых составляющих, которая описывает этот рисунок, содержит 4 строки и 12 столбцов. Число строк в матрице совпадает с числом строк рисунка. Число столбцов в матрице в три раза больше, чем число пикселей в строке рисунка. Это объясняется тем, что
для каждого пикселя необходимо указать три цветовые составляющие: красную, зеленую и
синюю (R, G и B). В данном случае используется 24-х битная модель цветного рисунка.
129
Первая строка матрицы цветовых составляющих описывает первую строку рисунка.
При этом компоненты, расположенные в столбцах 1, 5 и 9 (255, 255, 255), соответствуют белому пикселю, который находится в левом верхнем углу рисунка с изображением шестнадцати пикселей. Черный пиксель в правом верхнем углу рисунка описывается составляющими 0, 0, 0, которые расположены в первой строке, в столбцах 4, 8 и 12. Красный пиксель (составляющие 255, 0, 0) описывается элементами, находящимися во второй строке (столбцы 2,
6 и 10).
Из рассмотренного примера следует сделать вывод, что для формирования каждого
цветового оттенка в 24-х битовой модели RGB нужно сохранять три байта, которые
указывают на интенсивность красного, зеленого и синего цветов.
Более точное представление о цветовой модели RGB можно получить, рассматривая
содержимое памяти, в которой хранится какой–либо рисунок. Пусть это будет изображение
черного прямоугольника (10х4 пикселя), на котором нарисована серая точка. Для
вания серого цвета выберем следующие цветовые составляющие: красный 128
десятичных единиц, зеленый – 129, синий – 130. Указанные составляющие
браны отличающимися друг от друга, что позволяет их различать в памяти
ЭВМ.
Дамп памяти, который содержит рисунок, получим с помощью редактора памяти HEdit32. Из
рисунка видно, что цветовые составляющие размещаются по адресам: 65, 66 и 67. В этих ячейках
памяти размещены шестнадцатеричные числа 82,
81 и 80. Цвета расположены в памяти в таком порядке: синий (адрес 65), зеленый (адрес 66),
ный (адрес 67). Перевод составляющих из
дцатеричной системы счисления в десятичную СС даѐт такие значения: 130, 129, 128. В остальных ячейках содержатся нули (так как прямоугольник черный), за исключением служебной информации, указанной в младших адресах. Например, по адресу 12Н указана ширина
рисунка, измеренная в пикселях (шестнадцатеричное число 0АН говорит о том, что число
пикселей равно 10). В ячейке 16Н указана высота рисунка (4 пикселя).
Качество растрового изображения характеризует разрешающая способность (разрешение), которая измеряется числом точек на единицу длины, например, на дюйм (dots per
inch — dpi). Полиграфическое качество печати требует разрешения порядка 250 dpi.
Фотоснимок размером 10 12 см при полиграфическом разрешении 250 dpi будет содержать примерно 1000 1200 пикселей. Если для кодирования цвета каждого пикселя использовать 24 бита (это дает более 16 миллионов цветовых оттенков), то для хранения всей
информации о такой небольшой фотографии потребуется более 3,4 Мбайт. Приведенное
число говорит о том, что для запоминания растрового изображения требуется значительный
объем памяти. Большой объем файла является первым недостатком растровых рисунков.
130
Еще одним недостатком растровых рисунков является искажение изображения при изменении масштаба изображения. При увеличении появляются пиксели, а при уменьшении
происходит искажение пропорций. При использовании растровой графики на линиях,
имеющих наклон, просматриваются более или менее заметные «ступеньки». Причиной искажений растрового рисунка при увеличении масштаба является сложность предсказания
положения и цвета пикселей увеличенного изображения.
Растровыми редакторами являются: Adobe Photoshop, Corel Photo-Paint, MS Paint и др.
В векторной графике при изменении масштаба изображения пропорции точно выдерживаются благодаря запоминанию математической модели объекта, а не карты (матрицы)
расположения разноцветных пикселей.
Векторными графическими редакторами являются: Corel Draw, Adobe Illustrator, Xara
Xtreme, Adobe Fireworks и др.
Основными элементами векторной графики (ВГ) являются линия и математическая
формула, которая описывает эту линию.
При использовании растровой графики линия создается из множества последовательно
расположенных точек, и чем длиннее линия, тем
больший объем памяти она требует для своего хранения.
При использовании векторной графики запоминается формула, поэтому независимо от протяженности
(длины, размера) все линии одинаковой формы
занимают одинаковое место в памяти ЭВМ. С помощью дополнительных параметров задаются цвет, толщина линии и ее вид (сплошная, пунктирная, штрих - пунктирная и т. д.).
Для формирования векторных изображений широкое распространение получили кривые Безье — разновидность сплайнов третьего порядка.
Отрезок прямой линии описывается параметрическим уравнением:
B(t ) (1 t ) P0 tP1 t [0,1].
При изменении параметра t от 0 до 1 формируется изображение отрезка прямой линии, который соединяет точку P0 с точкой P1. Точки – это
якоря, через которые проходят линии. Пользователь указывает положение этих точек, а графический редактор формирует изображение отрезка.
Квадратичная парабола формируется с помощью трех опорных точек P0, P1 и P2 в соответствии с выражением:
B(t ) (1 t ) 2 P0 2t (1 t ) P1 t 2 P2
t [0,1].
Парабола начинается в точке P0 и заканчивается в точке P2 . Точка
P1 определяет форму кривой (вытянутая, сплюснутая, степень наклона). С
помощью сплайна второй степени можно описать кривую линию с одним
экстремумом.
Рассмотрим растровый графический редактор MS Paint, который
входит в состав стандартных программ операционных систем MS
Windows. Графический редактор MSPaint позволяет получить первое
представление о возможностях растровой графики. Графический
тор MS Paint является однооконным приложением, и его применяют для
работы с точечными рисунками формата JPG, GIF, TIFF или BMP.
131
MS Paint позволяет легко проводить прямые и
вые линии разной толщины, формировать изображения
стандартных фигур: прямоугольников, квадратов, скругленных прямоугольников, эллипсов, звѐзд, стрелок, нестандартных многоугольников. Несложно залить контуры замкнутых фигур каким-то цветом. Кисти различной
формы позволяют создать нестандартные изображения.
К рисунку можно добавить поясняющую надпись.
Все инструментальные средства MS Paint по функциональному назначению можно разделить на следующие группы: средства для вычерчивания графических
примитивов (прямоугольников, эллипсов, окружностей,
прямых и гладких кривых линий); свободного рисования
(кисть, карандаш); стирания изображения (ластик); выделения замкнутых областей; масштабирования изображения; трансформации изображений (отразить, повернуть, растянуть, наклонить); ввода текста; копирования необходимого цвета (пипетка); заливки замкнутой
области одним цветом; изменения цвета используемой краски.
Графический редактор GIMP позволяет работать с растровой,
векторной и фрактальной графикой. Возможности графического редактора GIMP значительно превосходят возможности редактора MS Paint.
Например, GIMP позволяет работать со слоями, каналами, масками. В
его арсенале значительно большее число инструментов, например,
фильтры, штамп, «волшебная палочка», лассо, кривые Безье. GIMP позволяет редактировать фотографии, формировать фракталы.
Каналы – это компоненты точек изображения (красный цвет, зеленый, синий и прозрачность – альфа канал). Каналы позволяют работать с каждым цветом по-отдельности. Это помогает, например, устранить эффект «красных
глаз», делать цветовую коррекцию фотографий.
Слои – это составляющие изображения, которые можно представить себе, как стопку
прозрачных стѐкол (плѐнок), каждое из которых содержит фрагмент полной картины. Прозрачность каждого слоя регулируется с помощью альфа-канала (степень прозрачности меняется от полной прозрачности до непроницаемости).
Кисть – миниатюрное изображение, используемое для рисования.
Фильтры – программные средства, позволяющие имитировать художественный стиль
картины (например, карандашный рисунок, акварель, гуашь, масло, барельеф), изменять изображение в соответствии с художественным замыслом пользователя (удаление ненужных
деталей изображения или многократное повторение выразительных деталей).
Редактор GIMP позволяет формировать фрактальное изображение.
132
На рисунке показаны примеры фрактальных картин, созданных с помощью графического редактора GIMP.
6.3. Средства создания презентаций
Термин «презентация» имеет два значения. Рассмотрим их определения.
Презентация – документ, содержащий набор слайдов, предназначенных для иллюстрации (сопровождения) доклада, технического проекта, лекции, результатов научных исследований, бизнес-плана, дипломного проекта, диссертации и т.п. Презентация может содержать эффекты анимации, звуковые и видео эффекты, которые усиливают эмоциональное
воздействие на аудиторию (слушателей и зрителей), помогают сконцентрировать внимание
на важных моментах материала.
Это определение можно кратко выразить так: презентация – это документ, предназначенный для иллюстрации доклада.
Второе значение термина «презентация» – это мероприятие (встреча, совещание, банкет), целью которого является представление (показ, демонстрация, ознакомление, публикация) чего-либо нового (книги, фильма, фирмы, продукции, изделия, товара, сайта и т.п.).
Второе значение рассматриваемого термина можно лаконично определить так: презентация – это мероприятие, предназначенное для ознакомления с чем-то новым. Например, с
новым мобильным телефоном или планшетом.
Порой презентацию (в первом значении этого термина) называют на английский манер
- слайд-шоу (показ слайдов).
Презентация предполагает использование заранее подготовленного иллюстративного
материала и технических средств для его демонстрации. К современным техническим средствам проведения презентаций относятся локальные и глобальные сети. Причѐм могут применяться разнообразные формы презентации: пассивная или активная демонстрация готового материала. При пассивной презентации материал передаѐтся в завершѐнном виде через
Интернет или демонстрируется на экране телевизора. Например, на выставке или в магазине.
Во время активной презентации выступает реальный докладчик, который использует заранее
подготовленный иллюстративный материал. Презентацию удобно демонстрировать с помощью LCD-проекторов, интерактивных досок.
Презентации могут использоваться для ознакомления людей (клиентов, покупателей,
посетителей, зрителей, учащихся, абитуриентов) с учебными заведениями, предприятиями,
фирмами, продукцией, выпускаемой предприятиями, компьютерными программами, экспонатами музея, артистами театра и эстрады, спортивными клубами, туристическими маршрутами и т.п. Презентации удобно использовать в учебных целях, например, для объяснения
принципа действия какого-либо устройства или порядка работы с программой для ЭВМ.
Презентации можно использовать и в быту, в частности, для создания фотоальбомов, которые посвящены проведенному отпуску, конкретному члену семьи (ребенку) или событию
(свадьбе).
Важным элементом презентаций является «слайд».
133
Слайд (термин происходит от английского слова Slide - диапозитив) – логически и художественно завершенный документ, который может содержать текст, рисунки, фотографии,
таблицы, диаграммы, колонтитулы, гиперссылки, ярлыки, видеоклипы, аудиоклипы, примечания, дату и время, порядковый номер. Отдельные элементы, размещенные на слайде, называются объектами.
Для создания презентаций разработаны специальные программы, которые сочетают в
себе элементы текстовых, графических, видео и звуковых редакторов. В этих программах
имеются средства для показа логически связанных кадров (слайдов). Перечислим несколько
программ, предназначенных для создания, редактирования и демонстрации презентаций: MS
PowerPoint, Harvard Graphics, Lotus Freelance Graphics, Charisma, ACTIVstudio.
Пользовательский интерфейс программы MS PowerPoint содержит четыре основных
элемента: ленту (сверху), сортировщик слайдов (слева), основное окно (в центре) и строку
состояния (снизу).
Основные инструменты и команды, необходимые для создания презентации в приложении MS PowerPoint, расположены на ленте и вкладках.
Лента может быть настроена каждым пользователем по своему вкусу. Можно добавить
на ленту или убрать с ленты вкладки и часто используемые инструменты и команды. Рисунок иллюстрирует процедуру настройки ленты.
Заметим, что программа MS PowerPoint становится полностью мультимедийным приложением, в котором есть несложные инструменты для создания и редактирования текста,
графики, звука и видео.
134
Дадим определение некоторым терминам, которые используются в рассматриваемом
приложении.
Макет – документ (заготовка), который схематично показывает расположение на слайде будущих объектов (заголовков, подзаголовков, рисунков, текста, диаграмм, таблиц, видеоклипов).
Подходящие макеты в MS PowerPoint можно выбрать на вкладке «Главная».
Большое число различных видов макетов можно создать с помощью инструмента SmartArt (Интеллектуальное искусство).
Дизайн – в данном случае заготовка, позволяющая наглядно представить цветовую
схему будущего слайда. В первых версиях PowerPoint эта вкладка имела название «Шаблон».
Анимация - добавление специальных видеоэффектов, которые оживляют слайды. Например, можно создать эффект вращения заголовка или динамичного вытеснения одного
слайда другим. Анимация придаѐт слайдам подвижность, позволяет дополнительными сред135
ствами концентрировать внимание аудитории на важных моментах доклада, делает материал
более запоминающимся.
Гиперссылки, размещѐнные на слайдах, помогают докладчику в нужный момент времени изменить линейный (последовательный) характер демонстрации слайдов, гибко перестроить структуру (план, последовательность) доклада в зависимости от реакции аудитории
и заданных вопросов. С помощью текстовых или графических объектов, исполняющих роль
гиперссылок, докладчик (или лектор) может по своему усмотрению вызвать предыдущий,
первый или последний слайды, либо сделать переход на заранее указанный слайд. Гиперссылкой может служить фрагмент текста или графический объект.
Заметим, что существует ещѐ одна возможность изменения линейного (последовательного) характера демонстрации слайдов. Для этого во время демонстрации презентации нужно сделать щелчок правой кнопкой мыши по слайду и активизировать опцию Просмотр всех
слайдов. В появившемся окне можно выбрать любой слайд.
При демонстрации презентаций MS PowerPoint предоставляет в распоряжение докладчика разнообразные возможности: например, можно использовать указатель в виде лазерной
указки, с помощью которого удобно показывать интересные объекты на слайде. Можно использовать электронный карандаш и маркер, которые позволяют выделять, подчеркивать
ключевые места на слайде.
Смена кадров во время демонстрации происходит по командам, которые подаются докладчиком (лектором), или в заранее установленном темпе (через определенные промежутки
времени). В принципе презентация может демонстрироваться автоматически без участия
докладчика. Это удобно делать во время проведения конференций, ярмарок-выставок или
при установке компьютера в витрине магазина.
Создаваемые презентации являются мультимедийными продуктами за счет использования звуковых эффектов, видеоклипов и анимации.
Здесь уместно заметить, что программы создания презентаций дают возможность создать эффектную, броскую форму подачи доклада, чѐтче продумать структуру доклада. Однако содержание презентации определяется лишь профессиональной подготовкой автора разработки, его квалификацией. Естественно, что броская форма доклада не может заменить содержание. Причем чрезмерное увлечение мелькающими надписями, звуковыми и световыми
эффектами может вызвать негативную реакцию аудитории.
136
6.4. Электронные таблицы
С помощью электронных таблиц (ЭТ) можно решать финансовые, экономические и математические задачи.
Электронные таблицы можно использовать для хранения счетов и внесения в них поправок, для многовариантного прогнозирования результатов предполагаемых финансовых
операций, составления различных бланков, оформления деловой графики и выполнения баланса фирмы. С помощью ЭТ можно облегчить решение таких задач, как обработка заказов и
планирование производства, расчет налогов и заработной платы, учет кадров и издержек,
управление сбытом, составление прайс-листов, статистический анализ данных и др.
При работе с ЭТ практически исключается традиционное программирование (например, с помощью процедурно-ориентированных языков).
Другое равноправное название электронной таблицы — табличный процессор.
Первую электронную таблицу VisiCalc создали в 1979 г. Дэн Бриклин (Dan Bricklin) и
Боб Фрэнкстон (Bob Frankston). В 1982 г. Мич Кейпор (Mitch Kapor) и Джонатан Сачс
(Jonathan Sachs) разработали другую удачную программу Lotus 1-2-3. В 1987 г. фирма
Microsoft создала популярную в настоящее время электронную таблицу MS Excel.
Все файлы, создаваемые в электронных таблицах, называются книгами, причем каждая книга состоит из нескольких листов. Первоначально листы в ЭТ бывают пустыми, и после использования одного листа можно переходить на следующий лист. Между листами
можно установить необходимые связи. Имена листов отображаются на ярлычках в нижней
части окна книги.
Электронная таблица состоит из столбцов и
строк. Столбцы чаще всего обозначаются заглавными латинскими буквами (A, B, C, .., AA, AB, AC,..), а
строки — арабскими цифрами. Каждое пересечение
строки и столбца образует «клетку» таблицы, которая может содержать текст, число или формулу.
Клетка обозначается буквой и цифрой по маркировке столбца и строки, на пересечении которых
она находится. Набор координат, определяющих положение ячейки, называют ссылкой, например, С4. Обозначение ячеек похоже на обозначения, используемые в играх шахматы и
морской бой. Иногда клетки называют ячейками, а ссылку порой называют адресом.
Заметим, что кроме рассмотренного стиля маркировки ячеек, который получил название А1, существует стиль, при котором вначале указывается порядковый номер строки, а затем порядковый номер столбца. Название этого стиля R1C1.
Формула = B2 + C4, расположенная в ячейке B6 (см. предыдущий рисунок), означает,
что нужно взять содержимое ячейки B2, к нему прибавить содержимое ячейки C4 и результат поместить в ячейку B6. Всякое изменение содержимого ячеек B2 или C4 приведет к автоматическому изменению результата в ячейке B6.
Пользователь может задать любой ячейке собственное имя и затем использовать его
при расчетах. Например, =B3+ИТОГ. В данном случае одной из ячеек дано имя «ИТОГ».
Использование имен ячеек облегчает составление формул и делает их более наглядными и
информативными. Например, следующая формула говорит сама за себя:
=ДОХОД-РАСХОД
Формулы позволяют обрабатывать содержимое сразу нескольких ячеек (диапазона ячеек). Например, чтобы просуммировать содержимое ячеек B7, C7, D7, E7, достаточно записать:
=СУММ(B7:E7)
137
Формулы могут ссылаться на ячейки текущего листа, ячейки листов той же книги или
ячейки других книг.
Диапазоном ячеек (также диапазоном ссылок) называются две или более ячейки, расположенные на одном листе.
Синтаксисом формул называется правила записи (структуру) элементов, входящих в
формулу.
Формулы содержат знак равенства (=), вычисляемые элементы (операнды) и операторы.
Операнды — величины, с которыми оперирует (работает) ЭТ.
Операндами могут быть константы, ссылки или диапазоны ссылок, заголовки, имена и
функции. Важно запомнить, что любая формула должна начинаться со знака равенства.
Константы — это величины, которые не изменяются в процессе вычислений, например, число 4 или текст «Прибыль». При записи констант перед ними знак равенства не ставится.
Ссылка — координата ячейки, ее адрес.
Заголовки — ключевые слова, размещенные сверху столбца и слева от строки, с помощью которых описываются данные внутри блока данных. Заголовки можно использовать
при ссылке на необходимые данные. В следующей таблице заголовками являются слова:
Иванов, Петров, Сидоров, Физика, Химия.
Физика Химия
Иванов
4
3
Петров
5
4
Сидоров
5
5
Заголовки в ряде случаев делают обработку информации очень наглядной. Например,
чтобы напечатать оценку Петрова по химии достаточно набрать формулу:
=Петров Химия
Пробел между заголовками является оператором пересечения диапазонов, который
предписывает формуле вернуть значение из ячейки, находящейся на пересечении строки
«Петров» и столбца «Химия».
Функция — это стандартная подпрограмма с уникальным именем, которая возвращает
результат выполнения определенных действий над элементами, выступающими в роли аргументов. Например, функция
=МАКС(A1:A5;B3:B7)
отбирает максимальное число среди чисел двух указанных диапазонов ячеек.
Функции облегчают выполнение стандартных расчетов. Перед функцией ставится знак
равенства, а аргументы заключаются в круглые скобки.
Аргументами в функции могут быть числовые значения, текст, ссылки, диапазоны
ссылок, имена и вложенные функции.
Операторами обозначаются операции, которые выполняются над операндами. В
Microsoft Excel имеется четыре вида операторов: арифметические, текстовые, сравнения, а
также адресные операторы.
Арифметические операторы используются для выполнения математических операций над числами (сложение, вычитание, умножение, деление, возведение в степень, вычисление процентов). Результатом выполнения арифметической операции всегда является число.
Текстовой оператор — & (амперсант) позволяет объединить последовательности символов, находящихся в разных ячейках, в одну последовательность. У операции объединения
символов есть специальное название – конкатенация.
Операторы сравнения используются для сопоставления двух чисел. К ним относятся
операторы: равно, больше, меньше, больше или равно, меньше или равно, неравно. Резуль138
татом выполнения операции сравнения являются логические величины ИСТИНА или
ЛОЖЬ.
Например, следующая функция позволяет просуммировать числа, значения которых
больше четырех:
=СУММЕСЛИ(А1:А7; ―>4‖)
Адресные операторы — двоеточие, запятая и пробел объединяют диапазоны ячеек.
Например, формула =СУММ(А1:А7) говорит о том, что должно быть просуммировано
содержимое ячеек А1, А2, …, А7. Формула =МИН(В1:В5,С5:С9) отберет минимальное число из ячеек двух указанных диапазонов. Наконец, пробел в формуле =Иванов Физика позволит вывести содержимое ячейки, находящейся на пересечении этих заголовков.
Пользовательский интерфейс программы MS Excel показан на предыдущем рисунке.
При обработке числовых данных могут выполняться арифметические операции (сложение, вычитание, умножение и т. д.), а также вычисляться многие статистические функции
(определение среднего значения, дисперсии, медианы, нахождение максимального значения
и т. п.).
ЭТ обладают элементами искусственного интеллекта.
MS Excel позволяет быстро ввести дни недели (от понедельника до воскресенья), причем достаточно набрать на клавиатуре только первый элемент, а остальные будут добавлены
автоматически по технологии. Аналогично можно ввести месяцы (от января до декабря) либо
другую заранее подготовленную последовательность элементов (например, фамилии).
Еще одна интересная возможность ЭТ состоит в использовании арифметических и
геометрических прогрессий для быстрого заполнения большого числа ячеек.
Например, чтобы ввести порядковые номера студентов, достаточно указать только
цифры 1 и 2. Все остальные номера будут введены автоматически. С помощью арифметической прогрессии легко ввести, например, только четные (или нечетные) номера.
За счет геометрической прогрессии просто сформировать такие (и подобные) последовательности чисел: 5; 20; 80; 320 или 1; 2; 4; 8; 16; 32.
ЭТ позволяют «предсказывать» результаты. Например, если известны антропологические параметры трех студентов, то можно попытаться «угадать» параметры четвертого студента, для которого известна только часть параметров.
Рост, см (х)
Вес, кг (y)
152
52
163
63
174
74
139
Предположим, что рост студента 170 см, а вес неизвестен. Расчет веса можно произвести с помощью функции:
=ПРЕДСКАЗ(170;{52;63;74};{152;163;174})
В результате будет получен ответ: 70 кг.
Расчеты в данном случае ведутся по методу наименьших квадратов, и исходная зависимость заменяется (аппроксимируется) уравнением прямой линии.
В качестве аргументов здесь использованы два массива чисел, которые заключены в
фигурные скобки.
ЭТ дают возможность копировать или перемещать содержимое клетки в другие позиции.
Рассмотрим два важных понятия: относительная и абсолютная ссылки.
На следующем рисунке в ячейке С1 записана формула
сложения содержимого ячеек А1 и В1. При этом использованы относительные ссылки. Копирование этой формулы в
ячейку С2 привело к автоматическому изменению ссылок.
Вместо формулы =А1+В1 в ячейке С2 появилась формула
=А2+В2. В ячейке С4 записана формула сложения, в которой использованы абсолютные ссылки. Легко заметить, что
добавлены знаки долларов. Копирование этой формулы в
ячейку С5 не привело к изменению этой формулы.
Понятно, что использование относительных и абсолютных ссылок дает разные результаты. Это иллюстрирует следующий рисунок.
Таким образом, абсолютная ссылка — это использующаяся в формуле ссылка, которая не изменяется при копировании в другую ячейку.
Относительная ссылка — это ссылка, которая изменяется при копировании формулы.
Электронные таблицы позволяют эффективно решать
задачи сортировки данных. Следующая таблица является
примером базы данных для небольшого фруктового сада. Каждая запись содержит информацию об одном дереве. База данных размещается в интервале ячеек A1:E7, а критерии сортировки занесены в ячейки A9:С11.
A
B
C
D
E
1 Деревья Высота Возраст Урожай Доход
2 Яблоня
18
20
14
105
3 Груша
12
12
10
96
4 Вишня
13
14
9
105,3
5 Яблоня
14
15
10
75
6 Груша
9
8
8
76,8
7 Яблоня
8
9
6
45
8
Критерии
9 Деревья
10 Яблоня
11 Груша
Высота
>10
Высота
<16
Требуется определить следующие величины.
Максимальный доход от всех яблонь и груш.
Минимальный доход от яблонь и груш, высота которых более 10.
Суммарный доход от яблонь, высота которых лежит в интервале от 10 до 16.
140
Приведем расчетные формулы и результаты расчетов по каждому пункту задания.
=ДМАКС(A1:E7;’’Доход’’;A9:A11). Ответ: 105 .
=ДМИН(A1:E7;’’Доход’’;A9:B11). Ответ 75.
=БДСУММ(A1:E7;’’Доход’’;A9:С10). Ответ:75.
141
6.5. Базы данных
Одной из важных возможностей ЭВМ является хранение и обработка больших объемов
информации, причем происходит накопление не только текстовых и графических документов (рисунки, чертежи, фотографии, географические карты), но и страниц глобальной сети
HTML, звуковых и видео файлов. Эти возможности реализуются с помощью баз данных.
База данных (БД) — совокупность данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования данными, которые относятся к определенной предметной области.
Под данными понимается информация, представленная в виде, пригодном для обработки автоматическими средствами при возможном участии человека.
Под предметной областью понимается однородная часть реального мира, которая
представляет интерес для конкретного исследования.
В качестве примеров простейших БД можно назвать телефонный справочник, расписание движения поездов, сведения о сотрудниках предприятия, каталог товаров и цен на них
(прайслист), алфавитный или предметный каталог книг в библиотеке, словарь иностранных
слов, результаты сдачи сессии студентами, каталог видеозаписей, список кулинарных рецептов.
Главное достоинство электронных БД — возможность быстрого поиска и отбора информации, а также простая генерация (создание) отчета по заданной форме. Например, по
номерам зачеток легко определить фамилии студентов или по фамилии писателя составить
список его произведений.
Пользователей баз данных можно разделить на три категории: конечные пользователи
(те, кто вводят, извлекают и используют данные), программисты и системные аналитики
(те, кто пишут прикладные программы обработки данных, определяют логическую структуру БД) и администраторы.
Администратор базы данных — это специалист, отвечающий за выработку требований
к базе данных во время еѐ проектирования, успешную реализацию БД в процессе еѐ создания, эффективное использование и сопровождение БД в процессе эксплуатации. Администратор взаимодействует с конечными пользователями и программистами в процессе проектирования БД, контролирует ее работоспособность, отвечает за реорганизацию и своевременное обновление информации, удаление устаревших данных и за восстановление разрушенных данных, за обеспечение безопасности и целостности данных.
Под безопасностью данных понимают защиту данных от случайного или преднамеренного несанкционированного доступа к ним лиц, не имеющих на это права.
Под целостностью понимается возможность восстановления данных в случае возникновения сбоев в работе вычислительной техники. Если БД содержит данные, используемые
многими пользователями, то очень важно, чтобы данные и связи между ними не разрушались.
Программисты и системные аналитики, создавая БД, стремятся упорядочить информацию по различным признакам (реквизитам, атрибутам), для того чтобы можно было извлекать из БД информацию с произвольным сочетанием признаков.
В современной технологии использования баз данных предполагается, что создание базы данных, ее поддержка и обеспечение доступа пользователей к ней осуществляется с помощью специального программного обеспечения — систем управления базами данных.
Системы управления базами данных (СУБД) — программы, которые обеспечивают
создание БД и организацию данных. СУБД позволяют вводить, отбирать и редактировать данные. Они предоставляют средства для извлечения данных по определенному критерию (требованию, правилу). СУБД дают возможность конечным пользователям осуществлять непосредственное управление данными, а программистам и системным аналитикам быстро разрабатывать более совершенные программные средства их обработки.
Рассмотрим существующие классификации баз данных.
142
По технологии обработки данных БД подразделяются на централизованные и распределенные.
Централизованная БД хранится в памяти одной ЭВМ.
Распределенная БД состоит из нескольких частей (возможно, пересекающихся или даже дублирующих друг друга), хранящихся на различных ЭВМ вычислительной сети.
По способу установления связей между данными различают реляционные, иерархические и сетевые БД.
Реляционная БД является простейшей и наиболее привычной формой представления
данных в виде таблиц. В теории множеств таблице соответствует термин отношение
(relation), который и дал название этой БД. Для нее имеется развитый математический аппарат — реляционное исчисление и реляционная алгебра, в которых определены такие математические операции, как объединение, вычитание, пересечение, соединение и др.
Существенный вклад в разработку БД этого типа сделал американский ученый Е. Кодд
(E. Codd).
Достоинством реляционной БД является сравнительная простота инструментальных
средств ее поддержки, недостатком — жесткость структуры данных (невозможность, например, задания строк таблицы произвольной длины) и зависимость скорости ее работы от размера базы данных. Для многих операций, определенных в такой БД, может оказаться необходимым просмотр всей БД.
Иерархическая БД предполагает наличие связей между данными, имеющими какойлибо общий признак. В иерархической БД такие связи могут быть отражены в виде дереваграфа, где возможны только односторонние связи от старших вершин к младшим. Это ускоряет доступ к необходимой информации, но только если все возможные запросы отражены в
структуре дерева. Никакие иные запросы на извлечение информации не будут удовлетворены.
Указанный недостаток снят в сетевой БД, в которой (по крайней мере, теоретически)
возможны связи «всех данных со всеми». Поскольку на практике это осуществить невозможно, приходится прибегать к некоторым ограничениям. Использование иерархической и
сетевой БД ускоряет доступ к информации в базе данных. Каждый элемент данных должен
содержать ссылки на некоторые другие элементы.
Сведения о некоторых СУБД приведены в таблице.
Название СУБД
MS Access
Cache
IDS
FoxPro
IMS
Oracle
Тип БД
реляционная
иерархическая
сетевая
реляционная
иерархическая
реляционная
Рассмотрим основные понятия и компоненты реляционных БД (например, MS Access),
которые в настоящее время имеют наибольшее коммерческое использование.
Реляционная БД ориентирована на организацию данных в виде двумерных таблицотношений. Каждая таблица обладает следующими свойствами:
каждый элемент таблицы — это один элемент данных;
все столбцы в таблице однородные, т. е. все элементы в столбце имеют одинаковые
длину и тип (числовой, символьный и т. д.);
каждый столбец имеет уникальное имя;
одинаковые строки в таблице отсутствуют;
порядок следования строк и столбцов может быть произвольным.
143
Таблица — это набор данных по конкретной теме (предметной области), например,
сведения о студентах высшего учебного заведения. Данные в таблице располагаются в
столбцах (полях) и строках (записях).
Поле — это элементарная единица логической организации данных, которая соответствует отдельной, неделимой единице информации — атрибуту. Каждому полю дается имя
поля (идентификатор поля внутри записи), например, «Фамилия».
Запись — это совокупность логически связанных полей.
В реляционном подходе к построению баз данных используется терминология теории
отношений. Столбец таблицы со значениями соответствующего атрибута называется доменом, а строка со значениями разных атрибутов — кортежем.
Итак, для реляционных БД существует несколько равноправных терминов: столбец
может называться полем или доменом, а строка — записью или кортежем.
На рисунке приведены две таблицы из одной
базы данных. Одна таблица содержит основные
сведения о студентах, вторая — результаты сдачи
сессии. Из рисунка видно, что каждое поле имеет
уникальное (единственное в данной таблице) имя. В
таблице «Сессия» атрибут «Результат» показывает
средний бал, полученный при сдаче сессии.
Каждая запись должна однозначно идентифицироваться (определяться) уникальным ключом
записи. В общем случае ключи записи бывают двух
видов: первичный (уникальный) и вторичный.
Первичный ключ — это одно или несколько
полей, однозначно идентифицирующих запись. Если
первичный ключ состоит из одного поля, он называется простым, если из нескольких полей — составным ключом.
В приведенных выше таблицах простым первичным ключом является атрибут «Зачетка». В первой таблице можно было попытаться использовать в качестве простого первичного
ключа атрибут «Фамилия». Однако не исключена возможность существования однофамильцев среди студентов. В этом случае атрибут «Фамилия» не сможет играть роль ключа, однозначно определяющего каждую запись. В качестве ключей часто используют инвентарные,
табельные номера, электронные адреса, номера ICQ, паспортные номера и серии или просто
порядковые номера записей.
Вторичный ключ — это такое поле, значение которого может повторяться в нескольких записях, т. е. он не является уникальным. Если по значению первичного ключа может
быть найден один-единственный экземпляр записи, то по вторичному ключу — несколько
записей.
Одной из основных характеристик БД является набор допустимых типов данных, которые могут содержаться в полях записей. За каждым полем записи строго закреплен конкретный тип данных, определяющий ограниченный набор применимых к нему операций. К типам данных относятся: символьный (текстовый), числовой, булевский (логический), денежный, дата, время, связанный по технологии OLE объект.
В реляционной БД содержится, как правило, несколько таблиц с различными сведениями. Разработчик БД может установить связи между отдельными таблицами. При создании связей используют ключевые поля. После установления связей появляется возможность
создания запросов, форм и отчетов, в которые помещаются данные из нескольких связанных
между собой таблиц.
Предположим, что в рассматриваемой базе данных
имеется еще одна таблица с названием «Стипендия», с
помощью которой начисляется стипендия в зависимости
от среднего балла за сессию (в процентах от максималь144
ной стипендии). Ключевым полем в этой таблице является столбец с названием «Код».
Следующий рисунок иллюстрирует процесс создания связей между этими тремя таблицами.
Для отбора данных из БД, удовлетворяющих определенным условиям, создается запрос. Запрос — это инструкция для отбора нужных сведений из данной БД в соответствии с
определенными условиями (критериями).
Большинство СУБД разрешают использовать запросы следующих типов:
запрос-выборка, предназначенный для отбора данных, хранящихся в таблицах,
причем этот вид запроса не изменяет эти данные;
запрос-изменение, предназначенный для перемещения данных или их модификации
(добавление, удаление, обновление записей);
перекрестный запрос, предназначенный для отображения результатов статистических расчетов (суммы, количества записей, среднего значения), которые группируются в виде таблицы по двум наборам данных, один из которых определяет заголовки столбцов, а другой заголовки строк;
подчиненный запрос, включающий в себя инструкцию, находящуюся внутри другого запроса на выборку или изменение.
На рисунке показана форма (бланк) запроса-выборки, предназначенного для отбора из
БД оценок по математике у студентов группы БТ-61, а на следующем рисунке — результаты
сделанной выборки.
Запрос можно формировать с использованием логических (булевых) операций И (AND),
ИЛИ (OR), НЕ (NOT). Например, если требуется
выбрать из БД сведения о результатах сдачи математики студентами групп БТ-61 и БТ-62, то необходимо изменить запрос следующим образом:
145
В этом случае из БД будут отобраны данные с
помощью логической операции ИЛИ и на экране появятся сведения о студентах двух групп — БТ-61 и БТ62.
Логическая операция И используется для решения следующей задачи. Пусть требуется выбрать из БД
фамилии студентов группы БТ-63, сдавших математику с оценкой 5. На следующем рисунке показано, как
формируется запрос с использованием логической операции И.
Результаты отбора приведены на следующем рисунке. Рассматриваемые примеры
умышленно выбраны простыми, для того чтобы можно было проверить полученный результат даже без использования ЭВМ.
Таблица с результатами запроса может использоваться при дальнейшей обработке данных. В запросе на выборку могут использоваться не только таблицы БД, но и таблицы, полученные ранее в результате
запросов.
В запросах можно производить вычисления.
Например, для подсчета среднего балла нужно при
формировании запроса вначале просуммировать оценки по четырем предметам, а затем результат разделить на четыре.
В СУБД MS Access это делается так. В очередном свободном заголовке поля делается
следующая запись:
Результат: =((Математика)+(Физика)+(Информатика)+(Графика))/4
Чтобы осуществить отбор записей из базы данных
по фамилии, нужно в качестве условия отбора использовать следующую запись:
Like(Фамилия)
Конкретный пример показан на рисунке слева.
Форма позволяет отобрать данные из одной или
нескольких таблиц и вывести их на экран, используя
стандартный или созданный пользователем макет. При
этом формы могут воссоздавать привычные для конечного
пользователя документы. Формы используются не только
для вывода данных из БД, но также (и, пожалуй, чаще) и
для ввода данных. На рисунке представлена форма, позволяющая установить средний балл каждого студента (см. поле «Результат»). Содержание формы изменяется пользователем в зависимости от стоящей перед ним задачи.
Отчет содержит ту информацию из БД, которая должна быть представлена в виде итогового документа. Обычно отчет представляется в напечатанном на бумаге виде (в отличие
от таблиц, запросов и форм, которые чаще всего отображаются лишь на экране дисплея).
146
Нестандартная обработка данных может быть произведена с помощью макросов (последовательности нескольких команд, вызываемых нажатием одной клавиши) либо с помощью программ, написанных на языке Access Visual Basic. Такие программы часто называют
модулями.
Для обработки информации в MS Access также используется специализированный
язык SQL (Structured Query Language – структурированный язык запросов).
147
6.5. Искусственный интеллект
Электронный мозг будет думать за нас точно так же,
как электрический стул за нас умирать.
С. Лец
Искусственный интеллект (Artificial Intelligence) имеет давнюю историю. Платон, Аристотель, Сократ, Р. Декарт, Г. Лейбниц, Дж. Буль, затем Н. Винер и многие другие исследователи стремились описать мышление как совокупность некоторых элементарных операций,
правил и процедур.
Научной задачей искусственного интеллекта (ИИ) является воссоздание (имитация) с
помощью искусственных устройств разумных рассуждений и действий человека.
Приведем некоторые определения искусственного интеллекта, опубликованные в различных литературных источниках.
1. ИИ — условное обозначение кибернетических систем, моделирующих некоторые
стороны интеллектуальной (разумной) деятельности человека: логическое и аналитическое
мышление.
2. ИИ — способность робота или компьютера к имитации человеческих навыков,
используемых для решения задач, изучения проблем, рассуждений и самоусовершенствования.
3. ИИ — научное направление, связанное с разработкой алгоритмов и программ для
автоматизации деятельности, требующей человеческого интеллекта.
4. ИИ — одно из направлений информатики, цель которого — разработка аппаратнопрограммных средств, позволяющих пользователю-непрограммисту ставить и решать свои
задачи, традиционно считающиеся интеллектуальными, общаясь с устройством (ЭВМ) на
ограниченном подмножестве естественного языка.
Первое и второе определения делают акцент на аппаратную реализацию систем ИИ,
третье определение выделяет программную часть ИИ, а четвертое определение учитывает и
аппаратную, и программную стороны имитации разумной деятельности
человека.
В определениях встречается термин «интеллектуальный». Интеллект — это способность мыслить, рационально познавать. Слово «ум»
тождественно по смыслу слову «интеллект».
Известный ученый Алан Тьюринг (математик, криптограф) предложил специальный критерий, с помощью которого определяют, обладает ли машина искусственным интеллектом. Согласно этому критерию,
машина может быть признана мыслящей, если эксперт, ведя с ней диалог по достаточно широкому кругу вопросов, не сможет отличить ее ответов от ответов разумного человека.
Системы ИИ разделяются на два научных направления: нейрокибернетику (или искусственный разум) и кибернетику «черного ящика» (или машинный интеллект).
Напомним, что кибернетика — это наука об управлении, связи и переработке информации. Кибернетика исследует объекты независимо от их материальной природы (живые и
неживые системы). Чтобы легче запомнить значение этого термина, нужно помнить, что
слова «кибернетика» и «губернатор» родственные.
Первое направление — нейрокибернетика — базируется на аппаратном или программном моделировании работы головного мозга человека. Основой мозга является большое число (около 14 миллиардов) связанных и взаимодействующих нервных клеток — нейронов.
Системы искусственного интеллекта, которые моделируют работу головного мозга, называют нейронными сетями (или нейросетями). Первые нейросети были созданы в конце 50х годов ХХ столетия американскими учеными Г. Розенблаттом и П. Мак-Каллоком.
148
Нейронные сети используются при разработке алгоритмов распознавания изображений, речи, сигналов, для шифрования данных. С их помощью могут быть построены системы взлома шифров [9].
Для второго направления ИИ — кибернетики «черного ящика» — не имеет значения,
какова конструкция «мыслящего» устройства. Главное, чтобы на заданные входные воздействия оно реагировало так же, как человеческий мозг.
Пользователи ЭВМ достаточно часто встречаются с проявлением искусственного интеллекта. Например, при работе с текстовым редактором происходит автоматическая проверка правописания (причем с учетом используемого языка). При работе с электронными
таблицами не требуется вводить все дни недели или все месяцы года. Достаточно сделать
одну - две записи, а ЭВМ сумеет безошибочно дополнить список. С помощью микрофона и
специальной программы можно голосом управлять работой компьютера. При наборе электронного адреса браузер пытается предугадать адрес и дописать его. Поиск информации в
глобальной сети по заданным ключевым словам также происходит с привлечением элементов ИИ. При сканировании рукописного текста системы ИИ распознают буквы и цифры. Фотоаппарат при автоматической настройки резкости из всех объектов, наблюдаемых в видоискателе, выбирает лицо человека.
Конечно, современные системы ИИ еще далеки от совершенства и поэтому могут встречаться ошибки и курьезы. Так, если при работе с текстовым редактором MS Word вместо слова «пунктов» написать слово «пунков», то редактор предложит заменить неправильно написанное слово словами «пупков», «пинков» и др.
Программа Punto Switcher позволяет автоматически переключать регистр клавиатуры, если пользователь случайно
использует вместо кириллицы латиницу.
Идеи ИИ используются в теории игр, например, для
создания ЭВМ, играющей в шахматы, шашки, го, реверси, карты и другие логические и стратегические игры.
Артур Самуэль разработал программу для демонстрации возможностей искусственного интеллекта. Проверку работоспособности программы А.Самуэль осуществил на игре в шашки.
А.Самуэль использовал функцию выигрыша, которая оценивала положение шашек на
доске и вероятность выигрыша. Функция выигрыша измеряла шанс победы для каждой стороны при данном положении фигур. Учитывались такие составляющие, как число шашек у
каждой стороны, количество дамок и близость шашек к последней горизонтали (где шашки
превращались в дамки). Программа выбирала свой ход, на основании минимаксной стратегии. Каждый ход выбирался на основании оптимизации функции выигрыша в предположении, что противник использует тот же критерий оптимизации.
В апреле 2007 года доктор Джонатан Шэффер (Jonathan Schaeffer) со своими коллегами
создал компьютерную программу, играющую в шашки, которую невозможно обыграть. Программа Chinook может довести партию до ничьей, но никогда не проиграет.
Над разработкой программы для игры в шахматы работал Алан Тьюринг (1948 г.).
Клод Шеннон рассматривал вопросы программирования для игры в шахматы (1951 г.).
ЭВМ уже обыгрывают действующих чемпионов мира по шахматам. Подтверждением
этого являются результаты шахматных матчей Г.Каспарова и В.Крамника против компьютеров. Напомним, что первые шахматные автоматы лишь имитировали искусственный интеллект (в них был спрятан человек, хорошо игравший в шахматы).
С помощью ИИ решают задачу синтеза речи и обратную задачу — анализа и распознавания речи.
В большинстве случаев ИИ используется для нахождения метода решения некоторой
задачи. Математика является одним из основных направлений приложений методов ИИ.
149
К сфере ИИ относят задачи распознавания образов (оптических и акустических). Идентификация отпечатков пальцев, сравнение человеческих лиц — это задачи распознавания образов. Автоматическое выявление лица террориста в толпе людей – это одна из типичных
задач ИИ. Определение телефонного террориста возможно по его голосу.
Экспертные системы, построенные на идеях ИИ, аккумулируют опыт, знания, навыки
специалистов (экспертов) для того, чтобы в нужный момент передать их любому пользователю ЭВМ.
Чаще всего программы ИИ составляют на языках программирования PROLOG, LISP
или Smalltalk.
Одна из самых первых программ искусственного интеллекта GPS (General Problem
Solver) создана А. Ньюэллом, Дж. Шоу и Г. Саймом в конце 50-х годов ХХ столетия. Она
способна однотипным способом решать такие непохожие задачи, как расчет интегралов, разгадывание логических головоломок, доказательство теорем, грамматический анализ фраз.
Яркими представителями ИИ являются электронные переводчики и словари. Считается, что история машинного перевода началась с эксперимента, проведенного в Джорджтаунском университете в 1954 г. Впервые текст, написанный на русском языке, был переведен на
английский язык с помощью ЭВМ.
Идеи ИИ положены в основу функционирования интеллектуальных роботов — электромеханических устройств, предназначенных для облегчения работы человека. Заметим, что автором термина «робот» является чешский писатель Карел Чапек.
Японский робот-андроид ASIMO имеет рост 130 см, весит 54
кг и напоминает космонавта в белом скафандре. ASIMO точно копирует человеческую походку. Он развивает скорость до 6 км/ч при
ходьбе, и - до 9 км/ч при беге. ASIMO определяет расстояние до
движущегося объекта, его скорость и направление движения. Это
позволяет роботу исключить столкновение с людьми и препятствиями. Робот способен запомнить лица людей, а затем обращаться
к ним по их именам. Он отличает голос одного человека от голоса
другого и способен выполнять голосовые приказы. Робот может
налить воду в стакан и отдать его человеку.
Современные роботы умеют танцевать, петь рисовать, играть в футбол, управлять автомобилем, выражать различные человеческие чувства (восхищение, печаль, антипатию, стыд, страх, радость). Форма и размеры
роботов существенно варьируются: от роботов-андроидов до роботов-насекомых. Роботы давно неустанно трудятся на автоматизированных производственных участках.
Бытовые роботы-пылесосы перемещаются по квартире, убирают мусор и самостоятельно возвращаются для подзарядки аккумулятора на базу.
Роботы могут использоваться для выполнения работ в зонах
повышенной опасности (пожар, наводнение, радиационное или
химическое заражение). Они нужны в экстремальных ситуациях, в которых человек не может действовать в силу физиологических ограничений (задымление, запыление, высокие или
низкие температуры, низкая освещенность, под водой, на больших высотах).
Разрабатываются роботы для участия в боевых действиях. Они будут обладать интеллектом военнослужащего, и действовать самостоятельно с учетом сложившейся обстановки.
Роботы-аватары будут управляться оператором на безопасном расстоянии. Беспилотные самолеты уже находятся на вооружении многих стран. Робот-санитар способен вынести раненного солдата с поля боя.
150
И все же, несмотря на фантастические возможности ЭВМ, вероятно, машины останутся
лишь мощным инструментом. А мыслить, и творить будет человек. Очень не хотелось, чтобы искусственные устройства отодвинули человека в его интеллектуальной деятельности на
второй план. Бесчеловечной тенденцией развития робототехники является создание военных
роботов, которые будут убивать людей. Такое развитие искусственного интеллекта является
угрозой для существования человечества.
151
6.7. Экспертные системы
Экспертная система (ЭС) — это интеллектуальная вычислительная система, в которую включены знания опытных специалистов (экспертов) о некоторой предметной области
(финансы, медицина, право, геология, страхование, поиск неисправностей в радиоэлектронной аппаратуре и т. д.). ЭС в пределах определенной предметной области способна давать
советы, ставить диагноз. Экспертные системы базируются на теории искусственного интеллекта.
ЭС позволяет накапливать, систематизировать и сохранять знания, профессиональный
опыт тех специалистов, которые решают конкретные задачи наилучшим образом. Накопленные в ЭС знания могут быть использованы на практике неограниченное число раз.
Работа экспертных систем основана на алгоритмах искусственного интеллекта и
предполагает использование информации, заранее полученной от специалистов-экспертов.
Таким образом, экспертная система — это электронный эксперт (советник), помощник.
Заметим, что ударение в слове «эксперт» следует делать на второй слог.
ЭС используются там, где нет твердо устоявшейся теории, в тех предметных областях,
где слишком много переменных величин (факторов, показателей, симптомов), затрудняющих создание полной теории, точной математической модели. В этих предметных областях
искусные практики при решении задач опираются на свой опыт, навыки и интуицию.
Ниже приведена структурная схема экспертной системы.
Решатель
Интерфейс
пользователя
База
знаний
Редактор
базы
знаний
Подсистема
объяснений
С помощью редактора базы знаний эксперт (специалист в данной предметной области) наполняет базу знаний полезными сведениями (как бы передает ей свои знания, умения,
навыки). При создании ЭС наиболее трудоемким и трудно формализуемым этапом является
процедура заполнения базы знаний сведениями, необходимыми для ее работы. Базы знаний
могут включать несколько десятков тысяч фактов и правил. В создании баз знаний экспертам оказывают помощь инженеры по знаниям — когнитологи.
С помощью интерфейса пользователя происходит общение с ЭС лиц, нуждающихся в
консультации электронного эксперта. Пользователи обращаются к ЭС за советом по специальным проблемам в узкой предметной области, представляя ей специфические факты и
свои гипотезы.
База знаний (БЗ) содержит совокупность знаний по определѐнной предметной области, почерпнутых из публикаций, а также введенных в процессе взаимодействия (беседы) одного или нескольких экспертов с экспертной системой.
Решатель (другое название — машина логического вывода) — это программа, моделирующая (имитирующая) ход рассуждений эксперта на основании знаний, имеющихся в
БЗ, и исходных данных, введенных пользователем.
Решатель — это «мозг» ЭС. С помощью решателя обрабатываются введенные данные
и делаются соответствующие выводы.
Подсистема объяснений — программа, позволяющая продемонстрировать, каким образом получен результат, т. е. показать цепочку рассуждений электронного эксперта. Подсистема объяснений облегчает когнитологу выявление ошибок и модернизацию ЭС.
В описанной выше структуре ЭС знания отделены от алгоритма обработки знаний. Такое разделение удобно по следующим причинам. Содержание базы знаний зависит от кон152
кретной предметной области. С другой стороны, пользовательский интерфейс, решатель, редактор базы знаний, подсистема объяснений (иногда эти блоки называются оболочкой) независимы от предметной области. Таким образом, разумный способ разработки экспертной
системы, предназначенной для нескольких приложений, состоит в создании универсальной
оболочки. В такой ЭС для каждого нового приложения достаточно наполнить базу знаний
специфическими сведениями.
Примером подобной ЭС (оболочки) является EMYCIN (Empty MYCIN — пустой
MYCIN).
База знаний содержит факты и правила. Факты являются краткосрочной информацией
и могут изменяться в процессе консультаций. Правила представляют более долговременную
информацию о том, как порождать новые факты или гипотезы. Правила могут быть эвристическими (опытными) по природе, генерирующими скорее правдоподобный совет, чем достоверный факт.
Знания, полученные из опыта и по интуиции, в терминологии экспертных систем называют эвристиками. База знаний может также включать в себя метазнание, т. е. знание о
знании (о том, как мыслит эксперт). В отличие от обычной базы данных, в базе знаний хранятся не только факты, но и правила, которые позволяют вывести новые факты.
Факты и правила в ЭС не всегда бывают полностью истинными или безусловно ложными. Бывает, что существует некоторая степень неуверенности (сомнения) в достоверности
факта или точности правила. В этих случаях факты и правила характеризуются "коэффициентами доверия".
Решатель (машина логического вывода) обеспечивает «рассуждающую способность»,
которая дает возможность экспертной системе формировать выводы, давать советы. Машина
логического вывода может использовать различные стратегии поиска: прямой поиск «от
фактов к цели» и обратный поиск «от цели к фактам». В первом случае ЭВМ ищет пути от
исходного состояния проблемы к цели (т. е. к выводу или совету). Во втором случае, начав с
цели (результата), ЭВМ пытается доказать (или опровергнуть) истинность результата.
Рассмотрим особенности экспертных систем.
1. Конкретная ЭС ограничена определенной предметной областью.
2. ЭС способна рассуждать при сомнительных исходных данных.
3. ЭС способна объяснить цепочку сделанных ею «рассуждений».
4. Факты и программа формирования выводов отделены друг от друга.
5. ЭС строится так, чтобы имелась возможность еѐ постепенного наращивания (расширения) и модернизации.
6. В результате работы ЭС формируется диагноз, рекомендация, совет, как нужно
поступать в конкретной ситуации, или предположение о том, что произошло с исследуемым
объектом (или субъектом).
Экспертные системы имитируют процессы принятия решения людьми-экспертами, и в
состоянии компетентно решать сложные проблемы. Кратко опишем некоторые ЭС, что позволит еще раз наглядно представить сферы использования «электронных советников».
Экспертная система MYCIN (Стэндфордский университет) — одна из первых и наиболее известных ЭС. Она разработана в середине 70-х годов ХХ столетия. Система предназначена для диагностики инфекционных заболеваний.
В 1975 г. в Гейдельбергском и Дармштадтском университетах была разработана одна
из первых юридических ЭС — JUDITH, позволявшая юристам получать экспертные заключения по гражданским делам.
Экспертная система INTERNIST диагностирует несколько сотен болезней с точностью, которая сопоставима с точностью диагноза, сделанного квалифицированным врачом.
PROSPECTOR — экспертная система, которая помогает геологам в поиске новых полезных ископаемых. На основании информации, введенной в ЭВМ с географических карт, из
обзоров и ответов на вопросы, которые задаются геологам, PROSPECTOR предсказывает
153
местоположение новых залежей. Использование этой системы позволило обнаружить залежи молибдена в Британской Колумбии.
Система TIMM (разработчик General Research) оказывает помощь военному пилоту
вертолета во время боевых действий.
Экспертная система Management Advisor (консультант менеджера) разработана фирмой Paladin Software, Inc. в 1986 г. Система помогает руководителю в планировании своей
коммерческой деятельности.
Система XCON (Carnegie-Melon University) предназначена для определения конфигурации компьютеров при их продаже. Покупатель заказывает ЭВМ с определенными характеристиками, а ЭС позволяет оптимально подобрать комплектующие блоки (тип дисплея,
объем ОЗУ, тип процессора, тип звуковой карты, объем видеопамяти и т. п.).
Экспертная система EXPERTAX (Coopert and Lybrand) готовит рекомендации ревизорам и налоговым инспекторам в подготовке расчетов по налогам и подготовке финансовых деклараций. База знаний отражает опыт свыше 20 экспертов.
Рассмотрим кратко порядок работы с медицинской экспертной системой Интернист
(INTERNIST), предназначенной для диагноза болезней.
Основная идея работы этой ЭС состоит в следующем.
Для каждой болезни эксперты (опытные врачи) заносят в базу знаний характерный набор симптомов. Затем пользователь (например, пациент или молодой врач) вводит конкретные симптомы неизвестной болезни, и ЭС по наибольшему числу совпадений ставит диагноз.
После запуска программы, «начиненной» знаниями опытных врачей, на экране появится Главное меню.
Первоначально в Главном меню выбирается пункт
«Ввод симптомов», который позволяет получить доступ к
следующему меню.
В меню «Ввод симптомов для интерпретации» последовательно выбираются 25 групп симптомов (глаза, уши,
шея, горло и т. д.), с помощью которых впоследствии придется вводить множество симптомов болезней.
Каждый из 25 пунктов этого меню позволяет детально
описать признаки болезни каждого органа.
На следующем рисунке показан фрагмент пользовательского интерфейса, с помощью
которого пользователь описывает симптомы заболевания дыхательных путей (пункт 22 предыдущего меню).
154
Открывая каждый из 25 пунктов меню «Ввод симптомов для интерпретации», пользователь заносит в ЭС все симптомы болезни и результаты проведенных анализов, значение
температуры, давления и т. д.
После этого в Главном меню выбирается пункт «Анализ симптомов», и ЭС ставит диагноз пациенту, указывая несколько возможных заболеваний в порядке убывания их вероятности. Например, как на предыдущем рисунке.
Цифры справа показывают, сколько введенных
пользователем признаков совпадают с действительными
признаками данной болезни. Естественно, что окончательное решение о характере заболевания будет принимать врач, а ЭС выступает лишь в роли советника, подсказывающего возможные варианты.
155
6.8. Мультимедиа
…многие пророки и цари желали видеть,
что вы видите, и не видели,
и слышать, что слышите, и не слышали.
Новый завет. От Луки. 10:24
Мультимедиа — это информационная технология, позволяющая одновременно (или
последовательно) отображать документы, содержащие текст, неподвижные изображения, а
также видеофильмы (видеоклипы), анимированные объекты и звуки.
Мультимедиа позволяет синхронно воздействовать на слух и зрение человека, тем самым повышая объем передаваемой в единицу времени информации. В переводе с английского языка термин «мультимедиа» означает «много сред» (текст, звук, видео, графика).
Мультимедиа способна объединять текст, звуки, музыку, речь, видеоизображение,
фрагменты художественных и документальных фильмов, видеоклипы, телевизионное изображение, анимацию, мультипликацию, диаграммы, карты, таблицы, рисунки, картины, фотографии, слайды, схемы, чертежи и т. п. За счет такого объединении формируется красочная интерактивная программа, художественная реклама, презентация, интерактивная энциклопедия, обучающая программа, словарь, электронная книга, Web-страница, игра, сказка и
т. п.
Мультимедиа стала широко распространенной технологией, и она очень естественно
вписалась в большинство компьютерных приложений.
Заметим, что пока не существует четко сформулированного понятия «мультимедиа».
Во многих литературных источниках начальное представление о мультимедиа авторы дают
путем описания существующего программного обеспечения, аппаратного состава мультимедийных компьютеров и области их использования.
Мультимедийные компьютеры порой называют мультимедиа-системами. Мультимедиа-системы успешно применяются в сфере образования (в том числе при дистанционном и
заочном обучении), в издательской деятельности (электронные книги, журналы, справочники, энциклопедии), в бизнесе (реклама, презентации), в информационных центрах (библиотеки, музеи), в индустрии развлечений и т. д.
По установившимся в настоящее время представлениям, мультимедийный компьютер в
своей минимальной конфигурации (помимо стандартных блоков) должен обязательно содержать звуковую карту и звуковые колонки (или головной телефон). Перечень дополнительных устройств, которые могут быть подключены к мультимедийному компьютеру, чрезвычайно широк.
Чаще других упоминается проигрыватель лазерных дисков, микрофон, MIDIклавиатура для электромузыкального инструмента (синтезатора),
телевизионный адаптер.
Кроме того, к компьютеру порой подключают следующие устройства: аналогово-цифровые и цифроаналоговые преобразователи
для перевода непрерывных аудио- и видеосигналов в цифровой эквивалент и обратно, декодеры для взаимного преобразования телевизионных сигналов различных стандартов.
Обратим внимание на то, что технология мультимедиа стремительно проникает во все виды программного обеспечения и поэтому бывает трудно выделить чисто мультимедийное программное обеспечение. Например, в операционных системах семейства
MS Windows некоторые происходящие события дублируются специальными звуками, а при работе в глобальной сети Интернет одновременно с текстовыми сообщениями можно наблюдать анимацию, графические образы и слушать музыку.
156
Технология мультимедиа позволяет по желанию пользователя последовательно превращать компьютер в домашний кинозал, магнитофон (диктофон), аудиосистему, электромузыкальный инструмент, кинопроектор фильмов на оптических дисках, телевизионный или радиоприемник, тренажер или интерактивный учебный комплекс, караоке (устройство для пения
под музыкальное сопровождение), LCD-проектор для показа слайдов во время доклада. Данная технология обеспечивает подключение к ЭВМ видеокамеры, видеомагнитофона, цифрового фотоаппарата. Полученные изображения можно фиксировать в памяти компьютера.
Такие преобразования компьютера в каждом конкретном случае открывают перед
пользователем новые возможности. Например, позволяют выделять интересные кадры из
фильмов или телевизионных передач (с целью их последующего редактирования и использования), изменять темп или тональность звучания музыкальных произведений, самостоятельно задавать состав инструментов музыкальных ансамблей, по своему усмотрению устанавливать громкость звучания каждого инструмента, изменять спектр записанного с помощью микрофона голоса диктора.
Видеоизображение, полученное с помощью видеокамеры, вводится в ЭВМ уже в оцифрованном виде. Это даѐт
возможность при монтаже видеофильма использовать множество разнообразных приемов обработки цифровой информации: микширование (смешивание) отдельных фрагментов с использованием эффектов смещений, наплывов,
шторок, просвечивания одного изображения сквозь другое;
разнообразные преобразования цветов — соляризация (частичный негатив), хромакей (замена одного цвета другим),
формирование полностью негативного изображения. Компьютер позволяет изобразить проплывание одного изображения по другому, обтекание изображением трехмерного объекта,
размещать на одном экране сразу несколько видеоклипов, формировать титры.
С помощью мультимедийного компьютера можно смонтировать звуковые фрагменты в
единую фонограмму. Программы аудиомонтажа позволяют соединять (микшировать) различные каналы в общую запись (аккомпанемент и голос), склеивать различные куски фонограмм, применять разнообразные эффекты — дилэй (временные задержки), хорусы (эффект
расстройки инструмента), флэнжеры (фазовращения), реверберацию (эхо), применять коррекцию тембра и т. д.
Мультимедийный компьютер можно снабдить клавиатурой клавишного музыкального инструмента. Исполненное музыкантом произведение может быть записано в
память компьютера, а затем отредактировано: заменены
неверно сыгранные ноты, изменены длительности пауз,
скорректированы темп и громкость, добавлены нужные
звуковые эффекты.
Музыкальные редакторы позволяют записывать музыкальные произведения на экране монитора с помощью
стандартного нотного стана и нот, которые при желании можно вывести на принтер. Записанное в память произведение легко воспроизвести в автоматическом режиме. При этом в
качестве солирующих и аккомпанирующих инструментов выбирают любой инструмент из
сотни инструментов, которые способен имитировать компьютер.
Музыкальные компьютеры, оснащенные профессиональным оборудованием, используются композиторами для сочинения и аранжировки новых произведений. Эти системы позволяют вживлять в синтезированную музыку «живое» исполнение на традиционных инструментах. Для записи «живого» инструмента или голоса солиста мультимедийные компьютеры комплектуют микрофоном и преобразователем аналогового сигнала в цифровой (АЦП).
Для начинающих музыкантов разработаны программы для обучения игры на гитаре,
фортепиано и т. д.
157
Современные мультимедийные компьютеры позволяют формировать не только стереофоническое звучание, но и обеспечивают эффект окружающего звука — английское название: система Dolby Surround. Для ее реализации требуется специальная звуковая плата и
4—6 громкоговорителей.
В технологии мультимедиа пользователю отводится активная роль. По своему желанию он может менять сценарий происходящего события, выводить дополнительную информацию, изменять солирующий музыкальный инструмент, выбирать номер телевизионного
канала, указывать привлекательные разделы статьи и т. д.
Возможность легкого копирования отдельных кадров и целых фрагментов телевизионных передач представляет интерес для людей различных специальностей, в частности для
журналистов.
Современные компьютеры и быстрое распространение технологии мультимедиа, вероятно, навсегда изменят психологию людей, которые занимаются поиском и изучением необходимой информации. Громадные скорости поиска и разнообразие форм представления найденной информации, одновременное воздействие на несколько органов чувств человека делают эту технологию привлекательной для разных слоев населения.
Подтверждением этой мысли являются великолепно исполненные мультимедийные
энциклопедии, которые становятся достойными конкурентами традиционным книгам на бумажном носителе. Все большее число людей стремится иметь в своем распоряжении географические атласы, копии картин из картинных галерей, справочные материалы, которые хранятся в цифровом виде.
Рассматриваемая информационная технология позволяет коллекционировать лучшие
художественные фильмы, просмотр которых может сопровождаться прослушиванием объемной звуковой картины. Известный герой писателя А.Милли медвежонок Вини Пух говорил: «Само дерево жужжать не может. Значит, тут кто-то жужжит…». В мультимедийных
системах «жужжать» могут пять колонок (они формируют объемный звук) и сабвуфер (для
формирования низкочастотных звуков).
Изучение иностранных языков, географии, астрономии, математики, истории, освоение музыкальной грамоты, приобщение к сокровищам искусства и культуры — благодатные облас-
158
ти приложения мультимедийных технологий.
Просмотр картин какой-либо картинной галереи в сопровождении классической музыки и комментария квалифицированного экскурсовода могут заинтересовать не только любителей, но и истинных ценителей живописи. При этом скульптуры можно будет рассматривать с разных точек. Кстати, заметим, что пользователь по своему усмотрению может выбрать язык комментариев (английский, французский, немецкий, итальянский и др.).
159
6.9. Виртуальная реальность
Термин «виртуальная реальность» можно определить как информационную технологию, позволяющую пользователю в реальном времени находиться и перемещаться в иллюзорном трехмерном пространстве (вверх, вниз, вправо, влево, вглубь, наружу).
Можно считать виртуальную реальность дальнейшим развитием технологии мультимедиа. При этом оказывается воздействие на многие органы чувств (слух, зрение, тактильные ощущения, вестибулярный аппарат).
Впервые технология виртуальной реальности (ВР) была использована для обучения военных летчиков.
Виртуальная реальность позволяет создать для медицинских работников иллюзию реально проводимой хирургической операции. Архитектор может рассмотреть интерьер и
внешний вид спроектированного им здания. Конструктор (или инженер) может создавать
трехмерное изображение объекта и испытывать созданную модель, находясь внутри нее.
Виртуальный музей позволяет посетителям увидеть любой экспонат коллекции в трехмерном виде и с разных сторон. Имитация танкового боя дает экономию средств военным
ведомствам за счет отказа от проведения реальных маневров.
ВР применяется при тренировке летчиков, космонавтов и спортсменов. Разработан
специальный тренажер, имитирующий спуск на спортивных санях. Спортсмены могут, не
выходя из здания, опробовать любые трассы и пройти подготовку к соревнованиям.
ВР является одним из захватывающих средств развлечений.
Например, во время моделирования полета в космическом корабле происходят столкновения с астероидами и нападения инопланетян. Ускорение и замедление корабля имитируются перемещениями кресла. Полет сопровождается звуковыми и световыми эффектами.
Имитация пикирования к земле или мертвая петля в маленьком спортивном самолете
заставляют весь организм напрячься. Человек теряет связь с действительностью и чувствует
себя парящим в кабине самолета над простирающимися до горизонта холмами и равнинами.
Принцип имитации ускорений (перегрузок и силы тяжести) основывается на использовании
управляемой центрифуги с независимым вращением по трем осям.
С помощью виртуального учителя есть возможность изучать боевые искусства и танцы.
Можно ожидать, что виртуальная реальность найдет широкое применение при изучении стереометрии, черчения, при решении конструкторских задач.
Технология ВР формирует трехмерное изображение, стереофонические, квадрофонические и многоканальные звуки, тактильные ощущения, воздействует на чувства равновесия.
Напомним, что тактильные ощущения — это ощущения прикосновения, осязания.
Кратко рассмотрим технологию создания объемного изображения.
Расстояние между центрами зрачков человека обычно составляет 6—7 см, и каждый
глаз по-разному видит объемный объект. Человек способен примерно определить размеры
объектов, расстояние до объектов и их взаимное расположение, основываясь на различии
двух изображений, воспринимаемых левым и правым глазом.
Для формирования стереоэффекта нужно для каждого глаза сформировать отдельное
изображение. Технически создать иллюзию объемного изображения можно несколькими
способами.
1. Перед каждым глазом помещается отдельный небольшой монитор. При этом на левом мониторе формируется изображение для левого глаза, а на правом мониторе — изображение для правого глаза. Таким образом, изображения для двух глаз разделены в пространстве.
Этот способ технически реализуется с помощью шлема, содержащего два дисплея. Таким образом, два канала передачи изображения разделены в пространстве.
2. Перед глазами помещаются жидкокристаллические фильтры, которые с большой частотой в противофазе закрывают либо открывают обзор. В это время изображение формируется
на единственном большом мониторе, на котором синхронно с работой фильтров появляется
160
изображение поочередно для левого или правого глаза. Другими словами, этот способ можно
описать так: правый фильтр закрывается (становится непрозрачным), когда на дисплее
ется изображение для левого глаза, и наоборот. Этим осуществляется временное разделение
формирования изображения для двух глаз. Как правило, два соседних кадра содержат изображения для разных глаз.
Этот способ технически реализуется с помощью жидкокристаллических очков и
базируется на временном разделении передаваемых изображений.
3. Перед правым глазом помещается синий фильтр, а перед левым глазом — красный
фильтр. На экране монитора одновременно формируется два изображения, одно красное —
для левого глаза, второе синее — для правого глаза. При наблюдении через красный фильтр
красное изображение становится практически невидимым, а синее изображение кажется
черным. При наблюдении такого изображения через синий фильтр наоборот: синее изображение невидимо, а красные линии кажутся черными. Совместное действие двух фильтров
вызывает иллюзию объемного изображения. Два одновременно формируемых на дисплее
изображения спектрально разделены.
Техническая реализация этого способа достаточно проста. Для наблюдения стереоэффекта требуются двухцветные очки. Способ базируется
на частотном (спектральном) разделении передаваемых
изображений.
4. Перед левым глазом помещается прозрачный
фильтр, а перед правым глазом размещается
ный
фильтр. Эффект трехмерного изображения
ляется только при наблюдении движущихся объектов.
Физиологической основой для подобной иллюзии является различие во времени реакции каждого глаза при
распознавании
движущегося
изображения.
Для
ских картин иллюзия объемности не возникает.
Существует также технология формирования виртуальной реальности с помощью проекционных устройств, создающих иллюзию окружающего мира, путем проекции изображения
на стены, пол и потолок комнаты. Этот способ особенно эффективен при имитации подводного мира и боевых сражений.
Программные продукты и аппаратные средства виртуальной реальности имитируют
реальную действительность с такой степенью достоверности, что можно «потрогать» объекты, находящиеся в этом призрачном мире, и они соответствующим образом будут реагировать на прикосновение. Процедуру вхождения в виртуальный мир часто называют погружением.
Для взаимодействия с виртуальной реальностью применяются специальные устройства
ввода-вывода: шлемы-дисплеи, манипуляторы, информационные перчатки и информационный костюм.
Рука пользователя, одетая в информационную перчатку, может быть спроецирована
(перенесена, погружена) в трехмерную компьютерную среду. Манипулируя информационной перчаткой, пользователь в состоянии взаимодействовать с виртуальным миром, управляя объектами.
На следующем рисунке показана конструкция информационной перчатки.
161
Рассматриваемая
информационная
гия позволяет ощутить форму предмета, наприУстройства
мер, сферичность шара. Этот эффект достигается
тактильной
обратной
тем, что в информационную перчатку вмонтиросвязи
ваны устройства тактильной обратной связи. В
Датчик изгиба
нужный момент времени эти устройства надавлиВолоконнооптические кабели
вают на кончики пальцев, создавая эффект иллюНаправляющие
зии касания виртуального объекта, позволяют
кабелей
ощутить «тяжесть» объекта.
Датчик
абсолютного
Перчатка может оценивать положение и изДатчики
положения и
гиб каждого пальца. Это обеспечивается испольнатяжения
ориентировки
зованием оптико-волоконных нитей, фиксирующих количество света, проходящего через кажИнтерфейсная
плата
дую нить.
Контакт пользователя с системой может
Информационная перчатка
осуществляться голосом, при этом управляющие
команды вводятся в ЭВМ с помощью микрофона.
Специальное устройство джойстринг обеспечивает эффект обратной силовой связи. При управлении с помощью джойстринга виртуальным автомобилем, который делает крутой поворот на большой скорости, возникает ощущение вырывающегося из рук руля.
Конструкция шлема отслеживает движение головы, и синхронно с наклоном и поворотом головы меняется картина обзора. Встроенная в шлем система датчиков фиксирует движения головы и передает данные на компьютер, который постоянно заново пересчитывает
перспективу при малейшем движении испытуемого в виртуальном мире.
Для описания виртуальной реальности создан специальный язык — VRML (Virtual
Reality Modelling Language), на базе которого различные
фирмы создают программные средства.
ВР позволяет изнутри рассмотреть систему кровообращения, побывать внутри сердца, позвоночного столба, рассмотреть со всех сторон скелет. Можно увидеть
строение глаза, уха, мышц. Иллюзия объемности столь
велика, что создается впечатление, что кисть скелета
сильно выдвигается из дисплея.
Ведутся работы по созданию виртуального муляжа
человеческого тела, с помощью которого студентымедики смогут изучать анатомию.
Традиционные системы ВР позволяют имитировать движение, однако пользователь в
это время неподвижно располагается в кресле. Братья Нурахмед и Нурулла Латыповы (Россия) изобрели устройство для свободного перемещения
пользователя по виртуальному миру.
Это устройство названо авторами «Виртуальная сфера». Оно представляет собой полую сферу, размер которой
таков, что позволяет внутри ее двигаться взрослому человеку. Диаметр сферы 2,6 м, вес всего около 100 кг. Сфера устанавливается на колеса-опоры, которые могут вращаться
вокруг любой из своих осей. Благодаря такой опоре сфера
свободно вращается в любом направлении.
Перед тем как войти в сферу через люк, пользователь
надевает специальный костюм. На спине костюма находится компьютер-ноутбук. К ЭВМ подключены встроенные в
костюм датчики и шлем.
162
Положение и жесты пользователя определяются по показаниям датчиков, фиксирующих величину углов между частями тела.
С ее помощью пользователь сможет обучаться боевым искусствам, спортивным, танцевальным движениям в интерактивном (диалоговом) режиме с компьютерным учителем, делать пешеходные прогулки по самым знаменитым городам мира.
Можно предположить, что в недалеком будущем с помощью технологии виртуальной
реальности дополнительно будут осуществляться воздействия на обоняние, вкусовые ощущения, на эмоции и чувства (например, вызывать чувства жажды, радости или страха).
163
7. Основные понятия моделирования
В данном разделе рассмотрены основные определения, рассмотрены виды моделей,
уровни моделирования, дано представление о имитационном и физическом моделировании.
7.1. Основные понятия и определения
- …бриллиант – это обработанный алмаз.
- А алмаз - это что?
- Это необработанный бриллиант.
Л. М. Измайлов, В. В.Чубаров
Дать точное вербальное определение сложному термину непросто. Поэтому, как правило, существует несколько определений, подготовленных разными авторами. Часть этих определений содержат неточности, а некоторые - и ошибки. Объясняются неточности не только
недостаточными знаниями учѐных, но и имеющимися ограничениями естественного языка.
Например, попробуйте описать словами какое-либо дерево, скажем, берѐзу. Удастся
выразить только еѐ основные свойства (цвет, форму, размеры, возраст…), но многие свойства останутся неописанными (запах, вкус берѐзового сока, твѐрдость, химический состав,
электропроводность, конфигурация веток, число листьев, вес…). Можно попытаться описать
все указанные свойства, но описание будет неточным и местами ошибочным. Попытайтесь
подсчитать число листьев на дереве. Это потребует большого времени, за которое несколько листьев опадѐт или появится несколько новых. Попробуйте взвесить дерево. Точно измерить вес не получится, так как невозможно выкопать
всю корневую систему. Во время измерения веса сам объект изменится.
Аналогичные проблемы существуют при формировании моделей. Любая
модель (заменитель) не может точно описать исследуемый объект.
Модель — материальный объект либо образ, которые упрощѐнно отоМодель
бражают самые существенные свойства объекта исследования. Под образом
человека
понимаются: формула, изображение, словесное описание, схема, граф, чертѐж,
план, карта, блок-схема алгоритма, ноты и т.п.
Моделирование — метод научного исследования явлений, процессов, объектов, устройств или систем (обобщенно – объектов исследований), основанный на построении и
изучении свойств моделей с целью получения новых знаний, совершенствования характеристик объектов исследований или управления ими.
Любая модель всегда отличается от реального объекта и отображает лишь часть его самых существенных черт, основные элементы и связи. По этой причине для одного объекта
исследования существует множество различных моделей. Вид модели зависит от выбранной
цели моделирования и мастерства исследователя. Если попросить философа, биолога, психолога, физика и скульптора создать модель человека, то результаты будут, скорее всего, различны.
Исторически первыми моделями, которые замещали реальные объекты, вероятно, были
языковые знаки. Они возникли в ходе развития человечества и постепенно превратились в
разговорный язык.
Возможно, что первыми моделями на нашей планете были жесты наших предков. Однако документальных подтверждений этому факту нет.
Первые документально зарегистрированные наскальные рисунки (петроглифы) были
графическими моделями, которые изображали картины быта, животных и эпизоды охоты.
Возраст этих рисунков оценивается величиной 200 тысяч лет.
Следующим этапом развития моделирования можно считать возникновение числовых
знаков. Сведения о результатах счета первоначально сохранялись в виде зарубок. Постепен164
ное совершенствование этого метода привело к возникновению цифр как системы знаков.
Можно предположить, что именно зарубки были прототипом римских цифр.
Известный математик, религиозный и философский деятель Пифагор Самосский (VI
век до н.э.) предполагал, что число является основой всего существующего. Пифагор считал,
что числовые соотношения являются источником гармонии космоса.
Значительное развитие моделирование получило в Древней Греции.
В V-III вв. до н. э. В Греции была создана геометрическая модель Солнечной системы. Греческий врач Гиппократ для изучения строения человеческого глаза воспользовался его физической моделью — глазом быка.
Потребность в создании и использовании моделей связана с тем,
что экспериментально исследовать многие реальные явления и объекты
сложно или дорого, а порой вовсе невозможно. Например, безумно экспериментально изучать, к чему приведет мировая термоядерная война.
Опасны эксперименты с реальными реакторами на атомных электростанциях. Неразумны опыты с радиоаппаратурой при предельных значениях напряжения питания и окружающей температуры.
Приведем один из ярких примеров моделирования.
В Вычислительном центре Академии наук под руководством академика Н.Н. Моисеева
была разработана математическая модель возможных последствий ядерной войны на планете
Земля. Расчеты показали, что людей погубит не только ударная волна, световое и радиационное излучение, но и холод, «ядерная зима». В результате подъема в атмосферу огромных
облаков сажи и пепла, будут блокироваться солнечные лучи, и температура на Земле резко
понизится.
При изучении сложных явлений, процессов, объектов не удается учесть полную совокупность всех элементов и связей. По этой причине модель всегда проще исследуемого объекта.
При создании модели нет необходимости учитывать все элементы и связи, существующие в объекте исследования. Нужно лишь выделить наиболее характерные составляющие, которые в наибольшей степени определяют основные свойства объекта исследования. В результате объект исследования заменяется некоторым упрощенным подобием, но обладающим
главными свойствами, аналогичными свойствам объекта исследования.
Появившийся вследствие проведенной подмены новый объект (или абстракция) принято
называть моделью объекта исследования.
Приведѐм несколько примеров моделей.
Карта — это графическая модель местности или
звездного неба. На карте соблюдается принцип подобия:
сохраняется форма контуров материков, водоемов, лесных
массивов, рек, созвездий, улиц, площадей, относительное
расположение объектов, относительные расстояния между
объектами, угловое расстояние между звездами, соотношения между их светимостью и т. д.
Манекен — модель человека, которая отражает его
внешние черты. Манекен подобен человеку, сохраняет
его пропорции, цвет кожи и волос. Манекен, как заместитель человека (модель), используется, например, при
исследовании надежности автомобильного транспорта
(краш тесты). Последствия автомобильных аварий изучаются с помощью манекена. Восковые фигуры дают
первое представление об известных людях. В Японии
резиновые фигуры начальников используются для психологической разгрузки подчинѐнных.
165
Существуют макеты автомобилей, пароходов, военной техники, железных дорог, архитектурных сооружений и т. п. Макеты микрорайонов позволяют архитекторам исследовать
характер изменения освещенности домов в течение солнечного дня.
При моделировании работы одной ЭВМ с помощью ЭВМ иной конструкции используют понятия имитатор, симулятор и эмулятор. Под этими терминами понимаются программы
или устройства, имитирующие работу других ЭВМ. Например, существуют эмуляторы однокристальной ЭВМ К1816ВЕ35, бытовых компьютеров БК-0010, Spectrum ZX, игровых
приставок. Они позволяют моделировать их работу на компьютерах фирмы IBM.
Разработано много компьютерных симуляторов спортивных игр (футбол, баскетбол,
регби, гольф, бильярд, теннис, шашки, шахматы, хоккей, велоспорт, боулинг, биатлон, легкая атлетика, бокс…). Известны симуляторы полетов на космических кораблях (космические
симуляторы), самолетах и вертолетах, гонок на автомобилях, игр на фондовой бирже, боевых
сражений, подводного плавания. Эти симуляторы иногда называют имитаторами.
7.1.1. Виды моделей
Создать исчерпывающую классификацию моделей достаточно сложно, поэтому рассмотрим наиболее часто употребляемые определения моделей.
Процесс моделирования начинается с создания концептуальной модели.
Концептуальная модель (содержательная) — это абстрактная модель, определяющая
структуру (элементы и связи) объекта исследования.
В концептуальной модели обычно в словесной (вербальной) форме приводятся самые
главные сведения об объекте исследования, основных элементах и важнейших связях между
элементами. Процесс создания концептуальной модели в настоящее время не формализован,
то есть не существует точных правил еѐ создания. Описание объекта ведѐтся приближѐнно,
на качественном уровне (например, с ростом напряжения ток возрастает, но точный вид связи величин неизвестен).
Основная проблема при создании концептуальной модели заключается в нахождении
компромисса между компактностью модели и ее точностью (адекватностью). Имеется множество теоретических проработок этой проблемы, но их трудно применить для решения каждой новой задачи. Поэтому разработчик модели, руководствуясь своими знаниями, оценочными (предварительными) расчетами, опытом, интуицией, мнением экспертов, должен принять решение об исключении какого-либо элемента или связей из модели, изъятии из рассмотрения второстепенных факторов, воздействующих на объект.
Процесс создания концептуальной модели, вероятно, никогда не сможет быть полностью формализован. Трудно придумать набор простых правил, выполняя которые, можно
создать хорошую концептуальную модель. Именно в связи с этим иногда говорят, что моделирование является не только наукой, но и искусством.
В процессе разработки модели концептуальная модель итерационно (многократно)
корректируется, уточняется. В результате повышается еѐ точность, адекватность.
Термин «адекватность» (происходит от лат. adaequatus — приравненный, равный) означает верное воспроизведение в модели связей и отношений объективного мира. Этим термином характеризуют качество созданной модели.
В науке, технике, экономике и других отраслях широко используется термин математическая модель (ММ). ММ — описание объекта исследования, выполненное с помощью
математической символики.
Для создания ММ можно использовать любые математические средства — алгебру,
дифференциальное и интегральное исчисления, регрессионный анализ, теорию вероятностей,
математическую статистику и т. д.
Математическая модель представляет собой совокупность формул, уравнений, неравенств, логических условий и т.д. Использованные в ММ математические соотношения оп166
ределяют процесс изменения состояния объекта исследования в зависимости от его параметров, входных сигналов, начальных условий и времени. По существу, вся математика создана
для формирования математических моделей. И сама математика появилась из практики, как
средство описания самых общих черт реальных объектов.
О большом значении математики для всех других наук (в том числе и моделирования)
говорит следующий факт. Великий английский физик И.Ньютон (1643-1727 г.г.) в середине
17-го века познакомился с работами Рене Декарта и Пьера Гассенди. В этих работах утверждалось, что все строение мира может быть описано математическими формулами. Под
влиянием этих трудов И.Ньютон стал усиленно изучать математику. Сделанный им вклад в
физику и математику широко известен.
Математическое моделирование — метод изучения объекта исследования, основанный на создании его математической модели и использовании еѐ для получения новых знаний, совершенствования объекта исследования или управления объектом.
Математическое моделирование можно подразделить на аналитическое и компьютерное (машинное) моделирование.
При аналитическом моделировании учѐный — теоретик получает результат «на кончике пера» в процессе расчѐтов, размышлений, умозаключений. Формирование модели производится в основном с помощью точного математического описания объекта исследования.
Классическим примером аналитического моделирования является
открытие планеты Нептун на основании теоретического анализа движения
планеты Уран. Расчеты выполнили французский астроном Урбен Леверье
и английский астроном Джон Адамс. Обнаружил планету Нептун немецкий астроном Иоганн Галле в точке небесной сферы, координаты которой
вычислил У.Леверье.
При компьютерном моделировании математическая модель создается и анализируется с помощью вычислительной техники. В этом случае нередко используются приближенные
(численные) методы расчета. Созданные компьютерные модели порой включают в себя наиболее прогрессивные информационные технологии, например, виртуальную реальность. При
этом моделирование медицинской операции вызывает иллюзию реально происходящего события. Моделирование игровых ситуаций сопровождается мультимедийными эффектами
(звуками, видеоэффектами, воздействием на вестибулярный аппарат).
Компьютерная модель – это модель, реализованная на одном из языков программирования (программа для ЭВМ).
Рассмотрим еще два понятия: полная математическая модель и макромодель.
Полная математическая модель —
Выходной
Контролируемые
это модель, отражающая состояния, как моотклик
воздействия
делируемой системы, в целом так и всех ее
Y = f(X, Z)
X(x1, x2,…,xn)
Макромодель
внутренних элементов. Полная ММ электронного усилителя позволяет определить
потенциалы всех узлов схемы и токи через
Неконтролируемые
все радиоэлементы.
воздействия
Макромодель проще полной математиZ(z1, z2,…, zm)
ческой модели.
Макромодель адекватна в отношении
внешних свойств объекта исследования. Однако, в отличие от полной математической модели, макромодель не описывает состояние элементов, находящихся внутри объекта исследования. Например, макромодель радиоэлектронного усилителя определяет, как изменяются
сигналы на входах (X и Z) и выходе (Y) устройства, но не дает сведения о том, как сигналы
изменяются на каждом радиоэлементе, находящемся внутри усилителя (резисторах, конденсаторах, транзисторах и т. д.). Другими словами, полная математическая модель описывает и
систему, и элементы, входящие в систему. Макромодель же описывает только систему моде167
лирования. Макромодель отображает объект исследования в виде «черного ящика», содержимое которого не детализируется (не описывается).
Модель называется статической, если среди входных воздействий X и Z нет параметров, зависящих от времени. Статическая модель в каждый момент времени дает лишь застывшую «фотографию» объекта исследования, ее срез. С помощью статических моделей
удобно изучать, например, принцип действия комбинационных цифровых устройств. С помощью статической модели невозможно исследовать частотные свойства цифровых устройств.
Модель называется динамической, если входные воздействия изменяются во времени,
или если нужно определить, как изменяется состояние объекта исследования с изменением
времени. С помощью динамических моделей исследуют, в частности, переходные процессы
в электрических цепях (например, исследуют процесс установления колебаний в автогенераторе).
Модель называется детерминированной, если каждому набору входных параметров
всегда соответствует единственный набор выходных параметров. В противном случае модель называется имитационной (стохастической, вероятностной). В стохастических моделях
используются генераторы случайных чисел с различными законами распределения.
Рассмотрим ещѐ два определения.
Физическая модель — это материальная конструкция, создаваемая путѐм замены исследуемого объекта моделирующим устройством, отдельные свойства (характеристики) которого сходны (подобны) со свойствами объекта.
Физические модели используются в тех случаях, когда невозможно получить надѐжные
результаты с помощью информационных моделей.
К информационным моделям относятся модели, которые не являются материальными
(физическими).
7.1.2. Понятие об имитационном моделировании
Объектами имитационного моделирования являются локальные и глобальные вычислительные сети, телефонные и телеграфные сети, системы энергоснабжения, транспортные
системы, склады, автозаправочные станции, ремонтные мастерские и т. п.
Анализ работы подобных систем основан на изучении процесса прохождения потока
заявок. По-другому заявки называются требованиями, запросами, транзакциями. Приведем
примеры транзакций: прохождение телефонных вызовов в городской телефонной сети, распечатка нескольких документов, одновременно поступивших на сервер печати в локальной
вычислительной сети, прохождение пакетов через маршрутизатор глобальной вычислительной сети, обслуживание клиентов в парикмахерской, покупателей в кассе магазина, водителей на автозаправочной станции.
В перечисленных системах заявки принимаются обслуживающим устройством (аппаратом, терминалом), которое может содержать несколько каналов (например, в магазине устанавливают несколько касс, а между автоматическими телефонными станциями создают
несколько каналов связи). Если число поступивших заявок велико, то не все они могут быть
мгновенно обработаны (обслужены). По этой причине некоторые требования получают отказ
в обслуживании или их ставят в очередь на ожидание.
Системы, в которых, с одной стороны, возникают массовые запросы на выполнение каких-либо услуг, а с другой стороны, происходит удовлетворение этих запросов, называются
системами массового обслуживания (СМО).
СМО исследуются с помощью имитационных моделей.
Имитационная модель – стохастическая (вероятностная, статистическая) модель, содержащая кроме детерминированных элементов, элементы, параметры которых изменяются
по случайным законам.
168
Термин «имитационное моделирование» может быть практически однозначно заменѐн
термином «статистическое моделирование», то есть моделирование с использованием случайных величин, событий, функций.
При изучении СМО исследователя интересуют следующие величины: время обслуживания заявок, длина очереди заявок, время ожидания обслуживания в очередях, вероятность
обслуживания в заданные сроки, число отказов и т. п. Перечисленные величины имеют вероятностный характер. Это объясняется тем, что интервалы времени между поступлениями
заявок на входы системы, а также большинство других характеристик заявок являются случайными величинами. Состояние обслуживающего устройства также является случайным
событием (исправно или нет, занято или нет). Например, в телефонной городской сети заявки (телефонные звонки) возникают неравномерно. Ночью их число значительно снижается, а
утром их интенсивность достигает максимума (существует так называемый час наибольшей
нагрузки). Длительность телефонных разговоров также различна.
Имитационное моделирование сводится к проведению множества вычислительных
экспериментов (расчетов) на ЭВМ. Моделирование происходит путем многократного «прогона» (запуска на счет) составленной программы на множестве исходных данных, имитирующих события, которые могут произойти в системе массового обслуживания. Исходные
данные при имитационном моделировании изменяются по различным случайным законам.
Итоги моделирования получают путем статистической обработки результатов моделирования (производят расчет математического ожидания, дисперсии, вероятностей, определение
законов распределения, проверку гипотез и т.п.).
7.1.3. Понятие о физическом моделировании
При физическом моделировании используют физические модели, элементы которых
подобны натуральным объектам исследования, но чаще всего имеют иной масштаб. Физические модели могут иметь вид полномасштабных макетов (например, авиационные или космические тренажеры), выполняться в уменьшенном масштабе (например, глобус, макет городского района) или в увеличенном масштабе (например, модели атома, молекулы, ДНК).
Физические модели конкретны, очень наглядны, часто их можно даже потрогать руками. Хрестоматийный пример физической модели –
макет самолета, летные свойства которого исследовались в аэродинамической трубе. Студенты медицинских ВУЗов при обучении используют муляжи животных, которые также являются физическими
моделями.
Физическое моделирование применяется для изучения сложных объектов исследования, не имеющих точного математического
описания. Физическую модель строят там, где математика пока ещѐ бессильна.
При физическом моделировании для исследования некоторого процесса в качестве модели порой используют конструкцию другой физической природы. Например, гидродинамическая система моделируется с помощью электрических цепей. При этом модель и объект
исследования описываются аналогичными (сходными) математическими зависимостями. В этих
случаях нет геометрического подобия между объектом исследования и моделью. Но объект исследования и модель описываются сходными (подобными) математическими зависимостями. Примером
такого сходства могут служить механический маятник и электрический колебательный контур.
Чаще всего в качестве модели-заместителя
используются электрические цепи. При этом исследуемые процессы могут иметь разнообразную физическую природу (механическую, гидравлическую, тепловую и др.).
169
При использовании электрических моделей физическое моделирование упрощается
благодаря простоте измерений электрических и магнитных величин. Электрические цепи несложно собирать. Для измерения электрических величин созданы высокоточные приборы. С
помощью электрических моделей имитируются, в частности, акустические, гидродинамические колебательные и волновые процессы.
Например, с помощью системы моделирования радиоэлектронных устройств MicroCAP
можно имитировать работу городской водопроводной сети. При этом вместо потока воды
при моделировании используется электрический ток, вместо водяного напора (давления) электрическое напряжение. Гидравлическое сопротивление водяных труб примерно эквивалентно электрическому сопротивлению резисторов. Известно, что гидродинамическое сопротивление труб возрастает с уменьшением сечения трубы и с увеличением еѐ длины.
Электрическое сопротивление проводника также возрастает с уменьшением сечения и увеличением длины проводника. Между рассматриваемыми явлениями есть аналогия (подобие).
Итак, многие явления различной физической природы подобны (аналогичны) и описываются с помощью одних и тех же формул. Это позволяет исследовать некоторое явление
путем изучения другого явления совершенно иной физической природы. Описанный подход
получил название аналогового моделирования. Физическая модель, которая по отношению
к объекту исследования реализуется с помощью иных физических механизмов, называется
аналоговой моделью.
При аналоговом моделировании используются аналоговые вычислительные машины
(АВМ) и специализированные аналоговые модели.
В АВМ математические величины представляются в аналоговой форме в виде различных физических величин, например, электрического напряжения. В АВМ основными элементами являются операционные усилители (ОУ). Вид передаточной характеристики ОУ определяется конфигурацией цепей обратной связи. Необходимая модель в АВМ создается путем соединения нескольких электрических схем, каждая из которых выполняет определенную математическую операцию (суммирование, вычитание, умножение, логарифмирование,
интегрирование, дифференцирование и т. д.). Так, если в цепи обратной связи ОУ поставлен
резистор, то такой блок выполняет операцию умножения, если конденсатор, то — операцию
интегрирования, если диод — логарифмирование и т. д.
В АВМ возможно непрерывное изменение исследуемой величины в пределах определенного диапазона, при котором каждое значение отличается от ближайшего значения на
бесконечно малую величину. В АВМ результат вычислений получается практически сразу
же после ввода исходных данных, и он изменяется непрерывно по мере изменения входных
данных.
В АВМ точность выполнения математических операций ограничена стабильностью
элементов, реализующих эти операции. Практически достижима наименьшая относительная
погрешность порядка 0,01%.
Заметим, что, в отличие от АВМ, в цифровых вычислительных машинах (ЦВМ) математические величины представляются в цифровой форме (в двоичной системе счисления).
Основными элементами ЦВМ являются процессоры, регистры, дешифраторы, мультиплексоры и другие комбинационные и последовательностные цифровые устройства.
В ЦВМ математические операции выполняются в течение определенного промежутка
времени, длительность которого зависит от сложности формул, необходимой точности, выбранного алгоритма и быстродействия компьютера. В процессе выполнения расчетов значения исходных данных, как правило, изменяться не могут. Новые данные могут быть введены
только после окончания вычислений при прежних исходных данных.
В ЦВМ точность математических вычислений определяется, в основном, используемым алгоритмом и числом разрядов машинного слова.
При использовании ЦВМ выполнение расчетов часто происходит с помощью приближенных численных методов (например, интегрирование методом Симпсона, итерационное
решение системы линейных уравнений, решение дифференциальных уравнений методом
Рунге—Кутты и т. д.).
170
Очень лаконично отличие АВМ от ЦВМ выразил Н. Винер: «…первые измеряют, а
вторые считают».
7.1.4. Уровни моделирования
Дадим определения еще нескольким важным понятиям: микроуровень, макроуровень и
метауровень моделирования.
Метауровень моделирования — совокупность моделей, предназначенных для описания крупномасштабных объектов исследования. Размеры объектов исследования на метауровне существенно превосходят размеры человека.
На метауровне моделируются, например, процесс развития Вселенной, эволюция звѐзд
и планетных систем, работа глобальных вычислительных сетей, международных телефонных
сетей, транспортных систем, энергосистем.
Моделирование на метауровне позволило наглядно проиллюстрировать физические законы, сформулированные Исааком Ньютоном и Альбертом Эйнштейном. Исследователи из
Дарэмского университета (Великобритания) с помощью компьютерной программы имитировали процесс саморазвития нашего мира, начиная с Большого взрыва. В качестве законов
эволюции использовались современные научные представления теории относительности,
гравитации и другие теории. В процессе моделирования первоначально однородная Вселенная начала развиваться и, в конце концов, пришла к тому виду, который мы наблюдаем сейчас. Таким образом моделировался один из самых серьезных вопросов философии – сотворение Мира.
Макроуровень моделирования — совокупность моделей, предназначенных для описания объектов исследования, размеры которых сопоставимы с размером человека.
На макроуровне моделируется, например, радиоэлектронная аппаратура, автомобили,
здания.
На этом уровне рассматриваются радиоэлектронные схемы, содержащие такие дискретные элементы, как транзисторы, диоды, резисторы, конденсаторы, триггеры, логические
элементы и т. п.
Микроуровень моделирования — совокупность моделей, предназначенных для описания объектов исследования, размеры которых много меньше размеров человека.
На этом уровне рассматриваются: поля напряжений и деформаций в деталях механических конструкций, электромагнитные поля в электропроводящих средах, поля температур
нагретых деталей.
На микроуровне моделируется, например, работа излучающих телевизионных и радио
антенн, устройств вихретоковой дефектоскопии, предназначенных для контроля качества
промышленных металлических изделий, устройств электромагнитного ориентирования (силового воздействия на
промышленные детали с помощью электромагнитного
поля), ультразвуковые диагностические приборы, изучаются защитные свойства электромагнитных экранов.
С помощью моделирования на микроуровне можно
исследовать степень нагрева участков мозга при разговоре абонента по мобильному телефону.
171
7.2. Системы моделирования РЭУ
Системы моделирования радиоэлектронных устройств (РЭУ) позволяют резко уменьшить объем экспериментальных исследований, для проведения которых требуется приобретение дорогостоящих измерительных приборов, радиодеталей, трудоемкая сборка и длительная настройка макетов.
Применение программ моделирования РЭУ позволяет всесторонне исследовать разрабатываемые устройства в различных режимах работы (например, в предельно допустимых
режимах), что сложно выполнить экспериментальными методами. Результаты макетирования дают ограниченный объем информации о характеристиках разрабатываемой аппаратуры.
Экспериментальные исследования отражают характеристики лишь конкретных единичных
макетов. Они не позволяют оценить влияние статистического разброса параметров полупроводниковых и других элементов РЭУ, и поэтому трудно делать обобщающие выводы по результатам макетирования. Экспериментально сложно определить, какие последствия вызовет
наихудшее сочетание параметров радиоэлементов, и что произойдет при отказе отдельных
радиоэлементов. Опытным путем не просто исследовать влияние дестабилизирующих факторов, например, внешней температуры. Перечисленные проблемы, возникающие при
экспериментальных исследованиях, легко преодолеваются путем моделирования работы
РЭУ. Моделирование широко используется при проведении научно-исследовательских и
опытно-конструкторских работ.
Программы моделирования могут с успехом использоваться и в учебном процессе.
Изучение радиоэлектронных устройств можно проводить при выполнении лабораторных
работ по многим техническим дисциплинам. Это избавляет от необходимости делать значительные затраты на приобретение оборудования для лабораторных работ, исключает отказы оборудования из-за ошибочной коммутации, позволяет исследовать многие режимы работы устройств, которые недопустимы на реальных макетах.
На этапе разработки структурной (укрупненной) схемы применяются такие программы, как SysCalc, SystemView, SIMULINK, LabView, Hyper-Signal Block Diagram, Dynamo.
К примеру, программа SystemView представляет собой конструктор, с помощью которого из стандартных «кубиков» строится структурная схема. В имеющейся библиотеке выбирают нужный модуль, который затем с помощью мыши переносят на схему.
Детальное исследование радиоэлектронных устройств на ЭВМ на уровне принципиальных схем можно провести с помощью множества специальных программ: PSpice (Design
Center, DesignLab), OrCAD, TangoPRO, Electronics Workbench, Multisim, MicroCAP,
CircuitMaker, Aplac и др.
При проектировании устройств сверхвысокочастотного диапазона могут быть использованы программы Super Compact, Touchstone, Libra, Microwave Office.
Одной из первых удачных программ моделирования РЭУ была программа схемотехнического моделирования SPICE (Simulation Program with Integrated Circuit Emphasis), разработанная в начале 70-х годов ХХ столетия в Калифорнийском университете для больших ЭВМ,
а в конце 80-х годов эта программа была адаптирована (приспособлена) для ПЭВМ и получила название PSpice. Эта программа оказала сильное влияние на последующие подобные
разработки.
В системе PSpice использован таблично-топологический метод описания схемы: выделяются узлы и указывается, какие элементы установлены между этими узлами. Затем программа автоматически составляет алгебраические и дифференциальные уравнения, которые
описывают работу моделируемого устройства.
Узлами называются участки электрической схемы, в которых соединяются два или более радиоэлемента.
172
Радиоэлементы – изделия микроэлектроники, выполняющие операции усиления, генерирования, детектирования, фильтрации и другие преобразования электрических сигналов.
Радиоэлементы бывают пассивными (резисторы, конденсаторы, катушки индуктивности и
др.) и активными (транзисторы, диоды, операционные усилители и др.).
Ввод схем в систему моделирования первоначально был неудобен. Исследуемая схема
описывалась с помощью специального языка программирования. Последние версии программы PSpice позволяют синтезировать схему из готовых графических элементов. Для этого системы комплектуются библиотеками стандартных элементов. Заметим, что разработку
математических моделей радиоэлементов ведут фирмы-производители, которые в наибольшей степени заинтересованы в широком распространении своей продукции.
На базе программы PSpice были разработаны многие программы, например, Design
Center и DesignLab.
DesignLab — интегрированный программный комплекс корпорации MicroSim, предназначенный для сквозного проектирования аналоговых, цифровых и смешанных аналоговоцифровых устройств, синтеза устройств программируемой логики и аналоговых фильтров.
Компания OrCAD, основанная в 1985 г., выпускала программы для моделирования цифровых устройств и оформления чертежей радиосхем. В январе
1998 г. она объединилась с компанией MicroSim, дополнив список
радиоэлементы
своих продуктов системой аналогово-цифрового моделирования
PSpice и системой сквозного проектирования DesignLab . С января
1999 г. на рынок поставляется объединенный продукт этих двух
фирм, названный OrCAD.
узел
Наиболее легка в освоении программа Electronics Workbench
(фирма Interactive Image Technologies). Она построена интуитивно
понятно, и работа с этой программой напоминает экспериментальную деятельность радиоинженера. В программе имеются виртуальные приборы (вольтметры,
амперметры, генераторы, осциллограф, измеритель амплитудно-частотной характеристики и
т. п.).
В версию MultiSIM & Electronics Workbench добавлены измеритель мощности, анализатор спектра и анализатор сети. Программа имеет большую библиотеку аналоговых и
цифровых радиодеталей. В библиотеке содержатся сведения о транзисторах, диодах, резисторах, конденсаторах, триггерах, счетчиках, индикаторах и т. п.
Испытуемая схема «монтируется» на виртуальном столе, и затем делаются необходимые измерения. При этом настройка виртуальных измерительных приборов осуществляется
173
практически так же, как и настройка реальных приборов. Создается полная иллюзия работы
с конкретными действующими конструкциями.
Программа допускает возможность вносить изменения в схему прямо в процессе моделирования (например, с помощью переменных резисторов или коммутируемых клавишами
переключателей). Это существенно повышает наглядность моделирования. Изменение параметров измерительных приборов (например, осциллографа) дает возможность исследовать
сигналы в разных масштабах непосредственно в процессе моделирования. Это наиболее существенное отличие данной системы (другие работают в пакетном режиме моделирования и
не допускают изменения параметров устройства в процессе его моделирования).
«Собранную» схему легко редактировать. Элементы перемещаются на «резиновых нитях», т. е. провода при перемещении не обрываются, а изменяют свою конфигурацию.
Версии Electronics Workbench 4.0d и 5.0 легко инсталлируются на ЭВМ с любой конфигурацией и занимают мало места на жестком диске (соответственно 4,5 и 16 Мбайт).
Сходными возможностями обладает программа CircuitMaker (фирма MicroCode
Engineering In.) [25]. Для исследования сигнала в каком-либо узле схемы, туда нужно подключить пробник. Появляющиеся на экране временные диаграммы дают возможность провести анализ работы устройства.
Программа позволяет повернуть элемент на 90О, получить зеркальное отображение, осуществить пошаговое (по тактам) исследование цифровых схем, создать собственные микросхемы пользователя (определить их внутреннее устройство), и затем использовать их как
обычные стандартные микросхемы.
При моделировании цифровых устройств наглядность повышается благодаря использованию линий различного цвета. Цепи, на которых присутствует логическая единица, отмечаются красным цветом, а цепи, по которым передается логический ноль, — синим цветом.
Для индикации логических сигналов могут быть также использованы светодиоды, временные диаграммы (индикатор Scope) либо пробник. Элементы анимации наглядно зафиксируют наступление событий с помощью запускающейся ракеты или стартующих автомобилей.
Программа позволяет легко редактировать составленную схему, например, «выпрямлять» провода, которые имеют сложную конфигурацию.
С помощью CircuitMaker можно моделировать аналоговые, цифровые и смешанные (аналогово-цифровые) устройства. Заметим, что число радиоэлементов, допускающих смешанное
моделирование, довольно ограниченное.
Для использования в учебном процессе в системе предусмотрен режим умышленного
создания неисправностей в исследуемом устройстве.
Программа Micro-Cap (Microcomputer Circuit Analysis Program) рекомендуется для
выполнения исследовательских работ, не предусматривающих немедленной конструкторской реализации (т. е. разводки печатной платы и оформления конструкторской документации).
В программе Micro-Cap V имеется возможность построения трехмерных графиков. Эти
графики можно вращать относительно трех осей. В программе расширены возможности многовариантного анализа. Программа допускает одновременное изменение до десяти параметров. При этом предусмотрена как одновременная модификация параметров, так и их варьирование с помощью вложенных циклов.
В версии Micro-Cap VR2.0 значительно расширена библиотека компонентов, которая
включает примерно 10 тысяч радиоэлементов ведущих фирм Европы, США и Японии. Для
редактирования чертежей электрических принципиальных схем имеется режим перемещения компонентов на «резиновых нитях».
В состав программы входит также модуль расчета параметров моделей аналоговых
элементов по результатам экспериментальных исследований (таким способом создаются новые модели). Чем больше использованных экспериментальных точек, тем точнее получится
модель.
Система Micro-Cap 6.0.1 может показать одновременно токи во всех цепях и напряжения
на всех узлах устройства. При исследовании устройств, работающих в ключевом режиме, сис174
тема сообщает, какие ключи открыты, а какие закрыты. Программа может изменять по случайному закону мешающие и дестабилизирующие факторы (метод Монте-Карло), а по результатам такого моделирования — строить гистограмму статистического распределения.
В системе предусмотрен режим исследования чувствительности выходного сигнала к изменению параметров любого элемента. Есть возможность определить входное и выходное сопротивление устройства. Предусмотрена возможность разработки активных и пассивных фильтров с заданными параметрами.
Для составления схемы достаточно прислонить элементы друг к другу, цепь формируется автоматически (без проводов, без выполнения дополнительных операций соединения).
Австралийская фирма Protel International разработала систему проектирования аналоговых, цифровых и аналогово-цифровых устройств Protel, обладающую примерно теми же
функциональными возможностями, что и OrCAD.
Система Aplac предназначена для проектирования и моделирования РЭУ во временной
и частотной областях. Другими словами, программа помогает изучить характер изменения
электрических сигналов при изменении времени наблюдения, а также зависимости выходных сигналов от частоты входного сигнала.
В состав моделируемых устройств могут входить как цифровые, так и аналоговые устройства, в том числе устройства диапазона сверхвысоких частот.
7.3. Моделирование криптосистем с помощью Multisim
Программа Multisim может быть использована для имитации аппаратной реализации
криптографических систем.
Существует большое число методов шифрования простых в реализации и обладающих
высокой криптостойкостью. Среди них можно выделить метод гаммирования. Основная идея
шифрования этим методом заключается в замене символов открытого текста на числа и суммировании их с псевдослучайными числами, которые называются «гаммой». При этом состав гаммы известен только доверенным лицам на передающей и приѐмной сторонах.
Известны методы взлома этого шифра. Скомпрометировать шифр можно в случаях нештатного использования гаммы (некачественный состав гаммы, малая длина или повторное
использование одной и той же гаммы для шифрования разных сообщений).
Ещѐ одним уязвимым элементом в аддитивном шифре является логическая операция
Исключающее ИЛИ, которая используется для зашифрования и расшифрования.
Известно интересное свойство этой логической операции:
M G G M.
Соотношение говорит о том, что наличие чѐтного числа одинаковых слагаемых, участвующих в операции Исключающее ИЛИ, уничтожает эти слагаемые. Таким образом, если
определить период гаммы и выполнить логическую операцию Исключающее ИЛИ над символами криптограммы с одинаковыми значениями гаммы (с одинаковыми фазами), то можно
уничтожить гамму. В результате такого преобразования получаются данные, представляющие собой результат выполнения логической операции Исключающее ИЛИ над символами
открытого текста:
R
Ci
Ci
T
Mi
Gi
Mi
T
Gi
T
Mi
Mi
T
Это объясняется тем, что Gi Gi T , то есть элементы гаммы повторяются с периодом Т
и поэтому они одинаковые. Если гамма дважды использована для шифрования двух разных
текстов, то задача криптоанализа становится ещѐ проще: достаточно выполнить операцию
Исключающее ИЛИ над двумя криптограммами. Известен пример неверного использования
метода гаммирования в операционной системе Windows 95. Одна и та же гамма применялась
несколько раз для шифрования данных в файлах PWL.
Величину R можно назвать разностью открытых текстов (сообщений). Разность R
может быть подвержена успешному криптоанализу путѐм учѐта статистических закономер175
ностей открытых текстов или использования известных из других источников их особенностей.
Таким образом, в аддитивном методе шифрования из-за симметричности (обратимости)
логической операции Исключающее ИЛИ и нештатного использования гаммы существует
возможность произвести криптоанализ и восстановить открытый текст даже без знания гаммы.
Повысить криптостойкость аддитивного шифра можно за счѐт использования управляемых операций шифрования [26, 27]. Основная идея рассматриваемой криптосистемы состоит в использовании в течение одного сеанса связи не одной, а нескольких различных
шифрующих операций. В этой криптосистеме с изменением значения гаммы варьируются
операции преобразования, выполняемые над открытым текстом (на передаче) и над криптограммой (на приѐме). Причѐм на передаче и приѐме операции зашифрования и расшифрования должны синхронно чередоваться. Например, если на передаче осуществляется арифметическое сложение символа открытого текста с элементом гаммы, то на приѐме нужно вычесть гамму из полученной криптограммы. Синхронизация выполняемых операций должна
осуществляться под управлением гаммы, которая одновременно определяет и вид выполняемой операции, и сама участвует в этих операциях.
На рисунке показана структурная схема криптографической системы с управляемыми
операциями шифрования. Моделирование этой системы можно осуществить с помощью программы Multisim.
Канал связи
Открытый
текст
М
А ALU 1
М
А ALU 2
F
F
Гамма
Гамма
G
G
B
S
ПК1
Открытый
текст
Криптограмма
K
S
Передающая
сторона
B
S
ПК 2
S
Приемная
сторона
Имитация передающей и приѐмной сторон криптосистемы осуществляется с помощью
двух арифметико-логических устройств 74281J. Четырехбитный открытый текст M подаѐтся
на вход А первого арифметико-логического устройства (АЛУ). Четырехбитная гамма G подаѐтся на входы В каждого АЛУ. Вид выполняемой операции на передающей стороне задаѐтся с помощью преобразователя кода ПК1. Управляющие сигналы S на приѐмной стороне
формируются с помощью преобразователя кода ПК2. Сигналы с выходов преобразователей
кодов подаются на управляющие шины АЛУ. Именно эти сигналы определяют вид выполняемых АЛУ операций. Криптограмма K формируется на выходе F первого АЛУ. Расшифрование криптограммы происходит на приѐмной стороне с помощью второго АЛУ. Выполняемые операции синхронно изменяются под управлением гаммы. Принятый открытый текст M`
появляется на выходе F второго АЛУ.
В качестве шифрующих преобразований можно использовать различные логические и
арифметические операции, а также математические функции и их комбинации. Некоторые из
них перечислены в таблице, в которой приняты такие обозначения:
M - открытый текст (сообщение); G - гамма; K - криптограмма;
- логическая операция Исключающее ИЛИ (неравнозначность); - логическая операция равнозначность; «+» арифметическая операция сложение; «–» - арифметическая операция вычитание; черта над
переменными обозначает операцию инверсии.
176
Первые 10 операций предполагают работу с целыми числами. Остальные операции
предназначены для работы с вещественными числами.
Задачей преобразователей кодов ПК1 и ПК2 является синхронное изменение управляющих сигналов на передающей и приѐмной сторонах. Естественно, что конструкции преобразователей кодов ПК1 и ПК2 должны быть разными, так как при одинаковых входных
воздействиях (гамма G) преобразователи кодов должны формировать разные выходные
(управляющие) сигналы S и S`.
Преобразователи кодов можно синтезировать различными способами: графически (с
помощью карт Карно и диаграмм Вейча), аналитически (методы Квайна, Мак-Класки, неопределѐнных коэффициентов) и с помощью графических символов, интерпретирующих булевы функции.
Перечисленные способы синтеза комбинационных цифровых устройств трудоѐмки и
имеют ограничения на их использование при числе переменных более 5…6. При разработке
данной модели криптосистемы преобразователи кодов синтезировались с помощью блока
Logic Converter (логический конвертор), который входит в систему моделирования радиоэлектронных устройств Multisim.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Операции
на передающей стороне
Неравнозначность K M G
Равнозначность
K M G M G
Сложение
K M G
Вычитание
K M G
Вычитание
K G M
Инверсия от суммы
K M G
Инверсия от разности
K M G
Инверсия от разности
K G M
Комбинированная сумма
K M G
Комбинированная разность
K M G
Умножение
K M G
Деление
K M /G
Деление
K G/M
Функциональные K f ( M , G )
n
s
Алгебраические K M G
Операции
на приѐмной стороне
Неравнозначность M` K G
Равнозначность
M` K G K G
Вычитание
M` K G
Сложение
M` K G
Вычитание
M` G K
Комбинированная разность
M` K G
Комбинированная сумма
M` K G
Комбинированная разность
M` G K
Комбинированная разность
M` K G
Комбинированная сумма
M` K G
Деление
M K /G
Умножение
M K G
Деление
M G/ K
1
Функциональные M f ( K , G)
Алгебраические M
n
K  Gs
177
Логический конвертор позволяет создавать преобразователи кодов с числом аргументов n ≤ 8. Для получения логических выражений, описывающих работу ПК, достаточно в
конвертор ввести таблицу истинности, которая описывает работу преобразователя кода. Полученные математические выражения затем можно использовать для построения принципиальной схемы ПК.
Рассмотрим подробнее порядок выбора логических и арифметических операций, которые можно использовать в криптосистеме.
Безусловно, для шифрования нужно использовать многократно проверенную на практике операцию Исключающее ИЛИ. Аналогичными положительными свойствами обладает
операция ―равнозначность‖, которая является инверсией от операции Исключающее ИЛИ.
В виду того, что логические операции M G M G эквивалентны операции неравнозначности M G , использовать все три операции при шифровании не имеет смысла, так
как криптограммы будут одинаковыми. Аналогично операции M G M G сводятся к
операции равнозначности M G . Таким образом, из рассмотренных шести операций следует использовать только две: равнозначность и неравнозначность.
Для арифметических операций в дополнительном коде справедливы соотношения:
M G G M M G
M G G M M G
G M
M
G
M
G
G M M G M G
M G G M
Использование операций, перечисленных в одной строке, даст одинаковые значения
криптограммы при одинаковых значениях гаммы и открытого текста. Из четырнадцати указанных операций целесообразно оставить только пять, например
M G, M G, M G, M G и G M .
Помимо изменения шифрующих операций данная модель криптосистемы позволяет
имитировать процедуру смены сеансового ключа. Для этого в модель введѐн переключатель
А, который изменяет таблицу соответствия выполняемых операций и значений гаммы. Другими словами, с помощью этого переключателя одним и тем же значениям гаммы ставятся в
соответствии иные наборы выполняемых логических и арифметических операций.
Одна из множества возможных таблиц истинности, которая описывает работу ПК1 на
передающей стороне, представлена ниже. Такие таблицы совместно с гаммой являются ключевой информацией.
№
УправляюГамма
п/п
Операщие сигналы Мo CN
B3B 2 B1B0
ция
d
S 3 S 2 S1 S 0
(BCDE)
0
1
2
3
4
5
6
7
8
9
10
11
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
M
G
M
G
M
G
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
x
1
x
0
0
178
12
13
14
15
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
M
G
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
В таблице символом «х» обозначены безразличные состояния ПК. Вход Mod определяет, какую операцию выполняет АЛУ: логическую или арифметическую. Входы S 3 S 2 S1 S 0 и
Mod предназначены для формирования управляющих сигналов, которые позволяют выбрать
одну из 32-х возможных операций данного АЛУ.
Для приѐмной стороны составляется аналогичная по форме таблица истинности.
Внешний вид конвертора, позволяющего синтезировать комбинационные цифровые
устройства, показан на рисунке.
С помощью логического конвертора получены выражения, описывающие работу ПК1,
находящегося на передающей стороне:
S3 S0
S3 .
S1
2
2 S2
3 CN
2
2
2
2 , Mod
Аналогично можно получить выражения для ПК2, работающего на приѐмной стороне.
S3 S0
3 2
3 2
3
2
3 2
S 2 S1
3 2
3 2
3 2
3 2 Mod
3 , CN
2
2.
На основании полученных выражений составляются принципиальные схемы преобразователей кодов. Разработанная модель криптографической системы работает с использованием четырѐх операций: Исключающее ИЛИ, равнозначность, сложение и вычитание. При
этом результат вычитания формируется на выходе АЛУ в дополнительном коде. Смена сеансового ключа имитируется с помощью переключателя А. Схема криптосистемы приведена на
рисунке.
Исходный текст, принятый текст, гамма и криптограмма отображались с помощью индикаторов
U3…U6. Значения гаммы и передаваемый текст формировались с помощью
генератора слов XWG1 (Word Generator).
Преобразователи кодов ПК1 и ПК2 расположены в нижней части рисунка.
Как и всякая имитация, разработанная модель не полностью соответствует реальной
криптографической системе. Например, при моделировании считается, что соединение между передающей и приѐмной сторонами происходит по четырѐм проводам. В реальной криптосистеме связь должна осуществляться по двухпроводной линии.
179
Кроме того, при моделировании считается, что операнды, циркулирующие в криптосистеме, являются четырехразрядными целыми числами. Диапазоны изменения чисел составляют 0 M 15 и 0 G 15 . В действующей криптосистеме разрядность операндов должна
быть, по крайней мере, в два раза больше. И ещѐ, в реальной криптосистеме при формировании криптограммы возможно использование не только целых, но и вещественных чисел.
В разработанной модели использовано только четыре шифрующие операции: Исключающее ИЛИ, равнозначность, арифметическое сложение и вычитание. Имитация смены
ключей осуществляется только для двух таблиц соответствия значений гаммы и выполняемых операций.
Несмотря на введѐнные упрощения, модель криптосистемы с управляемыми операциями шифрования позволяет проверить работоспособность системы, выбрать виды логических
и арифметических операций, имитировать смену сеансового ключа, наметить пути совершенствования криптосистемы.
180
8. Математические и статистические системы
8.1. Обзор математических и статистических систем
В любой науке столько истины,
сколько в ней математики.
И. Кант
Новые информационные технологии коренным образом изменили порядок решения
математических задач. Теперь решение задач и выполнение математических преобразований
целесообразно производить с помощью специальных программ. Рассмотрим некоторые математические и статистические пакеты программ для ЭВМ.
Математические системы Derive, Mathematica, MATLAB, Maple V и Mathcad могут
быть успешно использованы при решении большого числа различных технических, экономических, статистических и научных задач.
Достоинством системы Derive является возможность выполнения аналитических преобразований математических выражений. Процедуру таких преобразований чаще всего называют компьютерной алгеброй или символьной математикой.
Derive является удобным инструментом при дифференцировании, интегрировании,
разложении функций в ряды, нахождении пределов. Система имеет полный набор встроенных элементарных функций, а также множество статистических и специальных математических функций. Система позволяет работать с матрицами, выполнять операции регрессионного анализа, проводить преобразования Фурье и Лапласа. Способность системы работать с
комплексными числами делает ее привлекательной для радиотехнических и электротехнических расчетов.
Система Mathematica предоставляет возможность использовать несколько сотен команд символьной математики. Порядок работы с этой системой не столь очевиден, как с другими математическими системами. Система ориентирована на решение сложных математических и научно-технических задач.
Mathematica разработана компанией Wolfram Research Inc, основанной известным математиком и физиком С. Вольфрамом. Система позволяет решать широкий круг задач. Еѐ
разработчики задались целью объединить все известные математические методы, использующиеся для решения научных задач, включая аналитические и численные расчеты.
Система Mathematica позволяет упрощать алгебраические выражения, дифференцировать, вычислять определенные и неопределенные интегралы, вычислять конечные и бесконечные суммы и произведения, решать алгебраические и дифференциальные уравнения и
системы, а также раскладывать функции в ряды и находить пределы.
Mathematica решает численными методами (т. е. приближенными методами) задачи,
которые не поддаются аналитическому решению. Она позволяет решать задачи оптимизации
(линейного программирования, нахождения экстремумов функций), задачи математической
статистики.
Система снабжена базой помощи. Имеется возможность интерактивного доступа к
электронной документации, которая состоит из инструкции пользователя, справочника по
стандартным дополнениям, учебника для начинающих и демонстрационных файлов.
Богатые численные и символьные возможности системы Mathematica, мощные графические возможности (включая анимацию), встроенный язык программирования и удобные
средства построения гипертекстовых связей между документами делают эту систему привлекательной как для исследовательской и практической деятельности, так и для обучения
студентов.
В основу создания системы MATLAB (MATrix LABoratory — матричная лаборатория)
положен принцип расширяемости, позволяющий адаптировать (приспособить) систему под
задачи пользователя.
181
Сущность этого принципа заключается в том, что пользователь может создавать практически неограниченное число собственных функций, которые хранятся на жестком диске
ЭВМ.
В базовый набор MATLAB входят арифметические, алгебраические, тригонометрические и некоторые специальные функции, функции быстрого прямого и обратного преобразования Фурье и цифровой фильтрации, векторные и матричные функции. MATLAB «умеет»
выполнять операции с полиномами и комплексными числами, строить графики в декартовой
и полярной системах координат, формировать изображения трехмерных поверхностей.
MATLAB имеет средства для расчета и проектирования аналоговых и цифровых фильтров,
построения их частотных, импульсных и переходных характеристик и таких же характеристик для линейных электрических цепей, средства для спектрального анализа и синтеза.
Для решения задач моделирования программа MATLAB дополнена пакетом
SIMULINK c визуально-ориентированным программированием.
Разработчики пакета Maple V называют его Symbolic Computation System (Система
символьных вычислений) или Computer Algebra System (Система компьютерной алгебры).
Maple V — универсальный математический пакет, предназначенный для выполнения разнообразных математических вычислений, как точных (аналитических), так и приближенных (с
использованием численных методов), а также для построения двух- и трехмерных графиков.
Основное преимущество системы — всесторонняя поддержка сложных символьных
вычислений, мощные графические возможности и наличие многофункционального внутреннего языка программирования. На этом секторе рынка система занимает лидирующее место.
Ближайшим конкурентом является пакет Mathematica фирмы Wolfram Research.
Пакет Maple V дает возможность пользователю сосредоточиться на решении его конкретной проблемы в аналитическом виде, не тратя времени на численные решения частных
задач. Большое количество встроенных математических функций и детально разобранных
примеров позволяют ученым, инженерам и исследователям решать сложные прикладные и
теоретические задачи. Студентам и преподавателям пакет помогает глубже понять многие
математические методы и проанализировать влияние различных параметров на найденное
решение.
Блок символьных вычислений Maple V лицензирован и используется в системах
Mathcad, MathWorks и в приложении к пакету MATLAB.
Система Mathcad очень естественно вписалась в оболочку MS Windows. Система имеет удобный интерфейс, хорошо развитые средства помощи и обширную справочную базу.
Система позволяет проводить численные расчеты и аналитические преобразования. Многоцветные двух- и трехмерные графики строятся мгновенно и с автоматическим выбором
масштаба.
Отличительной особенностью системы является использование в ней общепринятых в
математике символов для обозначения операций интегрирования, дифференцирования, вычисления рядов, пределов и т. д. Возможность использования латинских, греческих букв,
верхних и нижних индексов позволяет получать формулы в привычном виде. С помощью
кириллицы можно делать комментарии на русском языке.
Очень просты в реализации в Mathcad многие численные методы: решение линейных и
нелинейных уравнений, вычисление определенных интегралов, оптимизация, решение дифференциальных уравнений, сплайн-интерполяция и т. д.
Фирма MathSoft уделяет большое внимание развитию сетевых технологий. Выход в
глобальную Сеть возможен прямо из математической системы.
Mathcad является интегрирующей системой, позволяющей создавать проекты, в которых данные циркулируют по системе MATLAB, электронным таблицам MS Excel и пакету
научной графики Axum.
Для обработки экспериментальных данных разработаны специализированные статистические пакеты:
182
профессиональные — SAS, BMDP, IMSL (они предназначены в основном для математиков высокой квалификации);
популярные (т. е. для широкого круга пользователей) — STATGRAPHICS, SPSS,
SYSTAT, STADIA, STATISTICA, Minitab. Перечисленные пакеты являются универсальными
и предназначены для решения широкого круга задач.
Разработаны также специальные пакеты для решения узкого круга задач или даже отдельных задач. К ним, в частности, относятся TC WIN, TC 3D, отечественные пакеты «Эвриста», «Мезозавр», «ОЛИМП», «КЛАСС-МАСТЕР», «КВАЗАР», PALMODA, STARC, StatMedia и белорусский пакет «РОСТАН».
Универсальные пакеты содержат такие разделы математической статистики, как описательная статистика, парные критерии, анализ факторных эффектов, корреляционный анализ,
регрессионный анализ, анализ временных рядов, многомерные методы, методы контроля качества и др.
Парные критерии оценивают различия между двумя совокупностями данных. Типичная
задача в этом разделе — определение влияния нововведения, сделанного на предприятии, на
результаты работы.
Еще одна важная задача, которую позволяют решать универсальные пакеты, — это
прогнозирование, например, курса валют, цен на товары. Все пакеты содержат развитые
средства регрессионного анализа.
Многомерные методы — дискриминантный, кластерный, факторный анализы и шкалирование — помогают понять, нет ли какой-либо закономерности или группировки в имеющемся множестве объектов. Многомерные методы позволяют по экономическим показателям выделить группы сходных предприятий.
Универсальный пакет STATISTICA состоит из следующих основных частей:
электронных таблиц для ввода исходных данных, а также специальных таблиц для
вывода результатов анализа;
графической системы для визуализации исходных данных и результатов статистического анализа;
набора специализированных статистических модулей;
встроенных языков программирования SCL (Statistic Command Language) и
STATISTICA BASIC, которые позволяют пользователю расширить стандартные
возможности системы.
В пакете STATISTICA имеется большое количество специализированных статистических графиков: гистограмм, графиков для анализа пропущенных данных и определения выбросов, «ящиков с усами» с разнообразными опциями по выбору средней точки и т. д.
График типа «ящик с усами» позволяет увидеть положение моды, медианы, среднего
значения по отношению к максимальному и минимальному значениям.
Графики можно уменьшать, увеличивать, накладывать друг на друга, вращать, задавать
собственную палитру цветов, добавлять в графики текст, рисунки, стрелки. Графики могут
автоматически изменяться при изменении связанного с ним файла данных.
Пакет STATGRAPHICS Plus for Windows включает более 250 процедур, применяющихся в бизнесе, экономике, медицине, биологии, социологии, психологии, на производстве
и в других предметных областях.
Пакет имеет модульную структуру. Модуль «Контроль качества» предназначен для
оценки эффективности производственного процесса. Модуль «Планирование эксперимента»
помогает подобрать наилучший план измерений, за счет которого сокращается объем экспериментальных исследований и время их проведения. Модуль «Анализ временных рядов» позволяет выявить сезонные эффекты, циклические изменения, тренды (тенденции), ошибки и
выбросы. Модуль «Многомерные методы» предназначен для изучения и раскрытия взаимоотношений множества факторов. С его помощью можно сортировать и группировать данные.
183
Специализированные пакеты посвящены решению узкого круга задач. Например, пакет
TC WIN позволяет детально проводить парный регрессионный анализ (дает возможность
табличные данные заменить математической формулой). Особенностью этого пакета является то, что математическое описание экспериментальных данных можно выполнять при помощи нескольких сотен математических моделей. Пакет позволяет исследователю самостоятельно формировать собственные математические модели. Для этого предусмотрена процедура создания функции пользователя. Пакет TC WIN обладает широкими графическими возможностями отображения эмпирических данных и графиков выбранных моделей.
Пакет 3D TC WIN расширяет возможности предыдущей программы и позволяет аппроксимировать двухфакторные зависимости (для функциональных зависимостей речь идет
о двух аргументах).
184
8.2. Математическая система Mathcad
Математическая система Mathcad имеет одно несомненное достоинство:
математические символы имеют привычный вид, и их использование напоминает обычную
запись формул на листке бумаге. Писать формулы можно в любом месте рабочего поля,
нужно лишь помнить, что расчеты ведутся в таком порядке: слева направо, а затем сверху
вниз.
8.2.1. Пользовательский интерфейс
Вечный мой перекресток:
Где минус? Где плюс?
Песня группы «Чиж и Co»
Отличительной особенностью математической системы Mathcad является одновременное присутствие в документах текста, самой программы и продуктов еѐ работы (в виде формул, программ, результатов расчѐта, таблиц, графиков и итогов символьного преобразования
аналитических формул). Вид документа напоминает научную статью.
Основные команды размещены на ленте, которая может быть настроена по усмотрению конкретного пользователя.
Вид уравнений в основном совпадает с привычной математической записью. Писать
формулы можно по всей свободной площади листа. Математическая система подбирает размеры для дробных черт, скобок и других математических символов так, чтобы они были
пропорциональными и выглядели в привычном виде.
В системе используются стандартные символы для обозначения суммы, произведения,
интеграла, производной, предела и т. д. Однако некоторые особенности синтаксиса системы
приводят к частым ошибкам при записи формул.
Например, вместо необходимой записи sin(x)2 часто ошибочно записывают sin2x. В
системе принято аргумент указывать в круглых скобках, которые должны располагаться сразу за именем функции.
Первоначально нелогичным кажется использование в системе нескольких знаков определения и вычислений.
185
Например, в следующем примере использованы три операции присвоения (назначения)
переменным некоторых числовых значений, а четвертая операция выводит на экран результат суммирования. В этих случаях используются разные символы.
Существует оператор глобального присвоения, который сохраняет назначенное значение во всѐм документе. Попытка присвоить глобальной переменной новое значение приведѐт к неудаче.
Ещѐ один символ (стрелка) служит для запуска в действие символьных операций:
Символ сравнения (жирный знак равенства) имеет конфигурацию, сходную с конфигурацией рассмотренных знаков. Однако он используется иначе, например, для нахождения
корней квадратного уравнения:
В режиме программирования используется ещѐ один вид присвоения (стрелка, направленная справа-налево).
Некоторое представление о возможностях математической системы даѐт вкладка
Функции. Предлагаемый набор функций позволяет успешно решать большинство инженерных задач.
Данная математическая система позволяет выполнять разнообразные математические
преобразования, в том числе есть возможность использовать логические функции, изучение
которых необходимо в курсе «Информатика». На рисунке показан пример работы с наиболее
часто используемыми логическими функциями.
186
Естественно, что в Mathcad доступна не только Булева алгебра, но и обычная алгебра.
Следующий рисунок показывает примеры арифметических операций в матричной форме.
В Mathcad можно задавать точность проводимых вычислений и определять форму чисел, в которой выводится результат.
Математическая система позволяет строить двухмерные и трѐхмерные графики. Ниже
показан график, построенный в прямоугольной системе координат.
187
Расположение мест заполнения вида функции и аргумента первоначально кажется непривычным. Нагляднее располагать функцию вдоль вертикальной оси, а аргумент вдоль горизонтальной. Ради справедливости следует отметить, что надписи можно перемещать по
графику.
На следующих рисунках показан график в полярной системе координат и трѐхмерный
график.
8.2.2. Компьютерная алгебра
Часто в наших уравнениях
верен только знак равенства.
С. Лец
Следует обратить внимание, то при выполнении символьных (аналитических) преобразований традиционный знак равенства в данной математической система не используется.
Пожалуй, наиболее сильное впечатление от работы программы Mathcad пользователи
получают при выполнении символьных (т. е. аналитических) математических преобразований. Когда в Mathcad используется символьная математика, то результатом преобразований
является не число, а новое аналитическое выражение.
Рассмотрим, как производятся тождественные преобразования.
Для примера приведѐм многочлен к стандартному виду. Если набрать выражение
а затем на вкладке Математика выбрать команду simplify, то в результате выполненных машиной упрощений на экране появится выражение:
188
Запустить символьный процессор на проведение преобразований можно по-другому.
Набрав необходимое выражение, следует вставить оператор символьных преобразований:
Математическая система позволяет получать формулы сокращенного умножения. Например, если нужно развернуть выражение (возвести двучлен в натуральную степень)
то следует активизировать команду expand:
Если требуется свернуть выражение, то нужно активизировать команду factor:
Этим же способом можно вынести множитель за скобку. Например,
Посмотрим, как осуществить разложение квадратного трехчлена на линейные множители. Для примера возьмѐм выражение
Mathcad позволяет упростить выражение, например, сократить дробь, разделив числитель и знаменатель дроби на общий множитель:
Рассмотрим ещѐ один пример упрощения выражения (опция simplify):
Результат этого преобразования равен 2/3.
Система может выполнять решение уравнений в символьном виде. Для примера рассмотрим процедуру нахождения корней квадратного уравнения:
Получен хорошо известный результат для вычисления корней. Для штатной работы
программы нужно после команды solve через запятую указать независимую переменную.
Система позволяет найти производную в символьном виде:
Рассмотрим способ нахождения производных высокого порядка в символьном виде:
Символ дифференцирования расположен на вкладке Математика (Операторы, Математический анализ).
189
Рассмотрим, каким образом можно найти первообразную в символьном виде.
Аналогично происходит вычисление неопределѐнного интеграла:
Анализируя последний результат, легко заметить, что в ответе нет постоянной интегрирования, т. е. она во всех случаях принимается равной нулю.
Оператор интегрирования можно найти в пункте Математический анализ.
Система даѐт возможность находить значения определенных интегралов как в символьном, так и в числовом виде.
или
Математическая система может производить разложение в ряд Маклорена. Выполним разложение функции:
Разложение выполняется с помощью опции series
По умолчанию в системе PTC Mathcad Premie возвращается результат вплоть до
шестой степени ряда. При необходимости повышения точности расчетов необхожимо
команду series дополнить соответствующими параметрами:
Рассмотрим порядок вычисления пределов.
Чтобы вызвать оператор предела, можно нажать одновременно клавиши Ctrl и L. Возьмѐм конкретный пример:
Вычислим ещѐ один известный предел:
190
Символьный процессор, безусловно, одно из величайших достижений человеческого
разума. Однако результаты, полученные с его помощью, не всегда рациональны (компактны).
Так, нахождение первообразных для интегралов, приведенных в справочнике по интегралам Двайта [10], в 50—60% случаев дает такие же результаты, как в упомянутой книге.
В остальных случаях результаты не столь компактны, как в справочнике, а порой ЭВМ совсем не справляется с поиском первообразной.
Приведем два интеграла, с которыми система не справилась (не смогла найти первообразную):
Очевидно, что в данном разделе рассмотрены лишь некоторые возможности этой мощной математической системы.
8.2.3. Операции с комплексными числами
Цель расчѐтов – понимание, а не числа.
Р. Хемминг
Система позволяет просто выполнять операции с комплексными числами. Такие действия необходимы при радиотехнических и электротехнических расчетах.
Следующий документ иллюстрирует простейшие вычисления с комплексными числами.
i
1
Z1
7
Z1
Z2
Z1 Z2
i5
15 3i
Z2
8
Z1
Z2
Z1
66 26i
i2
1 7i
0.676 0.794i
Z2
Преобразования выражений, содержащих комплексные числа, в Mathcad осуществляются так же, как преобразования выражений с действительными числами. При этом ответ
содержит действительную и мнимую части, например,
i
1
(1
2 i)
3
19
i
2 10i
i
Выделить действительную и мнимую части комплексного числа (например, e3i) можно
следующим образом:
Re e
Im e
3i
3i
0.98999
0.14112
Вычисление модуля числа 1 + i осуществляется естественным путем:
1+ i = 1.414.
Для расчета аргумента имеется специальная функция:
arg(1 + i) = 0.785.
191
Несложно найти комплексно сопряженное число (напомним, что сопряженное число
имеет противоположный знак перед мнимой частью), например,
(2
3i)
2
3i
Чтобы получить сопряженное число, нужно выделить исходное число и нажать аккорд
клавиш Shift + «.
Программа Mathcad позволяет легко решать системы линейных уравнений с комплексными коэффициентами.
Предположим, что дана система уравнений:
I 1 (200 i 361,9)
I 1 ( 125 i 29,75)
I 2 ( 125 i 29,75)
I 2 (287 ,5 i 29,75)
2,84 i 0,977
5,906 i 5,537
Требуется найти токи I1 и I2.
Приведем фрагмент документа Mathcad, который показывает порядок решения системы линейных уравнений с комплексными коэффициентами.
Для решения системы используются матрица коэффициентов R и матрица свободных
членов F. Решение находится в виде произведения обратной матрицы коэффициентов на
матрицу свободных членов.
i
1
a1
200 i 361.9
a2
125 i 29.75
a3
a2
a4
287.5 i 29.75
b1
2.84 i 0.977
b2
5.906 i 5.537
R
W
W
a1 a2
F
a3 a4
R
1
b1
b2
F
4.09195 10
0.01963
3
0.01497i
0.02331i
Таким образом, ток I1 = — 4,09195 10-3 — i 0,01497, а ток I2 =0,01963 –– i 0,02331.
192
8.2.4. Вопросы программирования
Процедуру составления программ проиллюстрируем на примере шифра Цезаря.
Необходимые элементы для формирования программ размещены на вкладке Математика (Программирование).
Преобразование открытого текста осуществляется в соответствии с шифром Цезаря.
Символы открытого текста заменяются символами этого же алфавита, расположенными на
три позиции впереди. Смещение определяется ключом key. В первом варианте шифра, предложенным Цезарем, эта величина равнялась трѐм. Шифр является циклическим, поэтому последние буквы алфавиты заменяются первыми.
Оператор ORIGIN определяет, с какого числа начинается отсчѐт векторов. По умолчанию отсчѐт начинается с нуля. В данном случае отсчѐт удобнее вести с единицы.
Открытое сообщение ABCXYZ присваивается переменной mess:
Следующая команда преобразует буквы в их десятичные коды:
Переменной d присваивается число символов в сообщении:
Результаты шифрования присваиваются переменной С.
Дальше приведѐн листинг программы.
193
Шифрование происходит путѐм формирования вектора v, элементы которого увеличены на три единицы по сравнению с элементами вектора m.
Оператор передачи управления проверят, превышают или нет элементы вектора v величину 90 (код заглавной буквы Z).
В случае выполнения этого условия элементы уменьшаются на 26 единиц и шифрование ведѐтся буквами, расположенными в начале латинского алфавита:
Если текст криптограммы предполагается записывать строчными латинскими буквами,
то в операторе передачи управления вместо числа 90 нужно записать число 122 (в соответствии с таблицей кодировки).
Вставка линий новой структуры (вертикальная линия) осуществляется на вкладке Математика (Программирование).
194
На завершающей стадии формирования блока шифрования нужно подготовить место
для ввода выходной переменной v, значение которой присваивается вектору С.
На последних шагах алгоритма числовое значение матрицы С преобразуются в буквы:
Сравнение открытого текста mess с криптограммой crypt подтверждает правильность
работы составленной программы:
Рассмотрим ещѐ один пример составления программ. Для программной реализации выберем алгоритм RSA.
Процесс передачи информации в асимметричной криптосистеме рассмотрим на примере взаимодействия банкира и вкладчика. В программе переменные банкира содержат цифру
1, а переменные вкладчика - цифру 2.
В соответствии с протоколом создания защищѐнного канала связи RSA, описанном в
[12], банкиру и вкладчику следует выполнить следующие действия.
1.
Для формирования ключей банкир и вкладчик должны выбрать два простых
числа p и q. Нужно сделать следующее замечание. Здесь рассматривается учебный пример,
поэтому описываемые операции не совпадают с реальными действиями абонентов. Фактически ключи формируются автоматически, например, программным путѐм. Разрядность реальных ключей многократно превышает разрядность рассматриваемых здесь ключей.
Пусть банкир выбрал простые числа:
Простые числа вкладчика:
2. Вычислить произведение простых чисел:
3. Рассчитать функцию Эйлера:
4. Выбрать случайное число s, взаимно простое с w из интервала
0<s<w
Формирование взаимно простых чисел осуществляют с помощью следующих функций
пользователя:
195
Результаты расчѐтов взаимно простых чисел:
Из предыдущих таблиц нужно выбрать числа из интервала 0 < s < w и присвоить их
переменным s1 и s2. Например:
5.
Рассчитать секретный ключ банкира t1. Расчѐт секретного ключа ведѐтся с
помощью обобщѐнного алгоритма Евклида [13].
196
Итак, секретный ключ банкира 10525.
6. Теперь нужно определить секретный ключ вкладчика.
Секретный ключ вкладчика:
7.
На этом шаге протокола создания закрытого канала связи банкир и вкладчик
публикуют свои открытые ключи, например, на сайтах.
Банкир: s1=5329, r1=13961.
Вкладчик: s2=3897, r2=64741.
Естественно, что секретные ключи t хранятся в местах, недоступных для посторонних
лиц.
Рассмотрим порядок обмена информацией между банкиром и вкладчиком. Обмен сообщениями происходит по открытому каналу связи в виде криптограмм.
Предположим, что банкир решил отправить вкладчику сообщение secrb, например, некоторое число. Если нужно передать символьную информацию, то она должна быть предварительно закодирована числами.
Для формирования криптограммы банкир использует открытый ключ вкладчика, который состоит из двух частей s2 и r2. Секретное сообщение (число secrb) возводят в степень s2
и находят остаток от деления на r2.
Пусть банкир передаѐт сообщение:
Тогда:
Сформированное число cryptb=51300 является криптограммой, за которой скрывается
открытое сообщение банкира secrb=50.
Криптограмму cryptb банкир по открытому каналу связи передаѐт вкладчику.
Принятую криптограмму cryptb вкладчик должен расшифровать с помощью своего
секретного ключа t2. Для этого принятое число cryptb возводят в степень t2 и находят остаток от деления на r2:
197
Из рассмотренного примера видно, что вкладчик принял число 50, которое отправил
банкир, хотя по открытому каналу связи предавалось число 51300. При этом банкир зашифровал своѐ сообщение открытым (опубликованным) ключом вкладчика. Расшифровать криптограмму может только лицо, которое владеет ключом t2.
Рассмотрим процесс передачи ответного сообщения (от вкладчика к банкиру). Для
шифрования сообщения вкладчик использует открытый ключ банкира, который состоит из
двух частей s1 и r1.
Пусть:
Шифрование своего сообщения вкладчиком даст число:
Криптограмма cryptv=4018 передаѐтся банкиру. Для расшифрования криптограммы
банкир должен использовать собственный секретный ключ t1:
Итак, переданное вкладчиком число после расшифрования без искажений принято банкиром.
198
9. Сетевые информационные технологии
Компьютерные сети создаются для того, чтобы дать возможность территориально разобщенным пользователям обмениваться информацией между собой, совместно использовать приложения (программы), общие информационные (например, базы данных) и аппаратные (например, принтеры) ресурсы, перейти на безбумажную технологию документооборота. Компьютерные сети позволяют создать вычислительные системы, которые обладают высокой производительностью.
Необходимость внедрения электронной почты, стремление к коллективному использованию разнообразных баз данных и аппаратных средств, потребность в проведении дискуссий и оперативных совещаний без отрыва от рабочих мест (видеоконференции), желание повысить оперативность получения «свежей» информации стимулирует пользователей к подключению своих ЭВМ к сетям.
Сети появились в результате творческого сотрудничества специалистов вычислительной техники и техники связи.
Вычислительные сети чаще всего подразделяются на два вида: локальные (ЛВС) и глобальные (ГВС). Существуют корпоративные сети, которым одновременно присущи свойства
и локальных, и глобальных сетей. Корпоративные сети доступны лишь ограниченному кругу
лиц.
Локальная сеть (Local Area Network — LAN) имеет небольшую протяженность (до
10…20 км), характеризуется высокой скоростью передачи информации и низким уровнем
ошибок. Глобальная сеть (Wide Area Network — WAN) может охватывать значительные расстояния — десятки тысяч километров. Когда-нибудь к глобальным сетям будут подключены
компьютеры, расположенные на космических станциях и на других планетах Солнечной
системы.
При классификации сетей можно считать, что если организация (или предприятие) является собственником канала связи (при этом канал связи является высокоскоростным), то
это локальная сеть. Если же организация арендует каналы связи (например, спутниковую линию связи), то это глобальная сеть.
Скорость передачи информации измеряется в битах, передаваемых в секунду (килобитах в секунду и т. д.). Иногда используется внесистемная единица — бод. При скорости 1 бод
в канал связи передается один импульс каждую секунду, т. е. один бит.
Наименьшей системной единицей измерения скорости передачи информации является
1 бит/с.
9.1. Локальные вычислительные сети
Один только глаз и один зуб имели грайи на всех троих.
По очереди пользовались они ими.
Н.А. Кун. «Легенды и мифы Древней Греции»
Локальная вычислительная сеть (ЛВС) — это такая вычислительная сеть, в которой
компьютеры с подключенными к ним периферийными устройствами расположены в географически ограниченном пространстве, чаще всего в пределах промышленного или коммерческого предприятия, банка, библиотеки, научной организации, учебного заведения и т. п.
Локальные сети позволяют организовать совместное рациональное использование дорогостоящей аппаратуры, программных продуктов, (например, Mathcad, тестирующая программа), обмен информацией, а также распределенную обработку данных на нескольких
компьютерах. Это дает значительную экономию материальных средств и ускорение процесса
обмена информацией. Например, при наличии на предприятии двадцати ЭВМ достаточно
купить один принтер, а локальная сеть предоставит доступ к нему от каждой ЭВМ.
199
В локальной сети можно организовать коллективный доступ к жесткому диску большого объема, который установлен на единственной ЭВМ. Этим можно сэкономить средства
за счет покупки ЭВМ с винчестерами небольших объемов. В ЛВС достаточно установить
один накопитель на оптических дисках, один плоттер, модем, а все ЭВМ данной сети будут
иметь поочередный доступ к этим устройствам.
На жестких дисках многих ЭВМ записаны одинаковые программы (текстовые и графические редакторы, электронные таблицы, фотографии, фильмы, музыкальные произведения
и т. п.). При подключении ЭВМ к локальной сети копии используемых программ (дистрибутивы) можно хранить на диске одной ЭВМ. При этом дисковая память остальных компьютеров освобождается для решения собственных задач пользователей. При использовании ЛВС
в учебном процессе удобно хранить методические указания на одном компьютере, доступ к
которому имеют все остальные компьютеры сети.
В библиотеке с помощью ЛВС читатели могут использовать базу данных, в которой
хранятся библиографические сведения. ЛВС позволяет группе пользователей выполнять совместную работу. Например, если несколько сотрудников должны использовать одну бухгалтерскую программу, то это можно сделать с помощью ЛВС. Для этого обычно используются
сетевые версии прикладных программ
Сети могут иметь разную структуру (топологию). Под структурой локальной сети понимают способ соединения ЭВМ линиями связи, то есть конфигурацию сети. Известны следующие структуры: шинная, кольцевая, звездная и древовидная.
Существуют также структуры, образованные путем комбинации перечисленных структур.
Шинная структура характеризуется общедоступной линией
связи, в качестве которой обычно используется витая пара проводов, коаксиальный или оптоволоконный кабель. Для нее характерны
низкая стоимость подключения новых ЭВМ, простота управления,
высокая гибкость и возможность простого расширения сети.
В кольцевой структуре сети ЭВМ последовательно соединены друг с другом однонаправленной линией связи. Информация
(кадр) перемещается по кольцу (данные передаются как бы по эстафете). Каждый компьютер сети осуществляет ретрансляцию (усиление) сигналов. По этой причине протяженность сети может быть
большой (несколько десятков километров). В этой сети, как правило, нет конфликтов, так как передачу информации в каждый момент
времени может вести только одна ЭВМ, получившая разрешение
(маркер). Неисправность одной ЭВМ приводит к разрыву кольца и
прекращению работы сети в целом.
Звездная структура предполагает наличие центрального компьютера (сервера), с которым соединяются остальные ЭВМ (рабочие
станции, клиенты). Сервер управляет сетью, определяет маршрут передачи сообщений. По основным характеристикам звездная структура уступает шинной структуре. В частности, ее применение требует
повышенных затрат на прокладку линий связи.
Древовидная структура выглядит в виде ели, которая расширяется внизу. Отказ одного компьютера приводит к отказу лишь одной ветви сети, поэтому эта структура надежнее, чем кольцевая.
Данную структуру можно рассматривать как комбинацию нескольких звездных структур.
ЛВС бывают одноранговыми и с выделенными серверами.
Любая ЭВМ в одноранговой сети может выступать по отношению к другой ЭВМ и как
клиент и как сервер. В сети с выделенным сервером все клиенты взаимодействуют с единственным сервером (например, с сервером печати). Легче всего представить сеть с выделенным
200
сервером на примере звездной структуры сети. Все клиенты взаимодействуют друг с другом
через сервер, который находится в центре звезды.
Каждый компьютер в составе ЛВС должен иметь следующие компоненты: сетевой
адаптер (карту) и сетевую операционную систему (сетевые программы). Компьютеры ЛВС
чаще всего соединены между собой двухпроводной линией или коаксиальным кабелем. Существуют беспроводные ЛВС с инфракрасными, радиорелейными или радиоволновыми линиями связи (Bluetooth, Wi-Fi, GPRS).
Функцией сетевого адаптера (сетевой карты) является передача и прием сигналов, циркулирующих по кабелям связи.
В настоящее время наибольшее распространение получил кабель на неэкранированной витой паре (UTP). Максимальное расстояние, на котором могут быть расположены
компьютеры, соединенные с помощью UTP, достигает 300 м. Скорость передачи информации по такому кабелю составляет от 10 до 155 Мбит/с.
Кабель на экранированных витых парах (STP) позволяет передавать информацию со
скоростью 16 Мбит/с на расстояние до 90 м. Экранированные кабели дороже по сравнению с
UTP, но они обеспечивают лучшую защищенность от посторонних электромагнитных излучений.
Коаксиальный кабель хорошо защищен от мешающего электромагнитного излучения. Он позволяет передавать информацию на расстояние до 2000 м со скоростью 2—44
Мбит/с.
Волоконно-оптические кабели передают данные без повторителей на расстояние до
10 км со скоростью 10 Гбит/c.
В этих кабелях средой для передачи информации служит оптоволокно. Оно представляет собой тонкую нить из стекла (или пластика). Волоконно-оптический кабель соединяет
между собой электронные системы, поэтому приходится преобразовывать электрический
сигнал в световой сигнал и наоборот.
Таким образом, для создания ЛВС необходимо сделать определенные материальные затраты (приобрести адаптеры, кабель, сетевую операционную систему, выполнить монтаж,
настройку и т. д.). Однако стоимость этих затрат оказывается меньше по сравнению с экономией, которая образуется из-за уменьшения числа приобретаемых лазерных принтеров, накопителей на оптических дисках, дорогих винчестеров, а также за счет появления новых
возможностей быстрой и надежной передачи информации на значительные расстояния.
Для построения локальной сети используются хабы, коммутаторы, маршрутизаторы и
сетевые карты.
Сетевая карта (сетевая плата, сетевой адаптер) — периферийное устройство, позволяющее компьютеру взаимодействовать с другими устройствами сети. В настоящее время
сетевые карты интегрированы в материнские платы.
Хаб (англ. hub) — сетевой концентратор, предназначенный для простейшего объединения компьютеров в единую локальную сеть. Хаб, получает сигнал от одного компьютера и
передает его всем подключенным к нему устройствам. Принимающий компьютер должен
сам определить: предназначен ли ему данный кадр. У хаба имеется определенное количество
разъемов (портов), к которым подключены все ЭВМ сети.
Свитч (switch — переключатель) — сетевой коммутатор, предназначенный для интеллектуального объединения компьютеров в локальную сеть. Свитч получает пакет данных от
компьютера, и направляет его по тому адресу, который был указан отправителем. Обмен
трафиком происходит напрямую между двумя клиентами, и ЭВМ не могут обрабатывать пакеты, предназначенные для других машин.
Связь локальной сети с глобальной сетью осуществляется с помощью маршрутизатора.
201
Маршрутизатор (англ. router) — специализированное сетевое устройство, пересылаюлающее пакеты данных между различными сегментами сети, связывающее разнородные сети различных архитектур, принимающее решения о пересылке пакетов на основании информации о топологии сети и определѐнных правил. Роутер передает данные в соответствии с
маршрутом (путем), указанном в его таблице
маршрутизации.
Wi-Fi роутер хорошо вписывается в домашнюю локальную сеть. Если пользователь
подключен к Интернету по кабелю, то с помощью Wi-Fi роутера выход в Интернет можно
обеспечить всем домашним ЭВМ и мобильным
телефонам.
9.2. Глобальные вычислительные сети
Глобальные вычислительные сети состоят из локальных и корпоративных вычислительных сетей, компьютеров, коммутационного оборудования (маршрутизаторы), объединенных каналами связи. Каналы связи состоят из линий связи и каналообразующей аппаратуры. Глобальные вычислительные сети (ГВС) всего мира объединены между собой с помощью Интернета. Основная особенность ГВС – большая протяженность линий связи (большие
площади, покрываемые этими сетями).
Для работы в ГВС пользователю необходимо иметь соответствующее аппаратное и
программное обеспечение.
Программное обеспечение делится на два вида:
программы-серверы, которые расположены на компьютерах-серверах и предоставляют услуги компьютерам пользователей;
программы-клиенты, которые находятся на компьютерах пользователей и потребляют услуги сервера.
Глобальные сети предоставляют пользователям разнообразные услуги. ГВС позволяют
работать с распределенными базами данных, обмениваться письмами с помощью электронной почты, сообщениями с помощью социальных сетей, беседовать в реальном масштабе
времени (чат, скайп), пересылать файлы и т. д. Каждая услуга (иногда говорят: служба, сервис) реализуется по определѐнным правилам (протоколам).
Для реализации каждой сетевой услуги требуются своя программа-сервер и своя программа-клиент. Например, существуют почтовые серверы и клиенты.
В то же время современные браузеры (программы-навигаторы, обозреватели) берут на
себя функции многих отдельных служб глобальной сети и становятся «универсальными»
клиентами.
Термин «сервер» имеет второе значение.
Сервером называют также и компьютер, на котором установлены программы-серверы.
На одном компьютере-сервере могут работать сразу несколько программ-серверов. Серверыкомпьютеры работают непрерывно. Для этого они снабжены устройствами бесперебойного
электропитания.
Глобальная сеть Интернет представляет собой совокупность узлов, содержащих коммутационное оборудование и серверы, с подключенными к ним клиентами. Узлы соединяются между собой каналами связи. Каждый узел содержит один или несколько мощных компьютеров-серверов, которые чаще всего работают под управлением операционной системы
UNIX.
202
Управляет узлом его собственник — организация, которая называется провайдером (от
англ. provide — обеспечивать). В крупных городах число провайдеров может достигать нескольких десятков.
К сети Интернет подключено множество компьютеров, работающих под управлением
разных операционных систем, на разных аппаратных платформах. Однако при обмене информацией все ЭВМ должны пользоваться едиными соглашениями (правилами, протоколами) о способах передачи и приема сообщений. Тогда любая ЭВМ будет в состоянии «понять» информацию, полученную от любой другой ЭВМ.
Протокол — это правила (соглашение, стандарт) передачи информации в сети.
Компьютер не может работать в Интернете без протоколов TCP/IP, которые разбивают
сообщения на небольшие пакеты и доставляют их по указанному адресу. Однако на конкретной ЭВМ могут отсутствовать программы-клиенты, которые предназначены для работы с
каким-то прикладным протоколом. Например, может не работать электронная почта.
Каждая ЭВМ, подключенная к Интернету, имеет собственный уникальный физический
адрес (IP-адрес). Адрес состоит из четырех десятичных чисел, — каждое в диапазоне от 0 до
255. При работе в сети машины с помощью маршрутизаторов отыскивают друг друга именно
по этим числам. Числа записываются через точку, например,
194.84.93.29 или 128.29.15.124.
Такая система адресации позволяет получить 2564 4,3 миллиарда адресов.
Если говорить точнее, то нужно сказать, что физический адрес циркулирует в виде 32разрядного двоичного числа (4 байта).
Физическим адресом пользоваться неудобно, так как людям сложно запомнить длинный набор цифр. Поэтому физическому адресу ставят в соответствие символический (доменный) адрес, который составлен из достаточно осмысленных буквенных обозначений.
Синтаксис записи доменного адреса таков:
протокол://имя_машины. имя_домена[/каталог/ подкаталог/имя_файла]
Первым указывается протокол получаемых услуг, например, http. Далее записывается
имя ЭВМ, например, www. Еще правее располагается имя домена, например, microsoft.com.
В конце адреса иногда указываются имена каталогов на сервере и имена файлов (Webстраниц), например, /compress/cpnew.htm. Запись, заключенная в квадратные скобки, не обязательно присутствует в любом доменном адресе.
Имя домена может состоять из 2—4 слов, причем старший (правый) домен указывает
либо на страну, в которой находится сервер, либо на тип организации.
Например, буквы ru (или su) обозначают Россию, uk — Великобританию, de — Германию, ua — Украину и т. д.; com — это коммерческие компании, edu — университеты США,
gov — правительственные организации и т. д.
Приведем несколько примеров доменных адресов:
http://www.sports.ru
ftp://ftp.mathsoft.com
http://www.translate.ru/text.asp?lang=ru
При поиске сервера по его доменному адресу компьютер пользователя обращается к
серверам DNS (Domain Name System — система имен доменов), которые хранят информацию о соответствии символьных (доменных) и физических (числовых) имен. Таким образом,
фактически поиск нужного сервера осуществляется с помощью физических адресов, а перевод доменных адресов в физические адреса осуществляют с помощью специальных серверов.
Определение пути, по которому будет передано сообщение (пакеты), осуществляется с
помощью специального устройства — маршрутизатора.
Маршрутизатор (Router) — устройство, которое работает с несколькими каналами
связи, направляя очередной блок данных (пакет) в необходимый канал. Маршрутизатор выбирает канал по адресу, указанному в заголовке пришедшего пакета. Для каждого поступающего пакета маршрутизатор принимает решение о пути следования пакета к сети, в кото203
рой находится машина-адресат. Процедура выбора пути передачи информации называется
маршрутизацией.
Между конечными компьютерами может быть несколько десятков узлов, маршрутизаторов, множество промежуточных физических сетей различных типов, но программа-клиент
будет воспринимать этот конгломерат как единую физическую сеть.
Таким образом, протокол IP выполняет функции маршрутизации, выбирая нужный
путь для передачи сообщения в паутине сетей. На каждом узле маршрутизатор определяет, в
каком направлении передать поступившее сообщение.
В сети обмен сообщениями производится короткими порциями фиксированной структуры и длины (пакетами). Пакет — это часть сообщения. Малая длина пакета предотвращает
блокировку канала связи, не позволяет одному компьютеру захватывать канал на долгое
время. При этом пользователи, которые подключились к серверу, поочередно получают небольшие порции информации (1500 байтов). Основные принципы коммутации пакетов поддерживаются стеком протоколов TCP/IP.
Протокол TCP (Transmission Control Protocol — протокол управления передачей) разбивает исходное сообщение на несколько небольших фрагментов — пакетов. Каждый пакет
снабжается заголовком, который содержит служебную информацию (адреса отправителя и
получателя, идентификатор сообщения, порядковый номер пакета в сообщении и т. п.). Протокол TCP как бы укладывает каждый пакет в отдельный конверт.
Ответственность за доставку отдельного пакета по заданному адресу несет IP-протокол
(Internet Protocol).
Рассмотрим процесс доставки электронных пакетов. Сначала пакет попадает на узел
провайдера, где маршрутизатор, пользуясь таблицами маршрутизации, выбирает дальнейший маршрут следования. При этом разные пакеты одного и того же сообщения могут дойти
до адресата по разным маршрутам (путям), через разные узлы Интернета. Судьба конкретного сообщения в известной степени не зависит от неполадок на отдельных участках сети, так
как пакет может быть переправлен к цели обходным путем.
Наконец, на приеме TCP-модуль адресата собирает поступающие пакеты и, пользуясь
служебной информацией, соединяет отдельные пакеты в целое исходное сообщение. Каждый
принятый пакет проверяется на целостность и правильность принятой информации. Для этого в каждом пакете передается служебная информация — контрольная сумма. Недостающие
или искаженные фрагменты сообщения по запросу принимающей стороны пересылаются
повторно.
Все описанные процессы идут со скоростью, близкой к 300 000 км/с, однако время доставки сообщения оказывается относительно такой скорости большим: от нескольких секунд
до нескольких часов.
Дело в том, что длина одного пакета обычно не превышает 1500 байт и одно сообщение
может быть разбито на несколько сотен пакетов. Таким образом, по каналам связи одновременно следуют, чередуясь друг с другом, тысячи пакетов. При этом общее время передачи
равномерно распределяется между всеми пользователями.
Чем больше пользователей одновременно работают в Интернете, тем медленнее доставляются сообщения каждому конкретному адресату. Кроме того, случаются и «технические» задержки, вызванные большой нагрузкой на серверы и неполадками в каналах связи.
9.2.1. Способы подключения к Интернету
Существует несколько способов подключения к Интернету:
соединение по коммутируемой (временно созданной) аналоговой телефонной линии (Dial Up). Одновременная работа в Интернете и телефонный разговор невозможны. Соединение с провайдером происходит через одну или несколько автоматических телефонных станций;
204
доступ по цифровому телефонному каналу (ADSL). Полосы частот телефонного разговора и передачи данных разнесены;
доступ по выделенному (постоянному) каналу (проводному, оптоволоконному или
радиоканалу). Соединение клиента с провайдером осуществляется непосредственно (напрямую);
подключение по спутниковому каналу связи;
доступ через мобильную телефонную сеть (GPRS, EDGE, HSDPA, 3G, 4G);
подключение через кабельную телевизионную сеть (стандарт DOCSIS);
Первый способ подключения к Internet значительно дешевле, однако менее удобен. Для
работы в Сети нужно предварительно дозвониться по телефону до узла провайдера. Кроме
того, при таком способе соединения будет невысокая скорость обмена информацией и, как
правило, низкое качество связи (частые прерывания связи, многократные запросы на повторную передачу ошибочно принятой информации, отсутствие свободных телефонных линий
для соединения с провайдером). По коммутируемой линии часто работают в ночное время,
когда телефонные линии меньше «шумят».
Коммутируемое соединение может быть установлено с помощью сотового (беспроводного) телефона. Это осуществляется по WAP-протоколу (Wireless Application Protocol - Протокол Беспроводных Приложений). Недостатком WAP-протокола является ограничение на
вид просматриваемых страниц. Просмотр осуществляется с помощью сотовых телефонов, и
отображаемые страницы имеют преимущественно текстовый вид. Служба GPRS (General
Packet Radio Service) позволяет подключить компьютер к Интернету через мобильный беспроводный телефон. В этом случае пользователь имеет доступ ко всем страницам глобальной Сети. Сотовый телефон в таких случаях играет роль модема.
Конкурентом технологии GPRS являются беспроводные сети Wi-Fi (Wireless Fidelity).
Сети Wi-Fi дают возможность пользователям с помощью ноутбуков выходить в Интернет в
определенных местах, например, кафе, рестораны, пабы. Точка входа в беспроводную сеть
Wi-Fi и территория радиусом 50…100 метров называется хот-спотом. В этой зоне пользователи, имеющие ноутбуки, могут выходить в Интернет без подключения к проводным линиям. Подключение ноутбука к глобальной сети в зоне хот-спота происходит бесконтактно и
автоматически.
Значительно большее расстояние покрывают станции WiMax (25…80 км).
9.2.2. Услуги, предоставляемые в Интернете
Дадим краткую характеристику основным службам, которые функционируют в современной глобальной сети. Каждая служба (услуга) поддерживается своими правилами работы
(протоколами).
FTP (File Transfer Protocol) — протокол передачи файлов. Дает возможность обмениваться двоичными файлами между компьютерами. Это один из самых «древних» прикладных протоколов.
Одна из первых потребностей пользователей ЭВМ и программистов заключалась (и заключается) в обмене интересными программами и документами. Именно этим целям служит
данный протокол.
SMTP (Simple Mail Transfer Protocol) — этот протокол используется при передаче
электронной почты (E-mail) между компьютерами Интернета.
Для приема электронных сообщений (почты) используются протоколы POP3, IMAP.
Последний протокол позволяет в письмах использовать гипертекстовые ссылки.
Usenet — распределенный дискуссионный клуб (телеконференция, группа новостей,
News). Услуга поддерживается протоколом NNTP (Net News Transfer Protocol). В отличие от
электронной почты, клиент Usenet направляет сообщение не индивидуальному адресату, а
группе неизвестных ему абонентов телеконференции. Все участники конференции имеют
равные права при обсуждении того или иного вопроса, поэтому каждый вправе свободно вы205
сказываться по обсуждаемому вопросу. Каждая телеконференция посвящена какой-либо теме (науке, искусству, спорту, отдыху и т. п.). По некоторым данным, ныне в Интернете насчитывается несколько десятков тысяч тем телеконференций.
Телеконференция — это как бы «плавающая» доска объявлений. Изменения, сделанные на одном сервере новостей, передаются на все другие серверы. Чтобы обменяться новостями, серверы регулярно связываются между собой.
Если использовать метафору, то электронную почту можно сравнить со способом передачи записок между Машенькой и Дубровским. У них было известное только им двоим место нахождения дупла в дереве (адрес).
Остап Бендер, когда делал запись на вершине горы «Киса и Ося здесь были», использовал принцип телеконференций: любой мог читать и писать в этом месте.
Telnet — услуга Интернета, которая позволяет пользователю одного компьютера подключиться к другому удаленному компьютеру и работать с ним как на собственном компьютере (включая операции редактирования и удаления).
Этот протокол может быть использован, например, в таком случае.
При возникновении неисправности клиент по телефону обращается к соответствующей
технической службе. Специалисты по телефону обследуют неисправную ЭВМ, дистанционно устанавливают нужные драйверы, запускают на выполнение нужные программы и т. д.
С помощью этого протокола бухгалтер или банкир, находясь в командировке, может
записать или удалить данные на компьютере, находящемся в другом городе.
Эта услуга позволяет не только управлять на большом расстоянии другим компьютером, но и промышленным объектом (конвейером), научной установкой (телескопом), бытовым прибором (видеомагнитофоном).
IRC (Internet Relay Chat) —популярная служба Интернета. IRC позволяет пользователям общаться друг с другом, подключившись к одному серверу IRC. Беседа ведется в реальном времени путем набора своих реплик на клавиатуре. В отличие от телеконференций,
здесь реакция собеседника следует мгновенно, живо. Этот вид услуг порой называют чатом
или «болтушкой» и пользуется большой популярностью у студентов и молодых людей.
Пересылка сообщений с помощью мессенджеров (ICQ, Miranda, QIP, Баян, AOL,
PalTalk, MSN, Yahoo!, Jabber и др.) — программы, которые позволяют вести оперативный
двухсторонний обмен информацией в реальном масштабе времени.
Internet Phone (телефония) — обеспечивает голосовую связь между абонентами. Речь
преобразуется в цифровой файл и передается по сети в виде обычного набора электронных
пакетов.
С помощью данной услуги возможна передача голоса, видеоизображения, обмен текстовыми сообщениями, совместное использование приложений (например, графического редактора), обмен файлами.
В настоящее время популярна программа Skype.
Эта технология позволяет провести виртуальную лекцию. При этом лектор и слушатели будут находиться в разных местах. Например, у себя в квартирах.
Естественно, что ЭВМ должна иметь звуковую карту, микрофон, акустическую систему. Для передачи динамического изображения понадобится видео-камера.
Интернет-телефония позволяет организовать голосовую почту, которая похожа на
обычную электронную почту. Однако полученные сообщения можно прослушать. Служба
SMS способна пересылать по сети на сотовые телефоны короткие текстовые сообщения.
Интернет-радио — служба, позволяющая прослушивать сотни радиостанций, ведущих
вещания в Интернете. Отличительной особенностью этой услуги является возможность выбора радиостанций, вещающих на определенном языке. Радиостанции можно отобрать с учетом тематики вещания (например, новости). Музыкальные радиостанции можно фильтровать
по музыкальным стилям (джаз, рок, церковная, классическая, музыка ретро и т. д.).
206
Численность радиостанций в Интернете непрерывно растет. В августе 1996 г. в Сети
насчитывалось 178 станций, в декабре 1998 г. их стало 390, в апреле 2000 г. – 3537, а в 2003
г. - 8000.
Интернет-телевидение — служба, позволяющая вести прием множества телевизионных каналов. Распространение этой услуги пока ограничивается малой пропускной способностью современных каналов связи. Посмотреть телевизионную трансляцию с хорошим качеством позволяет клиент SopCast.
WWW (World Wide Web — Всемирная Паутина) — это гипертекстовая информационно-поисковая система. Блоки данных WWW (страницы) размещаются на отдельных компьютерах, называемых WWW-серверами (или Web-серверами) и принадлежащих отдельным организациям или частным лицам. С помощью гипертекстовых ссылок, встроенных в документы WWW, пользователь может быстро переходить от одного документа к другому, от сайта к
сайту, от сервера к серверу.
В основе WWW лежит протокол передачи гипертекстовых сообщений HTTP (Hypertext
Transfer Protocol) и гипертекстовая технология.
Web-страницей называется наименьший документ сети, имеющий собственный доменный адрес. Длина адреса страницы больше длины адреса сайта.
Сайтом (или иначе — узлом) называется группа Web-страниц, размещенных на одном
сервере и объединенных по какому-то признаку владельцем этого ресурса (например, с учетом тематики: спорт, музыка, наука и т. п.).
Если говорить коротко, то WWW — это распределенная по всему миру большая энциклопедия, создаваемая множеством людей всего земного шара.
В книгах и статьях текст представляется в виде набора символов, которые читаются последовательно от начала до конца документа. Гипертекстовая технология заключается в том,
что текст делится на фрагменты (блоки). Между фрагментами устанавливаются связи, которые
при необходимости позволяют быстро перейти к блоку, расположенному далеко от просматриваемого текста. Например, можно вернуться назад или, наоборот, заглянуть вперед. Выбирая связи по ассоциации (по смыслу или по желанию), можно читать гипертекст в порядке,
наиболее удобном для пользователя.
9.3. Семиуровневая сетевая модель OSI
Аббревиатура OSI (Open Standards Interconnection) означает: сетевой открытый стандарт. Стандарт разработан международной организацией по стандартизации ISO
(International Organization for Standartization), и позволяет почти безошибочно взаимодействовать между собой в сети ЭВМ различных конструкций, на которых установлены различные операционные системы и прикладные программы. Наряду с термином «стандарт OSI» в
литературе часто встречается термин «модель OSI». Объясняется это тем, что стандарт OSI
нередко используется для объяснения принципа работы сетей, но он не стал обязательным
для полного соблюдения разработчиками сетей.
Стандарт OSI разбивает все этапы передачи и приема информации на семь уровней:
физический уровень (нижний уровень);
канальный уровень;
сетевой уровень;
транспортный уровень;
сеансовый уровень;
уровень представления данных;
прикладной уровень (верхний уровень).
207
9.3.1. Физический уровень
На физическом уровне происходит стандартизация передачи информации по каналам
связи, которые могут быть созданы с помощью двухпроводной линии, коаксиального или
оптоволоконного кабеля, радио, радиорелейного или спутникового канала связи.
На этом уровне физические среды передачи данных описываются следующими характеристиками: полоса пропускания, помехозащищенность, волновое сопротивление и др. На
физическом уровне нормируются характеристики электрических сигналов: крутизна фронтов импульсов, уровни напряжения и тока, тип кодирования, тип модуляции, скорость передачи сигналов.
9.3.2. Канальный уровень
На этом уровне биты группируются в группы, которые называются кадрами (frames).
Размер кадра бывает от нескольких сот до нескольких тысяч байт. Структура кадра показана
на рисунке.
Кадры помимо передаваемых данных (Блок данных) содержат служебную информацию, с помощью которой можно проверить целостность принятых данных (Контрольная последовательность). Для выявления ошибок передающая сторона вычисляет циклический избыточный код (Cyclical Redundancy Check, CRC). Получив кадр, приѐмная сторона выполняет те же вычисления и сравнивает результат с полученным значением CRC.
Получение каждого кадра на приемной стороне подтверждается, путем отправления на
передающую сторону кадра подтверждения получения. Если кадр подтверждения сообщает
об имеющейся ошибке, то передающая сторона повторно транслирует данный кадр.
Для случаев, когда в процессе передачи вследствие сбоя кадр полностью исчезает, используется таймер. Через некоторое время, отведенное на ожидание прихода кадра подтверждения, передающая сторона самостоятельно повторно передает кадр, на который не пришло подтверждение в заданное время. Для исключения дублирования кадров каждый кадр
маркируется неповторяющимся номером.
Канальный уровень обеспечивает доставку кадра между любыми двумя узлами (ЭВМ)
локальной сети. Это можно осуществить только в сетях с однородной структурой (топологией): общая шина, звезда и т.д.
9.3.3. Сетевой уровень
Этот уровень служит для образования единой транспортной системы, объединяющей
несколько сетей. При этом каждая сеть может использовать разные принципы передачи сообщений между ЭВМ и обладать произвольной структурой связей.
Сообщения сетевого уровня принято назвать пакетами (packets).
Внутри однотипной ЛВС доставка данных обеспечивается средствами канального
уровня. Доставку данных между двумя и более разнотипными ЛВС обеспечивает сетевой
уровень, который дает возможность правильно выбрать маршрут передачи сообщения. Заголовок пакетов имеет такую структуру, что позволяет находить адресата в сети любой сложности. Сети соединяются между собой специальными устройствами – маршрутизаторами.
208
Маршрутизатор – это устройство, которое собирает информацию о топологии (структуре, узлах и связях) межсетевых соединений и на еѐ основании (с учетом адреса, указанного
в заголовке пакета) пересылает пакеты в сеть назначения. Маршрут представляет собой перечень маршрутизаторов, через которые проходит пакет.
На рисунке показаны четыре ЛВС, связанные маршрутизаторами (1, 2 и 3) [6].
Между узлами А и В данной сети существуют два маршрута: первый путь проходит
через маршрутизаторы 1 и 3, а второй путь - через маршрутизаторы 1, 2 и 3. Таким образом,
при появлении неисправности между маршрутизаторами 1 и 3 может быть использован обходной путь.
При выборе пути передачи пакетов следует учитывать факт, что порой геометрически
самый короткий путь не является лучшим. Часто критерием при выборе маршрута является
время передачи данных по этому маршруту. Время зависит от пропускной способности каналов связи (полосы пропускания) и величины текущего трафика (нагрузки), который может
изменяться со временем.
Некоторые алгоритмы маршрутизации пытаются приспособиться к изменению нагрузки в сети. Эти алгоритмы подбирают такой путь передачи пакетов, при котором затраченное
на передачу время будет минимальным (они ищут и анализируют все возможные пути передачи трафика). Другие алгоритмы маршрутизации принимают решения на основании средних показателей за длительное время наблюдений (сбора статистики). Выбор маршрута может осуществляться и с помощью критерия, который повышает надежность передачи пакетов.
При организации доставки пакетов на сетевом уровне используется понятие «номер сети». Адрес каждого передаваемого пакета состоит из старшей части – номера сети и младшей части – номера узла (ЭВМ) в данной сети. Все ЭВМ одной сети имеют одинаковую
старшую часть адреса.
Термину «сеть» на сетевом уровне можно дать такое определение: сеть – это совокупность соединенных между собой компьютеров, сетевой адрес которых содержит один и тот
же номер сети.
На сетевом уровне решаются вопросы тарификации (стоимости передачи или приема
информации). Этот уровень обеспечивает возможность подсчета числа переданных или принятых пакетов (а значит и подсчет объема информации).
9.3.4. Транспортный уровень
На пути от отправителя к получателю сообщения могут быть искажены или утеряны.
Транспортный уровень обеспечивает верхним уровням модели (прикладному, представительному и сеансовому) передачу данных с той степенью надежности, которая им требуется.
Сообщения, передаваемые на этом уровне, называются сегментами.
209
Модель OSI определяет несколько видов сервиса, предоставляемых транспортным
уровнем. Эти виды сервиса отличаются качеством услуг: срочностью; возможностью восстановления прерванной связи; способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.
Примером транспортного протокола является TCP.
Протоколы нижних четырѐх уровней обобщѐнно называют сетевым транспортом или
транспортной подсистемой. Они полностью решают задачу доставки сообщений.
Важной функцией транспортного уровня является ранжирование (упорядоченная расстановка) пакетов, которые могут прийти в произвольном порядке (так как пакеты могут идти разными маршрутами и иметь разное время задержки).
Остальные три (верхних) уровня решают задачи предоставления пользователям прикладных сервисов на основании имеющейся транспортной подсистемы.
9.3.5. Сеансовый уровень
Сеансовый уровень обеспечивает управление диалогом: фиксирует, какая из сторон является активной в настоящий момент времени. Он предоставляет средства синхронизации
работы (определяет очередность передачи и приема информации). Сеансовый уровень определяет режим передачи данных: полудуплекс или дуплекс.
В полудуплексном режиме передавать информацию может только ЭВМ, у которой в
данный момент находится маркер. За счет этого удается избежать коллизий (столкновений)
сообщений. Наглядным примером архитектуры, работающей в полудуплексном режиме, является кольцевая архитектура ЛВС. В дуплексном режиме маркеров нет, и обе ЭВМ могут
передавать данные даже одновременно.
Этот уровень позволяет вставлять контрольные точки в длинные передаваемые файлы.
В случае сбоя можно вернуться назад к последней контрольной точке, а не начинать передачу файла с самого начала.
9.3.6. Представительный уровень
Представительный уровень отвечает за способ кодирования данных. Данные преобразуются в необходимый для передачи стандартный формат. Не все ЭВМ используют одинаковые таблицы кодирования данных, поэтому на этот уровень возложены функции по преобразованию несовместимых способов кодирования данных. Этот уровень используется для
выполнения операций шифрования и расшифрования, сжатия и разархивирования, кодирования и декодирования.
9.3.7. Прикладной уровень
Прикладной уровень – набор протоколов, с помощью которых пользователи получают
доступ к разделяемым ресурсам (файлам, принтерам, Web-страницам, жестким дискам). На
прикладном уровне происходит взаимодействие пользователя с конкретными программами
(почтовыми клиентами, браузерами, мессенджерами и т.д.).
Примечание.
Предполагалось, что рассмотренная семиуровневая модель станет стандартом при разработке новых сетевых протоколов. Фактически модель OSI используется лишь в качестве
обучающего инструмента.
210
9.4. Электронная почта
…ты напиши мне
слезою дождя на мокром окне.
Славоросов А.(слова из песни)
Наряду с отечественным термином «электронная почта» в России нередко используется
английский термин — E-mail (Electronic mail). На сетевом жаргоне электронную почту порой
называют Емелей или мылом.
В отличие от обычной почты, время доставки электронной почты даже в самые удаленные уголки земного шара оценивается всего несколькими минутами. Заметим, что в отличие
от обычной почты, адресату поступает не оригинал письма, а всего лишь его электронная
копия. Поэтому нельзя увидеть почерк человека, нельзя вложить в конверт засушенный цветок или надушить конверт любимыми духами.
Наряду с понятием E-mail порой используется термин Web-mail. Отличие этих понятий
состоит в следующем. Предполагается, что E-mail работает с почтовыми клиентами: Outlook
Express, Netscape Messenger, The Bat!, Eudora, Pegasus Mail и др. Эти клиенты работают по
протоколам SMTP и POP3 (или IMAP4). Причем протокол SMTP используется для формирования исходящих сообщений, а протоколы POP3 и IMAP4 — для приема входящей информации. Входящие письма собираются на почтовом сервере (в почтовом ящике клиента). В
процессе сеанса связи пользователя с почтовым сервером накопленные на сервере письма
автоматически передаются по протоколу POP3 на ЭВМ пользователя (клиента).
Web-mail работает по протоколу http и предполагает использование браузера для приема и передачи почтовых сообщений. В отличие от E-mail, сообщения автоматически не забираются с почтового сервера, а остаются там постоянно. Письма просматриваются с помощью
браузера как обычные Web-странички. И так же как обычные Web-страницы, нужные письма
при необходимости могут быть считаны с почтового сервера на локальный диск компьютера
пользователя. Письма, которые не представляют интереса, могут быть удалены из почтового
ящика.
При передаче сообщения по электронной почте пользователю не нужно заботиться о
прямом соединении его компьютера с компьютером корреспондента (не требуется коммутация каналов). Достаточно иметь связь с любым почтовым сервером. Правильно созданное
(оформленное) сообщение будет автоматически передано корреспонденту в соответствии с
указанным электронным адресом. При этом, как правило, письмо будет последовательно пересылаться между несколькими узлами сети, постепенно приближаясь к пункту назначения.
Заметим, что возможны ситуации, когда письмо лишь «перекладывается» из одного кластера
жесткого диска в другой. Это бывает в том случае, когда почтовые ящики обоих абонентов
находятся на одном почтовом сервере (на одном компьютере).
В отличие от обычного почтового адреса, в электронном адресе не нужно указывать
страну, почтовый индекс, город, деревню, улицу, номера дома и квартиры, фамилию и имя
корреспондента.
Структура электронного адреса отличается от структуры обычного почтового адреса.
Электронный адрес состоит из двух частей, разделенных символом @ (произносится эт; в
России этот символ называют собачкой, а в Германии слоном).
Справа от символа @ указывается имя почтового сервера, на котором находится почтовый ящик клиента. Например, @mail.ru или @hotmail.com.
При передаче сообщения по сети маршрутизатор (роутер) в первую очередь анализирует имя почтового сервера, указанного в электронном адресе. Это позволяет маршрутизатору
определить дальнейший путь передачи сообщения (определить маршрут). Именно это имя
определяет географическое местоположение почтового сервера, принимающего сообщение.
Заметим, что в отличие от обычного почтового отделения связи, электронный почтовый
ящик, как правило, не располагается в непосредственной географической близости от места
211
проживания абонента, принимающего сообщение. Например, если вы живете в России, то ваш
почтовый ящик может находиться в США, Великобритании или Германии. Это практически
не вызовет никаких задержек и неудобств в работе с электронной почтой (естественно, при соответствующем знании английского или немецкого языка).
Если обычное письмо вам доставит почтальон в почтовый ящик, прикрепленный к двери вашей квартиры (или вблизи ее), то электронную почту придется забирать из электронного почтового ящика с помощью компьютера. При этом трудоемкость этой процедуры практически не зависит от географического местоположения электронного почтового ящика.
Вторая часть электронного адреса, расположенная слева от символа @, называется
именем (или логином, идентификатором, регистрационным именем). Логин чаще всего выбирается самим пользователем. Лишь в некоторых случаях (когда наиболее предпочтительная для данного пользователя комбинация символов на этом почтовом сервере уже кем-то
занята) приходится использовать логин, вид которого отличается от желаемого. Некоторые
почтовые серверы при регистрации формируют подсказку, состоящую из нескольких возможных для использования идентификаторов.
Напомним, что почтовый ящик — это всего лишь некоторый участок жесткого диска
на почтовом сервере. При этом адрес почтового сервера указывается справа от символа @, а
место расположения почтового ящика на жестком диске (дорожка, сектор) определяется с
помощью логина, расположенного слева от символа @. Например, электронный адрес
apasamara@mail.ru говорит о том, что почтовый сервер находится по адресу www.mail.ru.
Причем данный почтовый ящик на винчестере этого сервера отмечен именем apasamara.
Почтовый ящик можно создать на следующих отечественных бесплатных почтовых
серверах: www.mail.ru, www.chat.ru, www.e-mail.ru, www.freemail.ru, www.newmail.ru,
www.torba.com, www.hotbox.ru и др.
Почтовый ящик можно также зарегистрировать на зарубежных бесплатных почтовых
серверах: www.hotmail.com, www.usa.net, www.freenet.de, www.francemail.com.
Заметим, что практически на всех крупных отечественных и зарубежных поисковых
системах, каталогах и порталах есть возможность зарегистрировать бесплатный почтовый
ящик, например, www.rambler.ru, www.aport.ru, www.altavista.com, www.yahoo.com,
www.excite.com и др.
Регистрация — это процедура, в процессе выполнения которой пользователь сообщает
некоторые сведения о себе, а «взамен» получает электронный адрес и пароль (учетную запись).
Пароль — это секретный набор символов, позволяющий использовать данный почтовый ящик только его владельцу и защищающий почтовый ящик от несанкционированного
(неразрешенного) доступа к нему посторонних лиц. Пароль – это как бы ключ, с помощью
которого открывается почтовый ящик.
Регистрация на отечественных серверах начинается с нажатия кнопок или активизации
гиперссылок типа: Получить адрес, Зарегистрироваться, Регистрация, Почта и т. п. На рисунке приведены фрагменты отечественных почтовых серверов и показаны элементы, с которых начинается регистрация.
212
Регистрация на англоязычных серверах часто начинается с положительного ответа на
вопрос:
New user? Sign up now
Это можно перевести так: Новый пользователь? Зарегистрируйся прямо сейчас.
Ранее зарегистрированные пользователи входят в свой почтовый ящик, заполняя два
поля: поле для ввода логина (Name) и поле для ввода пароля (Password).
На предыдущем рисунке показана типичная форма, с помощью которой происходит
вход в существующий почтовый ящик или начинается регистрация нового пользователя.
Нередко регистрация на иностранных почтовых серверах начинается с активизации гиперссылки E-mail или Mail.
Процедура регистрации пользователя на различных почтовых серверах примерно одинакова. Вначале необходимо ознакомиться с правилами использования почтовых ящиков и
принять предложенное соглашение. При регистрации чаще всего требуется ввести имя, фамилию, псевдоним (кличку), пол, почтовый адрес, телефон, выбрать пароль, придумать секретный вопрос и ответ на него.
На рисунке внизу показано диалоговое окно, выводимое при регистрации на немецком
сервере www.freenet.de.
Почтовое сообщение (письмо) содержит две части: заголовок сообщения (конверт) и
тело сообщения («листок» бумаги с текстом в конверте, собственно само письмо). На рисунке показан внешний вид почтового клиента Outlook Express.
213
Внешний вид конверта электронного письма, созданного на почтовом сервере
www.mail.ru, показан на следующем рисунке.
Естественно, что зарубежные почтовые серверы используют национальные языки. Общеизвестно, что английский язык стал в сети основным средством общения пользователей.
По этой причине даже на некоторых отечественных серверах регистрация ведется так, будто
основными пользователями наших услуг являются англичане и американцы.
На следующем рисунке показана форма конверта иностранного почтового сервера.
При отправке сообщений пользователю приходится заполнять следующие поля конверта.
1. Кому (То). Здесь записывается электронный адрес корреспондента, которому предназначено данное сообщение. Например, abc@mail.ru или nica@rambler.ru.
2. Тема (Subject). Здесь указывается краткое содержание письма, его назначение или
другая информация, которая сжато характеризует содержимое всего письма. Например, приглашение на свадьбу.
3. Копия (СС). В этом поле записывается электронный адрес корреспондента, которому посылается точная копия письма, отправленного корреспонденту, указанному в поле Кому (То). Например, petrov@hotmail.com.
Аббревиатура CC происходит от английских слов Carbon Copy — копия под копирку.
214
4. Скрытая копия (BCC). В этом поле записывают адрес абонента, который также получит копию данного письма, однако его адрес не будет известен ни одному абоненту циркулярной рассылки. Аббревиатура BCC происходит от английских слов Blind Carbon Copy — слепая копия под копирку. Это поле следует использовать в тех случаях, когда нужно защитить
пользователей от возможной несанкционированной рассылки (спама). Корреспондент, получивший такое письмо, не будет знать адреса других участников рассылки и поэтому не сможет
использовать адреса в неблаговидных целях.
Поля Копия, Скрытая копия заполнять не обязательно. Можно даже не заполнять поле Тема. Однако этика деловых отношений предполагает наличие компактной информации в
этом поле. Кроме того, некоторые пользователи настраивают свои почтовые программы таким образом, что письма, в которых не заполнено это поле, игнорируются.
Перечислим основные возможности почтовых ящиков. По этим характеристикам можно сравнивать между собой различные почтовые серверы:
— сортировка сообщений (например, по дате поступления письма в почтовый ящик
или по указанной в письме теме);
— группировка — перемещение писем в различные папки (входящие, исходящие,
черновики);
— фильтрация (удаление нежелательных сообщений, блокировка спама, перемещение
сообщения, отобранного по особым условиям, в заранее определенную папку, возможность
создания «черного списка»);
— цитирование пришедших писем при ответе на них;
— настройка интерфейса (выбор желаемого цвета фона и шрифта, изменение количества отображаемых на одной странице заголовков пришедших писем, варьирование числа
символов в строке, автоматическое формирование стандартной подписи или обращения, вид
кодировки). При формировании подписи, которая завершает письмо, можно указать свой
домашний или рабочий адрес, номера телефонов, факсов, номера месенджеров (например,
ICQ), доменные адреса домашних страниц и т. п.;
— дополнительный сервис (календарь, новости, органайзер — блокнот с расписанием
важных дел, отправка почты в заданный день и час);
— создание адресной книги, в которую заносятся часто используемые адреса;
— настройка безопасности (запрещение запоминания логина и пароля, отказ от использования cookie, требование обнаруживать двух и более пользователей, работающих одновременно под одним учетным именем, показ IP-адреса пользователя, который последним
работал с данным почтовым ящиком, разрешение работы только с одного IP-адреса, запрещение кэширования просмотренных страниц, а значит, и запрещение отображения недавно
просмотренных писем);
— криптографическая защита сообщений;
— автоответчик — программа, с помощью которой в ответ на входящее письмо из
почтового ящика поступает сообщение, составленное по определенному шаблону. Включать
автоответчик удобно в тот момент, когда владелец почтового ящика находится в длительном
отпуске и в данный момент времени не может ответить лично;
— сбор почты — возможность собирать сообщения, поступившие в разные почтовые
ящики, в одно место — в один почтовый ящик. При этом почтовые ящики должны поддерживать протокол POP3. По-другому эта процедура называется: обслуживание внешних почтовых ящиков;
— пересылка поступивших сообщений без изменений на другой адрес (форвардинг
или перенаправление);
— оповещение (уведомление) пользователя о поступлении (приходе) нового сообщения в почтовый ящик (для приема уведомлений могут использоваться сотовый телефон, мессенджеры ICQ и Odigo, другие электронные почтовые ящики);
— защита от вирусов;
— передача информации в почтовый ящик с помощью телефона;
215
— передача информации из почтового ящика на сотовый телефон (протокол WAP),
ICQ, службу коротких сообщений (SMS);
— чтение входящей электронной почты по телефону с использованием технологии
синтеза речи (tex-to-speech). Эта услуга называется также голосовой почтой.
Перечислим протоколы, которые используются при передаче и приеме почтовых сообщений.
SMTP (Simple Mail Transfer Protocol — простой протокол пересылки почты) — протокол используется для передачи исходящих сообщений электронной почты.
POP (Post Office Protocol — протокол почтового отделения) — протокол используется для
приема сообщений электронной почты (последняя версия POP3). Почтовые клиенты, работающие по этому протоколу, автоматически забирают на свой компьютер письма, находящиеся на
почтовом сервере.
IMAP (Internet Message Access Protocol — протокол доступа к электронной почте Интернета). Этот протокол по возможностям превосходит протокол POP. Протокол IMAP4 позволяет работать с несколькими почтовыми ящиками, делая обработку и сортировку почты
на сервере провайдера. В отличие от POP3, протокол IMAP4 не скачивает письма с жесткого
диска почтового сервера на локальный компьютер, а позволяет работать с письмами на удаленном компьютере.
Протокол MIME (Multipurpose Internet Mail Extension — многоцелевое расширение
почты) — позволяет за счет специального кодирования вкладывать в символьные (текстовые) сообщения любые двоичные файлы, включая графику, аудио- и видеофайлы.
Протокол SSL (Secure Sockets Layer) обеспечивает шифрование всех передаваемых и
принимаемых данных при работе с почтовым ящиком, что повышает уровень безопасности.
В настоящее время браузеры Internet Explorer и Netscape Navigator поддерживают 128-битное
шифрование корреспонденции.
Рассмотрим подробнее некоторые возможности почтовых ящиков.
Автоответчик включается в случае невозможности оперативно отвечать на поступающую корреспонденцию. Текст сообщения, формируемого автоответчиком, заранее готовится
владельцем почтового ящика. Такая опция удобна, когда владелец предполагает длительное
время не использовать свой почтовый ящик (поездка в командировку или отъезд в отпуск).
Имеется возможность установить время действия автоответчика (например, ограничить определенной датой).
Внешний вид автоответчика на почтовом сервере www.mail.ru таков:
216
Фильтры для входящей почты позволяют выделять из всего потока входящих писем
некоторые письма и автоматически производить с ними те или иные заранее предусмотренные действия.
Например, можно сделать так, что все письма, приходящие из почтового ящика
natalie@mail.ru, будут автоматически складываться в папку с именем Natalie.
Другой пример: если Пользователь 1 не хочет переписываться с неким Пользователем
2, то Пользователь 1 может создать фильтр, который на все письма Пользователя 2 будет автоматически формировать сообщение о якобы произошедшей ошибке: «Такого пользователя
не существует».
На рисунке приведен пример фильтра, который срабатывает, когда в поле От (From)
указан адрес apa48@rambler.ru или в поле Тема содержится фраза «Деловое предложение».
В зависимости от желания владельца почтового ящика и возможностей конкретного
почтового сервера, с отобранным письмом можно выполнять разные действия. Можно ответить письмом с заранее подготовленным текстом, переправить письмо на другой адрес, поместить письмо в заранее отведенную папку (например, с названием «Корзина»), ответить
сообщением об ошибке.
На следующем рисунке показана форма, с помощью которой можно задать необходимые действия, производимые с письмами, отобранными из потока входящей корреспонденции. Письма, удовлетворяющие заданным ранее условиям, будут скопированы по адресу
apa@pisem.net. С помощью переключателя можно изменить действия, выполняемые над отобранным письмом, например, можно автоматически удалить пришедшее письмо или послать
заранее подготовленный ответ.
217
Настройка фильтров на зарубежных почтовых серверах чаще всего ведется с использованием английского языка. Но идея остается прежней: нужно задать условия отбора писем и
указать действия, производимые над отобранными письмами.
Диалоговое окно настройки фильтра на сервере www.yahoo.com выглядит следующим
образом:
Указанный фильтр действует лишь при выполнении всех перечисленных условий. Если
поле From (От) содержит адрес rediska@usa.net, поле To/CC (Кому/Копия) — адрес
dum@qmail.ru, поле Subject (Тема) начинается с фразы Reclama, а тело письма заканчивается
фразой Angela, то такое письмо будет отправлено в папку Trash (Хлам).
Фильтры на отечественном почтовом сервере www.e-mail.ru также позволяют сделать
достаточно сложную настройку с множеством условий отбора и видов действий над отобранными письмами. Рисунок иллюстрирует эту мысль.
Указанный фильтр автоматически перешлет письма, поступившие из почтового ящика
apa@bk.ru, в почтовый ящик apasamara@mail.ru. Если в поле Тема будет записано слово
Реклама, то фильтр удалит такое письмо. Наконец, при поступлении письма их почтового
ящика mari@bk.ru оно будет переправлено в папку Копии.
Недостатком бесплатных почтовых ящиков является имеющаяся вероятность их непредвиденной ликвидации. Например, в начале 2001 г. на заглавной странице бесплатной
218
интерактивной почты ZDNet (подразделение британского портала новостей Zdnet.co.uk) появилось уведомление, что из-за сложившихся обстоятельств почта больше не работает. Для
клиентов почтовой службы это оказалось полной неожиданностью.
Некоторые бесплатные почтовые серверы ликвидируют регистрацию в случае, если
абонент длительное время не пользовался почтовым ящиком. Существуют бесплатные почтовые ящики, которые не допускают получение рассылок. Популярные бесплатные почтовые
ящики порой отказываются обслуживать клиента из-за перегрузок.
В заключение приведем краткую историческую справку.
Первую почтовую программу для пересылки сообщений разработал в 1971 г. Рэй Томлинсон (Ray Tomlinson).
В 1972 г. Ларри Робертс (Larry Roberts) написал первую программу, которая позволяла
сортировать письма, автоматически отвечать на полученное послание, а также пересылать
сообщения на другой адрес.
В 1975 г. появилась первая почтовая рассылка в сети ARPANET. Ее основателем стал
Стив Уолкер (Steve Walker).
219
9.5. Социальные сети
Миллионы людей в разных странах зарегистрированы в социальных сетях и активно
их используют. Число существующих социальных сетей велико, счѐт идѐт на десятки и даже
сотни единиц [24].
Человечество представляет собой группы людей, связанных различными
отношениями и интересами. Интернет предоставил для общения отдельным группам людей
новые технические возможности. Отсутствие у современного человека доступа в
социальную сеть является фактором, ограничивающим получение актуальной информации.
Среди множества социальных сетей можно выделить насколько наиболее популярных в
России: ВКонтакте, Одноклассники, Facebook, Twitter.
Социальные сети используются людьми для достижения различных целей:
продвижение политических и религиозных идей, творческого самовыражения (стихи, проза,
живопись, фотографии, музыка, видеоклипы), поиск информации, деловое сотрудничество,
оперативное общение с друзьями, родственниками, сокурсниками, коллегами и
единомышленниками, расслабляющий досуг (игры, просмотр занимательных страниц) и т.д.
Социальные сети обладают большой притягательностью. Есть люди, которые
проводят в Интернете немало времени. При этом виртуальная жизнь частично подменяет
реальную жизнь. Нужно помнить пословицу: «Мудрый всегда сядет посередине». Во всѐм
нужна мера. Человек остается биологическим существом. Поэтому нужно быть ближе к
реальным людям, звездам, лесу, реке, природе… Несомненно, стоит жить реальной жизнью,
а не замыкаться в виртуальной компьютерной оболочке.
Рассмотрим основные термины, используемые в этой работе.
Социальный — относящийся к жизни людей и их отношениям в обществе. Синоним
для прилагательного социальный — общественный.
Сеть — это элементы и связи между ними. В контексте данной работы значение этого
термина дуально (двойственно). С одной стороны, сеть – это люди и их общественные связи.
С другой стороны, сеть — это система связи, состоящая из компьютеров (телефонов), объединѐнных каналами связи.
Социальная сеть — группы людей со сходными интересами, объединенные с помощью современных информационных технологий.
Социальная сеть включает в себя: техническое оборудование (Интернет, телефонная
сеть), программное обеспечение (сайты), а также пользователей, объединенных в различные
группы (социальные сообщества). Список контактов в мобильном телефоне абонента является примером общественной группы, сформированной пользователем на основе определенных критериев (родственники, сотрудники, сокурсники, друзья, одноклассники и т.п.).
Аватар — визуальный образ (небольшая фотография или рисунок).
Аккаунт — учетная запись, содержащая сведения о пользователе.
Блог — сайт, на котором расположен дневник событий (новостей), позволяющий вести
обсуждение контента (содержимого) с другими пользователями. Содержимое сайта часто
связано с политической, профессиональной, религиозной или творческой деятельностью автора, бытовыми проблемами, хобби. Блоги бывают персональными, коллективными, корпоративными.
Блоггер – пользователь, ведущий (поддерживающий) свой блог.
Никнейм (англ. прозвище, кличка) — псевдоним человека, используемый им при входе на сайт.
Пост — сообщение, адресованное к аудитории страницы.
Профиль — основные сведения о пользователе, которые он сообщает о себе.
Твит — короткое сообщение (длиной до 140 символов), на которое есть гиперссылка.
Хэштег — метка, начинающаяся со знака «#», предназначенная для группировки сообщений одной тематики.
220
Первыми техническими средствами связи людей, разобщенных в пространстве, были
почта, телеграф, телефон, радио и телевидение. Почта и телеграф переносят сообщения с помощью бумажного носителя. Телефон и радио передают информацию в виде звуковых колебаний с помощью электромагнитных волн. Телевидение способно передавать звук и динамическое изображение по эфиру или кабелю.
Сеть ARPANET – прообраз Internet (1969 г.) и электронная почта (1971 г.) открыли эру
электронных сообщений. Для передачи сообщений в сети используется протокол TCP/IP
(коммутация пакетов). С ростом плотности глобальной сети в обмен электронными сообщениями вовлекалось всѐ большее число людей. Первоначально сообщения и новости передавались лишь в текстовой форме. С увеличением технических возможностей через сеть стали
транслироваться цветные фотографии и видеоклипы.
Апробирование идей межличностного контакта было реализовано в середине 80-х годов прошлого столетия с помощью другого технического решения: любительских некоммерческих сетей FIDO. Сети создавались на базе существующих телефонных сетей с помощью
модемов. На компьютерах энтузиастов (узлах, нодах) выделялись участки памяти, доступные
другим пользователям посредством компьютеров пойнтов. Компьютеры ноды выполняли
функции файл-серверов, почтовых серверов и досок объявлений (BBS), на которых пользователь мог разместить свои сообщения. Общение между фидошниками происходило offline
(не в режиме реального времени), так как одновременное соединение могло осуществляться
лишь между двумя компьютерами посредством бесплатных телефонных сетей. Электронная
почта и новости передавались от одного компьютера к другому как бы по эстафете. Между
нодами и пойнтами транслировались почта и материалы конференций (эхи). Темы конференций были заранее определены, и в этом можно увидеть прообраз современных групп и
сообществ в социальных сетях.
Безусловно, низкая пропускная способность сетей FIDO (обусловленная уплотнением
существующих узкополосных телефонных сетей) не могла обеспечить растущие потребности людей в коммуникациях. По этой причине сети FIDO сейчас отмирают.
Перспективная технология коммутации пакетов, базирующаяся на создании собственных каналов связи (отдельных от телефонных сетей) с широкой полосой пропускания, позволила создать множество сервисов для интенсивного общения людей. Перечислим некоторые Интернет-услуги: чаты (текстовые переговоры большой группы людей в режиме реального времени, 1988 г.), форумы (формирование вопросов и получение квалифицированных
ответов, 1994 г.), мессенджеры ICQ (мгновенный обмен короткими текстовыми сообщениями, 1996 г.), гостевые книги (вербальная оценка содержимого сайта, 1996 г.).
Термин «социальная сеть» впервые введен Джеймсом Барнзом (James Barnes) в 1954 г.
Первым сайтом, который являлся социальной сетью в современном понимании, был
classmates.com (Рэнди Конрад, США, 1995 г.). Сайт был ориентирован на поиск одноклассников, сокурсников, армейских сослуживцев, сотрудников с прежних мест работы.
Основные сведения о популярных социальных сетях приведены в таблице.
Сеть
Facebook
ВКонтакте
Twitter
Одноклассники
Мой мир
Google+
Привет.ру
ФотоКто
LiveLib
Дата
создания
2004 г.
Лето 2006
2006 г.
Март 2006
Май 2007
2011 г.
Весна 2006
Апр. 2012
2006 г.
Авторы
М. Цукерберг и др.
П. Дуров и др.
Д. Дорси
А. Попков
Д. Гришин
-
Число пользователей, млн.
1000
250
140
100
40
400
2,2
0,115
0,215
221
Дадим краткую характеристику некоторым социальным сетям.
Facebook (
») — в настоящее время самая крупная социальная сеть в мире.
Сеть основана в 2004 году Марком Цукербергом и его друзьями — Э. Саверином, Д. Московицем и К. Хьюзом. Сеть имеет более миллиарда зарегистрированных пользователей во
всѐм мире.
Социальная сеть Facebook позволяет создать профиль с фотографией и информацией о
пользователе, приглашать друзей на свою страницу, обмениваться с ними сообщениями, изменять свой статус, оставлять сообщения на своей и чужой «стенах», загружать фотографии
и видеозаписи, создавать группы (сообщества по интересам).
Сеть Facebook предлагает множество сервисов, с помощью которых пользователи могут взаимодействовать между собой. Среди наиболее популярных — фотоальбомы и «стена».
«Стена» - это место на странице пользователя, на которой он и его друзья могут размещать новости, фотографии и различные публикации. Также к записям на «стене» можно писать комментарии.
Мой Мир – русскоязычная социальная сеть, владельцем которой является компания
Mail.ru Group. Сеть имеет свыше 40 миллионов зарегистрированных пользователей.
Автором проекта «Мой Мир» является Дмитрий Гришин. Сайт начал свою работу 17
мая 2007 года. Первоначально на страницах сети размещались фотографии и видео альбомы,
записи блогов, гостевые книги.
Проект предоставляет пользователям следующие сервисы: обмен сообщениями, отправка электронных подарков друг другу, выражение эмоций, размещение фотографий и видеороликов, ведение блога и чтение блогов других пользователей, загрузка и прослушивание
аудиозаписей, запуск игр и приложений.
Google+ - это социальная сеть компании Google. На 17 сентября 2012 года число зарегистрированных пользователей Google+ составляло 400 миллионов человек.
В 2011 году компания Google объявила о запуске сети Google +, которая была интегрирована
с Google Circles (круги). Сначала регистрация была только по приглашениям, но в сентябре
2011 года компания Google сделала регистрацию свободной.
«Привет.ру» — бесплатная русскоязычная социальная сеть, объединяющая тысячи людей
разных возрастов из разных стран. Число зарегистрированных пользователей приближается
к отметке в 2,2 миллиона человек. «Привет.ру» — одна из первых социальных сетей,
появившихся в России.
При регистрации в сети каждый пользователь указывает область своих интересов, и система
автоматически подбирает ему сообщества и собеседников.
На сайте Привет.ру можно использовать собственный дизайн странички, вести личный блог,
загружать фотографии, музыку и видеоролики.
Учредителями сети «ВКонтакте», являются Вячеслав Мирилашвили, Павел Дуров и Лев
Левиев.
Первая версия социальной сети ВКонтакте начала функционировать летом 2006 года. По
количеству пользователей сайт обгоняет социальные сети «Одноклассники», «Мой Мир» и
русскоязычный сегмент «Facebook». Однако ресурсы русскоязычной аудитории уже
исчерпаны (зарегистрировано более 230 млн. аккаунтов).
Сеть «ВКонтакте» позволяет пользователям со сходными интересами объединяться в
группы. Тематика групп может быть самой разной: музыка, юмор, бизнес и т.д. «ВКонтакте»
есть возможность создать свою группу.
ФотоКто – быстрорастущий интернет-проект любителей фотографии. Сайт начал
работу в апреле 2012 г., и за полгода по посещаемости вошел в тройку крупнейших сайтов по
своей тематике. На март 2014 года число зарегистрированных пользователей достигло 115
тысяч человек. Пользователями социальной сети являются фотографы, видеооператоры,
стилисты и дизайнеры всего мира.
222
«Одноклассники» – российская социальная сеть, которая используется для поиска и
общения одноклассников, однокурсников, родных и друзей. Основателем этой социальной
сети является российский веб-разработчик Альберт Попков. Проект был запущен 4 марта
2006 года. С того момента было зарегистрировано около 100 миллионов пользователей.
Сеть «Одноклассники» включает в себя такие сервисы как: обмен сообщениями,
фотографиями, музыкой; возможность ставить оценки к фотографиям, дарить электронные
подарки, звонить, играть в различные игры, создавать опросы в группах.
Сеть «Twitter» – социальная сеть на основе сервиса микроблогинга. Длина
сообщений в этой сети ограниченна 140 символами. Больше половины пользователей сети
применяют для работы с ней мобильные устройства. Очень популярны так называемые twitter-репортажи – сообщения о каком-либо событии объединѐнные при помощи хэштега в одну
новостную ленту.
Социальная сеть читателей «LiveLib» (живая библиотека) содержит информацию о
художественных книгах и писателях. Здесь можно найти рецензии на популярные
произведения, составить список прочитанных книг (читательский дневник), дать
субъективную оценку книгам, составить собственную рецензию на прочитанную книгу,
обсудить прочитанное произведение, обменяться книгами, ознакомиться с цитатами.
223
10. Защита информации
10.1. Основные понятия криптографии
Проблема защиты информации от несанкционированного (самовольного) доступа
(НСД) заметно обострилась в связи с широким распространением локальных и особенно
глобальных вычислительных сетей.
Защита информации необходима для уменьшения вероятности утечки (разглашения),
модификации (умышленного искажения) или утраты (уничтожения) информации, представляющей определенную ценность для ее владельца.
Проблема защиты информации волнует человечество с давних времѐн. По свидетельству Геродота, уже в V в. до н. э. использовалось преобразование, защищающее информацию от неразрешѐнного прочтения.
Одним из первых шифровальных приспособлений была скитала, которая применялась
во время войны Спарты против Афин (Пелопоннеесская война, 431—404 до н. э.). Скитала — это цилиндр, на который виток к витку наматывалась узкая папирусная лента (без пробелов и нахлѐстов). Затем на этой ленте вдоль оси цилиндра (столбцами) записывался необходимый для передачи текст. Лента сматывалась с цилиндра и отправлялась получателю.
Получатель наматывал присланную ему ленту на цилиндр такого же диаметра, как и диаметр
скиталы отправителя. В результате можно было прочитать зашифрованное сообщение.
Аристотелю принадлежит идея взлома такого шифра. Он предложил изготовить длинный конус и наматывать на него ленту с шифрованным сообщением. На каком-то участке
конуса начинали просматриваться фрагменты читаемого текста. Так определялся секретный
диаметр цилиндра.
Некоторые священные иудейские рукописи шифровались методом замены. Вместо первой буквы алфавита записывалась последняя
буква, вместо второй — предпоследняя и т. д. Этот древний шифр назывался атбаш. Известен факт шифрования переписки Юлия Цезаря
(100—44 до н. э.) с Цицероном (106—43 до н. э.).
Шифр Цезаря реализуется заменой каждой буквы в сообщении другой буквой этого же алфавита, отстоящей от нее в алфавите
на фиксированное число позиций. В своих шифровках Цезарь замеЦезарь
нял букву исходного открытого текста буквой, отстоящей от исходной буквы впереди на три позиции.
В Древней Греции (II в. до н.э.) был известен шифр, который создавался с помощью
квадрата Полибия. Таблица для шифрования представляла собой квадрат с пятью столбцами и пятью строками, которые нумеровались цифрами от 1 до 5. В каждую клетку такой таблицы записывалась одна буква. В результате каждой букве соответствовала пара цифр (номера строк и столбцов), и шифрование сводилось к замене буквы парой цифр.
Идею квадрата Полибия проиллюстрируем таблицей с русскими буквами. Число букв в
русском алфавите отличается от числа букв в греческом алфавите, поэтому и размер таблицы выбран иным (квадрат 6 х 6). Заметим, что порядок расположения символов в квадрате
Полибия является секретной информацией (ключом).
1
2
3
4
5
6
1
А
Ё
Л
С
Ч
Э
2
Б
Ж
М
Т
Ш
Ю
3
В
З
Н
У
Щ
Я
4
Г
И
О
Ф
Ъ
,
5
Д
Й
П
Х
Ы
.
6
Е
К
Р
Ц
Ь
224
Зашифруем с помощью квадрата Полибия слово КРИПТОГРАФИЯ:
26 36 24 35 42 34 14 36 11 44 24 63
Из примера видно, что в шифрограмме первым указывается номер строки, а вторым —
номер столбца. В квадрате Полибия столбцы и строки можно маркировать не только цифрами, но и буквами.
В настоящее время проблемы защиты информации изучает наука криптология
(kryрtos — тайный, logos — наука). Криптология разделяется на два направления — криптографию и криптоанализ. Цели этих двух направлений криптологии диаметрально противоположные.
(от др.-греч. κρσπτός — скрытый и γράφω — пишу) — наука о методах
обеспечения конфиденциальности (невозможности прочтения информации посторонним) и
аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации.
Сфера интересов криптоанализа противоположная — разработка и исследование методов дешифрования (взлома) криптограммы без знания секретного ключа.
Под шифрованием понимается такое преобразование информации, которое делает исходный текст нечитаемым и трудно раскрываемым без знания специальной секретной информации — ключа. В результате шифрования открытый текст превращается в шифрограмму и становится нечитаемым без использования дешифрирующего преобразования. Шифрограмма может называться иначе: зашифрованный текст, криптограмма, шифровка или шифротекст.
Под термином «ключ» понимается секретная информация, определяющая, какое преобразование из множества возможных шифрующих преобразований выполняется в данном
случае над открытым текстом. При использовании скиталы ключом является диаметр цилиндра. Ключом в шифре Полибия является размерность таблицы (матрицы) и порядок расположения символов в таблице.
Расшифрование — обратный шифрованию процесс. При расшифровании зашифрованный текст (шифрограмма, шифровка) преобразуется в исходный открытый текст.
Процесс получения криптоаналитиками открытого сообщения из криптограммы без
знания ключа называется дешифрованием (вскрытием или взломом) шифра.
Существует несколько классификаций шифров.
По характеру использования ключа алгоритмы шифрования делятся на два типа: симметричные (с одним ключом, по-другому — с секретным ключом) и несимметричные (с
двумя ключами или с открытым ключом). Несимметричные алгоритмы шифрования и дешифрования порой называют асимметричными.
В первом случае в шифраторе отправителя и дешифраторе получателя используется
один и тот же ключ (Ключ 1, см. рис.). Шифратор образует шифрограмму, которая является
функцией открытого текста. Конкретный вид функции преобразования (шифрования) определяется секретным ключом. Дешифратор получателя сообщения выполняет обратное преобразование по отношению к преобразованию, сделанному в шифраторе. Секретный ключ
хранится в тайне и передается по каналу, исключающему перехват ключа криптоаналитиком
противника или коммерческого конкурента.
225
Во втором случае (при использовании асимметричного алгоритма) получатель вначале
по открытому каналу передает отправителю открытый ключ (Ключ 1), с помощью которого
отправитель шифрует информацию. При получении информации получатель дешифрирует
ее с помощью второго секретного ключа (Ключ 2). Перехват открытого ключа (Ключ 1)
криптоаналитиком противника не позволяет дешифровать закрытое сообщение, так как оно
рассекречивается лишь вторым секретным ключом (Ключ 2). При этом секретный Ключ 2
практически невозможно вычислить с помощью открытого Ключа 1.
При оценке эффективности шифра обычно руководствуются правилом голландца Огюста Керкгоффса (1835—1903 г.г.), согласно которому стойкость шифра определяется только
секретностью ключа, т. е. криптоаналитику известны все детали алгоритмов шифрования и
дешифрования, но неизвестно, какой ключ использован для шифрования данного текста.
Криптостойкостью называется характеристика шифра, определяющая его устойчивость к дешифрованию без знания ключа (т. е. устойчивость к криптоанализу). Имеется несколько показателей криптостойкости, среди которых количество всех возможных ключей и
среднее время, необходимое для криптоанализа.
В симметричных алгоритмах используют более короткие ключи, поэтому шифрование и дешифрование происходят быстрее. Но в таких системах рассылка ключей является
сложной процедурой. Передавать ключи нужно по закрытым (секретным) каналам. Использование курьеров для рассылки секретных ключей дорогая, сложная и медленная процедура.
Можно утверждать, что на протяжении многих лет криптоанализу помогает частотный анализ появления отдельных символов и их сочетаний. Вероятности появления отдельных букв в осмысленном тексте сильно различаются. В русскоязычных текстах, например, буква «о» появляется в 45 раз чаще буквы «ф» и в 30 раз чаще буквы «э». Анализируя
достаточно длинный текст, зашифрованный методом замены, можно по частотам появления
символов произвести обратную замену и восстановить исходный открытый текст. В таблице
приведены относительные частоты появления русских букв.
Буква
Частота
Буква Частота Буква Частота Буква Частота
о
0.09
в
0.038
з
0.016
ж
0.007
е,ѐ
0.072
л
0.035
ы
0.016
ш
0.006
а
0.062
к
0.028
б
0.014
ю
0.006
и
0.062
м
0.026
ь,ъ
0.014
ц
0.004
н
0.053
д
0.025
г
0.013
щ
0.003
т
0.053
п
0.023
ч
0.012
э
0.003
с
0.045
у
0.021
й
0.01
ф
0.002
р
0.04
я
0.018
х
0.009
Относительная частота появления пробела или знака препинания в русском языке составляет 0,174. Приведенные цифры означают следующее: среди 1000 букв текста в среднем
будет 174 пробелов и знаков препинания, 90 букв «о», 72 буквы «е» и т. д.
При проведении криптоанализа требуется по небольшому отрезку текста решить, что
собой представляет дешифрованный текст: осмысленное сообщение или набор случайных
символов. Часто криптоаналитики вскрывают шифры на ЭВМ методом перебора ключей.
226
Вручную выполнить анализ множества фрагментов дешифрированных текстов невозможно.
Поэтому задачу выделения осмысленного текста (т. е. обнаружение правильно дешифрированного текста) решают с помощью ЭВМ. В этом случае используют теоретические положения, разработанные в конце XIX в. петербургским математиком А.А. Марковым, так называемые цепи Маркова.
Следует заметить, что, по мнению некоторых специалистов, нет нераскрываемых шифров. Рассекретить (взломать) любую шифрограмму можно либо за большое время, либо за
большие деньги. Во втором случае для дешифрования потребуется использование нескольких суперкомпьютеров, что приведет к существенным материальным затратам. Все чаще для
взлома секретных сообщений используют распределенные ресурсы Интернета, распараллеливая вычисления и привлекая к расчетам сотни и даже тысячи рабочих станций.
Есть и другое мнение. Если длина ключа равна длине сообщения, а ключ генерируется
из случайных чисел с равновероятным распределением и меняется с каждым новым сообщением, то шифр невозможно взломать даже теоретически. Подобный подход впервые описал
Г. Вернам в начале ХХ в., предложив алгоритм одноразовых шифроблокнотов. Клод Шеннон
математически доказал абсолютную криптографическую стойкость этого шифра.
Рассмотрим еще одну классификацию шифров.
Современные шифры можно разделить на четыре большие группы: методы замены
(подстановки), перестановок, аддитивные (гаммирования) и комбинированные методы.
В шифре перестановок все буквы открытого текста остаются без изменений, но перемещаются с их исходных позиций на другие места (примером является шифрование с помощью скиталы).
Следующая простейшая «шифровка» получена методом перестановки двух соседних
букв РКПИОТРГФАЯИ.
В этом «секретном» сообщении легко узнать слово КРИПТОГРАФИЯ.
Более сложный алгоритм перестановок сводится к разбиению сообщения на группы по
три буквы. В каждой группе первую букву ставят на третье место, а вторую и третью буквы
смещают на одну позицию влево. В результате получится криптограмма: РИКТОПРАГИЯФ.
Перестановки получаются в результате записи исходного текста и чтения шифрованного текста по разным путям некоторой геометрической фигуры.
В шифре замены позиции букв в шифровке остаются теми же, что и у открытого текста, но символы открытого текста заменяются символами другого алфавита. В качестве примера можно назвать квадрат Полибия. Здесь буквы заменяются соответствующими цифрами.
Метод замены часто реализуется многими пользователями случайно при работе на
ЭВМ. Если по забывчивости не переключить на клавиатуре регистр с латиницы на кириллицу, то вместо букв русского алфавита при вводе текста будут печататься буквы латинского
алфавита. В результате исходное сообщение будет «зашифровано» латинскими буквами. Например, rhbgnjuhfabz - так трансформируется слово «криптография».
В аддитивном методе буквы алфавита вначале заменяются числами, к которым затем
добавляются числа секретной псевдослучайной числовой последовательности (гаммы). Состав гаммы меняется в зависимости от использованного ключа. Обычно для шифрования используется логическая операция «Исключающее ИЛИ». При дешифровании та же гамма накладывается на зашифрованные данные. Метод гаммирования широко используется в военных криптографических системах. Шифры, получаемые аддитивным методом, порой называют поточными шифрами.
Комбинированные методы предполагают использование для шифрования сообщения
сразу нескольких методов (например, сначала замена символов, а затем их перестановка).
Например, используя расположение символов на стандартной клавиатуре, зашифруем
слов КРИПТОГРАФИЯ методом замены:
RHBGNJUHFABZ
Затем поменяем местами каждые пары букв:
HRGBJNHUAFZB
227
10.2. Шифрование сообщений различными методами
Вместо хвоста – нога,
А на ноге – рога.
Л. Дербенеѐв.
Рассмотрим, как зашифровать сообщение методом замены (другими словами методом
подстановки). Вначале используем шифр Цезаря. Предположим, что требуется зашифровать
сообщение «ГДЕ АББА».
Как известно, циклический шифр Цезаря получается заменой каждой буквы открытого
текста буквами этого же алфавита, расположенными впереди через определѐнное число позиций, например, через три позиции. Циклическим он называется потому, что при выполнении замены вслед за последней буквой алфавита вновь следует первая буква алфавита. Запишем фрагменты русского алфавита и покажем, как выполняется шифрование (порядок замены):
АБВГДЕЁЖЗИК
АБВГДЕЁЖЗИК
В результате проведенного преобразования получится шифрограмма:
ЁЖЗ ГДДГ.
В данном случае ключом является величина сдвига (число позиций между буквами).
Число ключей этого шифра невелико (оно равно числу букв алфавита). Не представляет труда вскрыть такую шифрограмму перебором всех возможных ключей. Недостатком шифра
Цезаря является невысокая криптостойкость. Объясняется это тем, что в зашифрованном
тексте буквы по-прежнему располагаются в алфавитном порядке, лишь начало отсчета смещено на несколько позиций.
Замена может осуществляться на символы другого алфавита и с более сложным ключом (алгоритмом замены). Для простоты опять приведем лишь начальные части алфавитов.
Линии показывают порядок замены букв русского алфавита на буквы латинского алфавита.
Зашифруем фразу «ГДЕ АББА»:
В результате такого шифрования получится криптограмма:
CDB EFFE.
Рациональнее использованный в последнем случае ключ записать в виде таблицы:
А
Б
В
Г
Д
Е
E
F
A
C
D
B
При шифровании буквы могут быть заменены числами (в простейшем случае порядковыми номерами букв в алфавите). Тогда наша шифровка будет выглядеть так:
4—5—6—1—2—2—1.
Замена символов открытого текста может происходить на специальные символы, например, на «пляшущих человечков», как в рассказе К. Дойла или с помощью флажков, как
это делается моряками.
Более высокую криптостойкость по сравнению с шифром Цезаря имеют аффинные
криптосистемы.
228
В аффинных криптосистемах, за счет математических преобразований, буквы, заменяющие открытый текст, хаотично перемешаны. В аффинных криптосистемах буквы открытого текста нумеруются числами, например, для кириллицы от 0 до 32. Затем каждая буква
открытого текста заменяется буквой, порядковый номер которой вычисляется с помощью
линейного уравнения и вычисления остатка от целочисленного деления.
Аффинные криптосистемы задаются при помощи двух чисел a и b. Для русского алфавита эти числа выбираются из условия a ≥ 0, b ≤ 32. Максимальное число символов в используемом алфавите обозначаются символом . Причем числа a и = 33 должны быть взаимно простыми. Если это условие не будет выполняться, то две разные буквы могут отображаться (превращаться) в одну. Каждый код буквы открытого текста заменяется кодом буквы криптограммы по следующему правилу. Вначале вычисляется число = a + b, а затем
выполняется операция целочисленного деления числа на число = 33, то есть = (mod
( )). В качестве кода символа шифрограммы используется остаток от целочисленного деления .
Для определенности выберем такие числа: a = 5 и b =3.
Фрагмент процедуры, иллюстрирующей порядок шифрования, приведен в таблице.
Буква открытого текста
Код буквы открытого текста
Код буквы шифрограммы
Буква шифрограммы
А
0
3
Г
Б
1
8
З
В
2
13
М
Г
3
18
С
Д
4
23
Ц
Е
5
28
Ы
…
…
…
…
Я
32
31
Ю
Предположим, что нужно зашифровать сообщение «ГДЕ АББА». В результате получим:
Открытый текст
Г Д Е А Б Б А
Шифрограмма
С Ц Ы Г З З Г
В ранее рассмотренных нами шифрах каждой букве открытого текста соответствовала
одна определенная буква криптограммы. Подобные шифры называются шифрами одноалфавитной замены.
Длинные сообщения, полученные методом одноалфавитной замены (другое название — шифр простой однобуквенной замены), раскрываются с помощью таблиц относительных частот. Для этого подсчитывается частота появления каждого символа, делится на
общее число символов в шифрограмме. Затем с помощью таблицы относительных частот определяется, какая была сделана замена при шифровании.
В следующей таблице приведены результаты шифрования фразы «ГДЕ АББА» разными одноалфавитными шифрами.
Шифр
Шифр атбаш
Шифр Цезаря
Квадрат Полибия
Аффинные криптоситстемы
Криптограмма
ЬЫЪ ЯЮЮЯ
ЁЖЗ ГДДГ
14 15 16 11 12 12 11
СЦЫ ГЗЗГ
Анализ последней таблицы показывает, что одинаковые буквы открытого текста заменяются одинаковыми символами в криптограмме. Нужно обратить особое внимание на
четыре последних символа криптограмм. Четвѐртый и седьмой символы во всех криптограммах одинаковые. Одинаковыми являются пятый и шестой символы криптограмм. Эта же
закономерность наблюдается в открытом тексте.
Этот недостаток одноалфавитных шифров замены позволяет взломать шифрограммы
большой длины без знания секретного ключа.
229
Повысить криптостойкость позволяют шифры многоалфавитной замены (или шифры
многозначной замены). При этом каждому символу открытого алфавита ставят в соответствие не один, а несколько символов шифровки.
Ниже приведен фрагмент ключа многоалфавитной замены:
А
18
12
48
Б
7
4
14
В
5
90
22
Г
19
35
10
Д
21
83
99
Е
2
15
32
С помощью многоалфавитного шифра сообщение «ГДЕ АББА» можно зашифровать
несколькими способами:
19—83—32—48—4—7—12,
10—99—15—12—4—14—12 и т. д.
Для каждой буквы исходного алфавита создается некоторое множество символов шифрограммы так, что множества каждой буквы не содержат одинаковых элементов. Многоалфавитные шифры изменяют картину статистических частот появления букв и этим затрудняют вскрытие шифра без знания ключа.
Рассмотрим еще один шифр многоалфавитной замены, который был описан в 1585 г.
французским дипломатом Блезом де Виженером. Шифрование производится с помощью так
называемой таблицы Виженера. Здесь, как и прежде, показана лишь часть таблицы для того,
чтобы изложить лишь идею метода.
Каждая строка в этой таблице соответствует одному шифру простой замены (типа шифра
Цезаря). При шифровании открытое сообщение записывают в строчку, а под ним помещают
ключ. Если ключ оказывается короче сообщения, то ключ циклически повторяют. Шифровку
получают, находя символ в матрице букв шифрограммы. Символ шифрограммы находится на
пересечении столбца с буквой открытого текста и строки с соответствующей буквой ключа.
Фрагмент таблицы Виженера
А
Б
В
Г
Д
Е
…
А
А
Я
Ю
Э
Ь
Ы
…
Б
Б
А
Я
Ю
Э
Ь
…
В
В
Б
А
Я
Ю
Э
…
Г
Г
В
Б
А
Я
Ю
…
Д
Д
Г
В
Б
А
Я
…
Е
Е
Д
Г
В
Б
А
…
…
…
…
…
…
…
…
…
Строка букв
открытого
текста
Матрица
букв
шифрограмм
Столбец ключа
Предположим, что нужно зашифровать сообщение «ГДЕ АББА». В качестве ключа выберем слово «ДЕВА». В результате получим:
Сообщение
Г
Д
Е
А
Б
Б
А
Ключ
Д
Е
В
А
Д
Е
В
Шифровка
Я
Я
Г
А
Э
Ь
Ю
В результате преобразований получится шифровка
ЯЯГ АЭЬЮ.
Криптографическая система Плейфера создаѐт многоалфавитные шифры. Рассмотрим
основную идею этой системы.
230
Шифрование производится с помощью квадрата (или прямоугольника), в который занесены буквы соответствующего национального алфавита. Буквы записываются в квадрат
или прямоугольник в произвольном порядке. Этот порядок записи букв, и конфигурация
таблицы являются секретным ключом. Для определѐнности возьмѐм прямоугольную таблицу
размером 8x4, в качестве букв алфавита – кириллицу, а буквы расположим в алфавитном порядке. Так как число русских букв 33, а число клеток – 32, исключим из таблицы букву Ё.
Предположим, что требуется зашифровать слово КРИПТОГРАФИЯ.
Рассмотрим правила шифрования.
1. Открытый текст делится на блоки по две буквы (по два символа), причем буквы в
одном блоке не должны быть одинаковыми. Произведѐм разделение исходного слова на
блоки по две буквы КР-ИП-ТО-ГР-АФ-ИЯ.
2. Если буквы шифруемого блока находятся в разных строках и столбцах таблицы, то в
качестве заменяющих букв используются буквы таблицы, расположенные в углах прямоугольника, охватывающего буквы открытого текста. При формировании криптограммы первой берѐтся буква, которая расположена в одном столбце со второй буквой блока открытого
текста.
Например, блок КР шифруется символами ИТ.
3. Если буквы открытого текста попадают в одну строку, то криптограмма формируется путем циклического сдвига вправо на одну клетку. Например, блок ИП будет преобразован в символы ЙИ. Еще один пример к этому правилу. Если, предположим, требуется преобразовать блок КН, то получится ЛО.
4. Если обе буквы открытого текста попадают в один столбец, то для шифрования осуществляют циклический сдвиг на одну клетку вниз.
Блок открытого текста ЖЦ будет преобразован в символы ОЮ, а блок ТЪ - в символы
ЪВ.
5. Если открытый текст содержит нечетное число символов, то к открытому тексту добавляется незначащий символ (например, знаки препинания или пробел).
6. Если в открытом тексте есть блоки с одинаковыми символами, то эти два символа
разделяют знаками препинания или пробелом.
В соответствии с описанными правилами слово КРИПТОГРАФИЯ будет преобразовано в криптограмму ИТЙИЦКАУДРПШ.
Заметим, что если блоки открытого текста состоят из одинаковых букв, то криптограмма тоже будет содержать одинаковые пары символов. По этой причине рассмотренный
шифр относится к одноалфавитным. Однако модификация этого шифра превращает его в
многоалфавитную систему. Для этого используется несколько таблиц Плейфера и производится многократное шифрование.
Здесь уместно рассмотреть криптографическую систему Хилла, в которой ш