
- •Оглавление
- •Источник информации — канал связи — приемник (получатель) информации
- •Источник информации — кодирующее устройство — канал связи — декодирующее устройство — приемник (получатель) информации
- •Входная информация — преобразователь информации — выходная информация
- •Загрузка операционной системы.
- •Вирусы и их классификация
- •Источник информации – канал связи – приемник (получатель) информации.
- •Глобальные сети
- •Адресация в Интернете
- •Электронная почта (e-mail)
- •Передача файлов (ftp)
- •Телеконференции (News)
- •Telnet – удаленный терминал
- •Интерактивное общение в Интернете
- •Интернет-телефония (ip-Phone)
- •Мобильный Интернет
Загрузка операционной системы.
Файлы операционной системы хранятся во внешней, долговременной памяти (на жестком, гибком или лазерном диске). Однако программы могут выполняться, только если они находятся в оперативной памяти, поэтому файлы операционной системы необходимо загрузить в оперативную память.
Диск (жесткий, гибкий или лазерный), на котором находятся файлы операционной системы и с которого производится ее загрузка, называется системным.
После включения компьютера производится загрузка операционной системы с системного диска в оперативную память. Загрузка должна выполняться в соответствии с программой загрузки. Однако для того чтобы компьютер выполнял какую-нибудь программу, эта программа должна уже находиться в оперативной памяти. Разрешение этого противоречия состоит в последовательной, поэтапной загрузке операционной системы.
Самотестирование компьютера. В состав компьютера входит энергонезависимое постоянное запоминающее устройство (ПЗУ), содержащее программы тестирования компьютера и первого этапа загрузки операционной системы – это BIOS (Basic Input/Output System – базовая система ввода/вывода).
После включения питания компьютера или нажатия кнопки Reset на системном блоке компьютера или одновременного нажатия комбинации клавиш Ctrl+Alt+Del на клавиатуре процессор начинает выполнение программы самотестирования компьютера POST (Power-ON Self Test). Производится тестирование работоспособности процессора, памяти и других аппаратных средств компьютера.
В процессе тестирования сначала могут выдаваться диагностические сообщения в виде различных последовательностей коротких и длинных звуковых сигналов (например, 1 длинный и 3 коротких – не подключен монитор, 5 коротких – ошибка процессора и так далее). После успешной инициализации видеокарты краткие диагностические сообщения выводятся на экран монитора.
Для установки правильной даты и времени, а также внесения изменений в конфигурацию аппаратных средств компьютера в процессе выполнения самотестирования необходимо нажать клавишу Del. Загрузится системная утилита BIOS Setup, имеющая интерфейс в виде системы иерархических меню. Пользователь может установить новые параметры конфигурации компьютера и запомнить их в специальной микросхеме памяти, которая при выключенном компьютере питается от батарейки, установленной на системной плате. В случае выхода из строя батарейки конфигурационные параметры теряются и компьютер перестает нормально загружаться.
Загрузка операционной системы. После проведения самотестирования специальная программа, содержащаяся в BIOS, начинает поиск загрузчика операционной системы. Происходит поочередное обращение к имеющимся в компьютере дискам (гибким, жестким, CD-ROM) и поиск на определенном месте (в первом, так называемом загрузочном секторе диска) наличия специальной программы Master Boot (программы-загрузчика операционной системы).
Если диск системный и программа-загрузчик оказывается на месте, то она загружается в оперативную память и ей передается управление работой компьютера. Программа ищет файлы операционной системы на системном диске и загружает их в оперативную память в качестве программных модулей.
Программные модули операционной системы представляет собой последовательность символов, сообщающих о текущем диске и каталоге. Например, если загрузка операционной системы была произведена с диска С:, а операционная система была установлена в каталог WINDOWS, то появится приглашение: C:\WINDOWS>.
В случае загрузки графического интерфейса операционной системы команды могут вводиться с помощью мыши.
Билет 9. Файловая система компьютера. Папки. Файлы (имя, тип, путь доступа)
Главное назначение носителей внешней памяти – долговременное хранение информации. Любая информация (текст, изображение, программа, видеофильм и т.д.) на внешнем носителе хранится в виде файла. Файл (file) – это поименованная область на диске, в которой хранится отдельный экземпляр информации определенного типа.
Файл характеризуется набором параметров (свойств) (имя, расширение, размер, дата создания, дата последней модификации, время создания и изменения) и атрибутами, используемыми операционной системой для его обработки ("архивный", "системный", "скрытый", "только для чтения", "каталог" и др.).
Файловая структура может быть одноуровневой – это простая последовательность файлов. Многоуровневая файловая структура – древовидный способ организации файлов на диске. При этом существуют специальные файлы, которые в одних операционных системах называют каталогами (directory), в других – папками, назначение которых – регистрация в них файлов (в том числе и других каталогов). Наличие поддержки каталогов в операционной системе позволяет выстроить иерархическую (многоуровневую, древовидную) организацию размещения файлов на носителе. В этом случае файлы, имеющие одинаковую природу (файлы операционной системы, документы, офисные программы, игровые программы, результаты расчетов, домашние задания, рисунки и т.д.), размещаются в отдельных каталогах. Такая структура хранения информации позволяет уверенно ориентироваться в принадлежности той или иной информации, особенно если учесть, что на современных носителях информации могут храниться тысячи, а то и десятки тысяч файлов! Работа с информацией была бы значительно затруднена, если бы она была беспорядочно размещена на носителе.
Любой носитель изначально имеет один каталог, который создается операционной системой без нашего участия, – корневой. Корневой каталог на каждом носителе внешней памяти существует в единственном экземпляре. Все другие каталоги создаются либо пользователем, либо могут быть автоматически созданы программами.
Носители информации обозначаются символами латинского алфавита, после которых следуют две точки: А:, В: – дисководы для гибких дисков (дискет), С: – жесткий диск (винчестер), далее по алфавиту D:, E:, F: и т.д. – жесткие диски, логические диски или дисководы для компакт-дисков и др. по числу дисководов.
На рисунке приведен пример иерархической структуры размещения информации на носителе ("С:\" обозначает корневой каталог диска С:, имена каталогов написаны прописным шрифтом, файлов – строчным).
Пусть в корневом каталоге диска С: имеются два каталога 1-го уровня (GAMES и TEXT), а в каталоге GAMES один каталог 2-го уровня (CHESS). При этом в каталоге TEXT имеется файл proba.txt, а в каталоге CHESS – файл chess.txt.
Полное имя файла однозначно определяет местоположение любого файла на носителе. Оно состоит из пути к файлу, включающему логическое имя устройства и иерархическую систему каталогов, от корневого каталога до того, в котором содержится файл, и собственно имени файла и расширения: C:\GAMES\CHESS\chess.exe.
Правила задания имени файла определяются операционной системой и используемой файловой системой. Каждый файл имеет собственный уникальный адрес.
Для операционной системы данные на дисках организованы в дорожки и секторы. Дорожки (40 или 80 на дискете) представляют собой узкие концентрические кольца на диске. Каждая дорожка разделена на части, называемые секторами. При чтении или записи устройство всегда считывает или записывает целое число секторов независимо от объема запрашиваемой информации. Размер сектора на дискете равен 512 байтам. Количество секторов – 18. Цилиндр – это общее количество дорожек, с которых можно считать информацию, не перемещая головок. Поскольку гибкий диск имеет только две стороны, а дисковод для гибких дисков – только две головки, в гибком диске на один цилиндр приходится две дорожки. В жестком диске может быть много дисковых пластин, каждая из которых имеет две (или больше) головки, поэтому одному цилиндру соответствует множество дорожек. Кластер (или ячейка размещения данных) – наименьшая область диска, которую операционная система использует при записи файла (минимальный размер адресуемого пространства). Обычно кластер – один или несколько секторов.
Перед использованием дискета (жесткий диск) должна быть форматирована, т.е. должна быть создана ее логическая и физическая структура (разбиение диска на дорожки и секторы). Самая первая дорожка магнитного диска (нулевая) считается служебной – там хранится служебная информация – таблица размещения файлов (FAT-таблица). В этой таблице компьютер запоминает адреса записанных файлов. По команде пользователя, компьютер находит по имени файла в этой таблице номер дорожки и номер сектора, после чего магнитная головка переводится в нужное положение, файл считывается и направляется в оперативную память для обработки.
Нетрудно подсчитать общую емкость гибкого диска: 2 (стороны)×80 (дорожек)×18 (секторов)×0,5 байт=1440 Кбайт (1,44 Мбайт). Если вспомнить, что 1 Кбайт равен 1024 байтам, то, более точно, емкость гибкого диска равна 1 457 664 байта.
В операционных системах семейства Windows имя может содержать от 1 до 255 символов, причем набор символов, из которых можно составлять имена файлов, расширяется. В частности, можно использовать буквы национальных алфавитов, пробелы и т.д. Не допускается использование следующих символов: \ / : * ? " < > |. Строчные и прописные буквы в именах файлов не различаются. То же касается и имен файлов (папок в Windows). По другому дело обстоит в операционных системах семейства Unix. Там строчная и прописная буквы различаются, поэтому имена, записанные одними и теми же буквами, но имеющие различия в регистрах, будут разными.
Расширение имени файла записывается после точки и может содержать от 1 до 3 символов в DOS и больше 3 – в Windows. Чаще всего в расширение вкладывается определенный смысл (хотя пользователь может задавать и бессмысленные расширения) – оно указывает на содержимое файла или на то, какой программой был создан данный файл, данные какого типа сохранены в нем. Например:
.DOC, .TXT – расширения текстовых файлов,
.СОМ, .ЕХЕ – исполнимых файлов,
.INI – инициализационных файлов,
.PAS, .BAS, .СРР – исходные тексты программ на соответствующем языке программирования, и т.д.
В операционной системе Windows именно по расширению файлы ассоциируются с определенной программой, с помощью которой они могут быть открыты для просмотра или модификации.
Размер файла измеряется в байтах.
В зависимости от значений атрибутов файлов операционная система разрешает или запрещает те или иные действия над файлами.
Виды атрибутов. Для каждого файла соответствующая ему запись в каталоге (элемент каталога) содержит атрибуты файла. DOS может обрабатывать четыре атрибута файлов: "только для чтения" (read-only), "скрытый" (hidden), "системный" (system), и "архивировать" (archive). Каждый из этих атрибутов может быть либо установлен, либо нет.
Назначение этих атрибутов таково:
атрибут файла "только для чтения" предохраняет файл от изменений: для изменения или удаления файла с этим атрибутом требуется предварительно снять данный атрибут. Файлы на компакт-дисках имеют атрибут "только для чтения", чтобы показать, что изменить эти файлы нельзя;
атрибуты "скрытый" и/или "системный" используются некоторыми системными файлами. Файлы с атрибутом "системный" не перемещаются программами оптимизации расположения файлов на диске, а также обычно не копируются на сжатый диск при создании сжатого диска;
атрибут файла "архивировать" устанавливается при создании файла и сбрасывается программами резервного копирования для обозначения того, что копия файла помещена в архив. Поэтому наличие атрибута "архивировать" обычно значит, что для файла не было сделано резервной копии.
Таким образом, большинство файлов имеет установленным только атрибут "архивировать". Остальные атрибуты ("только для чтения", "скрытый" или "системный"), как правило, не установлены.
В операционной системе Windows кроме перечисленных выше атрибутов имеются атрибуты индексирования (с целью ускорения поиска), сжатия, шифрования (только пользователь, зашифровавший файл (или папку) имеет доступ к его содержимому).
Обычно в Windows по отношению к файлам и каталогам используют несколько иную терминологию.
Наиболее простыми являются документы и программы. Документы – это объекты, содержащие ту или иную информацию: тексты, картинки, звуки и т.д. Развитие мультимедийных возможностей компьютера приводит к тому, что в некоторых документах могут содержаться несколько видов информации одновременно, например, движущееся изображение и звук. Программы служат для обработки документов – это своеобразные инструменты воздействия на документы. Часто их еще называют приложениями, например, приложение MS-DOS или приложение Windows, в зависимости от того, ресурсы какой операционной системы использует данная программа. Между отдельными программами и документами существует устойчивая связь: текстовый редактор работает с текстовыми документами, программа-фонограф воспроизводит звуки и т.п. Windows запоминает такие связи и способна самостоятельно их использовать при просмотре и работе с документами. Группа однотипных документов, а также программ для их обработки могут быть помещены в общую папку (аналог каталога). Папка является еще одним, более крупным объектом Windows. В отличие от документов и программ, являющихся простыми и "неделимыми" объектами, папка может содержать другие объекты, в том числе и новые папки; в частном случае папка может быть пустой.
Также файлы можно разделить на исполняемые (программы) и неисполняемые (файлы данных и документов). Исполняемые файлы могут запускаться операционной системой на выполнение, а неисполняемые файлы могут только изменять свое содержимое в процессе выполнения программ. Далее можно разделить файлы на основные, присутствие которых обязательно для работы операционной системы и программных продуктов, служебные, хранящие конфигурацию и настройки основных файлов, рабочие, содержимое которых изменяется в результате работы основных программных файлов и собственно ради которых и создаются все остальные файлы, а также временные файлы, создающиеся в момент работы основных и хранящие промежуточные результаты.
В процессе работы над файлами и каталогами (далее они называются объектами) производят следующие операции:
создание (в текущем каталоге создается новый экземпляр объекта, ему дается имя. Созданный объект при этом может быть и пустым);
копирование (копия объекта создается в другом каталоге или на другом носителе);
перемещение (производит) копирование объекта в другой каталог или на другой носитель, в исходном каталоге объект уничтожается);
удаление (в исходном каталоге объект уничтожается);
переименование (изменяется имя объекта).
Билет 10. Магистрально-модульный принцип построения компьютера. Характеристики процессоров. Шина адреса и шина данных
В основу архитектуры современных персональных компьютеров положен магистрально-модульный принцип. Модульный принцип позволяет потребителю самому комплектовать нужную ему конфигурацию компьютера и производить при необходимости ее модернизацию. Модульная организация компьютера опирается на магистральный (шинный) принцип обмена информацией между устройствами.
Магистраль (системная шина) включает в себя три многоразрядные шины: шину данных, шину адреса и шину управления, которые представляют собой многопроходные линии (см. рисунок). К магистрали подключаются процессор и оперативная память, а также периферийные устройства ввода, вывода и хранения информации, которые обмениваются информацией на машинном языке (последовательностями нулей и единиц в форме электрических импульсов).
Шина данных. По этой шине данные передаются между различными устройствами. Например, считанные из оперативной памяти данные могут быть переданы процессору для обработки, а затем полученные данные могут быть отправлены обратно в оперативную память для хранения. Таким образом, данные по шине данных могут передаваться от устройства к устройству в любом направлении.
Разрядность шины данных определяется разрядностью процессора, то есть количеством двоичных разрядов, которые могут обрабатываться или передаваться процессором одновременно. Разрядность процессоров постоянно увеличивается по мере развития компьютерной техники.
Шина адреса. Выбор устройства или ячейки памяти, куда пересылаются или откуда считываются данные по шине данных, производит процессор. Каждое устройство или ячейка оперативной памяти имеет свой адрес. Адрес передается по адресной шине, причем сигналы по ней передаются в одном направлении – от процессора к оперативной памяти и устройствам (однонаправленная шина).
Разрядность шины адреса определяет объем адресуемой памяти (адресное пространство), то есть количество однобайтовых ячеек оперативной памяти, которые могут иметь уникальные адреса. Количество адресуемых ячеек памяти можно рассчитать по формуле:
N=2I,
где I – разрядность шины адреса. Разрядность шины адреса постоянно увеличивается
Шина управления. По шине управления передаются сигналы, определяющие характер обмена информацией по магистрали. Сигналы управления показывают, какую операцию – считывание или запись информации из памяти – нужно производить, синхронизируют обмен информацией между устройствами и так далее.
Процессор. Процессор аппаратно реализуется на большой интегральной схеме (БИС). Большая интегральная схема на самом деле не является «большой» по размеру и представляет собой, наоборот, маленькую плоскую полупроводниковую пластину размером примерно 20×20 мм, заключенную в плоский корпус с рядами металлических штырьков (контактов). БИС является «большой» по количеству элементов.
Использование современных высоких технологий позволяет разместить на БИС процессора огромное количество (42 миллиона в процессоре Pentium 4) функциональных элементов (переключателей), размеры которых составляют всего около 0,13 микрон (1 микрон=10–6 метра).
Важнейшей характеристикой, определяющей быстродействие процессора, является тактовая частота, то есть количество тактов в секунду. Такт – это промежуток времени между началами подачи двух последовательных импульсов специальной микросхемой – генератором тактовой частоты, синхронизирующим работу узлов компьютера. На выполнение процессором каждой базовой операции (например, сложения) отводится определенное количество тактов. Ясно, что чем больше тактовая частота, тем больше операций в секунду выполняет процессор. Тактовая частота измеряется в мегагерцах (МГц) и гигагерцах (ГГц). 1 МГц=миллион тактов в секунду. За 20 с небольшим лет тактовая частота процессора увеличилась почти в 500 раз, от 5 МГц (процессор 8086, 1978 год) до 2,4 ГГц (процессор Pentium 4, 2002 год) – см. табл.
Тип |
Год выпуска |
Частота (МГц) |
Шина данных |
Шина адреса |
Адресуемая память |
8086 |
1978 |
5-10 |
16 |
20 |
1 Мб |
80286 |
1982 |
6-12,5 |
16 |
24 |
16 Мб |
80386 |
1985 |
16-33 |
32 |
32 |
4 Гб |
80486 |
1989 |
25-50 |
32 |
32 |
4 Гб |
Pentium |
1993 |
60-166 |
64 |
32 |
4 Гб |
Pentium II |
1997 |
200-300 |
64 |
36 |
64 Гб |
Pentium III |
1999 |
450-1000 |
64 |
36 |
64 Гб |
Pentium IV |
2000 |
1000-2400 |
64 |
36 |
64 Гб |
Другой характеристикой процессора, влияющей на его производительность, является разрядность процессора. Разрядность процессора определяется количеством двоичных разрядов, которые могут передаваться или обрабатываться процессором одновременно. Часто уточняют разрядность процессора и пишут 64/36, что означает, что процессор имеет 64-разрядную шину данных и 36-разрядную шину адреса.
Производительность процессора является его интегральной характеристикой, которая зависит от частоты процессора, его разрядности, а также особенностей архитектуры (наличие кэш-памяти и др.). Производительность процессора нельзя вычислить, она определяется в процессе тестирования, по скорости выполнения процессором определенных операций в какой-либо программной среде.
Билет 11. Понятие алгоритма. Свойства алгоритма. Исполнители алгоритмов (назначение, среда, режим работы, система команд). Компьютер как формальный исполнитель алгоритмов (программ)
Алгоритм – это понятное и точное указание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.
Н:Школьный курс математики также предлагает большое разнообразие алгоритмов: умножение "столбиком" и деление "уголком", приведение к общему знаменателю...
Описанные выше алгоритмы обычно принято называть "бытовыми". Кроме них, можно выделить еще три крупных разновидности алгоритмов: вычислительные, информационные и управляющие. Первые, как правило, работают с простыми видами данных (числа, векторы, матрицы), но зато процесс вычисления может быть длинным и сложным. Информационные алгоритмы, напротив, реализуют сравнительно небольшие процедуры обработки (например, поиск элементов, удовлетворяющих определенному признаку), но для больших объемов информации. Наконец, управляющие алгоритмы непрерывно анализируют информацию, поступающую от тех или иных источников, и выдают результирующие сигналы, управляющие работой тех или иных устройств. Для этого вида алгоритмов очень существенную роль играет их быстродействие, так как управляющие сигналы всегда должны появляться в нужный момент времени.
Рассмотрим теперь, какими наиболее важными чертами обладает алгоритм. Начнем с того, что алгоритм использует исходные данные, перерабатывая которые он получает требуемый результат. Данное положение легко проиллюстрировать в виде следующей наглядной схемы.
Таким образом, каждый алгоритм – это правила, описывающие процесс преобразования исходных данных в необходимый результат. Заметим, что данное важное свойство в некоторых книгах приводят как определение алгоритма.
Объект, который будет выполнять алгоритм называют Исполнителем. Его предназначение - точно выполнить предписания алгоритма, подчас не задумываясь о результатах и целях. Исполнителями могут быть: солдат армии, который обязан беспрекословно выполнять приказы старших по званию чинов; собака, которая должна выполнять команды хозяина; робот, производящий измерения в космосе, выполняет команды, поступающие от космического центра; летчик, который должен точно выполнять распоряжения диспетчера аэропорта; компьютер и т.д.
Во всех приведенных выше примерах объект, исполняющий действия алгоритма, не обязан: понимать цели и методы достижения этой цели; пропускать действия или менять их порядок по своему усмотрению; искать какую-то замену, если действие выполнить невозможно. Т.е. исполнитель формально, не стараясь понять поставленную задачу, выполняет команду за командой.
Компьютер – формальный автоматический исполнитель алгоритмов.
Представление информационного процесса в форме алгоритма позволяет поручить его автоматическое исполнение различным техническим устройствам, среди которых особое место занимает компьютер. При этом говорят, что компьютер исполняет программу (последовательность команд), реализующую алгоритм. Алгоритм, записанный на "понятном" компьютеру языке программирования, называется программой.
Исполнитель способен выполнять только ограниченное количество команд. Исполнитель, как и любой объект, находится в определенной среде и может выполнять только допустимые в ней действия. При создании алгоритма для конкретного Исполнителя требуется знать систему команд Исполнителя (далее СКИ). Поэтому алгоритм дорабатывается и детализируется так, чтобы в нем присутствовали только те команды и инструкции, которые может выполнить Исполнитель.
Для того чтобы произвольное описание последовательности действий было алгоритмом, оно должно обладать следующими свойствами.
Дискретность (от лат. discretus – разделенный, прерывистый). Процесс решения задачи должен быть разбит на последовательность отдельных шагов, каждый из которых называется командой. Примером команд могут служить пункты инструкции, нажатие на одну из кнопок пульта управления, рисование графического примитива (линии, дуги и т.п.), оператор языка программирования. Наиболее существенным здесь является тот факт, что алгоритм есть последовательность четко выделенных пунктов – такие "прерывные" объекты в науке принято называть дискретными.
Понятность. Каждая команда алгоритма должна быть понятна тому, кто исполняет алгоритм; в противном случае эта команда и, следовательно, весь алгоритм в целом не могут быть выполнены. Данное требование можно сформулировать более просто и конкретно. Составим полный список команд, которые умеет делать исполнитель алгоритма, и назовем его системой команд исполнителя (СКИ). Тогда понятными будут являться только те команды, которые попадают в этот список. Именно из такой формулировки становится ясно, почему компьютер такой "привередливый" при приеме введенных в него команд: даже если неверно написана всего одна буква, команда уже не может быть обнаружена в СКИ.
Приведем теперь несколько примеров. Рядовой школьник вряд ли сможет найти статистическое среднее, но не потому, что это очень сложно, а просто из-за незнакомого термина. Переформулируйте задачу (найти сумму чисел и поделить на их количество), и ученик немедленно с ней справится. Или еще. Казалось бы, что может быть проще, чем нарисовать на экране точку. Но, пока вы не будете знать команду, которая это делает, получить результат будет невозможно. Обратите внимание, что совсем не обязательно речь идет об операторе языка программирования. Определенную СКИ, оформленную в форме панели инструментов, имеет и графический редактор.
Определенность или детерминированность (от лат. determinate – определенность, точность). Команды, образующие алгоритм (или, можно сказать, входящие в СКИ), должны быть предельно четкими и однозначными. Их результат не может зависеть от какой-либо дополнительной информации извне алгоритма. Сколько бы раз вы не запускали программу, для одних и тех же исходных данных всегда будет получаться один и тот же результат.
При наличии ошибок в алгоритме последнее сформулированное свойство может иногда нарушаться. Например, если не было предусмотрено присвоение переменной начального значения, то результат в некоторых случаях может зависеть от случайного состояния той или иной ячейки памяти компьютера. Но это скорее не опровергает, а подтверждает правило: алгоритм должен быть определенным, в противном случае это не алгоритм.
Результативность. Результат выполнения алгоритма должен быть обязательно получен, т.е. правильный алгоритм не может обрываться безрезультатно из-за какого-либо непреодолимого препятствия в ходе выполнения. Кроме того, любой алгоритм должен завершиться за конечное число шагов. Большинство алгоритмов данным требованиям удовлетворяют, но при наличии ошибок возможны нарушения результативности.
Например. Рассмотрим алгоритм деления некоторого числа n "столбиком" на 3. При n=4,2 он благополучно получает результат, а вот для простейшего значения n=1 процесс деления оказывается бесконечным. Впрочем; достаточно дополнить алгоритм условием на количество требуемых в ответе знаков после запятой, и результативность немедленно будет восстановлена.
Корректность. Любой алгоритм создан для решения той или иной задачи, поэтому нам необходима уверенность, что это решение будет правильным для любых допустимых исходных данных. Указанное свойство алгоритма принято называть его корректностью. В связи с обсуждаемым свойством большое значение имеет тщательное тестирование алгоритма перед его использованием. Как показывает опыт, грамотная и всесторонняя отладка для сложных алгоритмов часто требует значительно больших усилий, чем собственно разработка этих алгоритмов. При этом важно не столько количество проверенных сочетаний входных данных, сколько количество их типов. Например, можно сделать сколько угодно проверок для положительных значений аргумента алгоритма, но это никак не будет гарантировать корректную его работу в случае отрицательной величины аргумента. Кстати говоря, именно результатом недостаточной тщательности тестирования чаще всего объясняются многочисленные сюрпризы, преподносимые современным программным обеспечением в процессе эксплуатации.
Массовость. Алгоритм имеет смысл разрабатывать только в том случае, когда он будет применяться многократно для различных наборов исходных данных. Например, если составляется алгоритм обработки текстов, то вряд ли целесообразно ограничивать его возможности только русскими буквами – стоит предусмотреть также латинский алфавит, цифры, знаки препинания и т.п. Тем более что такое обобщение особых трудностей не вызывает. Заметим, что массовость алгоритма в отдельных случаях может нарушаться: к числу подобных исключений можно отнести алгоритмы пользования некоторыми простыми автоматами (для них входными данными служит единственный тип монет) или довольно яркий и впечатляющий алгоритм поиска клада, который бессмысленно выполнять повторно.
Завершая обсуждение, стоит подчеркнуть, что теоретическое понятие "алгоритм" имеет огромное прикладное значение. Любая программа, написанная для ЭВМ, является, по сути дела, одной из форм записи алгоритма. А роль программного обеспечения для современных компьютеров трудно переоценить.
Билет 12. Различные типы компьютерных вирусов: методы распространения, профилактика заражения
В настоящее время существует огромное количество угроз, которым может подвергнуться ваш компьютер. В зависимости от того, как проявляют себя вредоносные программы можно выделить следующие классы:
Черви (Worms)
Данная категория вредоносных программ для распространения использует в основном уязвимости операционных систем. Название этого класса было дано исходя из способности червей "переползать" с компьютера на компьютер, используя сети, электронную почту и другие информационные каналы. Также благодаря этому многие черви обладают достаточно высокой скоростью распространения.
Черви проникают на компьютер, вычисляют сетевые адреса других компьютеров и рассылают по этим адресам свои копии. Помимо сетевых адресов часто используются данные адресной книги почтовых клиентов. Представители этого класса вредоносных программ иногда создают рабочие файлы на дисках системы, но могут вообще не обращаться к ресурсам компьютера (за исключением оперативной памяти).
Вирусы (Viruses)
Программы, которые заражают другие программы – добавляют в них свой код, чтобы получить управление при запуске зараженных файлов. Это простое определение дает возможность выявить основное действие, выполняемое вирусом – заражение.
Троянские программы (Trojans)
Программы, которые выполняют на поражаемых компьютерах несанкционированные пользователем действия, т.е. в зависимости от каких-либо условий уничтожают информацию на дисках, приводят систему к "зависанию", воруют конфиденциальную информацию и т.д. Данный класс вредоносных программ не является вирусом в традиционном понимании этого термина (т.е. не заражает другие программы или данные); троянские программы не способны самостоятельно проникать на компьютеры и распространяются злоумышленниками под видом "полезного" программного обеспечения. При этом вред, наносимый ими, может во много раз превышать потери от традиционной вирусной атаки.
В последнее время наиболее распространенными типами вредоносных программ, портящими компьютерные данные, стали черви. Далее по распространенности следуют вирусы и троянские программы. Некоторые вредоносные программы совмещают в себе характеристики двух или даже трех из перечисленных выше классов.
Программы-рекламы (Adware)
Программный код, без ведома пользователя включенный в программное обеспечение с целью демонстрации рекламных объявлений. Как правило, программы-рекламы встроены в программное обеспечение, распространяющееся бесплатно. Реклама располагается в рабочем интерфейсе. Зачастую данные программы также собирают и переправляют своему разработчику персональную информацию о пользователе, изменяют различные параметры браузера (стартовые и поисковые страницы, уровни безопасности и т.д.), а также создают неконтролируемый пользователем трафик. Все это может привести как к нарушению политики безопасности, так и к прямым финансовым потерям.
Программы-шпионы (Spyware)
Программное обеспечение, позволяющее собирать сведения об отдельно взятом пользователе или организации без их ведома. О наличии программ-шпионов на своем компьютере вы можете и не догадываться. Как правило, целью программ-шпионов является:
отслеживание действий пользователя на компьютере;
сбор информации о содержании жесткого диска; в этом случает чаще всего речь идет о сканировании некоторых каталогов и системного реестра с целью составления списка программного обеспечения, установленного на компьютере;
сбор информации о качестве связи, способе подключения, скорости модема и т.д.
Потенциально опасные приложения (Riskware)
Программное обеспечение, которое не имеет какой-либо вредоносной функции, но может быть использовано злоумышленниками в качестве вспомогательных компонентов вредоносной программы, поскольку содержит бреши и ошибки. При некоторых условиях наличие таких программ на компьютере подвергает ваши данные риску. К таким программам относятся, например, некоторые утилиты удаленного администрирования, программы автоматического переключения раскладки клавиатуры, IRC-клиенты, FTP-сервера, всевозможные утилиты для остановки процессов или скрытия их работы.
Еще одним видом вредоносных программ, являющимся пограничным для таких программ как Adware, Spyware и Riskware, являются программы, встраивающиеся в установленный на компьютере браузер и перенаправляющие трафик. Наверняка вы встречались с подобными программами, если при запросе одного адреса веб-сайта открывался совсем другой.
Программы-шутки (Jokes)
Программное обеспечение, не причиняющее компьютеру какого-либо прямого вреда, но выводящее сообщения о том, что такой вред уже причинен, либо будет причинен при каких-либо условиях. Такие программы часто предупреждают пользователя о несуществующей опасности, например, выводят сообщения о форматировании диска (хотя никакого форматирования на самом деле не происходит), обнаруживают вирусы в незараженных файлах и т.д.
Программы-маскировщики (Rootkit)
Утилиты, используемые для сокрытия вредоносной активности. Они маскируют вредоносные программы, чтобы избежать их обнаружения антивирусными программами. Программы-маскировщики модифицируют операционную систему на компьютере и заменять основные ее функции, чтобы скрыть свое собственное присутствие и действия, которые предпринимает злоумышленник на зараженном компьютере.
Прочие опасные программы
Программы, созданные для организации DoS-атак на удаленные сервера, взлома других компьютеров, а также являющиеся частью среды разработки вредоносного программного обеспечения. К таким программам относятся хакерские утилиты (Hack Tools), конструкторы вирусов, сканеры уязвимостей, программы для взлома паролей, прочие виды программ для взлома сетевых ресурсов или проникновения в атакуемую систему.