Реферат: Информатика как единство науки и технологии
Название: Информатика как единство науки и технологии Раздел: Рефераты по информатике Тип: реферат | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. 1.1 ИНФОРМАТИКА КАК ЕДИНСТВО НАУКИ И ТЕХНОЛОГИИ
1.2
ИСТОРИЯ РАЗВИТИЯ ИНФОРМАТИКИ
Развитие кибернетики в нашей стране встретило идеологические препятствия. Как писал академик А.И.Берг, «... в 1955-57 гг. и даже позже в нашей литературе были допущены грубые ошибки в оценке значения и возможностей кибернетики. Это нанесло серьезный ущерб разви-тию науки в нашей стране, привело к задержке в разработке многих теоретических положений и даже самих электронных машин». Достаточно сказать, что еще в философском словаре 1959г. издания кибернетика характеризовалась как «буржуазная лженаука». Причиной этому послу-жили, с одной стороны, недооценка новой бурно развивающейся науки отдельными учеными «классического» направления, с другой – неумеренное пустословие тех, кто вместо активной разработки конкретных проблем кибернетики в различных областях спекулировал на полуфан-тастических прогнозах о безграничных возможностях кибернетики, дискредитируя тем самым эту науку. 2. 2.1 СТРУКТУРА СОВРЕМЕННОЙ ИНФОРМАТИКИ
2.2
МЕСТО ИНФОРМАТИКИ В СИСТЕМЕ НАУК 4 4.1 Формы представления, методы оценки и способы передачи информации Анализируя информацию, мы сталкиваемся с необходимостью оценки качества и определения количества получения информации. При оценке информации различают три аспекта: синтаксический, семантический и прагматический. Синтаксический аспект связан со способом представления информации вне зависимости от ее смысловых и потребительских качеств и рассматривает формы представления информации для ее передачи и хранения (в виде знаков и символов). Этот аспект необходим для измерения информации. Информацию, рассматриваемую только в синтаксическом аспекте, называют данными. Семантический аспект передает смысловое содержание информации и соотносит ее с ранее имевшейся информацией (рис. 2). Рис. 2. График семантической меры: SП – тезаурусная мера получателя; Ic – семантическое количество информации Прагматический аспект передает возможность достижения цели с учетом полученной информации. где Р0 – вероятность достижения цели до получения информации; Р1 – вероятность достижения цели после получения информации; IП – прагматическое количество информации. Определить качество информации чрезвычайно сложно, а часто и вообще невозможно. Какие-либо сведения, например исторические, могут десятилетиями считаться ненужными, но при наступлении какого-то события их ценность может резко возрасти. Определить количество информации не только нужно, но и можно. Это прежде всего необходимо для того, чтобы сравнить друг с другом массивы информации, определить, какие размеры должны иметь материальные объекты (бумага, магнитная лента и т. д.), хранящие эту информацию. Можно выделить три основные характеристики, используемые для измерения количества и качества передачи и приема информации: 1. Частотный диапазон – чем выше частота, тем больше информации можно передать в единицу информации (рентгеновское излучение несет больше информации, чем метровый диапазон). 2. Динамический диапазон – чем шире диапазон частот, тем больше информации можно пропустить в единицу времени. 3. Уровень шума – чем меньше помех, тем больше информации можно передать без ее искажения. Для определения количества информации необходимо найти способ представить любую ее форму (символьную, текстовую, графическую) в едином виде. Рассмотрим некоторые критерии применительно к наиболее распространенным формам информации. Звуки. Для звуковых колебаний совпадение формы сигнала на передаче и приеме не является обязательным. Здесь важно сохранение соотношений между амплитудами частотных компонентов, из которых состоит звук. Частотный диапазон: – 16–20 000 Гц – различает высококлассный музыкант; – 30–15 000 Гц – отличное (50–10 000 Гц – хорошее) воспроизведение музыки; – 300—3400 Гц – отличное качество связи для разговора по телефону. Динамический диапазон – логарифм отношения максимального значения средней мощности звука к средней мощности наиболее слабых звуков. Соотношение между звуками различной интенсивности измеряется в логарифмических единицах, так как человеческое ухо сравнивает не абсолютное, а относительное изменение мощности звука. Сравнивая между собой интенсивности воздействия двух звуковых колебаний, имеющих соответственно мощности Р1 (максимальное значение средней мощности звука) и Р2 (средняя мощность наиболее слабых звуков), пользуются выражениями: Например, динамический диапазон телефонной речи составляет 43 дБ; оркестра – 56 дБ; истребителя и рок-группы – 120 дБ. Уровень шума при телефонной связи должен быть не менее чем на 34 дБ ниже средней мощности полезного сигнала. Допустимая величина помехи при музыкальной передаче должна быть снижена еще больше – до 44–47 дБ. Изображения. Чтобы передать с помощью электромагнитных волн некоторое изображение, необходимо каждый элемент этого изображения один за другим превратить в последовательность сигналов. Частотный диапазон можно определить, если задаться временем, за которое мы хотим передать изображение с необходимым нам качеством. Проиллюстрируем это на примере передачи фототелеграммы с помощью телеграфа. Пусть самая маленькая точка на фототелеграмме будет равна 0,25 мм, т. е. разрешающая способность составляет 4 линии на 1 мм. Тогда на стандартном листе бумаги (формат А4) размером 210 х 300 мм можно разместить: 1 мм х 1 мм = 4 х 4 = 16 точек; 210 х 300 х 16 >> 1 000 000 точек. Передавая телеграмму за 3 мин (180 с) и учитывая, что наибольшая частота сигнала возникает при последовательном чередовании самых маленьких (элементарных) белых и темных точек, получим предельную частоту (1 000 000: 180): 2 = 2780 Гц. Двойка в делителе означает, что период предельной частоты равен времени прохождения лучом двух соседних точек – светлой и темной. Самая низкая частота возникает в случае, если на фототелеграмме изображен простейший рисунок – одна половина листа белая, а другая – черная. В результате период наименьшей частоты равен времени прохождения лучом одной строки целиком. Эта наименьшая частота равна числу строк (300 х 4 = 1200), деленному на время передачи листа (180 с), т. е. 6,7 Гц. В отличие от фототелеграфа, телевидение передает подвижные изображения и смена кадров здесь осуществляется 50 раз в секунду. Если считать, что каждый кадр телевизионного изображения – это своеобразная фототелеграмма, легко вычислить частотный диапазон телевизионного изображения. Согласно одному из стандартов, телевизионное изображение имеет 625 горизонтальных строк и размер кадра по высоте относится к размеру по ширине как 3: 4. Если каждую элементарную точку считать квадратной, то общее их число составит 625 х 625 х 3 /4 = 52 х 104 . Учитывая, что число кадров в секунду равно 50 и что наивысшая частота определяется чередованием черных и светлых элементарных точек, предельная частота окажется равной 52 х 104 х 50 /2 – 13 х 106 Гц. Чтобы уменьшить эту весьма большую частоту, в каждом кадре передается только половина строк. Из-за инерции нашего зрения для глаза это оказывается незаметным, зато предельная частота уменьшается вдвое. Самая низкая частота, необходимая для передачи телевизионного изображения, – это частота смены кадров, равная 50 Гц. Таким образом, для передачи телевизионного изображения требуется диапазон частот от 50 Гц до 6,5 МГц. Динамический диапазон как в фототелеграфном, так и в телевизионном изображении почти одинаков. На экране телевизора различимы 8—10 четко разделенных градаций яркости. Установлено, что человеческий глаз различает изменения яркости, если интенсивность света двух соседних ступенек различается примерно в два раза (что в логарифмическом отсчете соответствует 3 дБ). Отсюда при 8—10 градациях динамический диапазон телевизионного изображения составит 24–30 дБ. Для хорошего качества принимаемого телевизионного изображения уровень помех должен быть меньше уровня сигнала по крайней мере на 40 дБ. Передача данных – это частный случай информации, которую принято называть дискретной. Дискретная информация в конечном счете также является цифровой, однако может иметь большее разнообразие форм записи и методов передачи. Рассмотрим взаимосвязь между характеристиками «частотный диапазон» и «скорость передачи данных». В теории электрической связи установлены закономерности, связывающие между собой длительность импульса тока во времени и спектральный состав этого импульса. Теоретически спектр частот импульса, имеющего конечную протяженность во времени t с, бесконечен. Однако практически основная энергия спектральных компонентов сосредоточена в диапазоне частот, не превышающих значение 1/t Гц. Но 1/t – это скорость передачи бинарной информации, исчисляемая количеством бит в секунду. Таким образом, на каждый бит в секунду требуется полоса в 1 Гц. Теперь рассмотрим динамический диапазон. При передаче бинарной информации средняя мощность сигнала неизменна. Следовательно, нет перепада уровней. Соотношение сигнал/помеха зависит от требуемой верности приема. Если при передаче бинарных сигналов допустить возможность в среднем одной ошибки на 105 бит, то при так называемом тепловом шуме соотношение сигнал/помеха должно составлять 18,8 дБ, а при одной ошибке на 106 бит – 19,7 дБ. При импульсных помехах это соотношение зависит от частоты появления импульсов, их амплитуды и других параметров и должно подсчитываться отдельно для каждого случая. Аналоговый сигнал может быть охарактеризован тремя основными параметрами: частотным и динамическим диапазонами, соотношением «сигнал/помеха». Для дискретных сигналов достаточно ограничиться двумя параметрами: диапазоном частот, который можно заменить скоростью передачи двоичных сигналов, и соотношением «сигнал/помеха», оценку которого удобно заменить допустимой ошибкой в приеме двоичного сигнала. Количество и качество информации. Для определения количества информации, содержащейся в сигналах, которые циркулируют в системах управления, необходимо использовать знания из теории информации и теории вероятностей. Под информацией, согласно теории передачи сообщений, разработанной К.Шенноном, необходимо понимать устраненную неопределенность в знаниях о сигнале. В качестве оценок степени неопределенности знаний существуют следующие меры: – синтаксическая – связанная с неопределенностью, с которой можно судить о сигнале до его приема; – структурная, или логарифмическая, – характеризующая информацию по объему (мера Хартли); – вероятностная, или статистическая, – характеризующая информацию по объему и новизне (мера Шеннона). Для систем управления мера Хартли наиболее приемлема, так как она позволяет оценить объемы циркулирующей информации и памяти, необходимой для ее хранения. В качестве меры неопределенности (энтропии) в описании сигнала до его приема принята логарифмическая мера (здесь и далее примем основание логарифма, равное двум, тогда количество информации будет измеряться в битах): Если до получения информации о сигнале вероятность появления отдельных сообщений для наблюдателя равна: то в этом случае источник дискретных сообщений выдает максимальное количество информации: Количество информации, выдаваемой источником непрерывных сигналов, определяют исходя из погрешности квантования: где δ – относительная погрешность квантования по уровню; т – число уровней. В 1948 году американский инженер и математик К.Шеннон предложил формулу вычисления количества информации для событий с различными вероятностями: где Н – количество информации; Р – количество возможных событий; xi – вероятности отдельных событий; i принимает значения от 1 до К. 5 Виды информации. Аналоговая и цифровая информация Информацию можно классифицировать разными способами, и разные науки делают это по-разному. Каждая наука, занимающаяся вопросами, связанными с информацией, вводит свою систему классификации. Для информатики самым главным вопросом является то, каким образом используются средства вычислительной техники для создания, хранения, обработки и передачи информации, поэтому у информатики особый подход к классификации информации. В информатике отдельно рассматривают аналоговую информацию и цифровую . Это важно, поскольку человек благодаря своим органам чувств привык иметь дело с аналоговой информацией, а вычислительная техника, наоборот, в основном работает с цифровой информацией. Человек так устроен, что воспринимает информацию с помощью органов чувств. Свет, звук и тепло — это энергетические сигналы, а вкус и запах — это результат воздействия химических соединений, в основе которого тоже энергетическая природа. Человек испытывает энергетические воздействия непрерывно и может никогда не встретиться с одной и той же их комбинацией дважды. Мы не найдем двух одинаковых зеленых листьев на одном дереве и не услышим двух абсолютно одинаковых звуков — это информация аналоговая. Если же разным цветам дать номера, а разным звукам — ноты, то аналоговую информацию можно превратить в цифровую. Музыка, когда мы ее слышим, несет аналоговую информацию, но стоит только записать ее нотами, как она становится цифровой. Разница между аналоговой информацией и цифровой прежде всего в том, что аналоговая информация непрерывна, а цифровая — дискретна. Если у художника в палитре только одна зеленая краска, то непрерывную бесконечность зеленых цветов листьев он передаст очень грубо и все деревья на картине будут иметь одинаковый цвет. Если у художника три разные зеленые краски, то передача цвета уже будет чуть более точной. Для большей точности передачи аналоговой информации о живой природе художники смешивают разные краски и получают большое количество оттенков. Таким образом, классификацию видов информатики можно представить в виде следующей схемы: 5.2 Процессы, связанные с поиском, хранением, передачей, обработкой и использованием информации, называются информационными процессами. Теперь остановимся на основных информационных процессах. 1. Поиск.
· непосредственное наблюдение; ·общение со специалистами по интересующему вас вопросу; ·чтение соответствующей литературы; ·просмотр видео, телепрограмм; ·прослушивание радиопередач, аудиокассет; · работа в библиотеках и архивах; ·запрос к информационным системам, базам и банкам компьютерных данных; · другие методы. Понять, что искать, столкнувшись с той или иной жизненной ситуацией, осуществить процесс поиска - вот умения, которые становятся решающими на пороге третьего тысячелетия. 2. Сбор и хранение.
3. Передача.
Каналы передачи сообщений характеризуются пропускной способностью
и помехозащищенностью.
4. Обработка.
Обработка информации по принципу "черного ящика" - процесс, в котором пользователю важна и необходима лишь входная и выходная информация, но правила, по которым происходит преобразование, его не интересуют и не принимаются во внимание. "Черный ящик" - это система, в которой внешнему наблюдателю доступны лишь информация на входе и на выходе этой системы, а строение и внутренние процессы неизвестны. 5. Использование.
· Достоверность, полнота, объективность полученной информации обеспечат вам возможность принять правильное решение. · Ваша способность ясно и доступно излагать информацию пригодится в общении с окружающими. · Умение общаться, то есть обмениваться информацией, становится одним главных умений человека в современном мире. · знание назначения и пользовательских характеристик основных устройств компьютера; · Знание основных видов программного обеспечения и типов пользовательских интерфейсов; · умение производить поиск, хранение, обработку текстовой, графической, числовой информации с помощью соответствующего программного обеспечения. · понимание закономерностей информационных процессов; · знание основ компьютерной грамотности; · технические навыки взаимодействия с компьютером; · эффективное применение компьютера как инструмента; · привычку своевременно обращаться к компьютеру при решении задач из любой области, основанную на владении компьютерными технологиями; · применение полученной информации в практической деятельности. 6. Защита.
·доступа к информации лицам, не имеющим соответствующего разрешения (несанкционированный, нелегальный доступ); · непредумышленного или недозволенного использования, изменения
или разрушения
информации. 6.
6.2 Международные системы байтового кодирования 7. Двоичное кодирование графической информацииС 80-х годов интенсивно развивается технология обработки на компьютере графической информации. Компьютерная графика позволяет создавать и редактировать рисунки, схемы, чертежи, преобразовывать изображения (фотографии, слайды и т.д.), представлять статистические данные в форме деловой графики, создавать анимационные модели (научные, игровые и т.д.), обрабатывать «живое видео». Графическая информация на экране монитора представляется в виде (изображения, которое формируется из точек (пикселей). В простейшем случае (черно-белое изображение без градаций серого цвета) каждая точка экрана может иметь лишь два состояния — «черная» или «белая», т.е. для хранения ее состояния необходим 1 бит. Цветные изображения могут иметь различную глубину цвета (бит на точку: 4. 8, 16, 24). Каждый цвет можно рассматривать как возможное состояние точки, и тогда по формуле N = 21 может быть вычислено количество цветов, отображаемых на экране монитора. Изображение может иметь различный размер, который определяется количеством точек по горизонтали и по вертикали. В современных персональных компьютерах обычно используются четыре основных размера изображения или разрешающих способностей экрана: 640*480, 800*600, 1024*768 и 1280*1024 точки. Графический режим вывода изображения на экран определяется разрешающей способностью экрана и глубиной цвета. Полная информация о всех точках изображения, хранящаяся в видеопамяти, называется битовой картой изображения. Для того чтобы на экране монитора формировалось изображение, информация о каждой его точке (цвет точки) должна храниться в видеопамяти компьютера. Рассчитаем необходимый объем видеопамяти для наиболее распространенного в настоящее время графического режима (800*600 точек, 16 бит на точку). Всего точек на экране: 800 * 600 = 480000 Необходимый объем видеопамяти: 16 бит * 480000 = 7680000 бит = 960000 байт = 937,5 Кбайт. Аналогично рассчитывается необходимый объем видеопамяти для других графических режимов. Таблица . Объем видеопамяти для различных графических режимов Современные компьютеры обладают такими техническими характеристиками, которые позволяют обрабатывать и выводить на экран, так называемое «живое видео», т.е. видеоизображение естественных объектов. Видеоизображение формируется из отдельных кадров, которые сменяют друг друга с высокой частотой (не воспринимаемой глазом). Обычно частота кадров составляет 25 Гц, т.е. за 1 секунду сменяется 25 кадров. Двоичное кодирование звуковой информацииС начала 90-х годов персональные компьютеры получили возможность работать со звуковой информацией. Каждый компьютер, имеющий звуковую плату, микрофон и колонки, может записывать, сохранять и воспроизводить звуковую информацию. С помощью специальных программных средств (редакторов аудиофайлов) открываются широкие возможности по созданию, редактированию и прослушиванию звуковых файлов. Создаются программы распознавания речи и появляется возможность управления компьютером при помощи голоса. Звуковой сигнал - это непрерывная волна с изменяющейся амплитудой и частотой. Чем больше амплитуда сигнала, тем он громче для человека, чем больше частота сигнала, тем выше тон. Для того чтобы компьютер мог обрабатывать непрерывный звуковой сигнал, он должен быть дистретизирован, т.е. превращен в последовательность электрических импульсов (двоичных нулей и единиц). При двоичном кодировании непрерывного звукового сигнала он заменяется серией его отдельных выборок — отсчетов. Современные звуковые карты могут обеспечить кодирование 65536 различных уровней сигнала или состояний. Для определения количества бит, необходимых для кодирования, решим показательное уравнение: Таким образом, современные звуковые карты обеспечивают 16-битное кодирование звука. При каждой выборке значению амплитуды звукового сигнала присваивается 16-битный код. Количество выборок в секунду может быть в диапазоне от 8000 до 48000, т.е. частота дискретизации аналогового звукового сигнала может принимать значения от 8 до 48 Кгц. При частоте 8 Кгц качество дискретизированного звукового сигнала соответствует качеству радиотрансляции, а при частоте 48 Кгц - качеству звучания аудио-CD. Следует также учитывать, что возможны как моно-, так и стерео-режимы. Можно оценить информационный объем моном аудио файла длительностью звучания 1 секунду при среднем качестве звука (16 бит, 24 Кгц). Для этого количество бит на одну выборку необходимо умножить на количество выборок в 1 секунду: 16 бит * 24000 = 384000 бит = 48000 байт или 47 Кбайт 8 Определить понятие "количество информации" довольно сложно. В решении этой проблемы существует два основных подхода. Исторически они возникли почти одновременно. В конце 1940 г. один из основоположников кибирнетиеи американский математик Клож Шенон развил вероятностный подход к измерению количества информации, а работы по созданию ЭВМ привели к "объемному подходу". 9 10
12 Компьютер - это электронное вычислительное устройство. Существуют различные классификации компьютеров - по назначению, по технической совместимости, по программной совместимости, по размерам и т.д. Мы приведем классификацию, которую используют ведущие производители компьютеров:
СуперкомпьютерыСуперкомпьютеры - это большие компьютеры, которые создаются для задач, требующих больших вычислений, таких как определение координаты далекой звезды или галактики, моделирования климата, составления карт нефтяных и газовых месторождений и т.д. Суперкомпьютеры - это штучный продукт, они создаются для решения конкретных задач заказчика. Но, составляющие элементы суперкомпьютера являются серийными. Суперкомпьютеры состоят из сотен процессоров, имеют большую оперативную память и высокое быстродействие. Они занимают большие залы по площади равные 2-3 баскетбольным площадкам. Многие суперкомпьютеры создаются по кластерной технологии (Cluster). По этой технологии компьютер строится из нескольких десятков серверов, которые работают как единая система. Кластерные суперкомпьютеры легко масштабируются и позволяют создавать дублирующие вычислительные линии, что бывает необходимым, когда вычисления, например, моделируют процессы в реальном времени и сбои недопустимы. Быстродействие компьютеров измеряется в единицах, которые называются ФЛОПС (FLOPS - Floating Point Operations Per Second). ФЛОПС - количеством арифметических операций в секунду. Кратные единицы: МегаФЛОПС, ГигаФЛОПС и ТераФЛОПС. МегаФЛОПС (МФЛОПС) - 1 миллион арифметических операций в секунду. ГигаФЛОПС (ГФЛОПС) - 1 миллиард арифметических операций в секунду. ТераФЛОПС (ТФЛОПС) - 1 триллион арифметических операций в секунду. МэйнфреймыМэйнфреймы - это большие компьютеры, с высоким быстродействием и большими вычислительными ресурсами, которые могут обрабатывать большое количество данных и выполнять обработку запросов одновременно нескольких тысяч пользователей. Мэйнфреймы выполнены с избыточными техническими характеристиками, что делает их очень надежными. Физически мэйнфреймы имеют один корпус - системный блок размером со шкаф, к которому могут подключаться терминалы (терминал состоит из монитора и клавиатуры). используются мэйнфреймы для хранения и обработки больших баз данных, а также крупных web-узлов с большим количеством одновременных обращений. СерверыСерверы - это компьютеры, которые служат центральными узлами в компьютерных сетях. На серверах устанавливается программное обеспечение, позволяющее управлять работой сети. На серверах хранится информация, которой могут пользоваться все компьютеры, подключенные к сети. От сервера зависит работоспособность всей сети и сохранность баз данных и другой информации, поэтому серверы имеют несколько резервых дублирующих систем хранения данных, электропитания, возможность замены неисправных блоков без прерывания работы. Серверы могут содержать от нескольких процессоров до нескольких десятков процессоров. По технологической совместимости серверы бывают IBM-совместимыми и Macintosh-совместимыми. Персональные компьютерыПерсональные компьютеры - это компьютеры, которые могут использоваться одним человеком автономно, независимо от других компьютеров. Персональные компьютеры могут быть настольными, переносными и карманными. По технологической и программной совместимости персональные компьютеры бывают IBM-совместимыми и Macintosh-совместимыми. Настольные персональные компьютерыНастольные персональные компьютеры, как это ясно из названия, используются в стационарных условиях комнаты или кабинета и располагаются на рабочем столе. Настольные компьютеры состоят из нескольких блоков - системного блока, монитора, клавиатуры и мышки, которые соединены между собой. Системные блоки бывают горизонтальными и вертикальными. В некоторых моделях монитор и системный блок совмещены Переносные персональные компьютерыКроме настольных компьютеров существуют переносные компьютеры. Первые переносные компьютеры называли лаптопы (laptop - лежащий на коленях). Современные переносные компьютеры называют английским словом "ноутбук" (notebook) или блокнотный компьютер. Ноутбук имеет жидкокристаллический дисплей, клавиатуру, совмещенную с системным блоком, дисковод для 3,5" дискет и оптический дисковод (CD-ROM, CD-RW или комбинированный DVD+RW). Кроме того, обязательно имеется манипулятор для управления курсором. По размеру ноутбуки такие, что легко помещаются в портфель. Наладонные персональные компьютерыКарманные переносные компьютеры помещаются на ладони и их так и называют - наладонники или по-английски - палмтоп, что означает – лежащий на ладони. В этих компьютерах программы занесены в микросхемы. В набор программ входит операционная система, текстовый и графический редакторы, система баз данных и электронные таблицы, программы для работы в Интернете. Эти компьютеры позволяют обрабатывать документы, вести базы данных, производить вычисления, распечатывать документы, записывать их на дискету, работать в Интернете, но установить новые программы нельзя. Кроме палмтопов есть карманные компьютеры, которые называются PDA - personal digital assistent - личный цифровой ассистент. Эти компьютеры не имеют клавиатуры. Они оснащены сенсорным экраном и информация вводится на экран при помощи специальной указки-стека. Общее название карманных компьютеров - handhold computers - компьютеры, которые держат в руках. Переносной и карманный компьютеры удобны для использования в поездках. 13 Архитектура вычислительной машины (Архитектура ЭВМ , англ. Computer architecture ) — концептуальная структура вычислительной машины[1] , определяющая проведение обработки информации и включающая методы преобразования информации в данные и принципы взаимодействия технических средств и программного обеспечения.[2] В настоящее время наибольшее распространение в ЭВМ получили 2 типа архитектуры: принстонская ( фон Неймана ) и гарвардская . Обе они выделяют 2 основных узла ЭВМ: центральный процессор и память компьютера. Различие заключается в структуре памяти: в принстонской архитектуре программы и данные хранятся в одном массиве памяти и передаются в процессор по одному каналу, тогда как гарвардская архитектура предусматривает отдельные хранилища и потоки передачи для команд и данных. В более подробное описание, определяющее конкретную архитектуру, также входят: структурная схема ЭВМ, средства и способы доступа к элементам этой структурной схемы, организация и разрядность интерфейсов ЭВМ, набор и доступность регистров, организация памяти и способы её адресации, набор и формат машинных команд процессора, способы представления и форматы данных, правила обработки прерываний. По перечисленным признакам и их сочетаниям среди архитектур выделяют:
Принципы фон Неймана.Принципы фон Неймана - общие принципы, положенные в основу современных компьютеров: 14-19 ппара́тное обеспече́ние [1] (англ. hardware (́ha:dwεə), жарг. «железо») — электронные и/или механические части вычислительного устройства (компьютер, ЭВМ, микроЭВМ и тд.), исключая его программное обеспечение и данные (информация, которую он хранит и обрабатывает). Аппара́тное обеспече́ние [2] - комплекс электронных, электрических и механических устройств, входящих в состав системы или сети. Аппаратное обеспечение включает: - компьютеры и логические устройства; - внешние устройства и диагностическую аппаратуру; - энергетическое оборудование, батареи и аккумуляторы. Персональным компьютером (ПК) называют электронную вычислительную машину (ЭВМ), рассчитанную на одного пользователя и управляемую одним человеком. Современные ПК характеризуются: · небольшими размерами (ПК размещается на рабочем столе, оставляя место для телефонного аппарата, книг, тетрадей и т.д.), · возможностью для пользователя работать с ПК лично, без посредничества профессионального программиста, · малым потреблением электрической энергии, · удобством и комфортностью общения пользователя и ПК. Благодаря развитию локальных и глобальных вычислительных сетей пользователь ПК может по ним получать любые справки из любых библиотек, информационных центров как своего региона, так и страны и всего мира. ЭВМ выполняют две основные функции: · обработка и хранение информации · обмен информацией с внешними объектами. Выполнение этих функций осуществляется с помощью двух компонентов ЭВМ: программного обеспечения и аппаратного обеспечения. Под аппаратным обеспечением понимают обычно все узлы, модули и блоки, составляющие компьютер или компьютерную систему. В современных компьютерах используется так называемая «открытая архитектура», т.е. состав аппаратного обеспечения компьютера можно изменить, поменяв один из модулей, или расширить, вставив дополнительный модуль. Аппаратное обеспечение современных ПК включает в себя следующее: · системный блок, · устройства ввода информации в ПК (например, клавиатура), · устройства вывода информации из ПК (например, монитор). Системный блок, клавиатура и монитор вместе составляют персональный компьютер в минимальной конфигурации, т.е. позволяют работать с информацией на компьютере (рис 1). Корпуса системных блоков бывают нескольких типов: вертикальный (tower), горизонтальный (desktop), моноблок (системный блок и монитор в одном корпусе). Существуют переносные компьютеры типа Notebook (ноутбук), предназначенные для работы от автономной батареи. Внутри системного блока располагаются: · источник питания, · материнская (системная) плата · процессор, · внутренняя память, · жесткий диск, · накопитель гибких дисков. В системном блоке современных ПК почти всегда присутствуют также: · накопитель CD–ROM, · звуковая карта, · сетевая карта. Структурная схема ПК представлена на рис 2.
Рис.2. Структурная схема ПК. . ПроцессорПроцессор – это «мозг» любого компьютера. Процессор производит все вычисления (арифметические и логические операции), взаимодействует с памятью и осуществляет управление всеми компонентами ПК. Таким образом, процессор включает в себя следующие части: · арифметико-логическое устройство (АЛУ), · устройство управления (УУ). · внутренние регистры – ячейки памяти внутри кристалла процессора, предназначенные для хранения промежуточной информации. Важнейшими характеристиками процессора, определяющими его производительность (количество операций в единицу времени) являются: тактовая частота, разрядность, объем адресуемой памяти. Тактовая частота определяет скорость выполнения операций в процессоре. При повышении тактовой частоты увеличивается производительность процессора. Современные процессоры имеют тактовые частоты 400-1000 МГц и более. Разрядность обрабатываемых данных – количество бит информации, одновременно вводимой в процессор и выводимой из него. Чем больше разрядность, тем больше информации может обработать процессор в единицу времени. Разрядность современных процессоров – 32 и 64 бит. Объем адресуемой памяти (адресное пространство)– максимальное число ячеек основной памяти, которое может быть непосредственно адресовано процессором. Т.к. современные процессоры имеют размер шины адреса 32 бита, то объем адресуемой памяти у них 4 Гбайт. 2. Внутренняя памятьВнутренняя память – это память, расположенная на материнской плате. Внутреннюю память составляют два устройства: ОЗУ и ПЗУ. ОЗУ (оперативное запоминающее устройство ) предназначено для хранения текущих программ и текущей информации, т.е. программ и информации, с которыми в данный момент работает пользователь. В англоязычной литературе ОЗУ называют RAM (randomaccessmemory – память случайного доступа). Основными характеристиками ОЗУ являются: объем и время доступа. Объем ОЗУ (ед. измерения – Мбайт) – это общее количество ячеек памяти на всех кристаллах ОЗУ. В каждой ячейке может хранится либо «1» либо «0». Ячейки в кристаллах памяти объединены в блоки по 8 ячеек, и в каждый такой блок таким образом можно записать байт информации. От объема ОЗУ во многом зависит скорость работы компьютера: чем больше объем ОЗУ, тем быстрее работает компьютер. Время доступа – время, за которое процессор может прочитать содержимое ячейки ОЗУ или записать в нее информацию. Чем меньше время доступа, тем быстрее общается процессор с ОЗУ и тем быстрее работает компьютер. ОЗУ является энергозависимой памятью, т.е. при отключении питания оно «забывает» всю записанную в него информацию. ПЗУ (постоянное запоминающее устройство ) – хранит программу первоначальной загрузки компьютера, информацию о системной плате и расположенных на ней устройствах, информацию о подключенных устройствах внешней памяти, текущее время др. Эта память является энергонезависимой, т.е. при отключении питания информация в ПЗУ не стирается. Информация в ПЗУ записывается один раз и затем уже не изменяется, хотя в современных компьютерах часть ПЗУ – так называемая flash-память, может быть перезаписана. При этом пользователь лишь запускает специальную программу, периодически поставляемую производителями материнских плат, и содержимое flash-памяти обновляется. Flash–память как и все ПЗУ энергонезависима, т.к. она потребляет очень мало энергии и питается от отдельной батареи независимо от того, включен или выключен компьютер. Кроме того, содержимое еще одной части ПЗУ (CMOS-памяти), содержащей данные о конфигурации компьютера, настройках, текущем времени и др., может быть изменено пользователем вручную. Питается CMOS-память обычно от той же батареи, что и flash-память. 3. Внешняя памятьВнешняя (периферийная) память – это память, расположенная вне материнской платы. На устройствах внешней памяти хранятся тексты программ, документы и другая информация. Эту память часто называют долговременной. Если необходимо работать с какой-то программой, то она сначала копируется с устройств внешней памяти в оперативную память и затем запускается. Наиболее часто внешняя память ПК представлена накопителями на гибких магнитных дисках и накопителями на жестких дисках Накопители на гибких дисках (дискетах). Гибкие диски позволяют переносить документы и программы с одного компьютера на другой, хранить наиболее ценную информацию с жесткого диска. Наиболее распространены гибкие диски (дискеты) размером 3,5 дюйма емкостью 1,44 Мбайт. Накопитель на жестком диске (винчестер) – предназначен для постоянного хранения информации, используемой при работе с компьютером: программ операционной системы, часто используемых программ, документов и т.д. Основными характеристиками винчестеров являются емкость и скорость работы диска. Первые винчестеры для компьютеров IBMPC/XT имели емкость 10 Мбайт, современные винчестеры имеют емкости до 50 Гигабайт и больше. Скорость работы диска определяется временем доступа к информации. Скорость обмена информацией с винчестером значительно ниже, чем с ОЗУ. Тем не менее, в сравнении с другими видами внешней памяти винчестеры имеют самое высокое быстродействие. Накопители на оптических дисках (CD–ROM, накопители на компакт дисках) – устройство, аналогичное лазерному проигрывателю, обеспечивает ввод информации с компакт-дисков, записанных в специальном формате. Объем одного диска – 640 Мбайт. Существует много других видов накопителей, используемых на практике реже: накопители на магнитной ленте (стриммеры ), накопители на магнитооптических дисках, ZIP - накопители, накопители MiniDisk и др. 4. Материнская плата, шина и периферийные устройстваЕсли заглянуть внутрь системного блока, то первое, что бросится в глаза — это большая плата со множеством микросхем и подключенных к ней с помощью разъемов плат и блоков меньших размеров. Эту плату называют системной (материнской). На материнской плате располагаются: процессор, ПЗУ, ОЗУ, видеоадаптер (формирует сигнал для монитора), адаптер жесткого диска (управляет работой жесткого диска), адаптер гибкого диска (управляет работой гибкого диска). Все блоки ПК, электрически связаны между собой с помощью системной шины , расположенной также на материнской плате в системном блоке. Таким образом, шина обеспечивает техническую связь и взаимодействие всех устройств и блоков ПК, включая периферийные устройства. Периферийными называют все устройства компьютера, расположенные вне материнской платы. Часть устройств хоть и расположены вне материнской платы, но также как и материнская плата находятся в системном блоке: винчестер, дисководы, CD–ROM, звуковая карта, сетевая карта и некоторые др. За пределами системного блока расположены устройства, обеспечивающие ввод информации в ЭВМ и устройства вывода информации из ЭВМ. 5. Устройства ввода информации в ПККлавиатура – устройство, с помощью которого осуществляется ввод данных и команд в ПК. Клавиатура снабжена специальным кабелем, посредством которого она подключается к специальному разъему на системном блоке. Мышь – широко используемое в настоящее время устройство ввода информации. Позволяет быстро отметить какую-либо точку на экране монитора. Работа с некоторыми программами без мыши практически невозможна. Сканер – устройство ввода графической информации (фотографий, изображений и др.) в компьютер. Существуют и другие устройства ввода информации в компьютер: цифровые фотоаппараты, манипуляторы «световое перо» и пр. Некоторые манипуляторы, функционально аналогичны или дополняют мышь: трекбол, джойстик, виртуальный шлем и др. 6. Устройства вывода информации из ПКМонитор (дисплей ) – устройство вывода алфавитно-цифровой и графической информации ПК. Монитор является основным техническим средством организации общения между пользователем и компьютером. Внешне напоминает телевизор. Современные мониторы, соответствующие принятым стандартам на допустимое электромагнитное излучение (ТСО–95, ТСО-99), безопасны для пользователей, хотя при этом время пребывания за экраном включенного монитора обычно нормируется (до 4 часов). Качество изображения монитора определяют следующие характеристики: размер диагонали, разрешение, палитра, частота кадров. Изображение на экране монитора формируется с помощью точек (пикселей). Количество пикселей по горизонтали и вертикали и определяет разрешение экрана. Типичные значения: 800´600 для 14-дюймового монитора, 1600´1200 для 19-дюймового. Чем больше размер диагонали экрана и выше разрешение, тем качественнее изображение, так как лучше прорисовываются мелкие детали. Цветовую гамму (палитру) выводимого изображения определяет размер видеопамяти – чем больше ее объем, тем больше цветов и оттенков может вывести монитор. Для обычного пользователя, как правило, достаточно 16 тысяч цветов и оттенков. Комфортность работы за монитором во многом определяет такая характеристика монитора, как максимальная частота смены кадров (обычные значения: 75–100Гц, т.е. за секунду изображение на экране обновляется 75-100 раз). Принтер – устройство вывода, обеспечивающее печать выдаваемой компьютером информации. В качестве носителя чаще всего используется бумага. Принтеры делятся на следующие типы: матричные, струйные, лазерные. Наиболее простые принтеры – матричные (дешевые, качество изображения низкое, уровень шума высокий). Принцип печати таких принтеров следующий: печатающая головка содержит ряд тонких металлических стержней (иголок). Головка движется вдоль печатаемой строки, а стержни в нужный момент ударяют по бумаге через красящую ленту. В струйных принтерах изображение формируется микрокаплями специальных чернил, выдуваемых на бумагу с помощью сопел. Такие принтеры обеспечивают высокое качество при печати на специальную бумагу, удобны и для цветной печати. Однако струйные принтеры дороже матричных и требуют тщательного ухода и обслуживания. Лазерные принтеры обеспечивают самое высокое качество печати. В этих принтерах используется принцип ксерографии: изображение переносится на бумагу со специального барабана, к которому электрически притягиваются частички краски, только в отличие от ксерокса печатающий барабан электризуется с помощью лазера по командам компьютера. Графопостроитель (плоттер ) – устройство вывода, позволяющее получить высококачественные чертежи. 7. Устройства ввода–выводаРяд периферийных устройств могут как вводить, так и выводить информацию из компьютера. Устройствами ввода–вывода являются, например, почти все рассмотренные выше накопители на дисках (за исключением CD–ROM) и ряд других устройств, которые часто представлены в современном компьютере. Чтобы в компьютер можно было вводить речь и другие звуки, он должен иметь в своем составе звуковую карту (soundcard) с подключенным к ней микрофоном. Выводится звук на акустические системы или наушники, которые также подключаются к звуковой карте. Для ввода видеосигналов в ПК и преобразования информации из компьютера в видеосигнал (например, для записи на видеомагнитофон) существуют специальные устройства, называемые графические карты (videocard), часто содержащие в своем составе TV–тюнер, позволяющий принимать телевизионные передачи и отображать их на экране монитора. Для связи нескольких компьютеров в локальную компьютерную сеть каждый из этих компьютеров должен быть оснащен сетевой картой , которая позволяет осуществлять быстрый обмен (ввод–вывод) информацией между компьютерами сети. Объединяются такие компьютеры в сеть с помощью кабелей. Модем – устройство ввода–вывода, обеспечивающее подключение компьютера к телефонной линии с целью передачи и приема данных, когда два компьютера (источник и приемник) находятся на значительном удалении друг от друга. 20. Компью́терная па́мять (устройство хранения информации , запоминающее устройство ) — часть вычислительной машины, физическое устройство или среда для хранения данных, используемых в вычислениях, в течение определённого времени. Память, как и центральный процессор, является неизменной частью компьютера с 1940-х. Память в вычислительных устройствах имеет иерархическую структуру и обычно предполагает использование нескольких запоминающих устройств, имеющих различные характеристики. В персональных компьютерах «памятью» часто называют один из её видов — динамическая память с произвольным доступом (DRAM), — которая в настоящее время используется в качестве ОЗУ персонального компьютера. Задачей компьютерной памяти является хранение в своих ячейках состояния внешнего воздействия, запись информации. Эти ячейки могут фиксировать самые разнообразные физические воздействия (см. ниже). Они функционально аналогичны обычному электромеханическому переключателю и информация в них записывается в виде двух чётко различимых состояний — 0 и 1 («выключено»/«включено»). Специальные механизмы обеспечивают доступ (считывание , произвольное или последовательное) к состоянию этих ячеек. Процесс доступа к памяти разбит на разделённые во времени процессы — операцию записи (сленг.прошивка , в случае записи ПЗУ) и операцию чтения, во многих случаях эти операции происходят под управлением отдельного специализированного устройства — контроллера памяти. Также различают операцию стирания памяти — занесение (запись) в ячейки памяти одинаковых значений, обычно 0016 или FF16 . Наиболее известные запоминающие устройства, используемые в персональных компьютерах: модули оперативной памяти (ОЗУ), жёсткие диски (винчестеры), дискеты (гибкие магнитные диски), CD- или DVD-диски, а также устройства флеш-памяти. Магнитооптические диски являются одним из самых надежных способов резервного копирования. МО-приводы при записи изменяют саму структуру вещества ферромагнетиков, из которых и состоят магнитооптические накопители, позволяя создать диск с невероятным сроком хранения без потери данных. Причем такие накопители на магнитооптических дисках слабо подвержены не только механическим повреждениям, но и магнитным. Даже намеренно испортить магнитооптический носитель сложно, а случайная потеря информации практически невозможна. Эти качества делают такой способ хранения данных незаменимым средством для надежного бэкапа критически важных данных. Даже несмотря на высокую стоимость, вызванную сложностью такого технического решения. Магнитооптический диск изготавливается с использованием ферромагнетиков. Первые магнитооптические диски были размером с 5,25" дискету, потом появились диски размером 3,5". Запись на магнитооптический диск осуществляется по следующей технологии: излучение лазера разогревает участок дорожки выше температуры точки Кюри, после чего электромагнитный импульс изменяет намагниченность, создавая отпечатки, эквивалентные питам на оптических дисках. Считывание осуществляется тем же самым лазером, но на меньшей мощности, недостаточной для разогрева диска: поляризованный лазерный луч проходит сквозь материал диска, отражается от подложки, проходит сквозь оптическую систему и попадает на датчик. При этом в зависимости от намагниченности изменяется плоскость поляризации луча лазера (эффект Керра) что и определяется датчиком. Преимущества
Недостатки
Оптический диск (англ. optical disc ) — собирательное название для носителей информации, выполненных в виде дисков, чтение с которых ведётся с помощью оптического излучения. Диск обычно плоский, его основа сделана из поликарбоната, на который нанесён специальный слой, который и служит для хранения информации. Для считывания информации используется обычно луч лазера, который направляется на специальный слой и отражается от него. При отражении луч модулируется мельчайшими выемками (питами, от англ. pit — ямка , углубление ) на специальном слое, на основании декодирования этих изменений устройством чтения восстанавливается записанная на диск информация. 21 Файлы и каталогиВ большинстве операционных систем (включая систему Linux) используется понятие файла (file). Файл -- это некоторый "кусок" информации, которому дано имя, называемое именем файла (filename). Примерами файлов могут служить работа по истории, послание, пришедшее по электронной почте, а также исполняемая программа. Нужно знать, что на диске информация сохраняется только в виде отдельных файлов. Файлы различаются по своим именам. Например, свой файл с работой по истории вы можете назвать history-paper. В этих случаях имя файла выбирается таким, чтобы оно каким-то образом характеризовало содержимое данного файла. Для имен файлов нет такого стандартного формата, какой есть в системе MS-DOS и в некоторых других операционных системах. В принципе, имя файла может содержать любые символы (за исключением символа / -- смысл этого символа будет разъяснен ниже). Длина имени файла ограничена 256 знаками. Понятие файла тесно связано с понятием каталога (directory). Каталог -- это набор файлов. Каталог может рассматриваться как "папка", в которой содержится много различных листов. Каталогам даются имена, по которым их можно распознавать. Кроме этого, каталоги образуют структуру типа дерева; иными словами, каталоги могут содержать внутри себя другие каталоги. Как следствие, к файлу можно обращаться, указывая путь (path) к этому файлу. Путь состоит из имени каталога, за которым пишется имя файла. Пусть, например, пользователь Лэрри имеет каталог papers, в которой содержится три файла: history-final, english-lit, masters-thesis. Каждый из этих трех файлов содержит информацию о трех работах, которыми в данный момент занимается Лэрри. Чтобы обратиться к файлу english-lit, Лэрри может указать путь к файлу, например, следующим образом: papers/english-litПри указании пути, как можно увидеть, имена каталога и файла разделяются символом /. По этой причине имена файлов не могут содержать этот символ. Пользователям системы MS-DOS будет знакома эта система обозначений, хотя в системе MS-DOS вместо символа / используется так называемый "обратный слэш" (\). Как указывалось выше, каталоги могут быть вложены друг в друга. Пусть, например, в одном каталоге papers имеется другой каталог с именем notes. Каталог notes содержит файлы math-notes и cheat-sheet. Путь к файлу cheat-sheet представляется следующим образом: papers/notes/cheat-sheetМы видим, что путь к файлу напоминает описание пути в лабиринте. Каталог, который содержит данный подкаталог, обычно называется родительским каталогом (parent directory). В данном примере каталог papers является родительским для каталога notes. Тип файлаЛегко понять, что структурированные файлы предоставляют системе ипрограммисту информацию о структуре хранящихся данных, но не дают никакихсведений о смысле и форме представления этих данных. Например, с точки зрения системы исходный текст программы на языкеC и документ в формате LaTeX совершенно идентичны:и то и другое представляет собой текстовый файл (или, если угодно,файл с записями переменной длины). Однако, если мы попытаемся податьнаш документ на вход C -компилятора, мы получиммножество синтаксических ошибок и никакого полезного результата. Этот пример показывает, что во многих случаях оказывается желательно связать с файлом - неважно, структурированный ли это файл или байтовый поток - какую-то метаинформацию: в каком формате хранятся данные, какие операции над ними допустимы, а иногда и сведения о том, кому и зачем эти данные нужны. По-видимому, наиболее общим решением этой проблемы был бы объектно-ориентированный подход, в котором файл данных рассматриваетсякак объект, а допустимые операции - как методы этого объекта. Ни в однойиз известных авторам ОС эта идея в полной мере не реализована, нопользовательские интерфейсы многих современных ОС предоставляютвозможность ассоциировать определенные действия с файлами различныхтипов. Так, например Explorer - пользовательская оболочка Windows 95 и Windows NT 4.0 - позволяет связатьту или иную программу с файлами, имеющими определенное расширение,например, программу MS Word с файлами, имеющими расширение.DOC. Когда пользователь нажимает левой кнопкой мыши на иконке,представляющей такой файл, то автоматически запускается MS Word .Эти же ассоциации доступны и из командной строки - можно напечататьstart Доклад.DOC и опять-таки запустится MS Word . Такое связывание очень просто в реализации и реализуется не тольков Explorer , но и в простых текстовых оболочках вродеNorton Commander . От ОС при этом требуется толькодать возможность каким-то образом различать типы файлов. Первые попытки ассоциировать с файлом признак типа былисделаны еще в 60 гг. При этом идентификатор типадобавлялся к имени файла в виде короткой, но мнемоническойпоследовательности символов - расширения (extension ).В большинстве современных ОС расширение отделяется от именисимволом '.', но проследить истоки этой традиции авторам неудалось. При этом, например, файлы на языке C будут иметьрасширение ".c", на C++ - ".C",а документы в формате LaTeX - ".tex". В ОС семейства Unix имя файла может содержать несколькосимволов '.', и, таким образом, файл может иметь несколькокаскадированных расширений. Например, файл "main.C" - этопрограмма на языке C++ ; "main.C.gz" - это программана языке C++ , упакованная архиватором GNU Zip сцелью сэкономить место; "main.C.gz.crypt" - это программа, которуюупаковали и потом зашифровали, чтобы никто посторонний не смог ее прочитать;наконец, "main.C.gz.crypt.uue" - это упакованная и зашифрованнаяпрограмма, преобразованная в последовательность печатаемых символовкода ASCII, например, для пересылки по электронной почте. В принципе расширения являются вполне приемлемым и во многихотношениях даже очень удобным способом идентификации типа файла.Одно из удобств состоит в том, что для использования этого методане нужно никаких или почти никаких усилий со стороны ОС: просто программы договариваются интерпретировать имя файла определенным образом. Например, стандартный драйвер компилятора в системах семействаUnix - программа cc - определяет тип файла именно порасширению. Командная строка Example: cc main.C c-code.c asm-code.s obj-code.o\ library.a -o programбудет интерпретироваться следующим образом: main.C : текст на языке C++ . Его нужно пропуститьчерез препроцессор и откомпилировать компилятором C++ ,а затем передать то, что получится, редактору связей.Большинство компиляторов в Unix генерируют кодна ассемблере, то есть вывод компилятора еще нужно пропуститьчерез ассемблер. c-code.c : текст на языке C . Он обрабатывается,так же, как и C++ -программа, только вместокомпилятора C++ используется обычный компилятор C . asm-code.s : программа на языке ассемблера. Ее нужнообработать ассемблером и получить объектный модуль. obj-code.o : объектный модуль, который непосредственноможно передавать редактору связей. library.a : объектная библиотека, которую нужно использоватьдля разрешения внешних ссылок наравне со стандартными библиотеками. Многие ОС, разработанные в 70-е гг., такие как RT-11 ,RSX-11 , VAX/VMS , CP/M , навязывают программистуразделение имени на собственно имя и расширение, интерпретируя точкув имени файла как знак препинания. В таких системах имя может содержатьтолько одну точку и соответственно иметь только одно расширение.Напротив, в ОС нового поколения - OS/2 , Windows NT и даже в Windows 95 - реализована поддержка имен файловсвободного формата, которые могут иметь несколько каскадированныхрасширений, как и в Unix . Однако никакие средства операционной системы не могут навязать прикладнымпрограммам правил выбора расширения для файлов данных. Это приводит кнеприятным коллизиям. Например, почти все текстовые процессоры отЛексикон до Word 7.0 включительно используютрасширение файла .doc (сокращение от document ),хотя форматы файлов у различных процессоров и даже у разных версийодного процессора сильно различаются. Другая проблема связана с исполняемыми загрузочными модулями. Обычносистема использует определенное расширение для исполняемых файлов.Так, VMS , MS/DR DOS , OS/2 , MS Windows и Windows NT используют расширение .exe: сокращение отexecutable (исполняемый ).Однако по мере развития системы формат загрузочного модуля может изменяться.Так, например, OS/2 v3.0 Warp поддерживает по крайней мерепять различных форматов загрузочных модулей.
Для исполнения последних двух типов программ OS/2 создаетзадачу, работающую в режиме совместимости с 8086 .Эта задача запускает копию ядра DOS и, если этонеобходимо, копию MS Windows , которые уже выполняют загрузкупрограммы. Загрузочные модули всех трех ``родных'' форматов загружаютсясистемой непосредственно. Так или иначе загрузчик должен уметь правильно распознавать все форматы.При этом он не может использовать расширение файла: файлы всех перечисленныхформатов имеют расширение .EXE. Похожая ситуация имеет место в системах семейства Unix ,где бинарные загрузочные модули и командные файлы вообще не имеют расширения.При этом большинство современных версий системы также поддерживает несколькоразличных исторически сложившихся форматов загрузочного модуля. Разработчики Unix столкнулись с этой проблемой еще в 70 гг.В качестве решения они предложили использоватьмагические числа (magic number ) - соглашение о том, чтофайлы определенного формата содержат в начале определенный байт илипоследовательность байтов. Первоначально это были численные коды;файл /etc/magic содержал коды, соответствующие известнымтипам файлов. Позднее в качестве магических чисел стали использоватьсядлинные текстовые строки. Так, например, изображения в форматеCompuserve GIF 87a должны начинаться с символов GIF87a. Легко понять, что магические числа ничуть не лучше расширений,а во многих отношениях даже хуже. Например, пользователь,просмотрев содержимое каталога, не может сразу узнатьтипы содержащихся в ней файлов. Еще хуже ситуация, когда расширениефайла не соответствует его реальному типу. Это будет вводить взаблуждение не только пользователя, но и некоторые программы, полагающиесяпри определении формата на расширение вместо магического числа. С длинными мнемоническими текстовыми строками может быть связанаеще одна забавная проблема, которая может иметь неприятные последствия.Например, текстовый файл следующего содержания: Example: GIF87a -- это очень плохой форматхранения изображений.будет воспринят некоторыми программами как изображение в форматеCompuserve GIF 87a , каковым он, безусловно, не является. Пытаясь как-то решить проблему идентификации типа файла, разработчикиMacintoch отказались как от расширений, так и от магическихчисел. В MacOS каждый файл состоит из двух частей иливетвей (forks ): ветви данных (data fork ) и ветвиресурсов (resource fork ). Кроме идентификатора типа файла,ветвь ресурсов хранит информацию о:
Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами. В широком смысле понятие "файловая система" включает:
23. Программное обеспечение — это совокупность программ, позволяющих осуществить на компьютере автоматизированную обработку информации. Программное обеспечение делится на системное (общее) и прикладное (специальное). Класификация Без программ (совокупности, команд, которые должен выполнять процессор) компьютер - не более чем простое переплетение бесполезных электронных схем. Программное обеспечение (softwаrе) на данный момент составляет сотни тысяч программ, которые предназначены для обработки самой разнообразной информация с самыми различными целями. В зависимости от того, какие задачи выполняет то или иное программное обеспечение можно разделять все программное обеспечение на несколько групп:
К Базовому программному обеспечению относят операционные системы и оболочки операционных систем. Операционной системой называют совокупность программ, которая координирует работу компьютера и управляет размещением программ и данных в оперативной памяти компьютера, интерпретирует команды, управляет периферийными устройствами, распределяет аппаратные ресурсы. Операционная система (ОС) - "режиссер" компьютерного действа. Оболочки операционных систем обеспечивают удобный интерфейс (способ общения) для пользователя, программиста и компьютера. Операционных систем и оболочек операционных систем довольно много, они различаются интерфейсом, набором возможностей, способами защиты от вирусов (программ, которые портят другие программы), способами управления ресурсами памяти, периферийными устройствами. Различия ОС обоснованы обычно свойствами и назначением самих ЭВМ, спецификой их использования. Можно назвать наиболее распространенные операционные системы, это: MS DOS, UNIX, Windows 95 и далее, WindowsNT и др. Оболочки операционных систем дают возможность вводить команды операционных систем в более удобном для человека виде, с помощью выбора команд в предложенном оболочкой меню. Из наиболее распространенных оболочек можно назвать оболочки Norton Commander, DOS Shell, Windows2, 3.0, 3.11 и др. К трансляторам относят программы, которые преобразуют команды программ, написанных на языках высокого уровня, таких как Qbasic, Pascal, С, Prolog, Ada и других, в команды записанные в машинных кодах, использующих двоичный алфавит. Эти программы можно назвать программами-переводчиками с языков программирования высокого уровня на машинный язык. Трансляторы бывают двух видов: интерпретаторы и компиляторы. Оба вида трансляторов выполняют одну и туже операцию, но делают это по-разному. Интерпретаторы, преобразуя команду, записанную на каком либо языке программирования, в команду на машинном языке, сразу же дают указание машине выполнить ее, не записывая перевод. Так происходят с каждой командой программы. Программа будет выполнена машиной только с наличием интерпретатора, который от строки к строке переводит команды и сразу же их выполняет. Поэтому, когда встанет необходимость опять выполнить данную программу, то сделать это можно будет только имея интерпретатор языка программирования на котором она записана, что не всегда удобно. Компилятор же не выполняет команды, а просто переводит всю программу на машинный язык и записывает свой перевод в специальную, так называемую, исполнимую программу, программу, записанную в двоичном коде, которую ЭВМ поймет уже без переводчика. Интерпретатор удобно использовать на этапе написания и отладки программы, так как интерпретатор позволяет отслеживать ошибки, допущенные программистом при написании программы, а компилятор используется для преобразования уже готовой, отлаженной, выверенной программы. Компилированная программа будет выполняться быстрее, так как не нужно машине перед выполнением команды осуществлять перевод, а так же, если учесть, что языков программирования на данный момент очень много, как и программистов, причем программисты выбирают для создания программ самые разные языки программирования согласуясь со своими вкусами, возможностями и назначением программы, то можно представить как неудобно было бы пользоваться программами, требующими присутствия интерпретаторов. Каждый пользователь должен был бы иметь большой набор интерпретаторов различных языков. Языки программирования , вернее редакторы текстов программ для языков программирования, это программы, которые позволяют записывать алгоритмы решения каких-либо задач на том или ином языке программирования. Эти редакторы позволяют не просто записывать текст программы, но обычно имеют встроенный интерпретатор этого языка, систему отслеживания ошибок, возможность формирования библиотеки подпрограмм, возможность формирования собственных пользовательских функций, причем языки программирования позволяют записывать алгоритмы на языках приближенных к обычному человеческому языку, Непосредственно из них можно запускать программы на компиляцию. Кроме того можно работать с блоками текста программ", осуществлять их перенос из одного места программы в другое, копировать программу или ее части в указанное место другой программы, осуществлять контекстный поиск и замену подстрок. Инструментальные средства , которые называют еще утилитами (от англ. utility - полезность, удобство), включают в себя набор небольших вспомогательных специализированных обслуживающих программ, каждая из которых выполняет какую-либо одну рутинную, но необходимую операцию. В отличие от остальных программ, утилиты могут выполнять, как уже сказано, не много, а только одну операцию по обслуживанию какого либо из устройств компьютера. Например, утилита печати текстов, утилиты восстановления удаленных файлов (программ и текстов хранящихся на внешних носителях информации) или их архивации (сжатия), утилиты ремонта, обслуживания дисков и так далее. Программы, которые называют еще информационными и вычислительными системами, предназначенные для обработки больших массивов информации различного рода и для расчета больших массивов чисел и которые могут быть "приложены", применены к любому виду человеческой деятельности, составляют группу прикладных программ. Прикладные программы предназначены для обработки самой разнообразной информации: текстовой, числовой, звуковой, графической. Существуют программы, например, для построения астрологических карт, ведения инвентарной ведомости вин в ресторане, оказания помощи в постановке диагноза заболевания, построения экономических графиков, обучения иностранному языку, обучения программированию, программы для организации досуга и множество других. Вопреки внешним различиям все программы должны выполнять некоторые общие основополагающие функции. Такие как:
Среди наиболее важных функций прикладных программ можно выделить: обработку текстов; проведение вычислений; организация информации; управление вводом-выводом. Обычно различные функции настолько тесно переплетаются друг с другом, что трудно сказать, где кончается одна и начинается другая. Хотя большинство функций в той или иной степени используется в любой программе, одна из них всегда преобладает. Так, например, вычисления - основа программ обработки финансовых ведомостей, управление вводом-выводом - основа графических и звуковых программ. Среди прикладных программ, по преобладанию некоторых функций, выделяют:
Текстовые редакторы предназначены для набора, редактирования, запоминания, воспроизведения и распечатки текстов. Такие редакторы называют еще системами обработки текстовой информации. Такие широко распространенные персональные компьютеры как IBM PC, Apple-2 задумывались как конторские машины для обработки текстов. И сейчас большая часть машинного времени используется для обработки именно текстовой информации, для подготовки разнообразных документов: писем, статей, служебных документов (справок, договоров, приказов), отчетов, рекламных материалов и тому подобное. Программ для обработки текстов существует множество: от программ для подготовки текстов простой структуры до программ для полной подготовки к типографскому изданию книг, журналов. Редакторы текстов документов ориентированы на работу с текстами, имеющими структуру документов, то есть состоящими из разделов, страниц, абзацев, предложений, слов. Современные текстовые редакторы предоставляют достаточно много возможностей для обработки текстов, это:
Среди текстовых редакторов выделяют группу, предназначенную для создания сложных документов высокого качества (рекламных буклетов, журналов, книг). Эти редакторы получили название издательских систем. Печать документов, подготовленных с помощью издательских систем производится с помощью лазерного принтера или специальных фотонаборных аппаратов. Все издательские системы построены по принципу WYSWYG (What you see w whet you get - что ты видишь, то ты и получишь). Издательские системы имеют больший набор возможностей по сравнению с обычными текстовыми редакторами. Наиболее распространенные текстовые редакторы в России: Lexicon, Multi Edit, WinWord. Издательские системы: Page Maker, Venture Publisher. Графические редакторы позволяют создавать, редактировать и получать графические изображения в виде жестких копий (на бумаге) и в виде текстов программ, которые можно затем встраивать в другие программы или хранить для дальнейшего редактирования. Графические редакторы позволяют создавать не только статичные, но также движущиеся на экране объекты, создавать анимационные картинки. Графические редакторы имеют такие возможности, как использование различных цветовых оттенков в графическом изображения, использование графических примитивов (окружности, ломанные линии, прямоугольники, многоугольники, закрашенные фигуры) для построения рисунков, использование различных инструментов: кистей разнообразной формы, ластика, аэрографа, микроскопа или лупы для прорисовки каких либо тонких деталей изображения, имеется также возможность работать с выделенными частями рисунка: удалять, копировать, переносить, встраивать готовые изображения из библиотеки графических образов и так далее. Существуют графические редакторы как для создания двумерных, так и для создания трехмерных изображений. Примером графических редакторов наиболее распространенных в России можно назвать: Autodesk Animator, Corel Drаw, Paintbrash, PictureMaker, TruеSpacе и др. Электронные таблицы выполняют роль очень удобного калькулятора, способного с большой скоростью и гибкостью манипулировать числами и формулами, причем все данные и результаты расчетов можно просмотреть на экране. Электронные таблицы построены по. образу и подобию финансовых ведомостей, с которыми обычно работают бухгалтеры: она состоит из строк и столбцов, образующих сотни и даже тысячи клеток. Стоит только в какую- либо из клеток ввести наименования, числа и формулы, как практически мгновенно компьютер вычислит и покажет полученный результат. Электронные таблицы могут выполнить различные функции, которые обеспечивают очень удобный интерфейс пользователю. Это, например, следующие возможности:
Примером электронных таблиц широко использующихся в настоящий момент в России являются таблицы Lotus 1-2-3, SuperCalk, Excel. Системы управления базами данных (СУБД) позволяют вводить, накапливать, редактировать, сортировать, выбирать по запросу, удалять различные данные. СУБД позволяют также выполнять некоторые вычисления и создавать отчеты. Наиболее мощные СУБД имеют встроенный язык программирования, позволяющих создавать исполнимые программы дня обработки введенных данных. СУБД много, это, например, такие системы как FoxPro, dBASE, Paradox, Clipper, Clarioп, Assecc и другие. Музыкальные редакторы предназначены для редактирования, создания, сохранения и исполнения различных звуковых комбинаций, музыкальных произведении. Интегрированные пакеты - программы, сочетающие в себе возможность работать с различными видами информации. Он объединяет в себе возможности текстового редактора, электронной таблицы, базы данных, программы деловой графики. Известностью пользуются такие пакеты, как, например, FrameWork, Works. Основной принции построения всех программных средств основан на выборе из меню. Как правило фирменные программные средства содержат многоуровневое выпадающее меню. То есть в программе имеется основное меню, любой из разделов которого может иметь подменю, в котором находится либо команда, либо функция (установка чего либо). Чтобы выполнить одну из команд на любом уровне меню необходимо просто переместить курсор (светящийся прямоугольник на экране) к этой команде, нажать на клавишу ввода команды в память машины или, при необходимости, дать ответ или подтверждение на запрос. 26 Систе́мное програ́ммное обеспече́ние — это комплекс программ, которые обеспечивают эффективное управление компонентами вычислительной системы, такими как процессор, оперативная память, каналы ввода-вывода, сетевое оборудование, выступая как «межслойный интерфейс» с одной стороны которого аппаратура, а с другой приложения пользователя. В отличие от прикладного программного обеспечения, системное не решает конкретные прикладные задачи, а лишь обеспечивает работу других программ, управляет аппаратными ресурсами вычислительной системы и т.д. амо слово «utilitas», в переводе с латинского означает польза. 28. Классификация ОСОперационные системы могут различаться особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера (процессорами, памятью, устройствами), особенностями использованных методов проектирования, типами аппаратных платформ, областями использования и многими другими свойствами. Ниже приведена классификация ОС по нескольким наиболее основным признакам. Особенности алгоритмов управления ресурсамиОт эффективности алгоритмов управления локальными ресурсами компьютера во многом зависит эффективность всей сетевой ОС в целом. Поэтому, характеризуя сетевую ОС, часто приводят важнейшие особенности реализации функций ОС по управлению процессорами, памятью, внешними устройствами автономного компьютера. Так, например, в зависимости от особенностей использованного алгоритма управления процессором, операционные системы делят на многозадачные и однозадачные, многопользовательские и однопользовательские, на системы, поддерживающие многонитевую обработку и не поддерживающие ее, на многопроцессорные и однопроцессорные системы. Поддержка многозадачности. По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
Однозадачные ОС в основном выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером. Однозадачные ОС включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем. Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства. Поддержка многопользовательского режима. По числу одновременно работающих пользователей ОС делятся на:
Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей. Следует заметить, что не всякая многозадачная система является многопользовательской, и не всякая однопользовательская ОС является однозадачной. Вытесняющая и невытесняющая многозадачность. Важнейшим разделяемым ресурсом является процессорное время. Способ распределения процессорного времени между несколькими одновременно существующими в системе процессами (или нитями) во многом определяет специфику ОС. Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов:
Основным различием между вытесняющим и невытесняющим вариантами многозадачности является степень централизации механизма планирования процессов. В первом случае механизм планирования процессов целиком сосредоточен в операционной системе, а во втором - распределен между системой и прикладными программами. При невытесняющей многозадачности активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы та выбрала из очереди другой готовый к выполнению процесс. При вытесняющей многозадачности решение о переключении процессора с одного процесса на другой принимается операционной системой, а не самим активным процессом. Поддержка многонитевости. Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями). Многопроцессорная обработка. Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование . Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами. В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell. Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС. Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами. Выше были рассмотрены характеристики ОС, связанные с управлением только одним типом ресурсов - процессором. Важное влияние на облик операционной системы в целом, на возможности ее использования в той или иной области оказывают особенности и других подсистем управления локальными ресурсами - подсистем управления памятью, файлами, устройствами ввода-вывода. Специфика ОС проявляется и в том, каким образом она реализует сетевые функции: распознавание и перенаправление в сеть запросов к удаленным ресурсам, передача сообщений по сети, выполнение удаленных запросов. При реализации сетевых функций возникает комплекс задач, связанных с распределенным характером хранения и обработки данных в сети: ведение справочной информации о всех доступных в сети ресурсах и серверах, адресация взаимодействующих процессов, обеспечение прозрачности доступа, тиражирование данных, согласование копий, поддержка безопасности данных. Особенности аппаратных платформНа свойства операционной системы непосредственное влияние оказывают аппаратные средства, на которые она ориентирована. По типу аппаратуры различают операционные системы персональных компьютеров, мини-компьютеров, мейнфреймов, кластеров и сетей ЭВМ. Среди перечисленных типов компьютеров могут встречаться как однопроцессорные варианты, так и многопроцессорные. В любом случае специфика аппаратных средств, как правило, отражается на специфике операционных систем. Очевидно, что ОС большой машины является более сложной и функциональной, чем ОС персонального компьютера. Так в ОС больших машин функции по планированию потока выполняемых задач, очевидно, реализуются путем использования сложных приоритетных дисциплин и требуют большей вычислительной мощности, чем в ОС персональных компьютеров. Аналогично обстоит дело и с другими функциями. Сетевая ОС имеет в своем составе средства передачи сообщений между компьютерами по линиям связи, которые совершенно не нужны в автономной ОС. На основе этих сообщений сетевая ОС поддерживает разделение ресурсов компьютера между удаленными пользователями, подключенными к сети. Для поддержания функций передачи сообщений сетевые ОС содержат специальные программные компоненты, реализующие популярные коммуникационные протоколы, такие как IP, IPX, Ethernet и другие. Многопроцессорные системы требуют от операционной системы особой организации, с помощью которой сама операционная система, а также поддерживаемые ею приложения могли бы выполняться параллельно отдельными процессорами системы. Параллельная работа отдельных частей ОС создает дополнительные проблемы для разработчиков ОС, так как в этом случае гораздо сложнее обеспечить согласованный доступ отдельных процессов к общим системным таблицам, исключить эффект гонок и прочие нежелательные последствия асинхронного выполнения работ. Другие требования предъявляются к операционным системам кластеров. Кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой. Наряду со специальной аппаратурой для функционирования кластерных систем необходима и программная поддержка со стороны операционной системы, которая сводится в основном к синхронизации доступа к разделяемым ресурсам, обнаружению отказов и динамической реконфигурации системы. Одной из первых разработок в области кластерных технологий были решения компании Digital Equipment на базе компьютеров VAX. Недавно этой компанией заключено соглашение с корпорацией Microsoft о разработке кластерной технологии, использующей Windows NT. Несколько компаний предлагают кластеры на основе UNIX-машин. Наряду с ОС, ориентированными на совершенно определенный тип аппаратной платформы, существуют операционные системы, специально разработанные таким образом, чтобы они могли быть легко перенесены с компьютера одного типа на компьютер другого типа, так называемые мобильные ОС. Наиболее ярким примером такой ОС является популярная система UNIX. В этих системах аппаратно-зависимые места тщательно локализованы, так что при переносе системы на новую платформу переписываются только они. Средством, облегчающем перенос остальной части ОС, является написание ее на машинно-независимом языке, например, на С, который и был разработан для программирования операционных систем. Особенности областей использованияМногозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:
Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени. Для достижения этой цели в системах пакетной обработки используются следующая схема функционирования: в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется мультипрограммная смесь, то есть множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие отличающиеся требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины; так, например, в мультипрограммной смеси желательно одновременное присутствие вычислительных задач и задач с интенсивным вводом-выводом. Таким образом, выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающейся в системе, то есть выбирается "выгодное" задание. Следовательно, в таких ОС невозможно гарантировать выполнение того или иного задания в течение определенного периода времени. В системах пакетной обработки переключение процессора с выполнения одной задачи на выполнение другой происходит только в случае, если активная задача сама отказывается от процессора, например, из-за необходимости выполнить операцию ввода-вывода. Поэтому одна задача может надолго занять процессор, что делает невозможным выполнение интерактивных задач. Таким образом, взаимодействие пользователя с вычислительной машиной, на которой установлена система пакетной обработки, сводится к тому, что он приносит задание, отдает его диспетчеру-оператору, а в конце дня после выполнения всего пакета заданий получает результат. Очевидно, что такой порядок снижает эффективность работы пользователя. Системы разделения времени призваны исправить основной недостаток систем пакетной обработки - изоляцию пользователя-программиста от процесса выполнения его задач. Каждому пользователю системы разделения времени предоставляется терминал, с которого он может вести диалог со своей программой. Так как в системах разделения времени каждой задаче выделяется только квант процессорного времени, ни одна задача не занимает процессор надолго, и время ответа оказывается приемлемым. Если квант выбран достаточно небольшим, то у всех пользователей, одновременно работающих на одной и той же машине, складывается впечатление, что каждый из них единолично использует машину. Ясно, что системы разделения времени обладают меньшей пропускной способностью, чем системы пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая "выгодна" системе, и, кроме того, имеются накладные расходы вычислительной мощности на более частое переключение процессора с задачи на задачу. Критерием эффективности систем разделения времени является не максимальная пропускная способность, а удобство и эффективность работы пользователя. Системы реального времени применяются для управления различными техническими объектами, такими, например, как станок, спутник, научная экспериментальная установка или технологическими процессами, такими, как гальваническая линия, доменный процесс и т.п. Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная программа, управляющая объектом, в противном случае может произойти авария: спутник выйдет из зоны видимости, экспериментальные данные, поступающие с датчиков, будут потеряны, толщина гальванического покрытия не будет соответствовать норме. Таким образом, критерием эффективности для систем реального времени является их способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата (управляющего воздействия). Это время называется временем реакции системы, а соответствующее свойство системы - реактивностью. Для этих систем мультипрограммная смесь представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется исходя из текущего состояния объекта или в соответствии с расписанием плановых работ. Некоторые операционные системы могут совмещать в себе свойства систем разных типов, например, часть задач может выполняться в режиме пакетной обработки, а часть - в режиме реального времени или в режиме разделения времени. В таких случаях режим пакетной обработки часто называют фоновым режимом. Особенности методов построенияПри описании операционной системы часто указываются особенности ее структурной организации и основные концепции, положенные в ее основу. К таким базовым концепциям относятся:
29 Инструмента́льное програ́ммное обеспе́чение — программное обеспечение, предназначенное для использования в ходе проектирования, разработки и сопровождения программ. Обычно этот термин применяется для акцентирования отличия данного класса ПО от прикладного и системного программного обеспечения. [править]Системы программированияК этой категории относятся программы, предназначенные для разработки программного обеспечения:
Перечисленные инструменты могут входить в состав интегрированных сред разработки Виды инструментального ПО
31 Компьютерным вирусом называется программа, способная создавать свои копии (не обязательно полностью совпадающие с оригиналом) и внедрять их в различные объекты или ресурсы компьютерных систем, сетей и так далее без ведома пользователя. При этом копии сохраняют способность дальнейшего распространения. На сегодняшний день известно 6 основных типов вирусов: файловые, загрузочные, призраки (полиморфные), невидимки, скрипт-вирусы и макро-вирусы. Следует отличать вирусы от вредоносных кодов. К ним относятся Интернет-черви и программы, получившие название «Троянские кони». Основные симптомы вирусного поражения: замедление работы некоторых программ, увеличение размеров файлов (особенно выполняемых), появление не существовавших ранее подозрительных файлов, уменьшение объема доступной оперативной памяти (по сравнению с обычным режимом работы), внезапно возникающие разнообразные видео и звуковые эффекты. При всех перечисленных выше симптомах, а также при других странных проявлениях в работе системы (неустойчивая работа, частые самостоятельные перезагрузки и прочее) следует немедленно произвести проверку системы на наличие вирусов. Зарождение компьютерных вирусов О появлении первого компьютерного вируса много разных мнений. Доподлинно только известно, что на машине Чарльза Бэббиджа, считающегося изобретателем первого компьютера, его не было, а на Univax 1108 и IBM 360/370, в середине 1970-х годов они уже были. Интересно, что идея компьютерных вирусов появилась намного раньше самих персональных компьютеров. Точкой отсчета можно считать труды известного ученого Джона фон Неймана по изучению самовоспроизводящихся математических автоматов, о которых стало известно в 1940-х годах. В 1951 году он предложил способ создания таких автоматов. А в 1959 году журнал Scientific American опубликовал статью Л.С. Пенроуза, посвященную самовоспроизводящимся механическим структурам. В ней была описана простейшая двумерная модель самовоспроизводящихся механических структур, способных к активации, размножению, мутациям, захвату. Позднее другой ученый Ф.Ж. Шталь реализовал данную модель на практике с помощью машинного кода на IBM 650. Пути проникновения вирусов в компьютер и механизм распределения вирусных программ Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке программы с дискеты, содержащей вирус. Такое заражение может быть и случайным, например, если дискету не вынули из дисковода А и перезагрузили компьютер, при этом дискета может быть и не системной. Заразить дискету гораздо проще. На нее вирус может попасть, даже если дискету просто вставили в дисковод зараженного компьютера и, например, прочитали ее оглавление. Вирус, как правило, внедряется в рабочую программу таким образом, чтобы при ее запуске управление сначала передалось ему и только после выполнения всех его команд снова вернулось к рабочей программе. Получив доступ к управлению, вирус прежде всего переписывает сам себя в другую рабочую программу и заражает ее. После запуска программы, содержащей вирус, становится возможным заражение других файлов. Наиболее часто вирусом заражаются загрузочный сектор диска и исполняемые файлы, имеющие расширения EXE, COM, SYS, BAT. Крайне редко заражаются текстовые файлы. После заражения программы вирус может выполнить какую-нибудь диверсию, не слишком серьезную, чтобы не привлечь внимания. И наконец, не забывает возвратить управление той программе, из которой был запущен. Каждое выполнение зараженной программы переносит вирус в следующую. Таким образом, заразится все программное обеспечение. Для иллюстрации процесса заражения компьютерной программы вирусом имеет смысл уподобить дисковую память старомодному архиву с папками на тесьме. В папках расположены программы, а последовательность операций по внедрению вируса будет в этом случае выглядеть следующим образом. Признаки появления вирусов При заражении компьютера вирусом важно его обнаружить. Для этого следует знать об основных признаках проявления вирусов. К ним можно отнести следующие: 1.прекращение работы или неправильная работа ранее успешно функционировавших программ 2. медленная работа компьютера 3. невозможность загрузки операционной системы 4. исчезновение файлов и каталогов или искажение их содержимого 5. изменение даты и времени модификации файлов 6. изменение размеров файлов 7. неожиданное значительное увеличение количества файлов на диске 8. существенное уменьшение размера свободной оперативной памяти 9. вывод на экран непредусмотренных сообщений или изображений 10. подача непредусмотренных звуковых сигналов 11. частые зависания и сбои в работе компьютера Следует отметить, что вышеперечисленные явления необязательно вызываются присутствием вируса, а могут быть следствием других причин. Поэтому всегда затруднена правильная диагностика состояния компьютера. Методы защиты от вирусов Cкaниpoвaниe Ecли виpyc извecтeн и yжe пpoaнaлизиpoвaн, тo мoжнo paзpaбoтaть пpoгpaммy, выявляющyю вce фaйлы и зaгpyзoчныe зaпиcи, инфициpoвaнныe этим виpycoм. Taкaя пpoгpaммa cнaбжeнa «мeдицинcким» cпpaвoчникoм, coдepжaщим xapaктepныe oбpaзцы пpoгpaммнoгo кoдa виpyca. Пpoгpaммa вeдeт пoиcк кoмбинaций бaйтoв, xapaктepныx для виpyca, нo нeтипичныx для oбычныx пpoгpaмм. Пporpaммы-дeтeктopы, вeдyщиe пoиcк пoдoбныx кoмбинaций бaйтoв, нaзывaютcя пoлифaгaми, или cкaнepaми. Для мнoгиx виpycoв xapaктepнa пpocтaя кoмбинaция, пpeдcтaвляющaя coбoй пocлeдoвaтeльнocть фикcиpoвaнныx бaйтoв. Дpyгиe виpycы иcпoльзyют бoлee cлoжныe кoмбинaции бaйтoв. Heoбxoдимo yдocтoвepитьcя, чтo кoмбинaция бaйтoв нe xapaктepнa для oбычныx пpoгpaмм, инaчe пpoгpaммa-дeтeктop cooбщит o виpyce дaжe пpи eгo oтcyтcтвии. Bыявлeниe измeнeнийДля инфициpoвaния пpoгpaмм или зaгpyзoчныx зaпиceй виpycы дoлжны иx измeнить. Cyщecтвyют пpoгpaммы, кoтopыe cпeциaлизиpyютcя нa вылaвливaнии тaкиx измeнeний. Пpoгpaммy, peгиcтpиpyющyю измeнeниe фaйлoв и зaгpyзoчныx зaпиceй, мoжнo иcпoльзoвaть дaжe для выявлeния paнee нeизвecтныx виpycoв. Oднaкo измeнeниe фaйлoв и зarpyзoчныx зaпиceй мoжeт быть oбycлoвлeнo цeлым pядoм пpичин, кoтopыe нe имeют никaкoro oтнoшeния к виpycaм. Bыявлeниe измeнeний caмo пo ceбe пpинocит нe тaк мнoro пoльзы, т.к. нeoбxoдимo oчeнь чeткo пoнимaть, кaкиe измeнeния дeйcтвитeльнo yкaзывaют нa нaличиe виpyca. Эвpиcтичecкий aнaлизЭвpиcтичecкий aнaлиз — этo cмyтнoe пoдoзpeниe aнтивиpycнoй пpoгpaммы o тoм, чтo чтo-тo нe в пopядкe. Пpи выявлeнии виpycoв c пoмoщью эвpиcтичecкoro aнaлизa вeдeтcя пoиcк внeшниx пpoявлeний или жe дeйcтвий, xapaктepныx для нeкoтopыx клaccoв извecтныx виpycoв. Haпpимep, в фaйлax мoгyт выявлятьcя oпepaции, пpимeняeмыe виpycaми, нo peдкo иcпoльзyeмыe oбычными пpoгpaммaми, Moгyт тaк-жe выявлятьcя пoпытки зaпиcи нa жecткиe диcки или диcкeты c пoмoщью нecтaндapтныx мeтoдoв. Taк жe, кaк пpи иcпoльзoвaнии пpeдыдyщeгo мeтoдa, c пoмoщью эвpиcтичecкoгo aнaлизa мoжнo выявить цeлыe клaccы виpycoв, oднaкo нeoбxoдимo yдocтoвepитьcя, чтo oбычныe пpoгpaммы нe были пpиняты зa инфициpoвaнныe. Bepификaция Paccмoтpeнныe вышe мeтoды мoгyт cвидeтeльcтвoвaть, чтo пpoгpaммa или зaгpyзoчнaя зaпиcь пopaжeны виpycoм, oднaкo тaким oбpaзoм нeльзя c yвepeннocтью oпoзнaть пopaзивший иx виpyc и yничтoжить eгo. Пpoгpaммы, c пoмoщью кoтopыx мoжнo идeнтифициpoвaть виpyc, нaзывaютcя вepификaтopaми. Bepификaтopы мoжнo paзpaбoтaть тoлькo для yжe изyчeнныx виpycoв пocлe иx тщaтeльнoro aнaлизa. Обезвреживание вирусов He иcключeнo, чтo пocлe выявлeния виpyca eгo мoжнo бyдeт yдaлить и вoccтaнoвить иcxoднoe cocтoяниe зapaжeнныx фaйлoв и зaгpyзoчныx зaпиceй, cвoйcтвeннoe им дo «бoлeзни». Этoт пpoцecc нaзывaeтcя oбeзвpeживaниeм (дeзинфeкциeй, лeчeниeм). Heкoтopыe виpycы пoвpeждaют пopaжaeмыe ими фaйлы и зaгpyзoчныe зaпиcи тaким oбpaзoм, чтo иx ycпeшнaя дeзинфeкция нeвoзмoжнa. He иcключeнo тaкжe, чтo дeтeктop oдинaкoвo идeнтифициpyeт двa paзличныx виpyca, пoэтoмy дeзинфициpyющaя пpoгpaммa бyдeт эффeктивнa для oднoгo виpyca, нo бecпoлeзнa для дpyгoгo. Дeзинфициpyющиe пpoгpaммы измeняют вaши пpoгpaммы, пoэтoмy oни дoлжны быть oчeнь нaдeжными. Меры профилактики Paccмoтpeнныe вышe мeтoды мoгyт пpимeнятьcя c пoмoщью paзличныx cпocoбoв. Oдним из oбщeпpинятыx мeтoдoв являeтcя иcпoльзoвaниe пpoгpaмм, кoтopыe тщaтeльнo oбcлeдyют диcки, пьrтaяcь oбнapyжить и oбeзвpeдить виpycы. Boзмoжнo тaкжe иcпoльзoвaниe peзидeнтньrx пpoгpaмм DOS, пocтoяннo пpoвepяющиx вaшy cиcтeмy нa виpycы. Peзидeнтныe пpoгpaммы имeют cлeдyющee пpeимyщecтвo: oни пpoвepяют вce пpoгpaммы нa виpycы пpи кaждoм иx вьшoлнeнии. Peзидeнтныe пpoгpaммы дoлжны быть oчeнь тщaтeльнo paзpaбoтaны, т.к. инaчe oни бyдyт зaдepживaть зaгpyзкy и выпoлнeниe пpoгpaмм. Hepeзидeнтныe пpoгpaммы эффeктивны пpи нeoбxoдимocти oднoвpeмeннoгo oбcлeдoвaния вceй cиcтeмы нa виpycы и иx oбeзвpeживaния. Oни пpeдcтaвляют coбoй cpeдcтвo, дoпoлняющee peзидeнтныe пporpaммы. Bы дoлжны пoмнить o нeoбxoдимocти peгyляpнoгo выпoлнeния aнтивиpycнoй пpoгpaммы. K coжaлeнию, кaк пoкaзывaeт oпыт, oб этoм чacтo зaбывaют. Пpeнeбpeжeниe пpoфилaктичecкими пpoвepкaми вaшero кoмпьютepa yвeличивaет pиcк инфициpoвaния нe тoлькo вaшeй кoмпьютepнoй cиcтeмы, нo и pacпpocтpaнeния виpyca нa дpyгиe кoмпьютepы. И нe тoлькo чepeз диcкeты, виpycы пpeкpacнo pacпpocтpaняютcя и пo лoкaльным ceтям. Чтoбы впocлeдcтвии избeжaть гoлoвнoй бoли, лyчшe вceгo oбecпeчить aвтoмaтичecкoe выпoлнeниe aнтивиpycнoй пpoгpaммы. B этoм cлyчae пpoгpaммa бyдeт зaщищaть вaш кoмпьютep, нe тpeбyя oт вac кaкиx-либo явныx дeйcтвий. Для oбecпeчeния тaкoй зaщиты мoжнo пpи зaпycкe cиcтeмы ycтaнoвить peзидeнтныe aнтивиpycныe пpoгpaммы, a тaкжe иcпoльзoвaть нepeзидeнтныe пpoгpaммы, выпoлняeмыe пpи зaпycкe или пepиoдичecки в yкaзaннoe вpeмя. Как правильно лечить? Пpeждe вceгo, пepeзaгpyзитe кoмпьютep, нaжaв кнoпкy Reset . Taкaя пepeзaгpyзкa нaзывaeтcя «xoлoднoй», в oтличиe oт «тeплoй», вызывaeмoй кoмбинaциeй клaвиш Ctrl-Alt-Del . Cyщecтвyют виpycы, кoтopыe cпoкoйнeнькo выживaют пpи «тeплoй» пepeзaгpyзкe. Зaгpyзитe кoмпьютep c диcкeты, зaщищeннoй oт зaпиcи и c ycтaнoвлeнными aнтивиpycными пpoгpaммaми. Heoбxoдимocть xpaнить aнтивиpycный пaкeт нa oтдeльнoй зaщищeннoй диcкeтe вызвaнa нe тoлькo oпacнocтью зapaжeния aнтивиpycныx пpoгpaмм виpycoм. Чacтeнькo виpyc cпeциaльнo ищeт нa жecткoм диcкe пporpaммy-aнтивиpyc и нaнocит eй пoвpeждeния. Cтapaйтecь пoчaщe oбнoвлять вaши aнтивиpycныe пporpaммы. Пpичeм кaк oтeчecтвeнныe, тaк и импopтныe. Oтeчecтвeнныe— пoтoмy чтo y нac пишyт виpycы вce кoмy нe лeнь и, чтoбы быcтpo paзpaбoтaть aнтивиpycнyю пpoгpaммy, нaдo жить здecь. Импopтныe — пoтoмy чтo вce cильнee cливaютcя «нa-шe» и «иx» инфopмaциoнныe пpocтpaнcтвa, вce бoльшe зaпaдныx виpycoв пpoникaeт к нaм пo глoбaльным кoмпьютepным ceтям. Пpи oбнapyжeнии зapaжeннoгo фaйлa жeлaтeльнo cкoпиpoвaть eгo нa диcкeтy и лишь зaтeм лeчить aнтивиpycoм. Этo дeлaeтcя для тoro, чтoбы в cлyчae нeкoppeктнoro лeчeния фaйлa, чтo, к coжaлeнию, cлyчaeтcя, пoпытaтьcя пoлeчить фaйл дpyгим aнтивиpycoм. Ecли вaм пoнaдoбилacь пpoгpaммa из вaшиx cтapыx apxивoв или peзepвныx кoпий, нe пoлeнитecь пpoвepить ee. He pиcкynтe. Лyчшe пpeyвeличить oпacнocть, чeм нeдooцeнить ee. Классификация вирусов по деструктивным возможностям По деструктивным возможностям вирусы можно разделить на следующие: 1. Базовые, т.е. никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения). 2. Неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графически и пр. эффектами. 3. Опасные вирусы, которые могут привести к серьезным ошибкам и сбоям в работе . 4. Очень опасные, которые могут привести к потере программ, уничтожить данные, стереть необходимую для работы компьютера информацию, записанную в системных областях памяти. Безвредные вирусы, как правило, производят различные визуальные или звуковые эффекты. Диапозон проявления безвредных вирусов очень широк – от простейшего стирания содержимого экрана до сложных эффектов переворачивания изображения, создания иллюзии «вращения» или «опадания» (например, вирус Cascade-1701). Выполняемые вредными вирусами деструктивные функции тоже чрезвычайно разнообразны.В процессе своего распространения некоторые вирусы повреждают или искажают некоторые выполняемые программы, дописывая в начало уничтожаемой программы некий код без сохранения исходной последовательности байт. Некоторые вирусы при определенных условиях выполняют форматирование диска, точнее его нулевой дорожки, тем самым уничтожая важную информацию о хранящихся на диске файлах. Другие через определенные (как правило, случайные) промежутки времени перезагружают компьютер, приводя к потере несохраненных данных. В последнее время появилось огромное количество вирусов, направленных на борьбу с антивирусными программами. Некоторые из них при просмотре каталогов ищут программы, в именах которых имеются фрагметы, характерные для антивирусных программ (ANTI, AIDS, SCAN), и при обнаружении таковых пытаются нанести им какой-либо вред: стереть с диска, изменить код в теле программы и др. Антивирусные программы Способы противодействия компьютерным вирусам можно разделить на несколько групп: профилактика вирусного заражения и уменьшение предполагаемого ущерба от такого заражения; методика использования антивирусных программ, в том числе обезвреживание и удаление известного вируса; способы обнаружения и удаления неизвестного вируса. С давних времен известно, что к любому яду рано или поздно можно найти противоядие. Таким противоядием в компьютерном мире стали программы, называемые антивирусными. Данные программы можно классифицировать по пяти основным группам: фильтры, детекторы, ревизоры, доктора и вакцинаторы. Антивирусы-фильтры - это резидентные программы, которые оповещают пользователя о всех попытках какой-либо программы записаться на диск, а уж тем более отформатировать его, а также о других подозрительных действиях (например о попытках изменить установки CMOS). При этом выводится запрос о разрешении или запрещении данного действия. Принцип работы этих программ основан на перехвате соответствующих векторов прерываний. К преимуществу программ этого класса по сравнению с программами-детекторами мож- но отнести универсальность по отношению как к известным,так и неизвестным вирусам, тогда как детекторы пишутся под конкретные,известные на данный момент программисту виды. Это особенно актуально сейчас, когда появилось множество вирусов-мутантов, не имеющих постоянного кода. Однако, программы-фильтры не могут отслеживать вирусы, обращающиеся непосредственно к BIOS, а также BOOT-вирусы, активизирующиеся ещс до запуска антивируса, в начальной стадии загрузки DOS, К недостаткам также можно отнести частую выдачу запросов на осуществление какой-либо операции: ответы на вопросы отнимают у пользователя много времени и действуют ему на нервы. При установке некоторых антивирусов-фильтров могут возникать конфликты с другими резидентными программами, использующими те же прерывания, которые просто перестают работать. Наибольшее распространение в нашей стране получили программы-детекторы,а вернее программы, объединяющие в себе детектор и доктор. Наиболее известные представители этого класса - Aidstest, Doctor Web,MicroSoft AntiVirus. Антивирусы-детекторы расчитаны на конкретные вирусы и основаны на сравнении последовательности кодов содержащихся в теле вируса с кодами проверяемых программ.Такие программы нужно регулярно обновлять, так как они быстро устаревают и не могут обнаруживать новые виды вирусов. Ревизоры - программы, которые анализируют текущее состояние файлов и системных областей диска и сравнивают его с информацией, сохраненной ранее в одном из файлов данных ревизора. При этом проверяется состояние BOOT-сектора, таблицы FAT, а также длина файлов, их время создания, атрибуты, контрольная сумма. Анализируя сообщения программы-ревизора, пользователь может решить, чем вызваны изменения: вирусом или нет. При выдаче такого рода сообщений не следует предаваться панике, так как причиной изменений, например, длины программы может быть вовсе и не вирус. К последней группе относятся самые неэффективные антивирусы вакцинаторы. Они записывают в вакцинируемую программу признаки конкретного вируса так, что вирус считает ее уже зараженной. 32 Единой классификации вирусов не существует, однако можно выделить три основные группы вирусов: - файловые вирусы; - загрузочные вирусы; - комбинированные файлово-загрузочные вирусы. Кроме того, вирусы бывают макрокомандные, резидентные и нерезидентные, полиморфные и маскирующиеся (стелс-вирусы). Антивирусные программы. Существует несколько основных методов поиска вирусов, которые применяются антивирусными программами: сканирование; эвристический анализ; обнаружение изменений; резидентные мониторы. Антивирусы могут реализовывать все перечисленные выше методики, либо только некоторые из них. Сканирование. Это наиболее традиционный метод поиска вирусов. Он заключается в поиске сигнатур, выделенных из ранyей обнаруженных вирусов. Антивирусные программы-сканеры, способные удалить обнаруженные вирусы, обычно называются полифагами. Сканеры могут обнаружить только уже известные и предварительно изученные вирусы, для которых была определена сигнатура. Поэтому программы-сканеры не защитят компьютер от проникновения новых вирусов, число которых постоянно увеличивается. Простые сканеры неспособны обнаружить и полиморфные вирусы, полностью меняющие свой код. Для этой цели необходимо использовать более сложные алгоритмы поиска, включающие эвристический анализ проверяемых программ. Эвристический анализ. Этот метод нередко используется совместно со сканированием для поиска шифрующихся и полиморфных вирусов. Очень часто эвристический анализ позволяет обнаруживать ранее неизвестные инфекции, хотя лечение в этих случаях обычно оказывается невозможным. Если эвристический анализатор сообщает, что файл или загрузочный сектор, возможно, заражен вирусом, пользователю необходимо провести дополнительную проверку с помощью самых последних версий антивирусных программ- сканеров. Обнаружение изменений. Заражая компьютер, вирус делает изменения на жестком диске: дописывает свой код в заражаемый файл, изменяет системные области диска и т.д. Антивирусные программы-ревизоры находят такие изменения: они запоминают характеристики всех областей диска, которые могут подвергаться нападению вируса, а затем периодически проверяют их и в случае обнаружения изменений выдают сообщение о подозрении на вирус. Следует учитывать, что не все изменения вызываются вторжением вирусов. Загрузочная запись может измениться при обновлении версии операционной системы, а некоторые программы записывают данные внутри своего исполняемого файла. Резидентные мониторы. Антивирусные программы, постоянно находящиеся в оперативной памяти компьютера и отслеживающие все подозрительные действия, выполняемые другими программами, носят название резидентных мониторов, или сторожей. К сожалению, они имеют очень много недостатков: занимают много оперативной памяти и раздражают пользователей большим количеством сообщений, по большей части не имеющим отношения к проникновению вирусов. Даже, если угрозы вирусов как будто бы нет, необходимо заранее провести мероприятия антивирусной защиты, в том числе организационного характера. Для успешной борьбы с вирусами можно воспользоваться различными программными продуктами отечественного производства, некоторые из которых признаются лучшими в мире. 1. Антивирусная программа AidstestАнтивирусная программа Aidstest (зарегистрированная торговая марка АО ДиалогНаука (DialogueScience), автор Лозинский Д.Н.). Программа Aidstest предназначена для обнаружения и исправления программ, зараженных определенными типами вирусов, а именно типами, известными в настоящее время автору. В комплект поставки входит несколько файлов. Перечень опознаваемых вирусов дается в файле aidsread.me, а их краткое описание - в файле aidsvir.txt, также поставляемом в комплекте с антивирусной программой. Этот набор вирусов постоянно пополняется по мере появления у автора новых вирусов. В процессе исправления программные файлы, которые исправить невозможно, стираются. В момент запуска Aidstest в памяти не должно быть резидентных антивирусных программ, которые блокируют запись в программные файлы. Основной протокол Aidstest достаточно прост и понятен. Про каждый вирус, обнаруженный в файле, сообщается его имя, номинальная длина (в скобках после имени), а в случае успешного лечения через косую черту величина изменения длины файла (бывает и нулевой, если вирус при заражении не изменил длину файла). Программа обнаруживает и обезвреживает все известные ей типы вирусов и в памяти машины. В этом случае в конце работы на экран выдается предложение автоматически перезагрузить систему. Следует учитывать, что обезвреживание вирусов в памяти призвано, в первую очередь обеспечить возможность успешного завершения лечения. Некоторые функции системы при этом могут восстанавливаться неполноценно. Кроме того, свойства вирусов, не связанные с размножением, не убираются, т.е. может продолжаться осыпание букв, появление черного квадрата, исполнение мелодии и т.п. Aidstest довольно надежно контролирует собственное здоровье относительно большинства типов вирусов. При обнаружении собственного заражения новым типом вируса Aidstest выдает соответствующее сообщение и прекращает работу. Антивирусная программа Adinf. (зарегистрированная торговая марка АО ДиалогНаука (DialogueScience)). Поскольку Aidstest обнаруживает только уже известные автору вирусы, полезно иметь и программу, обнаруживающую появление на диске новых вирусов. АО ДиалогНаука предлагает один из эффективных и надежных ревизоров - ADinf Д.Мостового, который за несколько секунд просматривает весь диск и сообщает обо всех подозрительных происшествиях. 2. Антивирусная программа Doctor WebПолиморфные вирусы, характерной особенностью которых является способность к существенной мутации своего кода, из-за чего программы типа Aidstest принципиально не в состоянии опознать (а значит, и обезвредить). Для борьбы с полиморфными вирусами следует использовать антивирус Doctor Web (автор И.Данилов), который благодаря встроенному эмулятору процессора опознает вирусы под различными шифровщиками и упаковщиками, а благодаря своему блоку эвристического анализа обнаруживает и многие (свыше 80%) неизвестные вирусы. 3. Аппаратно-программный комплекс SheriffАппаратная защита позволяет защитить сами антивирусные средства от проникновения в них вирусов и рекомендуются для использования в особо ответственных случаях (банковско-финансовые учреждения, торговые предприятия и т.п.). Norton AntiVirus for Windows 95 (Copiright Symantec). Пакет включает в себя резидентный мониторинг (Auto-Protect – автозащиту), сканер (Scanner), запускаемый вручную или периодически с помощью планировщика (Scheduler) и проверку при включении компьютера (StartUp) “критических” файлов (config, autoexec, command ит.п.). Известные вирусы (порядка 6400 хранящихся в списке VirusList) могут быть обезврежены по мере их обнаружения, о новых вирусах выдается предупреждение. Во всех режимах работы может быть установлена обязательная проверка оперативной памяти (основной и расширенной), а также системных областей диска. 4. Антивирусный пакет AntiViralToolkitProАнтивирусный пакет AntiViral Toolkit Pro (AVP) для Windows 95 (Windows NT) ЗАО “Лаборатория Касперского” является лучшей программа в своей области. Эта программа - новый шаг в борьбе с компьютерными вирусами. Она представляет из себя полностью 32-х разрядное приложение, оптимизированное для работы в популярной во всем мире среде Microsoft Windows 95 (Windows NT) и использующее все ее возможности. AVP имеет удобный пользовательский интерфейс, характерный для Windows 95, большое количество настроек, выбираемых пользователем, а также одну из самых больших в мире антивирусных баз (свыше 30000), что гарантирует надежную защиту от огромного числа самых разнообразных вирусов. В ходе работы AVP сканирует: оперативную память (DOS, XMS, EMS), файлы, включая архивные и упакованные, системные сектора, содержащие Master Boot Record, загрузочный сектор (Boot-сектор) и таблицу разбиения диска (Partition Table). Основные особенности AVP: Детектирование и удаление огромного числа самых разнообразных вирусов, в том числе: - полиморфных или самошифрующихся вирусов; - стелс-вирусов или вирусов-невидимок; - новых вирусов для Windows 3.XX и Windows 95; - макро вирусов, заражающих документы Word и таблицы Excel. Сканирование внутри упакованных файлов (модуль Unpacking Engine). Сканирование внутри архивных файлов (модуль Extracting Engine). Сканирование объектов на гибких, локальных, сетевых и CD-ROM дисках. Эвристический модуль Code Analyzer, необходимый для детектирования неизвестных вирусов. Поиск в режиме избыточного сканирования. Проверка объектов на наличие в них изменений. “AVP Monitor” – резидентный модуль, находящийся постоянно в оперативной памяти компьютера и отслеживающий все файловые операции в системе. Позволяет обнаружить и удалить вирус до момента реального заражения системы в целом. ЗаключениеЧтобы эффективно бороться с вирусами, необходимо иметь представление о “привычках” вирусов и ориентироваться в методах противодействия вирусам. Вирусом называется специально созданная программа, способная самостоятельно распространяться в компьютерной среде. Если вирус попал в компьютер вместе с одной из программ или с файлом документа, то через некоторое время другие программы или файлы на этом компьютере будут заражены. Если компьютер подключен к локальной или глобальной сети, то вирус может распространиться и дальше, на другие компьютеры. Авторы вирусных программ создают их из разных побуждений, однако результаты работы вирусов оказываются, как правило, схожими: инфекции портят программы и документы, находящиеся на компьютере, что часто приводит к их утрате. Некоторые вирусы способны уничтожать вообще всю информацию на дисках компьютеров, стоимость которой может в десятки и сотни раз превышать стоимость самого компьютера. Внешние проявления деятельности вирусов весьма разнообразны. Одни вирусы относительно безопасны для данных и действуют только на нервы пользователю. Они могут, например, вызывать осыпание символов на экране, выводить на экран посторонние надписи, воспроизводить посторонние звуки через динамик компьютера. Другие - немного изменяют данные на диске компьютера. Этот случай наиболее опасен. Если пользователь вовремя не обнаружит вирус, и тот незаметно изменит файлы документов или баз данных, ошибка проявится позже в виде неправильных расчетов или искаженного баланса. Встречается вирус, выполняющий компрессию заражаемых файлов. Он сжимает файлы без разрешения пользователя. Существует несколько основных методов поиска вирусов, которые применяются антивирусными программами: сканирование; эвристический анализ; обнаружение изменений; резидентные мониторы. Антивирусы могут реализовывать все перечисленные выше методики, либо только некоторые из них. Для успешной борьбы с вирусами можно воспользоваться различными программными продуктами отечественного производства, некоторые из которых признаются лучшими в мире. 35 35.1 Если вычислительный процесс заканчивается получением результатов, то говорят, что соответствующий алгоритм применим к рассматриваемой совокупности исходных данных. В противном случае говорят, что алгоритм неприменим к совокупности исходных данных. Любой применимый алгоритм обладает следующими основными свойствами: · дискретностью; · определенностью; · результативностью; · массовостью. Дискретность – последовательное выполнение простых или ранее определённых (подпрограммы) шагов. Преобразование исходных данных в результат осуществляется дискретно во времени. состоит в совпадении получаемых результатов независимо от пользователя и применяемых технических средств (однозначность толкования инструкций). означает возможность получения результата после выполнения конечного количества операций. заключается в возможности применения алгоритма к целому классу однотипных задач, различающихся конкретными значениями исходных данных (разработка в общем виде). · набор объектов, составляющих совокупность возможных исходных данных, промежуточных и конечных результатов; · правило начала; · правило непосредственной переработки информации (описание последовательности действий); · правило окончания; · правило извлечения результатов. Алгоритм всегда рассчитан на конкретного исполнителя. В нашем случае таким исполнителем является ЭВМ. Для обеспечения возможности реализации на ЭВМ алгоритм должен быть описан на языке, понятном компьютеру, то есть на языке программирования. - это описание алгоритма и данных на некотором языке программирования, предназначенное для последующего автоматического выполнения. 35.2 Исполнитель алгоритма — это некоторая система, способная выполнить действия, предписываемые алгоритмом. Характеристики исполнителя: · сpеда — это "место обитания" исполнителя; · элементаpные действия — после вызова команды исполнитель совеpшает соответствующее элементаpное действие; · cистема команд — некий строго заданный список команд, с заданными условиями применимости и описанными результатами выполнения команды; · отказы — возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды. В информатике универсальным исполнителем алгоритмов является компьютер. Исполнитель алгоритма — это устройство управления, соединенное с набором инструментов. Устройство управления понимает алгоритмы и организует их выполнение, командуя соответствующими инструментами. Алгоритм — это организованная последовательность действий, допустимых для некоторого исполнителя 35.3 АЛГОРИТМИЧЕСКИЙ ЯЗЫК. Искусственная система языковых средств, обладающая выразительными возможностями, достаточными для того, чтобы с ее помощью можно было задать любое принадлежащее заранее очерченному классу детерминированное общепонятное предписание, выполнение которого ведет от варьирующих в определенных пределах исходных данных к искомому результату. Такого рода предписания носят название алгоритмов , откуда и сам термин «алгоритмический язык». В систематическое употребление он был введен в 1958 Г.Боттенбрухом. Исторически понятие алгоритмического языка сформировалось в 50-х гг. 20 в. в процессе становления компьютерного программирования как самостоятельной научной дисциплины. Однако теоретические истоки этого понятия прослеживаются еще в работах 30-х гг. С.К.Клини, Э.Л.Поста, А.М.Тьюринга и А.Черча по уточнению общего математического понятия алгоритма. В настоящее время теория алгоритмических языков, а также проблематика, связанная с их разработкой и использованием, составляет один из важнейших разделов информатики. В логико-лингвистическом и гносеологическом аспекте алгоритмические языки представляют собой одну из моделей императива (повелительного наклонения), и потому выступают, с одной стороны, как средство фиксации операционного знания, а с другой – как инструмент машинной, человеко-машинной или даже просто человеческой коммуникации. За короткий промежуток времени алгоритмические языки превратились в новое познавательное средство, органически вошедшее в научную и практическую деятельность человека. Обычно к ним предъявляется требование «универсальности», заключающееся в том, что должна иметься возможность моделирования с их помощью любых алгоритмов из числа тех, которые дают какое-либо уточнение общего понятия алгоритма (напр., машин Тьюринга). Абсолютная точность синтаксиса алгоритмического языка необходима не во всех случаях. Она обязательна в рассмотрениях содержательного характера. Но в определенных ситуациях (напр., когда тексты, записанные на каком-либо алгоритмическом языке, начинают выступать в роли средства общения с компьютером) этот алгоритмический язык должен быть оформлен в виде соответствующего формализованного языка с четко описанным синтаксисом и точно заданной семантикой его грамматических категорий. Центральное место в таких алгоритмических языках занимают тексты, называющиеся программами (собственно говоря, именно они и выражают понятие алгоритма). Понятие программы формулируется в чисто структурных терминах синтаксиса этого языка, без какого-либо обращения к смысловым категориям. Точно такой же характер носит и описание процедуры выполнения программы. Поэтому в роли исполнителя алгоритмов, записанных на формализованных алгоритмических языках, может выступать не только человек, но и наделенное соответствующими возможностями автоматическое устройство, напр., компьютер. «Теоретические» алгоритмические языки (такие, как язык машин Тьюринга или нормальных алгорифмов Маркова) лежат в основе общей теории алгоритмов. «Практические» алгоритмические языки – т.н. языки программирования для компьютеров (в настоящее время их известно более тысячи) – используются в практике машинного решения самых разнообразных по своему характеру задач. На ранней стадии программирования употреблялись «машинно-ориентированные» алгоритмические языки (т.н. языки «низкого уровня»), учитывавшие структуру или даже характеристики конкретных вычислительных машин (систему команд, особенности и структуру памяти и т.п.). Потом им на смену пришли «проблемно-ориентированные» алгоритмические языки (языки «высокого уровня»), освободившие пользователя от необходимости ориентироваться на машины определенного типа и тем самым придавшие его усилиям гораздо большую математическую направленность. Дальнейшим развитием идеи алгоритмического языка явились языки программирования более общего, не обязательно алгоритмического характера. Как и алгоритмические языки, такие языки в конечном счете тоже нацелены на получение машинных программ, но во многих случаях их тексты допускают определенную свободу в выполнении и, как правило, дают лишь материал для синтеза искомых алгоритмов, а не сами эти алгоритмы. Все убыстряющееся проникновение вычислительных машин в научную, культурную и социальную сферы ведет к значительному повышению роли алгоритмических языков в жизни общества, и это выражается, в частности, в том, что алгоритмы и реализующие их программы (т.е., в конечном счете, тексты на некоторых алгоритмических языках) все более и более приобретают характер реальных ресурсов экономического, научного и культурного потенциала общества, что в свою очередь вызывает к жизни значительное количество серьезных методологических и гносеологических проблем. Кроме того, все расширяющееся (вплоть до обиходного) пользование алгоритмическими языками приводит к установлению особого стиля мышления, и соотношение мышления такого рода с традиционным математическим тоже представляет собой важную и мало разработанную методологическую проблему. 37 КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ 2.1. Машинно – ориентированные языки Машинно – ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно –ориентированные языки позволяют использовать все возможности и особенности Машинно – зависимых языков: - высокое качество создаваемых программ (компактность и скорость выполнения); - возможность использования конкретных аппаратных ресурсов; - предсказуемость объектного кода и заказов памяти; - для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ; - трудоемкость процесса составления программ ( особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок; - низкая скорость программирования; - невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов. Машинно-ориентированные языки по степени автоматического программирования подразделяются на классы. 2.1.1. Машинный язык Как я уже упоминал, в введении, отдельный компьютер имеет свой определенный Машинный язык (далее МЯ ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции. В новых моднлях ЭВМ намечается тенденция к повышению внутренних языков машинно – аппаратным путем реализовывать более сложные команды, приближающиеся по своим функциональным действиям к операторам алгоритмических языков программирования. 2.1.2. Языки Символического Кодирования Продолжим рассказ о командных языках, Языки Символического Кодирования (далее ЯСК ), так же, как и МЯ , являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены на символы (идентификаторы), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ. Использование символических адресов – первый шаг к созданию ЯСК . Команды ЭВМ вместо истинных (физических) адресов содержат символические адреса. По результатам составленной программы определяется требуемое количество ячеек для хранения исходных промежуточных и результирующих значений. Назначение адресов, выполняемое отдельно от составления программы в символических адресах, может проводиться менее квалифицированным программистом или специальной программой, что в значительной степени облегчает труд программиста. 2.1.3. Автокоды Есть также языки, включающие в себя все возможности ЯСК , посредством расширенного введения макрокоманд - они называются Автокоды . В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования , доступный программисту. Макрокоманды переводятся в машинные команды двумя путями – расстановкой и генерированием . В постановочной системе содержатся «остовы» - серии команд, реализующих требуемую функцию, обозначенную макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые в процессе трансляции вставляются в «остов» программы, превращая её в реальную машинную программу. В системе с генерацией имеются специальные программы, анализирующие макрокоманду, которые определяют, какую функцию необходимо выполнить и формируют необходимую последовательность команд, реализующих данную функцию. Обе указанных системы используют трансляторы с ЯСК и набор макрокоманд, которые также являются операторами автокода. Развитые автокоды получили название Ассемблер ы. Сервисные программы и пр., как правило, составлены на языках типа Ассемблер . Более полная информация об языке Ассемблер а см. ниже. 2.1.4. Макрос Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму - называется Макрос (средство замены). В основном, Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором . На макропроцессор поступает макроопределяющий и исходный текст. Реакция макропроцессора на вызов-выдача выходного текста. Макрос одинаково может работать, как с программами, так и с данными. 2.2. Машинно – независимые языки Машинно – независимые языки – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ и ВС. Подобные языки получили название высокоуровневых языков программирования. Программы, составляемые на таких языках, представляют собой последовательности операторов, структурированные согласно правилам рассматривания языка(задачи, сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять система после трансляции программы на МЯ . Т.о., командные последовательности (процедуры, подпрограммы), часто используемые в машинных программах, представлены в высокоуровневых языках отдельными операторами. Программист получил возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма. 2.2.1. Проблемно – ориентированные языки С расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач, ими стали проблемно – ориентированные языки . Эти языки, языки ориентированные на решение определенных проблем, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме. Проблемных языков очень много, например: Фортран, Алгол – языки, созданные для решения математических задач; Simula, Слэнг - для моделирования; Лисп, Снобол – для работы со списочными структурами. Об этих языках я расскажу дальше. 2.2.2. Универсальные языки Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1 . Второй по мощности универсальный язык называется Алгол-68 . Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ. Программы в Пл/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола . Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти. 2.2.3. Диалоговые языки Появление новых технических возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками . Эти работы велись в двух направлениях. Создавались специальные управляющие языки для обеспечения оперативного воздействия на прохождение задач, которые составлялись на любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач. Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу с использованием диалогового языка система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе. Одним из примеров диалоговых языков является Бэйсик . Бэйсик использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран . Поэтому этот язык позволяет решать достаточно широкий круг задач. 2.2.4. Непроцедурные языки Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами. Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения. Табличные методы легко осваиваются специалистами любых профессий. Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе. 37.2 Трансля́тор — программа или техническое средство, выполняющее трансляцию программы [1] [2] [3] [4] [2] . Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т. д.[1] Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.[1] Язык, на котором представлена входная программа, называется исходным языком , а сама программа — исходным кодом . Выходной язык называется целевым языком или объектным кодом . Понятие трансляции относится не только к языкам программирования, но и к другим компьютерным языкам, вроде языков разметки, аналогичных HTML, и к естественным языкам, вроде английского или русского (см.: перевод). Компиляция (программирование) — преобразование программой-компилятором исходного текста какой-либо программы, написанного на языке программирования высокого уровня, в язык, близкий к машинному, или в объектный код. Интерпрета́тор (языка программирования) —
Типы интерпретаторовПростой интерпретатор анализирует и тут же выполняет (собственно интерпретация) программу покомандно (или построчно), по мере поступления её исходного кода на вход интерпретатора. Достоинством такого подхода является мгновенная реакция. Недостаток — такой интерпретатор обнаруживает ошибки в тексте программы только при попытке выполнения команды (или строки) с ошибкой. Интерпретатор компилирующего типа — это система из компилятора, переводящего исходный код программы в промежуточное представление, например, в байт-код или p-код, и собственно интерпретатора, который выполняет полученный промежуточный код (так называемая виртуальная машина). Достоинством таких систем является большее быстродействие выполнения программ (за счёт выноса анализа исходного кода в отдельный, разовый проход, и минимизации этого анализа в интерпретаторе). Недостатки — большее требование к ресурсам и требование на корректность исходного кода. Применяется в таких языках, как Java, PHP, Python, Perl (используется байт-код[источник не указан 593 дня ] ), REXX (сохраняется результат парсинга исходного кода[5] ), а также в различных СУБД (используется p-код[источник не указан 593 дня ] ). В случае разделения интерпретатора компилирующего типа на компоненты получаются компилятор языка и простой интерпретатор с минимизированным анализом исходного кода. Причём исходный код для такого интерпретатора не обязательно должен иметь текстовый формат или быть байт-кодом, который понимает только данный интерпретатор, это может быть машинный код какой-то существующей аппаратной платформы. К примеру, виртуальные машины вроде QEMU, Bochs, VMware включают в себя интерпретаторы машинного кода процессоров семейства x86. Некоторые интерпретаторы (например, для языков Лисп, Scheme, Python, Бейсик и других) могут работать в режиме диалога или так называемого цикла чтения-вычисления-печати (англ. read-eval-print loop, REPL ). В таком режиме интерпретатор считывает законченную конструкцию языка (например, s-expression в языке Лисп), выполняет её, печатает результаты, после чего переходит к ожиданию ввода пользователем следующей конструкции. Уникальным является язык Forth, который способен работать как в режиме интерпретации, так и компиляции входных данных, позволяя переключаться между этими режимами в произвольный момент, как во время трансляции исходного кода, так и во время работы программ.[6] Следует также отметить, что режимы интерпретации можно найти не только в программном, но и аппаратном обеспечении. Так, многие микропроцессоры интерпретируют машинный код с помощью встроенных микропрограмм, а процессоры семейства x86, начиная с Pentium (например, на архитектуре Intel P6), во время исполнения машинного кода предварительно транслируют его во внутренний формат (в последовательность микроопераций). Алгоритм работы простого интерпретатора
[Достоинства и недостатки интерпретаторов[Достоинства
Недостатки
38 Объе́ктно-ориенти́рованное программи́рование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием, — прототипов). Класс — это тип, описывающий устройство объектов. Понятие «класс» подразумевает некоторое поведение и способ представления. Понятие «объект» подразумевает нечто, что обладает определённым поведением и способом представления. Говорят, что объект — это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области. Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности, т.н. объекта. Объект — сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса (например, после запуска результатов компиляции (и линковки) исходного кода на выполнение). Прототип — это объект-образец, по образу и подобию которого создаются другие объекты. Обзор принципов объектно-ориентированного программированияМы уже многое повидали. Основные типы с их свойствами и перечнем операций, леводопустимые выражения, операторы управления, массивы и указатели, указатели на функции и функции, использующие указатели на функции как параметры и возвращаемые значения, совместно используемые (перегруженные) функции и алгоритм сопоставления… При объявлении классов мы знаем, в чём состоят различия между статическими и нестатическими членами, нам известно назначение деструкторов и особенности различных вариантов конструкторов. Мы познакомились с принципом наследования - одним из трёх основных принципов объектно-ориентированного программирования. Он реализуется через механизмы наследования и виртуальных классов, которые позволяют строить новые производные классы на основе ранее объявленных базовых классов. Принцип наследования уподобил процесс программирования процессу сборки сложных устройств и механизмов из наборов стандартных узлов и деталей. Принцип инкапсуляции - второй принцип объектно-ориентированного программирования, делает процесс программирования ещё более похожим на работу в сборочном цехе. Хорошо спроектированный класс имеет открытый интерфейс для взаимодействия с "внешним миром" и защищённую от случайного воздействия "внутреннюю" часть. Такой класс подобен автомобильному двигателю. В момент его установки в кузове или на раме при сборке автомобиля, он уже полностью собран. И не нужно сверлить в корпусе двигателя дополнительные отверстия для подсоединения трубопроводов системы охлаждения, подачи топлива и машинного масла. Разделение класса на скрытую внутреннюю часть и открытый интерфейс обеспечивается системой управления доступом к компонентам класса и дружественными функциями. Принцип полиморфизма (полиморфизм означает буквально многообразие форм) - ещё один принцип объектно-ориентированного программирования. Он заключается в способности объекта во время выполнения программы динамически изменять свои свойства. Возможность настройки указателя на объект базового класса на объекты производных классов и механизм виртуальных функций лежат в основе этого принципа объектно-ориентированного программирования. Многое нам ещё предстоит узнать, но то главное, что собственно и делает C++ объектно-ориентированным языком, уже известно. 39 ОБЗОРВ данной статье дается обзор среды программирования Delphi. Обсуждаются главные части рабочей среды и охватываются такие важные вопросы как требования к системным ресурсам и основные части программы, созданной в Delphi. В конце статьи можно найти короткое обсуждение тьюторов. Данная статья предполагает наличие знаний о:
Структура среды программированияВнешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows. Кпримеру, Borland Pascal for Windows 7.0, Borland C++ 4.0, Word for Windows, Program Manager - этовсе MDI приложенияивыглядятпо-другому, чем Delphi. MDI (Multiple Document Interface) - определяет особый способ управления нескольких дочерних окон внутри одного большого окна. Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон. Это было сделано из-за того, что SDI близок к той модели приложений, что используется в Windows 95. Если Вы используете SDI приложение типа Delphi, то уже знаете, что перед началом работы лучше минимизировать другие приложения, чтобы их окна не загромождали рабочее пространство. Если нужно переключиться на другое приложение, то просто щелкните мышкой на системную кнопку минимизации Delphi. Вместе с главным окном свернутся все остальные окна среды программирования, освободив место для работы других программ. Главные составные части среды программированияНиже перечислены основные составные части Delphi:
Есть, конечно, и другие важные составляющие Delphi, вроде линейки инструментов, системного меню и многие другие, нужные Вам для точной настройки программы и среды программирования. Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор). Прежде чем Вы начнете, убедитесь, что можете распознать эти два важных элемента. Дизайнер Форм показан на рис.1, окно Редактора - на рис.2. Рис.1: Дизайнер Форм - то место, где Вы создаете визуальный интерфейс программы.
Рис.2: В окне Редактора Вы создаете логику управления программой. Дизайнер Форм в Delphi столь интуитивно понятен и прост в использовании, что создание визуального интерфейса превращается в детскую игру. Дизайнер Форм первоначально состоит из одного пустого окна, которое Вы заполняете всевозможными объектами, выбранными на Палитре Компонент. Несмотря на всю важность Дизайнера Форм, местом, где программисты проводят основное время является Редактор. Логика является движущей силой программы и Редактор - то место, где Вы ее "кодируете". Палитра Компонент (см. рис.3) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз - на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши. Палитра Компонент использует постраничную группировку объектов. Внизу Палитры находится набор закладок - Standard, Additional, Dialogs и т.д. Если Вы щелкнете мышью на одну из закладок, то Вы можете перейти на следующую страницу Палитры Компонент. Принцип разбиения на страницы широко используется в среде программирования Delphi и его легко можно использовать в своей программе. (На странице Additional есть компоненты для организации страниц с закладками сверху и снизу). Рис.3: Палитра Компонент - место, где Вы выбираете объекты, которые будут помещены на вашу форму. Предположим, Вы помещаете компонент TEdit на форму; Вы можете двигать его с места на место. Вы также можете использовать границу, прорисованную вокруг объекта для изменения его размеров. Большинством других компонент можно манипулировать тем же образом. Однако, невидимые во время выполнения программы компоненты (типа TMenu или TDataBase) не меняют своей формы. Слева от Дизайнера Форм Вы можете видеть Инспектор Объектов (рис.4). Заметьте, что информация в Инспекторе Объектов меняется в зависимости от объекта, выбранного на форме. Важно понять, что каждый компонент является настоящим объектом и Вы можете менять его вид и поведение с помощью Инспектора Объектов. Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств, вторая - список событий. Если нужно изменить что-нибудь, связанное с определенным компонентом, то Вы обычно делаете это в Инспекторе Объектов. К примеру, Вы можете изменить имя и размер компонента TLabel изменяя свойства Caption, Left, Top, Height, и Width. Вы можете использовать закладки внизу Инспектора Объектов для переключения между страницами свойств и событий. Рис.4: Инспектор Объектов позволяет определять свойства и поведение объектов, помещенных на форму. Страница событий связана с Редактором; если Вы дважды щелкнете мышкой на правую сторону какого-нибудь пункта, то соответствующий данному событию код автоматически запишется в Редактор, сам Редактор немедленно получит фокус, и Вы сразу же имеете возможность добавить код обработчика данного события. Данный аспект среды программирования Delphi будет еще обсуждаться позднее. Последняя важная часть среды Delphi - Справочник (on-line help). Для доступа к этому инструменту нужно просто выбрать в системном меню пункт Help и затем catchword. На экране появится Справочник, показанный на рис.5 Рис.5: Справочник - быстрый поиск любой информации. Справочник является контекстно-зависимым; при нажатии клавиши F1, Вы получите подсказку, соответствующую текущей ситуации. Например, находясь в Инспекторе Объектов, выберите какое-нибудь свойство и нажмите F1 - Вы получите справку о назначении данного свойства. Если в любой момент работы в среде Delphi возникает неясность или затруднение - жмите F1 и необходимая информация появится на экране. Дополнительные элементыВ данном разделе внимание фокусируется на трех инструментах, которые можно воспринимать как вспомогательные для среды программирования:
Меню предоставляет быстрый и гибкий интерфейс к среде Delphi, потому что может управляться по набору "горячих клавиш". Это удобно еще и потому, что здесь используются слова или короткие фразы, более точные и понятные, нежели иконки или пиктограммы. Вы можете использовать меню для выполнения широкого круга задач; скорее всего, для наиболее общих задач вроде открытия и закрытия файлов, управления отладчиком или настройкой среды программирования. SpeedBar находится непосредственно под меню, слева от Палитры Компонент (рис.6). SpeedBar выполняет много из того, что можно сделать через меню. Если задержать мышь над любой из иконок на SpeedBar, то Вы увидите что появится подсказка, объясняющая назначение данной иконки. Рис.6: SpeedBar находится слева от Палитры Компонент. Редактор Картинок, показанный на рис.7, работает аналогично программе Paintbrush из Windows. Вы можете получить доступ к этому модулю выбрав пункт меню Tools | Image Editor. Рис.7: Редактор Картинок можно использовать для создания картинок для кнопок, иконок и др. визуальных частей для программы. А теперь нужно рассмотреть те элементы, которые программист на Delphi использует в повседневной жизни. Инструментальные средстваВ дополнение к инструментам, обсуждавшимся выше, существуют пять средств, поставляемых вместе с Delphi. Эти инструментальные средства:
Данные инструменты собраны в отдельную категорию не потому, что они менее важны, чем другие, но потому, что они играют достаточно абстрактную техническую роль в программировании. Чтобы стать сильным программистом на Delphi, Вам понадобится понять, как использовать отладчик Delphi. Отладчик позволяет Вам пройти пошагово по исходному тексту программы, выполняя по одной строке за раз, и открыть просмотровое окно (Watch), в котором будут отражаться текущие значения переменных программы. Встроенный отладчик, который наиболее важен из пяти вышеперечисленных инструментов, работает в том же окне, что и Редактор. Внешний отладчик делает все, что делает встроенный и кое-что еще. Он более быстр и мощен, чем встроенный. Однако он не так удобен в использовании, главным образом из-за необходимости покидать среду Delphi. Теперь давайте поговорим о компиляторах. Внешний компилятор, называется DCC.EXE, полезен, в основном, если Вы хотите скомпилировать приложение перед отладкой его во внешнем отладчике. Большинство программистов, наверняка, посчитают, то гораздо проще компилировать в среде Delphi, нежели пытаться создать программу из командной строки. Однако, всегда найдется несколько оригиналов, которые будут чувствовать себя счастливее, используя компилятор командной строки. Но это факт - возможно создать и откомпилировать программу на Delphi используя только DCC.EXE и еще одну программу CONVERT.EXE, которая поможет создать формы. Однако, данный подход неудобен для большинства программистов. WinSight и WinSpector интересны преимущественно для опытных программистов в Windows. Это не значит, что начинающий не должен их запускать и экспериментировать с ними по своему усмотрению. Но эти инструменты вторичны и используются для узких технических целей. Из этих двух инструментов WinSight определенно более полезен. Основная его функция - позволить Вам наблюдать за системой сообщений Windows. Хотя Delphi делает много для того, чтобы спрятать сложные детали данной системы сообщений от неопытных пользователей, тем не менее Windows является операционной системой, управляемой событиями. Почти все главные и второстепенные события в среде Windows принимают форму сообщений, которые рассылаются с большой интенсивностью среди различными окнами на экране. Delphi дает Вам полный доступ к сообщениям Windows и позволяет отвечать на них, как только будет нужно. В результате, опытным пользователям WinSight становится просто необходим. WinSpector сохраняет запись о текущем состоянии машины в текстовый файл; Вы можете просмотреть этот файл для того, чтобы узнать, что неправильно идет в программе. Данный инструмент полезен, когда программа находится в опытной эксплуатации - можно получить важную информацию при крушении системы. Стандартные компонентыДля дальнейшего знакомства со средой программирования Delphi потребуется рассказать о составе первой страницы Палитры Компонент. На первой странице Палитры Компонент размещены 14 объектов (рис.8) определенно важных для использования. Мало кто обойдется длительное время без кнопок, списков, окон ввода и т.д. Все эти объекты такая же часть Windows, как мышь или окно. Набор и порядок компонент на каждой странице являются конфигурируемыми. Так, Вы можете добавить к имеющимся компонентам новые, изменить их количество и порядок. Рис.8: Компоненты, расположенные на первой странице Палитры. Стандартные компоненты Delphi перечислены ниже с некоторыми комментариями по их применению. При изучении данных компонент было бы полезно иметь под рукой компьютер с тем, чтобы посмотреть, как они работают и как ими манипулировать.
составляет 10-20 страниц. (Есть VBX и "родные" компоненты Delphi, где этот предел снят).
Это полный список объектов на первой странице Палитры Компонент. Если Вам нужна дополнительная информация, то выберите на Палитре объект и нажмите клавишу F1 - появится Справочник с полным описанием данного объекта. Подробнее об Инспекторе ОбъектовРанее мы вкратце рассмотрели Инспектор Объектов (Object Inspector). Теперь нужно исследовать этот важный инструмент глубже. Основное для понимания Инспектора Объектов состоит в том, что он используется для изменения характеристик любого объекта, брошенного на форму. Кроме того, и для изменения свойств самой формы. Лучший путь для изучения Инспектора объектов - поработать с ним. Для начала откройте новый проект, выбрав пункт меню File | New Project. Затем положите на форму объекты TMemo, TButton, и TListBox, как показано на рис.9. Рис.9: Простой объект TForm с компонентами TMemo, TButton, и TListBox. Сперва рассмотрим работу со свойствами на примере свойства Ctl3D (по умолчанию включено). Выберите форму, щелкнув на ней мышкой, перейдите в Инспектор Объектов и несколько раз с помощью двойных щелчков мышью переключите значение свойства Ctl3D. Заметьте, что это действие радикально меняет внешний вид формы. Изменение свойства Ctl3D формы автоматически изменяет свойство Ctl3D каждого дочернего окна, помещенного на форму. Вернитесь на форму и поставьте значение Ctl3D в True. Теперь нажмите клавишу и щелкните на TMemo и затем на TListBox. Теперь оба объекта имеют по краям маленькие квадратики, показывающие, что объекты выбраны. Рис.10: Пункт меню Edit дает Вам доступ к двум диалогам для выравнивания выбранного набора компонент. Первый диалог - управление размерами объектов в наборе. Выбрав два или более объектов одновременно, Вы можете выполнить большое число операций над ними. Например, передвигать по форме. Затем попробуйте выбрать пункт меню Edit | Size и установить оба поля Ширину(Width) и Высоту(Height) в Grow to Largest, как показано на рис.10. Теперь оба объекта стали одинакового размера. Затем выберите пункт меню Edit | Align и поставьте в выравнивании по горизонтали значение Center (см. рис.11). Рис.11: Диалог Alignment помогает выровнять компоненты на форме. Поскольку Вы выбрали сразу два компонента, то содержимое Инспектора Объектов изменится - он будет показывать только те поля, которые являются общими для объектов. Это означает то, что изменения в свойствах, произведенные Вами повлияют не на один, а на все выбранные объекты. Рассмотрим изменение свойств объектов на примере свойства Color. Есть три способа изменить его значение в Инспекторе Объектов. Первый - просто напечатать имя цвета (clRed) или номер цвета. Второй путь - нажать на маленькую стрелку справа и выбрать цвет из списка. Третий путь - дважды щелкнуть на поле ввода свойства Color. При этом появится диалог выбора цвета. Свойство Font работает на манер свойства Color. Чтобы это посмотреть, сначала выберите свойство Font для объекта TMemo и дважды щелкните мышкой на поле ввода. Появится диалог настройки шрифта, как показано на рис.12. Выберите, например, шрифт New Times Roman и установите какой-нибудь очень большой размер, например 72. Затем измените цвет фонта с помощью ComboBox'а в нижнем правом углу окна диалога. Когда Вы нажмете кнопку OK, Вы увидите, что вид текста в объекте TMemo радикально изменился. Рис.12: Диалог выбора шрифта позволяет Вам задать тип шрифта, размер, и цвет. В завершение краткого экскурса по Инспектору Объектов дважды щелкните на свойство Items объекта ListBox. Появится диалог, в котором Вы можете ввести строки для отображения в ListBox. Напечатайте несколько слов, по одному на каждой строке, и нажмите кнопку OK. Текст отобразится в ListBox'е. Сохранение программыВы приложили некоторые усилия по созданию программы и можете захотеть ее сохранить. Это позволит загрузить программу позже и снова с ней поработать. Первый шаг - создать поддиректорию для программы. Лучше всего создать директорию, где будут храниться все Ваши программы и в ней - создать поддиректорию для данной конкретной программы. Например, Вы можете создать директорию MYCODE и внутри нее - вторую директорию TIPS1, которая содержала бы программу, над которой Вы только что работали. После создания поддиректории для хранения Вашей программы нужно выбрать пункт меню File | Save Project. Сохранить нужно будет два файла. Первый - модуль (unit), над которым Вы работали, второй - главный файл проекта, который "владеет" Вашей программой. Сохраните модуль под именем MAIN.PAS и проект под именем TIPS1.DPR. (Любой файл с расширением PAS и словом "unit" в начале является модулем.) TButton, исходный текст, заголовки и Z-упорядочиваниеЕще несколько возможностей Инспектора Объектов и Дизайнера Форм. Создайте новый проект. Поместите на форму объект TMemo, а затем TEdit так, чтобы он наполовину перекрывал TMemo, как показано на рис.13. Теперь выберите пункт меню Edit | Send to Back, что приведет к перемещению TEdit вглубь формы, за объект TMemo. Это называется изменением Z-порядка компонент. Буква Z используется потому, что обычно математики обозначают третье измерение буквой Z. Так, X и Y используются для обозначения ширины и высоты, и Z используется для обозначения глубины. Рис.13: Объект TEdit перекрывается наполовину объектом TMemo. Если Вы "потеряли" на форме какой-то объект, то найти его можно в списке Combobox'а, который находится в верхней части Инспектора Объектов. Поместите кнопку TButton в нижнюю часть формы. Теперь растяните Инспектор Объектов так, чтобы свойства Name и Caption были видны одновременно на экране. Теперь измените имя кнопки на Terminate. Заметьте, что заголовок (Caption) поменялся в тот же момент. Такое двойное изменение наблюдается только если ранее не изменялось свойство Caption. Текст, который Вы видите на поверхности кнопки - это содержимое свойства Caption, свойство Name служит для внутренних ссылок, Вы будете использовать его при написании кода программы. Если Вы откроете сейчас окно Редактора, то увидите следующий фрагмент кода: TForm1 = class(TForm)Edit1: TEdit;Memo1: TMemo;Terminate: TButton;private{ Private declarations }public{ Public declarations }end;В этом фрагменте кнопка TButton называется Terminate из-за того, что Вы присвоили это название свойству Name. Заметьте, что TMemo имеет имя, которое присваивается по умолчанию. Перейдите на форму и дважды щелкните мышкой на объект TButton. Вы сразу попадете в окно Редактора, в котором увидите фрагмент кода вроде этого: procedure TForm1.TerminateClick(Sender: TObject);begin end;Данный код был создан автоматически и будет выполняться всякий раз, когда во время работы программы пользователь нажмет кнопку Terminate. Вдобавок, Вы можете видеть, что определение класса в начале файла теперь включает ссылку на метод TerminateClick: TForm1 = class(TForm)Edit1: TEdit;Memo1: TMemo;Terminate: TButton;procedure TerminateClick(Sender: TObject);private{ Private declarations }public{ Public declarations }end;Потратьте немного времени на усвоение последовательности действий, описанных выше. Изначально Вы смотрите на кнопку на форме. Вы делаете двойной щелчок на эту кнопку, и соответствующий фрагмент кода автоматически заносится в Редактор. Теперь самое время написать строчку кода. Это очень простой код, состоящий из одного слова Close: procedure TForm1.TerminateClick(Sender: TObject);beginClose;end;Когда этот код исполняется, то главная форма (значит и все приложение) закрывается. Для проверки кода запустите программу и нажмите кнопку Terminate. Если все сделано правильно, программа закроется и Вы вернетесь в режим дизайна. Прежде, чем перейти к следующему разделу, перейдите в Инспектор Объектов и измените значение свойства Name для кнопки на любое другое, например OK. Нажмите Enter для внесения изменений. Посмотрите в Редактор, Вы увидите, что код, написанный Вами изменился: procedure TForm1.OkClick(Sender: TObject);beginClose;end;Заметьте, что аналогичные изменения произошли и в определении класса: TForm1 = class(TForm)Edit1: TEdit;Memo1: TMemo;Ok: TButton;procedure OkClick(Sender: TObject);private{ Private declarations }public{ Public declarations }end;Тьюторы (интерактивные обучающие программы)Delphi предоставляет тьютор, содержащий несколько тем и который можно запустить из пункта меню Help | Interactive Tutors. Тьютор запускается только если среда Delphi имеет все установки по умолчанию. Если конфигурация была изменена, то проще всего сохранить файл DELPHI.INI под другим именем и скопировать файл DELPHI.CBT в DELPHI.INI. В первых двух темах дается краткий обзор Delphi и происходит обучение построению простейшего приложения. Остальные темы посвящены построению пользовательского интерфейса: размещению объектов на форме, настройке их свойств и написанию обработчиков событий. А также созданию приложений, работающих с базами данных. Тема 1. Среда визуального программирования DELPHIСтудент должен: знать: технологию визуального проектирования. уметь: работать в визуальной среде программирования Delphi. · Запуск Delphi. · Главное окно Delphi. · Пиктографические кнопки. · Палитра компонентов. · Окно формы. · Окно инспектора объектов. · Окно кода программы. · Основы визуального программирования: настройка Delphi, имена в Delphi, изменение свойств формы. · Размещение нового компонента. · Реакция на событие: модификация формы, обработчик события OnClick, динамические изменения свойств компонента. · Библиотека компонентов. Краткий конспект Язык программирования Delphi происходит от Pascal - языка, разработанного Виртом специально для обучения структурному программированию. Delphi. Основные характеристики продукта Delphi - это комбинация нескольких важнейших технологий: · Высокопроизводительный компилятор в машинный код · Объектно-ориентированная модель компонент · Визуальное (следовательно, и скоростное) построение приложений из программных прототипов · Масштабируемые средства для построения баз данных Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре "клиент-сервер". Кроме того, компилятор компилятору рознь, в Delphi компиляция производится непосредственно в родной машинный код, в то время как существуют компиляторы, превращающие программу в так называемый p-код, который затем интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения. Событийная модель в Windows всегда была сложна для понимания и отладки. Delphi позволяет легко освоить приемы и методы объектно-ориентированного программирования и программирования с управлением по событиям. БЫСТРАЯ РАЗРАБОТКА РАБОТАЮЩЕГО ПРИЛОЖЕНИЯ ИЗ ПРОТОТИПОВ Традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста В процессе построения приложения разработчик выбирает из палитры компонент готовые компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы - после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. Cреда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Визуальные компоненты Delphi открыты для надстройки и переписывания. Эта библиотека объектов включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. СТРУКТУРНОЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ Delphi использует структурный объектно-ориентированный язык (Object Pascal), который сочетает с одной стороны выразительную мощь и простоту программирования, характерную для языков 4GL, а с другой стороны эффективность языка 3GL. Программисты немедленно могут начать производить работающие приложения, и им не придется для этого изучать особенности программирования событий в Windows. Delphi полностью поддерживает передовые программные концепции включая инкапсуляцию, наследование, полиморфизм и управление событиями. Объектно-ориентированное программирование и программирование с управлением по событиям. Основные понятия Объекты это некоторые элементы, из которых строится приложение (программное); С объектами связаны так же такие понятия как свойства события и методы, а так же классы объектов и методов. Свойство это определяющая характеристика некоторых вещей, с которыми работает программист, которая влияет на то, как будет выглядеть компонент, а так же на его невидимые черты (поведение); Событие это то, что происходит в реальном времени и может вызывать те или иные ответные действия; Методы способы, которыми объект может реагировать на те или иные события. Говорят, что события управляют методами объектов. Как объекты так и их методы подразделяются на классы. На бытовом уровне легко рассмотреть примеры, иллюстрирующие эти понятия (см. табл.1). Рисунок 1.1. Таблица 1. увеличить Задачей программиста, работающего с объектно-ориентированными моделями, является определение возможных событий для некоторого объекта и соответствующих этим событиям реакций объекта. Когда с объектом происходит предусмотренное событие, он должен "ответить" на него, вызвав соответствующую процедуру обработки данного события. В терминах Delphi процедуры, инициируемые событиями, называются обработчиками событий . Делегирование - под делегированием понимается то, что некий объект может предоставить другому объекту отвечать на некоторые события. Такая модель в некоторых случаях значительно упрощает программирование. К примеру, когда вы добавляете кнопку в форму и прикрепляете код, обрабатывающий нажатие, вы фактически используете делегирование кода для ассоциирования кода с событием OnClick . Такая ассоциация происходит для вас автоматически. Если проверить страницу Events в Инспекторе объектов для вашего приложения, можно увидеть ассоциированные с событиями процедуры. Интерфейс среды Delphi Существует два основных вида интерфейса под Windows: MDI и SDI. MDI (Multiple Document Interface) - определяет особый способ управления нескольких дочерних окон ВНУТРИ одного большого окна. Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI) , и состоит из нескольких отдельно расположенных окон. Ниже перечислены основные составные части Delphi: 1. Дизайнер Форм (Form Designer) 2. Окно Редактора Исходного Текста (Editor Window) 3. Палитра Компонент (Component Palette) 4. Инспектор Объектов (Object Inspector) 5. Справочник (On-line help) Есть, конечно, и другие важные составляющие Delphi, вроде линейки инструментов, системного меню и многие другие, нужные Вам для точной настройки программы и среды программирования. Соответственно общий интерфейс среды по умолчанию состоит из 4-х основных окон (Рис .1): Рисунок 1.2. Рис. 1 увеличить Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор). Прежде чем Вы начнете, убедитесь, что можете распознать эти два важных элемента. Дизайнер Форм показан на Рис.2, окно Редактора - на Рис.3. Рисунок 1.3. Рис. 2: Дизайнер Форм - то место, где Вы создаете визуальный интерфейс программы увеличить Рисунок 1.4. Рис.3: В окне Редактора Вы создаете логику управления программой. увеличить Дизайнер Форм в Delphi столь интуитивно понятен и прост в использовании, что создание визуального интерфейса превращается в детскую игру. Дизайнер Форм первоначально состоит из одного пустого окна, которое Вы заполняете всевозможными объектами, выбранными на Палитре Компонент. Несмотря на всю важность Дизайнера Форм, местом, где программисты проводят основное время является Редактор. Логика является движущей силой программы и Редактор - то место, где Вы ее "кодируете". Слева от Дизайнера Форм Вы можете видеть Инспектор Объектов (Рис.4). Заметьте, что информация в Инспекторе Объектов меняется в зависимости от объекта, выбранного на форме. Важно понять, что каждый компонент является настоящим объектом и Вы можете менять его вид и поведение с помощью Инспектора Объектов. Рисунок 1.5. Рис. 4: Инспектор Объектов позволяет определять свойства и поведение объектов, помещенных на форму. Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств, вторая - список событий. Если нужно изменить что-нибудь, связанное с определенным компонентом, то Вы обычно делаете это в Инспекторе Объектов. К примеру, Вы можете изменить имя и размер компонента TLabel изменяя свойства Caption, Left, Top, Height, и Width. Вы можете использовать закладки внизу Инспектора Объектов для переключения между страницами свойств и событий. Страница событий связана с Редактором; если Вы дважды щелкнете мышкой на правую сторону какого-нибудь пункта, то соответствующий данному событию код автоматически запишется в Редактор, сам Редактор немедленно получит фокус, и Вы сразу же имеете возможность добавить код обработчика данного события. Данный аспект среды программирования Delphi будет еще обсуждаться позднее. В главном окне принято выделять три основных выделенных элемента (не считая стандартной строки-заголовка): · Срока меню (Menu System) · Палитра компонентов · Панель быстрого доступа (SpeedBar) Меню предоставляет быстрый и гибкий интерфейс к среде Delphi, потому что может управляться по набору "горячих клавиш". Это удобно еще и потому, что здесь используются слова или короткие фразы, более точные и понятные, нежели иконки или пиктограммы. Вы можете использовать меню для выполнения широкого круга задач; скорее всего, для наиболее общих задач вроде открытия и закрытия файлов, управления отладчиком или настройкой среды программирования. Палитра Компонент (см. Рис.5) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз - на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши. Палитра Компонент использует постраничную группировку объектов. Внизу Палитры находится набор закладок - Standard, Additional, Dialogs и т.д. Если Вы щелкнете мышью на одну из закладок, то Вы можете перейти на следующую страницу Палитры Компонент. Принцип разбиения на страницы широко используется в среде программирования Delphi и его легко можно использовать в своей программе. (На странице Additional есть компоненты для организации страниц с закладками сверху и снизу). Рисунок 1.6. Рис.5: Палитра Компонент - место, где Вы выбираете объекты, которые будут помещены на вашу форму. увеличить SpeedBar находится непосредственно под меню, слева от Палитры Компонент (рис.6). SpeedBar выполняет много из того, что можно сделать через меню. Если задержать мышь над любой из иконок на SpeedBar, то Вы увидите что появится подсказка, объясняющая назначение данной иконки. Рисунок 1.7. Рис.6: SpeedBar находится слева от Палитры Компонент. Программирование в Delphi. Библиотека визуальных компонентов - часть 1В данной статье мы кратко остановимся на иерархии классов Delphi и рассмотрим некоторые компоненты VCL Delphi, которые располагаются на закладках Standard и Additional . Настало время рассмотреть компоненты, входящие в библиотеку визуальных компонентов (Visual Component Library) Delphi. Библиотека визуальных компонентов содержит большое число классов <готовых к употреблению>. Вся VCL построена по иерархическому принципу. Хотя VCL и называется библиотекой визуальных компонентов, на самом деле в нее входят также и невизуальные компоненты. Отметим, что визуальными называются компоненты, которые видны на форме как во время создания приложения, так и во время работы приложения. Невизуальные компоненты - видны только во время разработки приложения. Все компоненты VCL являются классами. И все они являются потомками базового класса TObject
. Данный класс является абстрактным и содержит базовые методы, которые наследуются классами-потомками. Основные методы класса TObject - это: Прямыми потомками класса TObject являются классы TPersistent , TException и TIniFile . Нам для рассмотрения компонентов Delphi наиболее интересен класс TPersistent, который добавляет к методам класса TObject метод Assign . Этот метод позволяет передавать поля и свойства одного объекта другому. Потомками класса TPersistent являются классы TComponent , TClipboard и TStrings . Именно класс TComponent является базовым классом для всех компонентов VCL Delphi, расположенных в палитре компонентов. Сразу после установки Delphi, в палитре компонентов мы видим 19 закладок: Каждая закладка объединяет стандартные компоненты Delphi в группы по отдельным признакам. Рассмотрим эти закладки: Standard - здесь расположены стандартные компоненты, обеспечивающие некоторые функции интерфейса пользователя. На этой закладке расположены следующие компоненты (слева направо):
Additional - на этой закладке располагаются дополнительные интерфейсные компоненты. Данная закладка содержит следующие компоненты (слева направо):
К сожалению, объем статьи не позволяет рассмотреть примеров применения данных компонентов. Поэтому рассмотрением применения вышеперечисленных компонентов на конкретных примерах мы займемся в следующий раз. |