Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Интегрированные среды разработчиков программ.

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

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

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

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

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

 

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

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

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

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

• интегрированная среда разработки;

• средства создания и редактирования текстов программ;

• обширные библиотеки стандартных программ и функций;

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

• "дружественная" к пользователю диалоговая среда;

• многооконный режим работы;

• мощные графические библиотеки; утилиты для работы с библиотеками

• встроенный ассемблер;

• встроенная справочная служба;

• другие специфические особенности.

 

Turbo Basic, Quick Basic, Turbo Pascal, Turbo C, системы программирования, ориентированные на создание Windows-приложений:

• пакет Borland Delphi (Дельфи) — предоставляющий качественные и очень удобные средства визуальной разработки.

• пакет Microsoft Visual Basic — удобный и популярный инструмент для создания Windows-программ с использованием визуальных средств. Содержит инструментарий для создания диаграмм и презентаций.

• пакет Borland C++ — одно из самых распространённых средств для разработки DOS и Windows приложений.

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

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

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

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

Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.

Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию — в зависимости от того, для каких целей он создавался.

Алгоритмы.

Алгоритм - точное предписание исполнителю совершить определенную последовательность действий для достижения поставленной цели за конечное число шагов.

Свойства алгоритмов:

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

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

Результативность (конечность) – алгоритм должен приводить к решению задачи за конечное число шагов.

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

Способы описания алгоритмов:

Механические алгоритмы, или иначе детерминированные, жесткие (например, алгоритм работы машины, двигателя и т.п.);

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

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

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

Линейный алгоритм – набор команд (указаний), выполняемых последовательно во времени друг за другом.

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

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

Цикл программы – последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторого условия.

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

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

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

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

Архивирование данных.

Что такое программы-архиваторы? Назначение.

В середине 80-х годов в странах, охваченных компьютеризацией, появились программы-архиваторы (упаковщики). Их успех на рынке был предрешен. Возможность сэкономить от 20% до 60% дискового пространства делала архиваторы привлекательными для пользователей.

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

Архиватор (упаковщик данных) - программа, осуществляющая сжатие и упаковку данных.

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

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

На чем основано сжатие данных? Существует несколько основных алгоритмов архивации. Но все они сводятся к преобразованию повторяющихся и избыточных последовательностей данных в коды, которые затем можно использовать для восстановления информации. Обычно архиваторы осуществляют сжатие информации сразу несколькими способами. Выбор способа зависит от типа данных и определяется архиватором для каждого конкретного случая. Наиболее часто применяется алгоритм LZ77, разработанный математиками Лемпелем и Зивом в 1977 г.

Степень сжатия определяется формулой Кс=(Vc/V0)*100%, где Vc - объем сжатого файла, V0 - объем исходного файла.

Наиболее хорошо сжимаются файлы графических образов, текстовые файлы и файлы данных (5-40% степень сжатия); меньше сжимаются файлы исполняемых и загрузочных модулей - 60-90 %. Почти не сжимаются архивные файлы.

 

37. Компьютерная вирусология.

 

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

 

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

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

В зависимости от среды обитания вирусы делятся на сетевые, файловые, загрузочные и загрузочно-файловые. Сетевые вирусы распространяются по компьютерным сетям. Файловые вирусы либо внедряются в выполняе­мые файлы (наиболее распространенный тип вирусов), либо создают файлы-двойники (компаньон-вирусы), либо используют особенности организации файловой системы (link-вирусы). Загрузочные вирусы записывают себя либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный загрузчик винчестера (Master Boot Record), либо меняют указа­тель на активный boot-сектор. Файлово-загрузочные вирусы заражают как файлы, так и загрузочные сектора дисков.

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

 

Антивирусная профилактика.

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

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

Различают следующие виды антивирусных программ:

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

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

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

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

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

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

Наиболее развитые эвристические механизмы позволяют с вероятностью около 80% обнаружить новый вирус.

В России получили широкое распространение программы-детекторы, одновременно выполняющие и функции программ-докторов. Наиболее известные представители этого класса - AVP (Antiviral Toolkit Pro, автор - Е.Касперский), Aidstest (автор - Д.Лозинский) и Doctor Web (авторы - И.Данилов, В.Лутовинов, Д.Белоусов).

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

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

 

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

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

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

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

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

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

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

Фильтры контролируют следующие операции:

  • обновление программных файлов и системной области диска;
  • форматирование диска;
  • резидентное размещение программ в ОЗУ.

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

В качестве примера такой антивирусной программы можно назвать VSafe. Заметим, что она не способна обезвредить даже известные вирусы. Для "лечения" обнаруженных фильтром вирусов нужно использовать программы-доктора.

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

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

Операционные системы.

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

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

В функции операционной системы входит:

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

Последнее изменение этой страницы: 2016-07-22

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...