Раздел № 3
Программные средства реализации информационных процессов.
Классификация, виды и характеристики программного обеспечения. Классификация языков программирования. Искусственный интеллект, базы знаний, экспертные системы.
Инструментальное программное обеспечение– это пакет программ, предназначенных для автоматизации создания, редактирования, отладки, тестирования различных программных продуктов.
Инструментальное программное обеспечение включает:
- компиляторы с языков высокого уровня (ЯВУ)
- интерпретаторы с ЯВУ
- библиотеки стандартных программ
- средства редактирования, отладки и тестирования
- прикладные утилиты
Трансляция программы (компиляция и интерпретация)
С помощью языка программирования создается не готовая программа, а только ее текст, описывающий разработанный алгоритм. Текст алгоритма задачи, записанный на любом языке программирования называется исходным модулем. Специальная программа - транслятор переводит исходный модуль в последовательность команд ЭВМ. Имеются два основных типа таких программ - трансляторов: компиляторы и интерпретаторы. Компилятор транслирует весь текст исходного модуля в машинный код, который называется объектным модулем за один непрерывный процесс. Компилятор выдает промежуточный объектный код - двоичный файл с расширением .OBJ. Объектный модуль еще не может выполняться, т.к. он может содержать неразрешенные ссылки на другие модули или программы, а также перемещаемый код. К нему еще нужно добавить машинный код подпрограмм, реализующий стандартные функции (например, математические). Эти функции содержатся в стандартных библиотеках - файлах с расширением .LIB. Поэтому объектный модуль обрабатывается специальной программой – редактором связей. Редактор связи разрешает все внешние ссылки и создает загрузочный модуль. Далее начинает работу программа Загрузчик, она определяет для загрузочного модуля абсолютные адреса в ОП. Только после всех этих действий программ может выполняться. Часто функции редактора и загрузчика выполняет одна программа – редактирующий загрузчик. Итак, объектный код обрабатывается специальной программой - редактором связей или сборщиком, который выполняет связывание объектных модулей и машинного кода стандартных функций, находя их в стандартных библиотеках, и формирует на выходе работоспособное приложение - исполнимый код.
Итак, чтобы получить работающую программу, надо текст программы, называемый исходным модулем, перевести в объектный модуль, пригодный для последующего редактирования и выполнения на ЭВМ.
Рассмотрим подробнее работу программы-компилятора
Программа-компилятор автоматически переводит исходный текст в машинный код, который потом используется отдельно от исходного текста. В общем случае работа компилятора состоит из 4-ч фаз.
1. Лексический анализ. На основе исходного модуля идентифицируются различные символы и классифицируются по категориям: ключевые слова, числовые значения, идентификаторы переменных и т.д.
2. Синтаксический анализ. При этом определяются синтаксические отношения ключевых слов и строится структурный каркас программы.
3. Генерация объектного кода, который соответствует структуре программы.
4. Оптимизация объектного модуля с целью повышения его эффективности (по объему и быстродействию).
Компиляторы делают исходную программу компактной, эффективной, работающей в сотни раз быстрее программы, выполненной с помощью интерпретатора.
Исполнимый код - это законченная программа, которую можно запустить на любом компьютере, где установлена ОС, для которой эта программа создавалась. Итоговый файл имеет расширение .EXEили.COM.
Программа-интерпретатор сразу выполняет команды языка, указанные в тексте программы. Интерпретатор берет очередной оператор языка из текста программы, анализирует его и если все правильно, сразу же исполняет его. Только после успешного выполнения текущего оператора интерпретатор перейдет к следующему оператору. При выполнении одного оператора многократно, интерпретатор каждый раз работает с ним так, словно встретил этот оператор впервые. Программы с большим объемом повторяющихся операторов будут работать медленно. Интерпретатор удобен при изучении инструментов программирования, т.к. позволяет понять принцип работы отдельного оператора языка.
В отличии от компилятора интерпретатор не создает объектный код, а выполняет исходный модуль программы в режиме «оператор за оператором», по ходу работы он превращает каждый оператор ЯВУ в машинные команды.
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Под языком программирования будем понимать алфавит, систему записи и набор правил, определяющих синтаксис правильной программы.
Ядро ИПО составляют ЯВУ (языки высокого уровня), позволяющие описывать алгоритмы решаемых пользователем задач. Существуют следующие уровни языков программирования.
1.Машинные языки.
2. Машинно-ориентированные языки.
3. Алгоритмические языки
4. Языки 4-го поколения.
Этапы решения задач на ЭВМ
Основными этапами решения задач на ЭВМ являются:
1. Постановка задачи
2. Выбор метода решения.
3. Составление алгоритма.
4. Программирование.
5. Отладка и тестирование.
6. Анализ результатов.
После того, как поставлена конкретная задача и выбран метод ее решения, приступают к составлению алгоритма, по которому и будет решаться задача.
Алгоритм
Алгоритм - это точное и простое описание последовательности действий для решения данной задачи. Алгоритм содержит несколько шагов, которые должны выполняться в определенной последовательности. Каждый шаг алгоритма может состоять из одной или нескольких простых операций. Важным свойством алгоритма является то, что результат его выполнения не должен зависеть от исполнителя.
Свойства алгоритмов
Понятность – исполнитель алгоритма должен знать, как алгоритм выполнить.
Дискретность – алгоритм должен состоять из последовательности выполнения отдельных простых шагов.
Определенность – каждое правило алгоритма должно быть четким, определенным, не оставлять места для произвола.
Результативность – алгоритм должен приводить к решению задачи за конечное число шагов.
Массовость – алгоритм разрабатывается в общем виде и его можно применить к некоторому классу задач.
Блок-схемы
Для графической записи алгоритмов используют блок - схемы. На блок - схеме каждый шаг алгоритма обозначается специальной геометрической фигурой, а внутри нее записываются простые операции.
начало конец
присвоение значений
Ввод/вывод данных и вычисления
вызов
Рекурсивная подпрограмма обычно выполняется медленнее, чем ее нерекурсивный аналог и сложнее отлаживается.
Итерация(цикл) — способ организации обработки данных, при котором определенные действия повторяются многократно, не приводя при этом к рекурсивным вызовам программ.
ЛекцияЯзыки программирования высокого уровня
Алгоритмический язык программирования
Programming language; Algorithmic language
Алгоритмический язык программирования - искусственный (формальный) язык, предназначенный для записи алгоритмов. Язык программирования задается своим описанием и реализуется в виде специальной программы: компилятора или интерпретатора.
Pascal (Паскаль). Язык Паскаль, созданный в конце 70-х годов основоположником множества идей современного программирования Николасом Виртом, во многом напоминает Алгол, но в нем ужесточен ряд требований к структуре программы и имеются возможности, позволяющие успешно применять его при создании крупных проектов.
Basic (Бейсик).Для этого языка имеются и компиляторы, и интерпретаторы, а по популярности он занимает первое место в мире. Он создавался в 60-х годах в качестве учебного языка и очень просто в изучении.
С (Си). Данный язык был создан в лаборатории Bell и первоначально не рассматривался как массовый. Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы, и в то же время не зависеть от конкретного типа процессора.
Си во многом похож на Паскаль и имеет дополнительные средства для прямой работы с памятью (указатели). На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных операционных систем (Unix).
Четвертое поколение языков программирования
С++ (Си++).Си++ - это объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость, в результате чего создание сложных и надежных программ потребовало от разработчиков высокого уровня профессиональной подготовки.
Java (Джава, Ява). Этот язык был создан компанией Sun в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка – компиляция не в машинный код, а в платформонезависимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора – виртуальной Java-машины JVM (Java Virtual Machine), версии которой созданы сегодня для любых платформ. Благодаря наличию множества Java-машин программы на Java можно переносить не только на уровне исходных текстов, но и на уровне двоичного байт-кода, поэтому по популярности язык Ява сегодня занимает второе место после Бейсика. Язык Java позволяет создавать программы для работы в Интернет.
Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бытовую технику (технология Jini) и созданию платформонезависимых программных модулей, способных работать на серверах в глобальных и локальных сетях с различными операционными системами (технология Java Beans). Пока основной недостаток этого языка – невысокое быстродействие, так как язык Ява интерпретируемый.
Это все алгоритмические языки. В настоящее время широко используются алгоритмические языки Паскаль и СИ. На основе алгоритмических языков стали создаваться языки объектного и объектно-визуального программирования. Объектно-ориентированными языками являются СИ++ и Object Pascal, они позволяют создавать различные приложения. Языки 4-го уровня позволяют создавать приложения, функционирующие на различных платформах:DOS, WINDOWS, UNIX.
Особенности алгоритмических языков в том, что имеется конкретный заданный алгоритм решения задачи, используется оператор присваивания, возможен, но не приветствуется оператор goto. Алгоритмические языкипо-другому называются процедурными или императивными.
Императивное программирование
Императивное программирование – это технология программирования, характеризующаяся принципом последовательного изменения состояния вычислителя пошаговым образом. При этом управление изменениями полностью определено и полностью контролируется. Императивный язык программирования – это тоже самое, что и процедурно-ориентированный язык программирования. Процедурно-ориентированный язык программирования - язык программирования высокого уровня, в основу которого положен принцип описания (последовательности) действий, позволяющей решить поставленную задачу. Обычно процедурно-ориентированные языки задают программы, как совокупности процедур или программ.
Декларативный язык программирования
(От лат.Declaratio – объявление)
Декларативный язык программирования - язык программирования высокого уровня, построенный: - на описании данных; и - на описании искомого результата.
Декларативные языки подразделяются на функциональные и логические языки.
Тексты программ на функциональных языках программирования описывают "как решить задачу", но не предписывают последовательность действий для решения. (языки F# и O'Caml )
Функциональный (аппликативный) язык программирования – язык программирования, позволяющий задавать программу в виде совокупности определений функций.
В функциональных языках программирования:
- функции обмениваются между собой данными без использования промежуточных переменных и присваиваний;
- переменные, однажды получив значение, никогда его не изменят;
Циклы заменяются аппаратом рекурсивных функций.
Самым главным отличием функциональных языков является отсутствие
Оператора присваивания
Язык программирования Лисп
LISP language
От англ.LISt Processing - обработка списков
Язык программирования Лисп - аппликативный язык программирования.
Он относится к декларативным языкам функционального типа; - предназначен для обработки символьных данных, представленных в виде списков.
Основой языка являются функции и рекурсивные построения.
Функциональные языки применяются преимущественно для научных вычислений, а также при реализации особенно сложных алгоритмов и обработке чрезвычайно запутанных структур данных
Логический язык программирования - язык программирования, позволяющий выполнить описание проблемы в терминах фактов и логических формул, а собственно решение проблемы выполняет система с помощью механизмов логического вывода.
PROLOG language
От англ.PROgramming in LOGic
Язык программирования Пролог
Язык программирования Пролог - язык логического программирования, программа на котором состоит:
Из логических утверждений, образующих базу данных; и - из правила вывода новых утверждений из известных ранее.
Интеллектуальная система программирования
Система программирования, в основе которой лежит естественный или профессионально-ориентированный язык. И.с.п. автоматически создает программу по сформулированному пользователем на естественном или профессионально-ориентированном языке описанию решаемой задачи. При этом пользователь освобождается от необходимости выполнять предварительную разработку алгоритма и программирование.
Интеллектуальный интерфейс
Интерфейс, обеспечивающий взаимодействие пользователя с компьютером на естественном языке. И.и обычно включает диалоговый процессор, интерпретирующий профессиональный язык пользователя, и планировщик, преобразующий описание задачи в программу ее решения на основе информации, хранящейся в базе знаний.
Области применения языков программирования
В настоящее время языки программирования применяются в самых различных областях человеческой деятельности, таких как:
· научные вычисления (языки C++, FORTRAN, Java);
· системное программирование (языки C++, Java);
· обработка информации (языки C++, COBOL, Java);
· искусственный интеллект (LISP, Prolog);
· издательская деятельность (Postscript, TeX);
· удаленная обработка информации (Perl, PHP, Java, C++);
· описание документов (HTML, XML).
Парадигмы программирования
Синтаксис языка описывает систему правил написания различных языковых конструкций, а семантика языка программирования определяет смысл этих конструкций.
Семантика языка взаимосвязана с используемой вычислительной моделью. В настоящее время языки программирования в зависимости от применяемой вычислительной модели делятся на четыре основные группы:
· Процедурные языки, которые представляют собой последовательность выполняемых операторов. Если рассматривать состояние ПК как состояние ячеек памяти, то процедурный язык – это последовательность операторов, изменяющих значение одной или нескольких ячеек. К процедурным языкам относятся FORTRAN, C, Ada, Pascal, Smalltalk и некоторые другие. Процедурные языки иногда также называются императивными языками. Код программы на процедурном языке может быть записан следующим образом:
оperator1; operator2; operator3;
· Аппликативные языки, в основу которых положен функциональный подход. Язык рассматривается с точки зрения нахождения функции, необходимой для перевода памяти ПК из одного состояния в другое. Программа представляет собой набор функций, применяемых к начальным данным, позволяющий получить требуемый результат. К аппликативным языкам относится язык LISP. Код программы на аппликативном языке может быть записан следующим образом:
· function1(function2(
· function3(beginning_date)));
· Языки системы правил, называемые также языками логического программирования, основываются на определении набора правил, при выполнении которых возможно выполнение определенных действий. Правила могут задаваться в виде утверждений и в виде таблиц решений. К языкам логического программирования относится язык Prolog.
Код программы на языке системы правил может быть записан следующим образом:
if condition1 then operator1;
if condition2 then operator2;
if condition3 then operator3;
· Объектно-ориентированные языки, основанные на построении объектов как набора данных и операций над ними. Объектно-ориентированные языки объединяют и расширяют возможности, присущие процедурным и аппликативным языкам. К объектно-ориентированным языкам относятся C++, Object Pascal, Java.
В настоящий момент наибольшее распространение получили языки, основанные на объектно-ориентированной модели. Они, реализуя процедурную модель построения языка, поддерживают аппликативность конструкций, позволяя представлять блок-схему выполнения структурированной программы как некоторый набор аппликативных функций.
Прикладное программное обеспечение
ППО - это комплекс прикладных программ, с помощью которых выполняются конкретные задания: производственные, творческие, развлекательные и т.д.
Классификация ПП средств
Текстовые редакторы - основные их функции - ввод и редактирование текстовых данных.
Графические редакторы - обширный класс программ, предназначенных для создания и обработки графических изображений.
Системы управления базами данных. БД называют огромные массивы данных, организованные в табличные структуры.
Электронные таблицы - это комплексные средства для хранения различных типов данных и их обработки. Электронные таблицы аналогичны базам данных, но акцент смещен не на хранения данных, а на преобразование данных.
Системы автоматизированного проектирования (CAD-системы), они предназначены для автоматизации процесса верстки полиграфических изданий.
Существуют и другие прикладные программные средства: экспертные системы, редакторы HTML (Web-редакторы), броузеры (средства просмотра Web), интегрированные системы делопроизводства, бухгалтерские системы и т.д.
Резюме
Раздел № 4
Модели решения функциональных и вычислительных задач.
Моделирование, методы и технология моделирования, виды моделей.
Моделирование как средство проектирования программного обеспечения вычислительных систем
Моделью называется семантически законченная абстракция системы или полное описание какой-то системы с определенной точки зрения. Модель – это некоторое представление или описание оригинала (объекта, процесса, явления), которое при определенных предложениях, гипотезах о поведении оригинала позволяет замещать оригинал для его лучшего изучения, исследования, описания его свойств.
Проблема моделирования состоит из трех взаимосвязанных задач: построение новой (адаптация известной) модели; исследование модели (разработка метода исследования или адаптация, применение известного); использование (на практике или теоретически) модели.
Классификация моделей
Модель статическая,если среди параметров описания модели нет (явно) временного параметра.
Модель динамическая,если среди параметров модели явно выделен временной параметр.
Модель дискретная,если описывает поведение оригинала лишь дискретно, например, в дискретные моменты времени (для динамической модели).
Модель непрерывная,если описывает поведение оригинала на всем промежутке времени.
Модель детерминированная,если для каждой допустимой совокупности входных параметров она позволяет определять однозначно набор выходных параметров; в противном случае – модель недетерминированная, стохастическая (вероятностная).
Модель функциональная,если она представима системой функциональных соотношений (например, уравнений).
Модель теоретико-множественная,если она представима некоторыми множествами и отношениями их и их элементов.
Модель логическая,если она представима предикатами, логическими функциями и отношениями.
Модель информационно-логическая,если она представима информацией о составных элементах, подмоделях, а также логическими отношениями между ними.
Модель игровая,если она описывает, реализует некоторую игровую ситуацию между элементами (объектами и субъектами игры).
Модель алгоритмическая,если она описана некоторым алгоритмом или комплексом алгоритмов, определяющим ее функционирование, развитие. Введение такого, на первый взгляд, непривычного типа моделей (действительно, кажется, что любая модель может быть представлена алгоритмом ее исследования), вполне обосновано, так как не все модели могут быть исследованы или реализованы алгоритмически.
Модель графовая,если она представима графом (отношениями вершин и соединяющих их ребер) или графами и отношениями между ними.
Модель иерархическая (древовидная),если она представима иерахической структурой (деревом).
Модель языковая, лингвистическая,если она представлена некоторым лингвистическим объектом, формализованной языковой системой или структурой. Иногда такие модели называют вербальными, синтаксическими и т.п.
Модель визуальная,если она позволяет визуализировать отношения и связи моделируемой системы, особенно в динамике.
Модель натурная,если она есть материальная копия оригинала.
Модель геометрическая,если она представима геометрическими образами и отношениями между ними.
Модель имитационная,если она построена для испытания или изучения, проигрывания возможных путей развития и поведения объекта путем варьирования некоторых или всех параметров модели.
Есть и другие типы моделей.
Примеры моделей
Алгоритмической моделью вычисления суммы бесконечного убывающего ряда чисел может служить алгоритм вычисления конечной суммы ряда до некоторой заданной степени точности.
Правила правописания – языковая, структурная модель. Глобус – натурная географическая модель земного шара. Макет дома является натурной геометрической моделью строящегося дома. Вписанный в окружность многоугольник дает визуальную геометрическую модель окружности на экране компьютера.
Тип модели зависит от связей и отношений его подсистем и элементов, окружения, а не от его физической природы.
Основные свойства любой модели:
· целенаправленность;
· конечность;
· упрощенность;
· приблизительность;
· адекватность;
· информативность;
· полнота;
· замкнутость и др.
Современное моделирование сложных процессов и явлений невозможно без компьютера, без компьютерного моделирования.
Компьютерное моделирование – основа представления знаний как в компьютере, так и с помощью компьютера и с использованием любой информации, которую можно обрабатывать с помощью ЭВМ.
Разновидность компьютерного моделирования – вычислительный эксперимент, осуществляемый экспериментатором над исследуемой системой или процессом с помощью орудия эксперимента – компьютера, компьютерной технологии. Вычислительный эксперимент позволяет находить новые закономерности, проверять гипотезы, визуализировать события и т.д.
Языки моделирования
Язык визуального моделирования – это формальный язык, который имеет графическую нотацию, язык предназначен для визуального моделирования и спецификации программных и аппаратных средств.
VRML –формальный язык для создания трехмерных изображений. В 1994 году был создан язык VRML для организации виртуальных трехмерных интерфейсов в Интернете. Он позволяет описывать в текстовом виде различные трехмерные сцены, освещение и тени, текстуры (покрытия объектов), создавать свои миры, путешествовать по ним, «облетать» со всех сторон, вращать в любых направлениях, масштабировать, регулировать
Унифицированный язык моделирования UML – формальный язык визуального моделирования, который предназначен для проектирования и построения моделей сложных программных систем.
Объектно-ориентированное программирование
Одной из альтернатив директивному (императивному) программированию является объектно-ориентированное программирование, которое действительно помогает справиться с нелинейно растущей сложностью программ при увеличении их объема.
Основы представления графических данных
Представление графических данных
Основные стандарты расширения файлов
.com .exe | Исполняемые файлы |
.bat | Командные файлы |
.txt | Текстовые файлы |
.doc | Файлы Word |
.xls | Файлы Excel |
.bmp gif jpg | Файлы рисунков |
.zip .rar .arj | Архивные файлы |
.htm .html | Файлы, используемые в Интернете |
Способы описания цвета
В компьютерной графике применяют понятие цветового разрешения (другое название — глубина цвета). Оно определяет метод кодирования цветовой информации для ее воспроизведения на экране монитора. Для отображения черно-белого изображения достаточно одного бита (белый и черный цвета). Восьмиразрядное кодирование позволяет отобразить 256 градаций цветового тона. Два байта (16 бит) определяют 65 536 оттенков (такой режим называют High Color). При 24-разрядном способе кодирования возможно определить более 16,5 миллионов цветов (режим называют True Color).
С практической точки зрения цветовому разрешению близко понятие цветового охвата. Под цветовым охватом понимают диапазон цветов, который можно воспроизвести с помощью устройств вывода. Цвет – это точка в трехмерном пространстве. Цветовые модели расположены в трехмерной системе координат, которая образует цветовое пространство. Цвет можно выразить точкой в трехмерном пространстве. Первый закон
Цветовая модель CIE Lab
В1920 году была разработана цветовая пространственная модель CIE Lab (Communication Internationale de I'Eclairage — международная комиссия по освещению. L,a,b — обозначения осей координат в этой системе). Система является аппаратно независимой и потому часто применяется для переноса данных между устройствами. В модели CIE Lab любой цвет определяется светлотой (I) и хроматическими компонентами: параметром а, изменяющимся в диапазоне от зеленого до красного, и параметром b, изменяющимся в диапазоне от синего до желтого. Цветовой охват модели CIE Lab значительно превосходит возможности мониторов и печатных устройств, поэтому перед выводом изображения, представленного в этой модели, его приходится преобразовывать. Данная модель была разработана для согласования цветных фотохимических процессов с полиграфическими. Сегодня она является принятым по умолчанию стандартом для программы Adobe Photoshop.
Цветовая модель RGB
Рис. 6. Аддитивная цветовая модель RGB
Цветовая модель RGB является аддитивной, то есть любой цвет представляет собой сочетание в различной пропорции трех основных цветов — красного (Red), зеленого (Green), синего (Blue). Она служит основой при создании и обработке компьютерной графики, предназначенной для электронного воспроизведения (на мониторе, телевизоре). При наложении одного компонента основного цвета на другой яркость суммарного излучения увеличивается. Совмещение трех компонентов дает ахроматический серый цвет, который при увеличении яркости приближается к белому цвету. При 256 градационных уровнях тона черному цвету соответствуют нулевые значения RGB, а белому — максимальные, с координатами (255,255,255).
Раздел № 5
Локальные и глобальные сети ЭВМ. Защита информации в сетях.
Понятие сетей, локальные, глобальные сети, сетевые устройства. Топология сети, способы передачи информации в сети. Уровни модели связи. Интернет, службы и протоколы Интернета. Методы защиты информации, программных и аппаратных средств. Виды вирусов. Методы борьбы с вирусами. Антивирусные программы. Криптографические функции, симметричное и несимметричное кодирование, электронно-цифровая подпись.
Сетевые устройства и средства коммуникаций
В качестве средств коммуникации используются витая пара, коаксиальный кабель, оптоволоконные линии.
Одноранговая сеть
В ней все компьютеры равноправны: нет иерархии среди компьютеров и нет выделенного сервера. Каждый компьютер работает как клиент и как сервер. В одноранговой сети не больше 10 компьютеров, они дешевле сетей на основе сервера, но нужны при этом более мощные компьютеры.
Обеспечение совместного доступа к ресурсам данных.
Совокупность приемов разделения и ограничения прав участников компьютерной сети называется политикой сети. Управление сетевыми политиками (их может быть несколько) в сети называется администрированием сети. Лицо, которое управляет организацией работы участников сети называется системным администратором. В локальных сетях соединение происходит с помощью традиционных каналов связи: кабельных, спутниковых, релейных, даже телефонных, хотя последние менее предпочтительные. Для связи между несколькими локальными сетями, которые работают по разным протоколам, служат специальные средства, называемые шлюзами. Шлюзы могут быть аппаратными и программными, поступившее в шлюз сообщение от одной сети преобразуется в другое сообщение, соответствующее требованиям следующей сети, т.е. несколько сетей могут работать как единая сеть.
Методы передачи информации в сети
¨ Метод коммутации каналов предполагает установление физической связи между источником и приемником информации на основе отдельных соединений сети на период передачи всего сообщения. Соединительные линии сети на время передачи блокируется;
¨ Метод коммутации сообщений в отличие от коммутации каналов на период передачи сообщений физически резервирует не весь путь передачи, а только соединение между двумя ближайшими узлами сети и только на время передачи сообщения;
¨ Метод коммутации пакетов состоит в том, что поступающая от источника информация разбивается в интерфейсных процессорах на пакеты фиксированной длины, снабжаемые маркерами адреса отправителя, адреса приемника и номера самого пакета в сообщении. Сформированные пакеты передаются в сети как независимые сообщения и, поступая в узел коммутации пакетов, накапливаются в буферах каналов связи. В пункте назначения интерфейсный процессор формирует из пакетов сообщение.
Интернет. Основные понятия.
Интернет - это Всемирная компьютерная сеть, состоящая из нескольких миллионов компьютеров, связанных друг с другом всевозможными физическими линиями связи. Интернет в более широком смысле - это информационное пространство, внутри которого осуществляется непрерывная циркуляция данных. Днем рождения Интернета стала дата стандартизации основного протокола связи Интернет TCP/IP в 1983 году.
Сетевой протокол – это протокол, определяющий правила взаимодействия между собой отдельных компьютеров компьютерной сети..
Протокол TCP - протокол транспортного уровня. Он управляет тем, как происходит передача информации, предназначен для контроля передачи целостности передаваемой информации. Согласно протоколу TCP, отправляемые данные "нарезаются" на небольшие пакеты, после чего каждый пакет маркируется таким образом, чтобы в нем были данные, необходимые для правильной сборки документа на компьютере.
Протокол IP - адресный. Он принадлежит сетевому уровню и определяет, куда происходит передача, этот протокол описывает формат пакета данных. (где адрес, где служебная информация, где данные).
Суть адресного протокола IP состоит в том, что у каждого участника Всемирной сети должен быть свой уникальный адрес. Без этого нельзя говорить о точной доставке TCP пакетов в нужное место. Этот адрес выражается четырьмя байтами. Каждый компьютер, через который проходит TCP-пакет, может по этим четырем байтам определить, кому из соседей надо переслать пакет, чтобы он оказался ближе к получателю. Каждый компьютер, подключенный к сети, имеет два равноценных уникальных адреса: цифровой IP-адрес и символический доменный адрес. Доменное имя – это уникальный набор символов, который позволяет ассоциировать ресурс, работающий в сети Интернет, с сервером (в частности с его IP-адресом), на котором он расположен. Международная организация Сетевой Информационный Центр выдает группы адресов владельцам локальных сетей, которые распределяют конкретные адреса по своему усмотрению.
В доменной системе имен разбор адреса идет справа налево:
Topsoft.minsk.by
By –указывает на страну - Белоруссия
Minsk –город, в котором находится организация
Краткие определения
Унифицированный указатель ресурса URL
Адрес любого файла во всемирном масштабе определяется URl, который состоит из трех частей:
1 указание службы, которая осуществляет доступ к данному ресурсу, обычно это имя протокола, соответствующего службе http://
2указание доменного имени ПК, на котором хранится данный ресурс
Www.abcd.com
3 указание полного пути доступа к файлу на данном ПК (разделитель/)
/Files/New/abcdf/zip
Итак, получаем
Почтовые программы: Outlook Express, The Bat, Microsoft Outlook, Mail, Google gmail, Eudora pro.
Протоколы почтовой службы:
SMTP– отправка почтовых сообщений
POP –прием почтовых сообщений
POP3 -прием почтовых сообщений
IMAP –можно использовать этот протокол при приеме почты с других ПК.
Вопросы компьютерной безопасности
Понятие о компьютерной безопасности
В вычислительной технике понятие безопасности подразумевает надежность работы компьютера, сохранность ценных данных, защиту информации от внесения в нее изменений неуполномоченными лицами и сохранение тайны переписки в электронной связи.
Комплексное обеспечение информационной безопасности
Для обеспечения информационной безопасности необходимо обеспечить защиту программ и данных, защиту операционных систем, защиту в сетях, защиту в СУБД. Для этого используются криптография программные и аппаратные способы защиты, другие технические средства.
Комплексное обеспечение информационной безопасности автоматизированных систем – это область науки и техники, охватывающая совокупность криптографических, программно-аппаратных, технических, правовых и организационных методов и средств обеспечения безопасности информации при ее обработке, хранении и передачи с использованием современных информационных технологий.
Защитить информацию означает: обеспечить ее физическую целостность, не допустить подмены элементов информации при сохранении ее целостности, не допустить несанкционированного получения информации лицами или процессами, не имеющими для этого полномочий, иметь уверенность в том, что передаваемые владельцем информации ресурсы будут использоваться только в соответствии с договоренностями. Защита информации – это процесс создания условий, которые обеспечивают необходимую защищенность информации. Информационная безопасность – это достигнутое состояние такой защищенности.
Угрозы информационной безопасности в компьютерных системах
Угроза информационной безопасности КС – это потенциально возможное событие, действие, процесс или явление, которое может оказать нежелательное воздействие на систему и информацию, которая хранится и обрабатывается в системе. Компьютерная система как объект защиты представляет собой совокупность следующих компонент: информационных массивов на машинных носителях, технических средств обработки и передачи данных, программных средств, обслуживающего персонала и пользователей системы.
Методы защиты информации
Применительно к КС выделяют следующие уровни защиты: охрана по периметру территории объекта, охрана по периметру здания, охрана помещения, защита аппаратных средств, защита программных средств, непосредственная защита информации.
Защита программных средств от несанкционированного копирования
Угроза несанкционированного копирования информации блокируется двумя группами методов:
- методы, затрудняющие считывание скопированной информации
-методы, препятствующие использованию информации
Методы первой группы основаны на создании в процессе записи информации на носители таких особенностей, которые не позволяют считывать полученную копию на других носителях, не входящих в состав защищаемой КС.
Вторая группа методов противодействия копированию затрудняет использование полученных копированием программ и данных. Наиболее эффективным в этом отношении средством защиты является хранение информации в преобразованном криптографическими методами виде.
Защита от несанкционированного изменения структуры КС в процессе эксплуатации
При эксплуатации КС неизменность аппаратной и программной структуры требует предотвращения несанкционированного доступа к аппаратной и программной частям КС. Организация доступа обслуживающего персонала отличается от организации доступа пользователей. По возможности устройство освобождается от конфиденциальной информации и отключаются все информационные связи. Техническое обслуживание выполняется под контролем должностного лица. Одним из возможных путей несанкционированного изменения технической структуры КС является подключение незарегистрированных устройств или замена ими штатных устройств КС. Для предотвращения этих угроз используются методы: регулярная проверка конфигурации системы, использование идентификаторов для установления подлинности устройства.
Электронная цифровая подпись
Электронная цифровая подпись – это метод удостоверения подлинности сообщения. Он основан на применении шифрования открытым ключом.
Суть метода:
Отправитель сообщения кодирует сообщение S своим закрытым ключом и отправляет получателю подписанное сообщение, т.е. само сообщение S и его код C. Получатель сообщения еще раз кодирует код C с помощью открытого ключа отправителя. При этом он получает сообщение S/. Если S и S/ совпали , это значит, что нешифрованное сообщение S не было искажено злоумышленником при передаче и действительно было отправлено отправителем, который опубликовал свой открытый ключ. Подделать ЭЦП практически невозможно.
Защита операционной системы
От несанкционированного доступа и разрушений
Серверы рассылки спама
Спам - это нежелательные электронные сообщения. Чтобы избежать ответственности за рассылку спама, злоумышленники не рассылают письма со своего компьютера. Они предпочитают заразить компьютеры других пользователей Интернета специальным "троянцем", который превратит чужой ПК в сервер рассылки спама. Злоумышленнику останется лишь указать троянской программе, какое письмо и по каким адресам следует рассылать. Ответственность за эти незаконные действия будет нести легальный пользователь зараженного компьютера.
На практике одного сервера рассылки спама преступнику не хватает, ему требуется целая сеть зараженных компьютеров. Такие сети управляемых злоумышленником компьютеров называют сетями зомби-машин или просто зомби-сетями. В типичную зомби-сеть входит около 3 тыс. компьютеров, находящихся по всему миру.
Чтобы заразить большое число компьютеров и превратить их в серверы рассылки спама, преступники комбинируют различные виды вредоносных кодов. Чаще всего объединяют сетевых червей и "троянцев". Сетевые черви распространяются очень быстро, что позволяет заразить довольно много компьютеров, а при попадании на машину-жертву червь не только рассылает повсюду свои копии, но и устанавливает "троянца", который, собственно, и превращает зараженный компьютер в зомби.
Многокомпонентные "троянцы"- загрузчики
Многокомпонентность таких вредоносных кодов заключается в том, что после заражения нового компьютера они переписывают из Интернета другой вредоносный код и внедряют его в систему. Например, червь из предыдущего примера, который превращает компьютер в зомби, может не нести на себе "троянца", а переписать его из Интернета уже после того, как ему самому удастся заразить компьютер.
Различают компоненты разного уровня. Например, если "троянец" перепишет из сети другой вредоносный код, то это уже будет компонент второго уровня. Иногда бывает, что компонент второго уровня сам скачивает и внедряет еще одного паразита. Это уже компонент третьего уровня.
Методы защиты от компьютерных вирусов
Существует три рубежа защиты от компьютерных вирусов:
Существует три метода реализации защиты:
Создавать систему безопасности следует с конца - с предотвращения разрушительных последствий любого воздействия, будь то вирусная атака, кража компьютера или выход из строя жесткого диска.
Системы обнаружения вторжений, даже являясь составной частью крупного брандмауэра, дополняют другие системы информационной безопасности. Они не только определяют сам факт проникновения в сеть, но и выявляют подозрительные действия.
Если брандмауэры рассматривать как забор с калиткой, через которую могут пройти те, кто наделен соответствующими полномочиями, система обнаружения будет выступать здесь в роли устройств внешнего видеонаблюдения и охранной сигнализации. Охранная система включается, когда злоумышленник перелез через забор или сломал калитку и теперь намеревается захватить центральный пульт управления. То есть когда хакер уже проник внутрь и готовится поразить жизненно важную систему.
Работа системы обнаружения вторжений строится на законах математической статистики. Каждое действие, происходящее в системе, подвергается анализу на соответствие сценарию сетевой атаки. Так как действия злоумышленника разнятся от случая к случаю, системе обнаружения вторжений приходится учитывать отклонения реально происходящих событий от сценария нападения.
ZoneAlarm Pro
Разработчик: Zone Labs (www.ZoneLabs.com)
ZoneAlarm Pro - это еще один брандмауэр, который позволяет блокировать активность любых программ, обращающихся к Windows из Интернета или пытающихся самостоятельно выйти в Сеть с ПК. ZoneAlarm распознает выполняемые программы и ограничивает их возможности, в частности контролирует пересылку данных из компьютера в Интернет. С помощью ZoneAlarm можно не только запретить выход в Сеть отдельной программе, но и остановить весь поток данных в Сеть и обратно.