Справочник от Автор24
Поделись лекцией за скидку на Автор24

Информатика: технические средства реализации информационных процессов; компьютерные сети

  • ⌛ 2019 год
  • 👀 477 просмотров
  • 📌 415 загрузок
  • 🏢️ Сибирский государственный университет геосистем и технологий
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Информатика: технические средства реализации информационных процессов; компьютерные сети» pdf
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ГЕОСИСТЕМ И ТЕХНОЛОГИЙ» (СГУГиТ) ИНФОРМАТИКА Курс лекций для обучающихся заочной формы обучения СГУГиТ Составитель С. Ю. Кацко Новосибирск СГУГиТ 2019 СОДЕРЖАНИЕ Введение ........................................................................................................... 3 Раздел 1. Теоретические основы информатики ............................................. 4 Раздел 2. Технические средства реализации информационных процессов................................................................................................... 32 Раздел 3. Модели решения функциональных и вычислительных задач .... 53 Раздел 4. Компьютерные сети ....................................................................... 70 Раздел 5 Программные средства реализации информационных процессов ............................................................................................. 98 Раздел 6. Алгоритмизация и программирование ....................................... 121 Раздел 7. Технологии программирования. Языки программирования высокого уровня .......................................................................... 133 Заключение ................................................................................................... 151 Библиографический список......................................................................... 152 2 ВВЕДЕНИЕ Целью освоения дисциплины «Информатика» является формирование у обучающихся общекультурной и общепрофессиональной компетенций, определяющих способность к абстрактному мышлению, анализу, синтезу; умение пользоваться компьютером как средством управления и обработки информационных массивов. К задачам дисциплины относятся следующие:  изучение основных законов и концепций информатики;  сбор, обработка, хранение и пересылка информации, работа с файлами;  изучение основных устройств ЭВМ и компьютерных сетей;  изучение комплекса прикладных программ для работы на ЭВМ и в сетях;  изучение языка программирования высокого уровня для написания собственных модулей для обработки информации. 3 РАЗДЕЛ 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ. СОВРЕМЕННЫЕ КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ ПОИСКА ИНФОРМАЦИИ План 1. Информатика и предмет её исследования. 2. Термин «информация». 3. Информационные процессы. Общая характеристика процессов сбора, передачи, обработки и накопления информации. 4. Информационные ресурсы и информационные технологии. 5. Системы счисления 6. Кодирование информации 7. Логические основы ЭВМ 1. Информатика и предмет её исследования Слово «информатика» происходит от французского слова «Informatique», образованного в результате объединения терминов Informacion (информация) и automatique (автоматика), что выражает ее суть как науки об автоматической обработке информации. Кроме Франции, термин информатика используется в ряде стран Восточной Европы. В то же время, в большинстве стран Западной Европы и США используется другой термин – Computer Science (наука о средствах вычислительной техники). Информатика – техническая наука, систематизирующая приемы создания, хранения, воспроизведения, обработки и передачи данных средствами вычислительной техники, а также принципы функционирования этих средств и методы управления ими. Основной задачей информатики является систематизация приемов и методов работы с аппаратными и программными средствами вычислительной техники. Цель систематизации состоит в выделении, внедрении и развитии передовых, наиболее эффективных технологий, в автоматизации этапов работы с данными, а также в методическом обеспечении новых технологических исследований. Предмет информатики составляет: – аппаратное обеспечение средств вычислительной техники; – программное обеспечение средств вычислительной техники; 4 – средства взаимодействия аппаратного и программного обеспечения; – средства взаимодействия человека с аппаратными и программными средствами. В состав основной задачи информатики входят следующие направления для практических приложений: – архитектура вычислительных систем (приемы и методы построения систем, предназначенных для автоматической обработки данных); – интерфейсы вычислительных систем (приемы и методы управления аппаратным и программным обеспечением); – программирование (приемы, методы и средства разработки компьютерных программ); – преобразование данных (приемы и методы преобразования структур данных); – защита информации (обобщение приемов, разработка методов и средств защиты данных); – автоматизация (функционирование программно-аппаратных средств без участия человека); – стандартизация (обеспечение совместимости между аппаратными и программными средствами, а также между форматами представления данных, относящихся к различным типам вычислительных систем). 2. Термин «информация» Одним из ключевых понятий информатики является информация. Теория информации, как раздел математики, сформировался во второй половине XX в. Толчок к зарождению дали попытки нахождения оптимальных решений практических технических задач в области кодирования и передачи информации. Пионерами теории информации по праву считают Клода Шеннона (США), А.Н. Колмогорова (СССР), Р. Хартли (США). Клод Шеннон, автор теории информации, предложил информацией считать снятую неопределенность наших знаний о чем-то. К. Шеннон впервые ввёл такую трактовку в теории связи. Позднее она нашла применение во всех областях науки, где играет роль передача информации в самом широком смысле этого слова, в частности, в математической теории информации, большую роль в становлении которой сыграл А.Н. Колмогоров. 5 Существует несколько подходов к определению понятия «информация». Согласно антропоцентрическому подходу, информацию отождествляют со сведениями или фактами, которые теоретически могут быть получены и усвоены, т. е. преобразованы в знания. В рамках такого подхода под информацией понимаются «сведения (сообщения, данные) независимо от формы их представления» (Федеральный Закон № 149-ФЗ «Об информации, информационных технологиях и о защите информации» от 27.07.2006. Техноцентрический подход состоит в том, что информацию отождествляют с данными. Он нашел очень широкое распространение в технических дисциплинах. Часто встречаются упоминания о том, что «информация передается по компьютерным сетям», «информация обрабатывается компьютерами», «информация хранится в базах данных». Во всех этих случаях происходит подмена понятий. Дело в том, что по компьютерным сетям передаются только данные, компьютеры обрабатывают только данные, а в базах данных хранятся тоже только данные. Станут ли эти данные информацией, и если да, то какой, зависит не только от данных, но и от многочисленных аппаратных, программных и естественных методов. Недетерминированный подход состоит в отказе от определения информации на том основании, что оно является фундаментальным, как, например, материя и энергия. В обиходе под информацией понимают любые данные или сведения, которые кого-либо интересуют. Например, сообщение о каких-либо событиях, о чьей-либо деятельности и т. п. Информировать в этом смысле означает сообщить нечто, неизвестное раньше. В технике информация – это сообщения, передаваемые в форме знаков или сигналов. В кибернетике – та часть знаний, которая используется для ориентирования, активного действия, управления, т. е. в целях сохранения, совершенствования, развития системы (Н. Винер). Автор кибернетики, Норберт Винер, предложил следующее определение информации: «Информация – это обозначение содержания, получен- 6 ного из внешнего мира в процессе нашего приспособления к нему и приспособления к нему наших чувств». Как и всякий объект, она обладает свойствами (объекты различимы по своим свойствам). Характерной особенностью информации, отличающей ее от других объектов природы и общества, является отмеченный выше дуализм: на свойства информации влияют как свойства данных, составляющих ее содержательную часть, так и свойства методов, взаимодействующих с данными в ходе информационного процесса. 1. Адекватность информации – это степень соответствия информации, полученной потребителем, тому, что автор вложил в ее содержание (т. е. в данные). Адекватность информации иногда ошибочно путают с ее достоверностью. Это совершенно разные свойства. Можно привести пример адекватной, но недостоверной информации. Так, например, если 1 апреля в газете появится заведомо ложное сообщение, то его можно считать адекватным. Адекватно толковать его не как информационное, а как развлекательное. То же сообщение, опубликованное 2 апреля, будет и недостоверным, и неадекватным. 2. Актуальность информации представляет собой степень соответствия информации текущему моменту времени. 3. Воспроизводимость информации тесно связана с ее передаваемостью и не является ее независимым базовым свойством. Если передаваемость означает, что не следует считать существенными пространственные отношения между частями системы, между которыми передается информация, то воспроизводимость характеризует неиссякаемость и неистощимость информации, т. е. что при копировании информация остается тождественной самой себе. 4. Благодаря наличию свойства дискретности информации, она состоит из отдельных фактических данных, передающихся в виде отдельных сообщений. 5. Достаточность информации – содержательная полнота сообщаемого набора показателей для принятия решения. 6. Достоверность информации определяет соответствие информации объективной реальности (как текущей, так и прошедшей) окружающего мира. На достоверность информации влияет как достоверность данных, так 7 и адекватность методов, использованных при ее получении. 7. Доступность информации позволяет оценить меру возможности получить ту или иную информацию. 8. Запоминаемость информации – свойство информации, используя которое запоминаемую информацию можно называть макроскопической (имея ввиду пространственные масштабы запоминающей ячейки и время запоминания). Именно с макроскопической информацией мы имеем дело в реальной практике. 9. Избыточность информации – нередко избыточность информации человек чисто психологически воспринимает как ее качество, потому что она позволяет ему меньше напрягать свое внимание и меньше утомляться. Обычный текст, напечатанный на русском языке, имеет избыточность порядка 20–25 %. Избыточность информации, заключенной в тексте, позволяет догадываться о значении неразборчивых символов. Визуальная информация имеет очень большую избыточность – более 90 %. Избыточность видеоинформации – до 98–99 %. 10. Краткость информации – степень сжатости изложения сообщаемых сведений. 11. Непрерывность информации – свойство информации, позволяющее ей накапливаться и развиваться поступательно. 12. Объективность и субъективность информации. Более объективной принято считать ту информацию, в которую методы вносят меньший субъективный элемент. 13. Полнота информации – достаточность информации для принятия решения. 14. Понятность информации – соответствие содержания информации уровню знаний потребителя. 15. Преобразуемость информации – фундаментальное свойство информации. Оно означает, что информация может менять способ и форму своего существования. Копируемость есть разновидность преобразования информации, при котором ее количество не меняется. В общем случае количество информации в процессах преобразования меняется, но возрастать не может. 16. Репрезентативность информации – правильность отбора и формирования информации для адекватного отражения передаваемого явления. 8 17. Своевременность информации – степень соответствия момента поступления информации назначенному моменту времени. 18. Содержательность информации – семантическая ёмкость информации, равная отношению количества семантической информации в сообщении к объёму обрабатываемых данных. 19. Ценность информации зависит от того, насколько она важна для решения задачи, а также от того, насколько в дальнейшем она найдёт применение в каких-либо видах деятельности человека. Измерение информации Количество информации – это мера снятия неопределённости одной случайной величины в результате наблюдения за другой. Количественно выраженная неопределённость состояния получила название энтропии. При получении информации уменьшается неопределённость, т. е. энтропия системы. В информатике, как правило, измерению подвергается информация, представленная дискретным сигналом. Различают следующие подходы к измерению информации. 1. Структурный подход. Измеряет количество информации простым подсчетом информационных элементов, составляющих сообщение. Применяется для оценки возможностей запоминающих устройств, объемов передаваемых сообщений, инструментов кодирования без учета статистических характеристик их эксплуатации. В рамках структурного подхода выделяют три меры информации: 1) геометрическая – определяет максимально возможное количество информации в заданных объемах. Единицей измерения является информационный элемент. Мера может быть использована для определения информационной емкости памяти компьютера. В этом случае в качестве информационного элемента выступает минимальная единица хранения – бит; 2) комбинаторная – оценивает возможность представления информации при помощи различных комбинаций информационных элементов в заданном объеме. Использует типы комбинаций элементов и соответствующие математические соотношения, которые приводятся в одном из разделов дискретной математики – комбинаторике. 9 3) аддитивная, или мера Хартли. Эта мера предложена в 1928 г. американским ученым Р. Хартли. Р. Хартли впервые ввел специальное обозначение для количества информации – I и предложил следующую логарифмическую зависимость между количеством информации и мощностью исходного алфавита: 𝐼 = 𝑙 log ℎ , где I – количество информации, содержащейся в сообщении; l – длина сообщения; h – мощность исходного алфавита. При исходном алфавите {0,1}; l = 1; h = 2 и основании логарифма, равном 2, имеем: I = 1 · log2 2 = 1. Данная формула даёт аналитическое определение бита (BIT – BInary digiT) по Р. Хартли: это количество информации, которое содержится в двоичной цифре. Единицей измерения информации в аддитивной мере является бит. Приведём пример. Необходимо рассчитать количество информации, которое содержится в шестнадцатеричном и двоичном представлении ASCII-кода для числа 1. В соответствии с таблицей ASCII-кодов имеем: шестнадцатеричное представление числа 1 – 31, двоичное представление числа 1 – 00110001. Тогда по формуле Хартли получаем: – для шестнадцатеричного представления: I = 2 · log2 16 = 8 бит; – для двоичного представления: I = 8 · log2 2 = 8 бит. Таким образом, разные представления ASCII-кода для одного символа содержат одинаковое количество информации, измеренной аддитивной мерой. 2. Статистический подход. Учитывает вероятность появления сообщений: более информативным считается то сообщение, которое менее вероятно, т. е. менее всего ожидалось. Применяется при оценке значимости получаемой информации. В 30-х гг. ХХ в. американский ученый Клод Шеннон предложил связать количество информации, которое несет в себе некоторое сообщение, с вероятностью получения этого сообщения. 10 Вероятность p – количественная априорная (т. е. известная до проведения опыта) характеристика одного из исходов (событий) некоторого опыта, измеряется в пределах от 0 до 1. Если заранее известны все исходы опыта, сумма их вероятностей равна 1, а сами исходы составляют полную группу событий. Если все исходы могут свершиться с одинаковой долей вероятности, они называются равновероятными. 3. Семантический подход. Учитывает целесообразность и полезность информации. Применяется при оценке эффективности получаемой информации и ее соответствия реальности. 4. Вероятностный подход. Р. Хартли в 1928 г. процесс получения информации рассматривал как выбор одного сообщения из конечного наперёд заданного множества из N равновероятных сообщений, а количество информации I, содержащееся в выбранном сообщении, определял как двоичный логарифм N. Согласно формуле Хартли, 𝐼 = log2 𝑁 – количество информации, которое вмещает один символ N-элементного алфавита, равно log2 N. Рассмотрим пример. Допустим, нужно угадать одно число из набора чисел от единицы до ста. По формуле Хартли можно вычислить, какое количество информации д л Таким образом, сообщение о верно угаданном числе содержит количея ство информации, приблизительно равное 6,644 единицы информации. Клод Шеннон предложил в 1948 г. формулу определения количества э информации, учитывающую возможную неодинаковую вероятность сообт щений в наборе. о Каждому сигналу присваивалась определённая вероятность его появг ления. о Чем меньше вероятность появления того или иного сигнала, тем больше он несёт информации. т Формула К. Шеннона: р = е pi – вероятность появления𝑖=1 где i-го 𝑛𝑝𝑖 сигнала log2𝑝(𝑖N), – количество возможных сигб налов у Количество информации здесь представляется как результат выбора из е 11 т с набора возможных вариантов. В качестве единицы информации Клод Шеннон предложил принять один бит. 5. Алфавитный подход. Согласно А.Н. Колмогорову, количество информации, содержащейся в последовательности символов, определяется минимально возможным количеством двоичных знаков, необходимых для кодирования этой последовательности безотносительно к содержанию представленного ею сообщения. При этом для кодирования наиболее часто используется двоичный алфавит, состоящий из нуля и единицы, это так называемое двоичное кодирование информации. В теории информации под количеством информации, необходимым для различения двух равновероятных сообщений (типа «орел» – «решка», «чет» – «нечет» и т. п.) понимается 1 бит (англ. «bit», «binary digit» – двоичная цифра). В вычислительной технике битом называют наименьшую «порцию» памяти компьютера, необходимую для хранения одного из двух знаков «0» и «1», используемых для внутримашинного представления данных и команд. Последовательность из восьми двоичных знаков, применяемая в кодах для представления символов входных алфавитов, называется байтом. Байт (англ. «byte») – это единица хранения и обработки цифровой информации. Чаще всего байт считается равным восьми битам, в этом случае он может принимать одно из 256 различных значений. Список наиболее распространенных более крупных двоичных единиц и соотношение между ними: – 1 байт (б) = 8 бит; – 1 килобайт (Кб) = 1 024 б = 210 б; – 1 мегабайт (Мб) = 1 024 Кб = 220 б; – 1 гигабайт (Гб) = 1 024 Мб = 230 б; – 1 терабайт (Тб) = 1 024 Гб = 240 б; – 1 петабайт (Пб) = 1 024 Тб = 250 б. Если за единицу информации можно было бы выбрать количество информации, необходимое для различения, например, десяти равновероятных 12 сообщений, то это будет не двоичная (бит), а десятичная (дит) единица информации. Сообщение – это форма представления информации в виде речи, текстов, жестов, взглядов, изображений, цифровых данных, графиков, таблиц и т. п. Сигнал – это материальный носитель информации (данных), которая передается от источника к потребителю. Может представлять собой физические сигналы или математические модели. Под данными понимается: – представление информации в формализованном (закодированном) виде, позволяющем хранить, передавать или обрабатывать её с помощью технических средств; – зарегистрированные сигналы. 3. Информационные процессы. Общая характеристика процессов сбора, передачи, обработки и накопления информации Информация существует не сама по себе, она проявляется в информационных процессах. Информационный процесс – это совокупность действий, проводимых над информацией, представленной в определённой форме, с целью достижения определённого результата. Сбор информации предполагает получение максимально выверенной исходной информации и является одним из самых ответственных этапов в работе с информацией, поскольку от цели сбора и методов последующей обработки полностью зависит конечный результат работы всей информационной системы. Хранение информации Для ввода в ЭВМ информация об условиях задачи и методе её решения должна быть перенесена на специальный носитель, с которого она воспринимается ЭВМ. Ранее использовались бумажные карты (перфокарты) или ленты (перфоленты), на которые буквы, цифры, другие символы наносились с помощью специальной системы знаков, например, совокупности пробитых и непробитых позиций. Также применялись магнитная лента, гибкие диски (дискеты). 13 В настоящее время применяются жесткие диски, компакт-диски, DVD, флеш-карты и др. Процесс передачи информации Информация передаётся в форме сообщений от некоторого источника информации к её приёмнику посредством канала связи между ними. Источник посылает передаваемое сообщение, которое кодируется в передаваемый сигнал. Этот сигнал посылается по каналу связи. В результате в приёмнике появляется принимаемый сигнал, который декодируется и становится принимаемым сообщением. Источник информации – это тот элемент окружающего мира (объект, процесс, явление, событие), сведения о котором являются объектом преобразования. Потребителем (приёмником) информации является элемент окружающего мира, который использует информацию (для выработки поведения, для принятия решения, для управления или для обучения). Сообщение от источника к приёмнику передаётся в материально-энергетической форме (электрический, световой, звуковой сигнал и т. д.) по каналу информации. Человек воспринимает сообщение посредством органов чувств. Приёмники информации в технике воспринимают сообщения с помощью различной измерительной и регистрирующей аппаратуры. Обработка информации – получение одних информационных объектов из других информационных объектов путем выполнения некоторых алгоритмов. Компьютеры обрабатывают информацию путем выполнения некоторых алгоритмов. 4. Информационные ресурсы и информационные технологии Под информационными ресурсами понимают идеи человечества и указания по их реализации, накопленные в форме, позволяющей их воспроизводство. Информационные ресурсы (в отличие от всех других видов ресурсов – трудовых, энергетических, минеральных и т. д.) тем быстрее растут, чем больше их расходуют. Информационная технология – это система методов и способов сбора, 14 накопления, хранения, поиска, обработки, анализа, выдачи данных, информации и знаний на основе применения аппаратных и программных средств в соответствии с требованиями, предъявляемыми пользователями. Первые информационные технологии основывались на использовании счётов и письменности. Около пятидесяти лет назад началось исключительно быстрое развитие этих технологий, что, в первую очередь, связано с появлением компьютеров. В настоящее время термин «информационная технология» употребляется в связи с использованием компьютеров для обработки информации. Информационные технологии охватывают всю вычислительную технику и технику связи, и, отчасти, бытовую электронику, телевидение и радиовещание. 5. Системы счисления В общем случае система счисления – это приемы обозначения чисел. Существуют непозиционные (знаковые) системы счисления и позиционные (поместные) системы счисления. В непозиционной системе счисления числа изображаются набором знаков (цифр), при этом значение одного и того же знака остается неизменным (то есть не зависит от его расположения в числе). Примером такой системы счисления является Римская система счисления, в которой используются, в частности, следующие буквы латинского алфавита: один обозначают буквой «I», пять – «V», десять – «X», пятьдесят – «L», сто – «C», пятьсот – «D», тысяча – «M». Число формируется из этих знаков, при этом, если предыдущая цифра меньше последующей, то производится вычитание (из большей (последующей) цифры вычитается меньшая (предыдущая)), иначе цифры с к л а д В позиционной системе счисления числа также представляются набоы знаков (цифр), при этом один и тот же знак имеет различные значения ром в зависимости от его расположения в числе, т. е. позиционная система счиса ления – это система счисления, базирующаяся на позиционном расположею т 15 с я нии цифр. В зависимости от количества цифр, использующихся в позиционной системе счисления, различают двоичную позиционную систему счисления (содержит две цифры: 0 и 1), троичную позиционную систему счисления (используются три цифры: 0, 1, 2) и другие позиционные системы счисления, среди которых отметим также восьмеричную (используется 8 цифр: 0, 1, 2, 3, 4, 5, 6, 7) и шестнадцатеричную (используется 16 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, здесь A = 10, B = 11, C = 12, системе счисления, называют основанием данной позиционной системы счисления. Следует отметить, что наибольшая цифра в какой-либо позиционной системе счисления на единицу меньше основания этой позиционной системы счисления. Как известно, наиболее широкое распространение получила десятичная позиционная система счисления, имеющее основание 10 (т. е. используется десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Эта система счисления возникла в середине первого тысячелетия н. э. в Индии, затем распространилась далее, в частности, была описана в рукописях на арабском языке, затем появилась в Европе. В десятичной системе счисления десять единиц младшего разряда объединяются в одну единицу следующего (старшего) разряда и запись производится справа налево (т. е. вначале записывают единицы, затем справа от единиц – десятки и т. д.). Проиллюстрируем это простейшим примером. Допустим, некоторые предметы (например, яблоки) упаковали в пакеты по десять яблок в каждый пакет, а пакеты разложили по коробкам (в каждую коробку – по десять пакетов). Всего получилось 2 полных коробки (по 10 пакетов в каждой), осталось 9 полных пакетов (по 10 яблок в каждом) и еще осталось 3 яблока. Сколько было яблок? Это можно записать так: 2 · записывают так: 293. Если в один пакет помещается 16 яблок, а в коробку – 16 пакетов, то разложив эти же 293 яблока по пакетам и коробкам (указанного большего объема) получим 18 полных пакетов (по 16 яблок) и останется еще 5 яблок. Затем, положив пакеты в коробки, получим 1 полную коробку (по 16 пакетов, т. е. всего в коробке будет 256 яблок) и останется 2 пакета (по 16 яблок). Таким образом, разложив эти яблоки, получим 1 полную коробку (по 256 яблок), 2 пакета (по 16 яблок) и еще 5 яблок. Это можно записать так: 1 · 16 256 + 2 · 16 + 5 · 1, или 1 · 162 + 2 · 161 + 5 · 160, но это число записывают так: 12516. Здесь индекс 16 означает, что число представлено в системе счисления с основанием 16. В этой (шестнадцатеричной) системе счисления шестнадцать единиц младшего разряда объединяются в одну единицу старшего разряда. Таким образом, записи 2 · 102 + 9 · 101 + 3 · 100 = 293 и 1 · 162 + 2 · 161 + 5 · 160 = 12516 определяют одну и ту же величину (в различных системах счисления). В общем случае, если основание системы – X, то в ней X единиц младшего разряда объединяются в одну единицу старшего разряда, т. е. натуральное число в системе счисления с основанием X может быть представлено следующим образом: an X n + an–1 X n–1 +…+ a2 X 2 + a1 X 1 + a0 X 0 = (an an–1…a2 a1 a0 )X Здесь цифра a0 обозначает количество единиц младшего разряда, цифры a1 a2…an – 1 an обозначают количество единиц следующих разрядов. Например: – в двоичной системе счисления: = 1 · 27 + 1 · 26 + 0 · 25 + 0 · 24 + 0 · 23 + 1 · 22 + 1 · 21 + 0 · 20; – в троичной системе счисления: = 2 · 34 + 1 · 33 + 1 · 32 + 0 · 31 + 0 · 30; и т. д.; – в восьмеричной системе счисления: = 3 · 82 + 0 · 81 + 6 · 80; – в десятичной системе счисления: 198 = 1 · 102 + 9 · 101 + 8 · 100; – в шестнадцатеричной системе счисления: C C · 161 Перевод + 6 · 160; натуральных чисел из одной системы счисления в другую Перевод из десятичной системы счисления Перевод числа из десятичной системы счисления в позиционную систему счисления с основанием X можно выполнить следующим образом: ‒ число, представленное в десятичной системе счисления, делится на X, при этом полученный остаток (натуральное число меньшее X) запоминается; 17 ‒ полученное от деления число вновь делится на X, полученный остаток также запоминается; ‒ деление, (и запоминание остатков) продолжается до тех пор, пока не будет получено число, меньшее X. После этого формируется число в позиционной системе счисления с основанием X: полученное последнее число и остатки записывают в обратном порядке, т. е. справа записывают первый остаток, левее – следующий остаток и т. д., в конце (слева) записывают последнее полученное число, м е Например, перевод числа 12 из десятичной системы счисления в пон зиционную систему счисления с основанием 2 (X = 2) можно выполнить ь так: ш 12 : 2 = 6 (остаток 0), так как 6 не меньше 2, то е 6 : 2 = 3 (остаток 0), так как 3 не меньше 2, то е 3 : 2 = 1 (остаток 1), так как частное 1 меньше 2, то записываем число в обратном порядке 11002, т. е. 12 = 11002. X Например, перевод числа 250 из десятичной системы счисления в восьмеричную систему счисления (X = 8) можно выполнить аналогичным образом: 250 : 8 = 31 (остаток 2), так как 31 не меньше 8, то 31 : 8 = 3 (остаток 7), так как частное 3 меньше 8, то записываем число в обратном порядке 3728, т. е. 250 = 3728. Например, перевод числа 250 из десятичной системы счисления в шестнадцатеричную систему счисления (X = 16) можно выполнить аналогично: 250 : 16 = 15 (остаток 10), так как частное 15 меньше 16, то записываем число (учитывая, что 15 = F, 10 = A) в обратном порядке FA16, т. е. Перевод в десятичную систему счисления Перевод числа из позиционной системы счисления с основанием X в десятичную систему счисления можно выполнить, представив число в виде записанного ранее ряда: an X n + an–1 X n –1 + … +a2 X 2 + a1 X 1 + a0 X 0, для которого надо выполнить операции возведения в степень, умножения и сложения. Например, = 1 · 23 + 1 · 22 + 0 · 21 + 0 · 20 = 1 · 8 + 1 · 4 + 0 · 2 + 0 · 1 = 18 = 3 · 82 + 7 · 81 + 2 · 80 = 3 · 64 + 7 · 8 + 2 · 1 = 192 + 56 + 2 = 250, F A 1 F · 16Работа + A · 16 с 0правильными = 15 · 161 + 10 дробями · 160 = 240 + 10 = 250. В общем случае правильная дробь в системе счисления с основанием X может быть представлена следующим образом: (0, a–1 a–2…a–m)X = a–1 X–1 + a–2 X–2 +…+a–m X–m. Например: – в двоичной системе счисления: = 1 · 2–1 + 1 · 2–2 + 0 · 2–3 + 1 · 2–4, – в троичной системе счисления: = 2 · 3–1 + 0 · 3–2 + 1 · 3–3, – в восьмеричной системе счисления: = 7 · 8–1 + 1 · 8–2 + 6 · 8–3, – в десятичной системе счисления: 0,256 = 2 · 10–1 + 5 · 10–2 + 6 · 10–3, – в шестнадцатеричной системе счисления: E C Перевод правильной дроби из десятичной системы счисления в позиE · 16–1 + C ционную систему · 16–2. счисления с основанием X можно выполнить следующим образом: ‒ число, представленное в десятичной системе счисления, умножается на X, при этом получившаяся целая часть числа запоминается; ‒ дробная часть полученного от умножения числа вновь умножается на X и вновь получившаяся целая часть числа запоминается; ‒ умножение (и запоминание целой части) продолжается до тех пор, пока не будет получено целое число без остатка (или пока не будет достигнута требуемая точность). После этого формируется число в позиционной системе счисления с основанием X: полученные целые числа записывают (после запятой) последовательно. Пример. Чтобы перевести число 0,34375 из десятичной системы счисления в двоичную систему счисления (X = 2) можно выполнить следующие действия: 19 0,34375 · 2 = 0,6875 (запоминают целую часть равную 0), так как дробная часть не равна 0, то дробная часть полученного числа вновь умножается на 2 0,6875 · 2 = 1,375 (вновь запоминают целую часть равную 1), так как дробная часть не равна 0, то 0,375 · 2 = 0,75 (также запоминают целую часть равную 0), так как дробная часть не равна 0, то 0,75 · 2 = 1,5 (запоминают целую часть равную 1), так как дробная часть не равна 0, то 0,5 · 2 = 1,0 (запоминают целую часть равную 1), так как дробная часть равна 0, то записав полученные целые части (после запятой) получают 6. Кодирование информации Представление символьной информации Существует несколько систем кодирования. В частности, можно отметить следующие системы. 1. Система кодирования ASCII (американский стандартный код информационного обмена). В этой системе существует базовая таблица кодирования, в которой под символ отводится 7 бит, т. е. от 0 до 127, и расширенная таблица кодирования (под символ отводится 8 бит, используется кодировка от 128 до 255). 2. Восьмиразрядная система кодирования EBCDIC (расширенный двоично-десятичный код обмена информацией), которая используется, в основном, на больших ЭВМ. 3. Восьмиразрядная система кодирования КОИ–8 (код обмена информацией). 4. Шестнадцатиразрядная система UNICODE, являющаяся универсальной системой кодирования текстовых данных. Представление графической информации Среди систем кодирования графической информации можно выделить следующие системы. Система кодирования RGB (Red – красный, Green – зеленый, Blue – синий). В данной системе для каждого из этих цветов отводится по одному байту, т. е. графическая информация размещается в трех байтах. Например, 20 00000000 00000000 00000000 соответствует черному цвету, 11111111 00000000 00000000 соответствует красному цвету, 11111111 11111111 11111111 соответствует белому цвету. 2. Система кодирования CMY (Cyan – голубой, Magenta – пурпурный, Yellow – желтый). В системе для каждого из этих цветов также отводится по одному байту. Но здесь используются цвета, дополняющие до белого основные цвета модели RGB, т. е. красный цвет поглощается голубым цветом, зеленый цвет поглощается пурпурным, синий цвет поглощается желтым. Поэтому 00000000 00000000 00000000 соответствует белому цвету, а 11111111 11111111 11111111 соответствует черному цвету. Разновидностью CMY является модель CMYK (4 байта), в которой добавлен черный цвет. 3. Система HSB (Hue, Saturation, Brightness), задающая оттенок, насыщенность и яркость. Следует отметить, что модели, использующие 4 байта и 3 байта для хранения цветов, называют полноцветными. Наряду с полноцветными моделями существуют модели с уменьшенным количеством разрядов для представления цвета, в частности, High Color (кодирование цветной графики двумя байтами), а также индексный метод кодирования (один байт), в котором указывается номер цвета, выбираемый из палитры (таблицы цветов). 7. Логические основы ЭВМ Логической основой компьютера является алгебра логики, которая рассматривает логические операции над высказываниями. Алгебра логики – это раздел математики, изучающий высказывания, рассматриваемые со стороны их логических значений (истинности или ложности) и логических операций над ними. Алгебра логики возникла в середине ХIХ в. в трудах английского математика Джорджа Буля. Ее создание представляло собой попытку решать традиционные логические задачи алгебраическими методами. Логическое высказывание – это любое повествовательное предложение, в отношении которого можно однозначно сказать, истинно оно или ложно. Примеры. Предложение «7 – нечетное число» следует считать высказыванием, так как оно истинное. Предложение «Лондон – столица Германии» тоже высказывание, так как оно ложное. 21 Не всякое предложение является логическим высказыванием. Высказыванием не является, например, предложения «Студент первого курса» и «Математика – интересный предмет». Первое предложение ничего не утверждает о студенте, а второе использует слишком неопределённое понятие «Интересный предмет». Вопросительные и восклицательные предложения также не являются высказываниями, поскольку говорить об их истинности или ложности не имеет смысла. Предложения типа «В городе A более миллиона жителей», «У него голубые глаза» не являются высказываниями, так как для выяснения их истинности или ложности нужны дополнительные сведения: о каком конкретно городе или человеке идет речь. Такие предложения называются высказывательными формами. Высказывательная форма – это повествовательное предложение, которое прямо или косвенно содержит хотя бы одну переменную и становится высказыванием, когда все переменные замещаются своими значениями. Алгебра логики рассматривает любое высказывание только с одной точки зрения – является ли оно истинным или ложным. Заметим, что зачастую трудно установить истинность высказывания. Так, например, высказывание «Площадь поверхности Индийского океана равна 75 млн. км 2» в одной ситуации можно посчитать ложным, а в другой – истинным. Ложным – так как указанное значение неточное и вообще не является постоянным. Истинным – если рассматривать его как некоторое приближение, приемлемое на практике. Слова и словосочетания «не», «и», «или», «если..., то», «тогда и только тогда» и другие позволяют из уже заданных высказываний строить новые высказывания. Такие слова и словосочетания называются логическими связками. Высказывания, образованные из других высказываний с помощью логических связок, называются составными. Высказывания, которые не являются составными, называются элементарными. Примеры. Из элементарных высказываний «Петров – преподаватель», «Петров – шахматист» при помощи связки «и» можно получить составное высказывание «Петров – преподаватель и шахматист», понимаемое как «Петров – преподаватель, хорошо играющий в шахматы». 22 При помощи связки «или» из этих же высказываний можно получить составное высказывание «Петров – преподаватель или шахматист», понимаемое в алгебре логики как «Петров или преподаватель, или шахматист, или и преподаватель и шахматист одновременно». Истинность или ложность получаемых таким образом составных высказываний зависит от истинности или ложности элементарных высказываний. Чтобы обращаться к логическим высказываниям, им назначают имена. Пусть через А обозначено высказывание «Тимур поедет летом на море», а через В – высказывание «Тимур летом отправится в горы». Тогда составное высказывание «Тимур летом побывает и на море, и в горах» можно кратко записать как А и В. Здесь «и» – логическая связка, А, В – логические переменные, которые могут принимать только два значения – «истина» или «ложь», обозначаемые, соответственно, «1» и «0». Часто используют следующие логические связки (логические операции). Обозначение операции Λ Читается Название операции НЕ Отрицание (инверсия) Конъюнкция (логическое умножение) Дизъюнкция (логическое сложение) Импликация И ИЛИ → ↔ Если …, то Тогда и только тогда Эквиваленция Альтернативные обозначения Черта сверху &  ~ Операция, выражаемая словом «не», называется отрицанием и обозначается чертой над высказыванием (или знаком ¬). Высказывание истинно, когда A ложно, и ложно, когда A истинно. Пример. «Луна – спутник Земли» (А); «Луна – не спутник Земли» (¬A). Операция, выражаемая связкой «и», называется конъюнкцией (лат. «conjunctio» – соединение), или логическим умножением и обозначается точкой « · » (может также обозначаться знаками Λ или &). Высказывание А · В истинно тогда и только тогда, когда оба высказывания А и В истинны. 23 Пример. Высказывание «10 делится на 2 и 5 больше 3» истинно, а высказывания «10 делится на 2 и 5 не больше 3», «10 не делится на 2 и 5 больше 3», «10 не делится на 2 и 5 не больше 3» – ложны. Операция, выражаемая связкой «или» (в неисключающем смысле этого слова), называется дизъюнкцией (лат. «disjunctio» – разделение), или логическим сложением и обозначается знаком V (или плюсом). Высказывание А v В ложно тогда и только тогда, когда оба высказывания А и В ложны. Пример. Высказывание «10 не делится на 2 или 5 не больше 3» ложно, а высказывания «10 делится на 2 или 5 больше 3», «10 делится на 2 или 5 не больше 3», «10 не делится на 2 или 5 больше 3» – истинны. ЕСЛИ–ТО Операция, выражаемая связками «если ..., то», «из ... следует», «... влечет ...», называется импликацией (лат. «implico» – тесно связаны) и обозначается знаком → . Высказывание ложно тогда и только тогда, когда А истинно, а В ложно. Пример. Каким же образом импликация связывает два элементарных высказывания? Покажем это на примере высказываний: «данный четырёхугольник – квадрат» (А) и «около данного четырёхугольника можно описать окружность» (В). Рассмотрим составное высказывание A→B, понимаемое как «если данный четырёхугольник квадрат, то около него можно описать окружность». Есть три варианта, когда высказывание A→B истинно. 1. А истинно и В истинно, т. е. данный четырёхугольник – квадрат, и около него можно описать окружность. 2. А ложно и В истинно, т. е. данный четырёхугольник не является квадратом, но около него можно описать окружность (разумеется, это справедливо не для всякого четырёхугольника). 3. A ложно и B ложно, т. е. данный четырёхугольник не является квадратом, и около него нельзя описать окружность. Ложен только один вариант, когда А истинно, а В ложно, т. е. данный четырёхугольник является квадратом, но около него нельзя описать окружность. В обычной речи связка «если ..., то» описывает причинно-следственную связь между высказываниями. Но в логических операциях смысл высказываний не учитывается. Рассматривается только их истинность или ложность. Поэтому не надо смущаться «бессмысленностью» импликаций, 24 образованных высказываниями, совершенно не связанными по содержанию. Например, такими: «если президент США – демократ, то в Африке водятся жирафы», «если арбуз – ягода, то в бензоколонке есть бензин». Операция, выражаемая связками «тогда и только тогда», «необходимо и достаточно», «... равносильно ...», называется эквиваленцией, или двойной импликацией и обозначается знаком ↔ или ~ . Высказывание истинно тогда и только тогда, когда значения А и В совпадают. Пример. Высказывания «24 делится на 6 тогда и только тогда, когда 24 делится на 3», «23 делится на 6 тогда и только тогда, когда 23 делится на 3» истинны, а высказывания «24 делится на 6 тогда и только тогда, когда 24 делится на 5», «21 делится на 6 тогда и только тогда, когда 21 делится на 3» ложны. Высказывания А и В, образующие составное высказывание A↔B, могут быть совершенно не связаны по содержанию, например: «три больше двух» (А), «пингвины живут в Антарктиде» (В). Отрицаниями этих высказываний являются высказывания «три не больше двух» (¬A), «пингвины не живут в Антарктиде» (¬B). Образованные из высказываний А и В составные высказывания A↔B и ¬A↔¬B истинны, а высказывания A↔¬B и ¬A↔B – ложны. Итак, нами рассмотрены пять логических операций: отрицание, конъюнкция, дизъюнкция, импликация и эквиваленция. Импликацию можно выразить через дизъюнкцию и отрицание: А→В = ¬A v В. Эквиваленцию можно выразить через отрицание, дизъюнкцию и конъюнкцию: А↔В = (¬A v В) · (¬B v А). Вывод: операций отрицания, дизъюнкции и конъюнкции достаточно, чтобы описывать и обрабатывать логические высказывания. Порядок выполнения логических операций задается круглыми скобками. Но для уменьшения числа скобок договорились считать, что сначала выполняется операция отрицания («не»), затем конъюнкция («и»), после конъюнкции – дизъюнкция («или») и в последнюю очередь – импликация. 25 Логические формулы С помощью логических переменных и символов логических операций любое высказывание можно формализовать, то есть заменить логической формулой. Определение логической формулы. 1. Всякая логическая переменная и символы «истина» («1») и «ложь» («0») – формулы. 2. Если А и В – формулы, то ¬A, А · В, А v В, А→B, А↔В – формулы. Никаких других формул в алгебре логики нет. В п. 1 определены элементарные формулы; в п. 2 даны правила образования из любых данных формул новых формул. В качестве примера рассмотрим высказывание «Если я куплю яблоки или бананы, то приготовлю фруктовый пирог». Это высказывание формализуется в виде (A v B)→C. Такая же формула соответствует высказыванию «Если Алексей знает английский или китайский язык, то он получит место переводчика». Как показывает анализ формулы (A v B)→C, при определённых сочетаниях значений переменных A, B и C она принимает значение «истина», а при некоторых других сочетаниях – значение «ложь» (разберите самостоятельно эти случаи). Такие формулы называются выполнимыми. Некоторые формулы принимают значение «истина» при любых значениях истинности входящих в них переменных. Таковой будет, например, формула А v ¬A, соответствующая высказыванию «Этот треугольник прямоугольный или косоугольный». Эта формула истинна и тогда, когда треугольник прямоугольный, и тогда, когда треугольник непрямоугольный. Такие формулы называются тождественно истинными формулами, или тавтологиями. Высказывания, которые формализуются тавтологиями, называются логически истинными высказываниями. В качестве другого примера рассмотрим формулу А · ¬A, которой соответствует, например, высказывание «Оксана самая высокая студентка в группе, и в группе есть студентки выше Оксаны». Очевидно, что эта формула ложна, так как либо А, либо ¬A обязательно ложно. Такие формулы называются тождественно ложными формулами или противоречиями. Высказывания, которые формализуются противоречиями, называются логически ложными высказываниями. 26 Если две формулы А и В одновременно, т. е. при одинаковых наборах значений входящих в них переменных, принимают одинаковые значения, то они называются равносильными. Равносильность двух формул алгебры логики обозначается символом «=« или символом «≡» Замена формулы другой, ей равносильной, называется равносильным преобразованием данной формулы. Значения, которые принимают переменные, называют интерпретациями, например формула f(a, b) = «a связка b» имеет четыре интерпретации: = = 1 = 1 = ( Для каждой интерпретации можно определить истинностное значение (И формулы, которые обычно представляют в виде следующей, так называеС таблицы истинности. (И мой, Т С (Л Таблица истинности для логических операций a b a aΛb a a→b a↔b И Т О Л b 1 1 1 1 1 1 Н И Ж О 1 1 А Н Ь Ж 1 1 1 1 А Ь 1 1 1 = 1 (ИСТИНА); =1 0 (ИСТИНА); (ЛОЖЬ); Опираясь на данные таблицы истинности, можно составлять таблицы = 0 (ЛОЖЬ). истинности для более сложных формул, например, для формулы И–НЕ, которую можно записать так: ¬(a Λ b), или так: a  b . Эту таблицу истинности можно сформировать последовательно (вначале (a Λ b), затем ¬(a Λ b)). Таблица истинности для логической формулы И-НЕ a 1 1 b 1 1 aΛb 1 a Λ b) 1 1 Подобным образом можно составить таблицу истинности для формулы И Л И – Н 27 Таблица истинности для логической формулы ИЛИ-НЕ a 1 1 b 1 1 a b 1 a b Примечание: И–НЕ называют также «штрих Шеффера» (обозначают |), или «антиконъюнкция»; ИЛИ–НЕ называют также «стрелка Пирса» (обозначают ↓), или «антидизъюнкция». Для связок установлены соответствующие приоритеты (старшинство связок). Приоритеты выполнения логических операций Связка приоритет Λ → ↔ 1 Поэтому в формулах И–НЕ, ИЛИ–НЕ используются скобки. В этом случае будет выполняться операция, указанная в скобках, а затем операция, находящаяся вне скобок. Таблицу истинности для более сложной формулы f1(a, b) = a Λ b V a Λ ¬b) также можно сформировать (учитывая приоритеты связок) следующим образом: Таблица истинности для логической формулы f1(a, b) = (¬a Λ b V a Λ ¬b) a 1 1 b 1 1 a 1 1 b aΛb 1 a Λ ¬b f a b Следует отметить также операцию «исключающее ИЛИ» (XOR), которую называют также «сложение по модулю 2», или «кольцевая сумма», обозначающуюся знаком плюс в окружности. Таблица истинности ее совпадает с таблицей истинности формулы f1(a,b). 28 Таблица истинности для исключающего ИЛИ a 1 1 b 1 1 a X O R b Формулы могут включать также, в частности, так называемые отношения порядка, например, меньше (<), не меньше (≥), больше (>), не больше (≤), равно (=), не равно (≠). Например, (a < b) Λ (c > d). Формулы можно также представлять с помощью языка логических схем. В частности, операции конъюнкции, дизъюнкции, отрицания представляют соответствующими логическими схемами (функциональными элементами). Логические схемы Конъюнктор Дизъюнктор Инвертор a a aVb aΛb 1 & b a ¬a b Для данных логических схем существуют типовые технические схемы. Используя данные функциональные элементы, можно создавать вычислительные схемы, например, для формул f1(a, b) = (¬a Λ b V a Λ ¬b) и f2(a, 29 ¬a a ¬a Λ b & b f1(a,b) 1 a & ¬b b a a Λ ¬b f2(a,b) & b Рис. 1.1. Логическая схема для формулы f1(a, b) = (¬a Λ b V a Λ ¬b) и Λ b) Полученную схему называют сумматором (полусумматором), так как при сложении двух одноразрядных двоичных чисел формула f1(a, b) позволяет вычислять сумму в младшем разряде, т. е. 1 + 1 = 10 2 (здесь младший разряд равен нулю), 1 + 0 = 1 (младший разряд равен единице), 0 + 1 = 1 (младший разряд равен единице), 0+0=0 (младший разряд равен нулю). Формула f2(a, b) позволяет производить перенос бита в старший разряд: 1 + 1 = 102 (здесь старший разряд равен единице). Сравните эти данные с таблицей истинности формул f1(a, b) = (¬a Λ b V a Λ ¬b) и f2(a, b) = (a Λ Для схем И–НЕ, ИЛИ–НЕ функциональные элементы представлены в таблице. Логические операции И-НЕ, ИЛИ-НЕ И–НЕ ИЛИ–НЕ a ¬(a Λ b) a & ¬(aV Vb) b) ¬(a 1 b b 30 Комбинацию этих элементов используют для построения триггеров (элементов с двумя устойчивыми состояниями 0 и 1). На триггерах, в частности, строятся статическая память, регистры. Так как триггер используется для запоминания одного бита, то для формирования 1 байта необходимо использовать 8 триггеров. 31 РАЗДЕЛ 2. ТЕХНИЧЕСКИЕ СРЕДСТВА РЕАЛИЗАЦИИ ИНФОРМАЦИОННЫХ ПРОЦЕССОВ 1. 2. 3. 4. 5. 6. 7. 8. План Терминология аппаратных средств ЭВМ. Классификация ЭВМ. Основные характеристики ЭВМ. Упрощенная архитектура ЭВМ. Аппаратная реализация ЭВМ. Устройства для длительного хранения информации. Периферийные устройства (устройства ввода/вывода). Оборудование для организации сетей ЭВМ. 1. Терминология аппаратных средств ЭВМ Чтобы говорить о технических средствах реализации информационных процессов, необходимо вспомнить сами эти процессы, так как от них зависят и средства реализации. При преобразовании данных выделяют 4 основных информационных процесса: обработка, обмен, накопление данных и представление знаний. Для обработки данных используются ЭВМ различных классов. Обработка данных, их преобразование и отображение производятся с помощью программ решения задач в той предметной области, для которой создана информация. Для обмена данными используют комплексы программ и устройств, позволяющих реализовать вычислительную сеть и осуществить по ней передачу и приём сообщений с необходимой скоростью и качеством. Это модемы, усилители, коммутаторы, кабели, специальные вычислительные комплексы, осуществляющие коммутацию, маршрутизацию и доступ к сетям. Программные компоненты здесь – программы сетевого обмена, реализующие сетевые протоколы, кодирование–декодирование сообщений и др. Накопление данных осуществляется в банках и базах данных, организованных на внешних устройствах компьютеров и ими управляемых. Осуществляется это при помощи компьютеров различных классов с соответствующим программным обеспечением. 32 Для автоматизированного формирования модели предметной области из её фрагментов и модели решаемой задачи создаётся подсистема представления знаний. На стадии эксплуатации пользователь обращается к подсистеме знаний и, исходя из постановки задачи, выбирает в автоматизированном режиме соответствующую модель решения. Реализация этого происходит на ЭВМ, программирование которых осуществляется с помощью языков программирования. Подсистема управления данными организуется на ЭВМ с помощью программных систем управления обработкой данных и организации вычислительного процесса, систем управления вычислительной сетью и систем управления базами данных. Для рассмотрения конструкции ПЭВМ необходимо знать некоторую терминологию. Системная плата (System Board), или материнская плата (Mother Board) – это основная печатная плата компьютера, на которой размещают все главные компоненты компьютера, которые, в свою очередь, могут быть платами (когда их подсоединяют через разъём) или микросхемами – это системные компоненты компьютера. Платой расширения (Expansions Card) называют печатную плату с краевым разъёмом, устанавливаемую в слот расширения. Если она используется для подключения дополнительного устройства, то её называют инт е Слот (Slot) представляет собой щелевой разъём, в который устанавлир вается какая-либо печатная плата. Слот расширения в ПК представляет соф разъём системной шины с прорезью в задней стенке корпуса. Есть ещё бой е внутренние слоты на материнской плате для установки модулей оперативй памяти, кэш-памяти, процессоров, а также процессорных модулей и моной с дулей памяти в некоторых моделях ПК. н Сокет (Socket) представляет собой гнездо, в которое устанавливают о микросхемы со штырьковыми выводами. ZIP–Socket имеет замок, открыв й который можно установить или изъять микросхему. Джампер (Jumper) представляет собой съёмную перемычку, устанавк ливаемую на выступающие из печатной платы штырьковые контакты. Они а р 33 т о используются как выключатели или переключатели, для которых не требуется оперативного управления. Чип (Chip) – это полупроводниковая микросхема, причём неявно подразумевается её функциональная сложность. Чипсет (Chipset) – это набор интегральных схем, при подключении которых друг к другу формируется функциональный блок вычислительной системы. Их применяют в системных платах, графических контроллерах и других сложных узлах, функции которых в одну микросхему заложить не удается. 2. Классификация ЭВМ Персональный компьютер (ПК, ПЭВМ) – это комплекс технических средств, предназначенный для автоматической обработки информации в процессе решения вычислительных задач. По принципу действия ПК делятся на группы: – аналоговые; – цифровые; – гибридные. В аналоговых системах переменные представлены физическими непрерывными величинами – чаще всего величиной электрического напряжения. Аналоговые компьютеры бывают с прямой и с операторной аналогией. Под цифровой электронно-вычислительной системой (ЦВС) будем понимать сложное устройство, воспринимающее различные виды информации в форме данных, представленных в цифровой форме, хранящее эти данные и пересылающее их внутри системы по линиям связи, перерабатывающее их с большим быстродействием (скоростью) и выдающее результаты этих действий как информацию. ЦВС оперируют с величинами, представленными в цифровой форме, т. е. с числами. Если вычислительная система (ВС) объединяет в себе как цифровые, так и аналоговые устройства, то она называется гибридной, но мы ниже будем рассматривать только архитектуру цифровых вычислительных машин (ЦВМ) или цифровых вычислительных систем (ЦВС). По этапам создания и используемой элементной базе ПК условно делят на поколения: 34 I – 50-е гг. XX в. – на электронных лампах; II – 60-е гг. XX в. – на транзисторах; III – 70-е гг. XX в. – на ИС с сотнями и тысячами транзисторов в одном кристалле; IV – 80-е гг. XX в. – на больших интегральных схемах (БИС) с десятками тысяч транзисторов и сверхбольших интегральных схемах (СБИС) с миллионами транзисторов в одном кристалле; V – 90-е гг. XX в. – с десятками параллельно работающих микропроцессоров; VI – конец 90-х гг. XX в. – многопроцессорные ЭВМ с предсказанием ветвлений, переименованием регистров, изменением порядка инструкций, поддержкой ММХ (multimedia extension – расширения для мультимедиа); VII – начало XXI в. – оптоволоконные. По основным параметрам современные ЭВМ подразделяются на классы: – суперЭВМ; – большие ЭВМ; – миниЭВМ; – микроЭВМ. На базе микроЭВМ в 1971 г. появились персональные ЭВМ (ПЭВМ). Помимо фирм Intel и AMD процессоры выпускают фирмы Cyrix, Texas Основными параметрами ПК являются производительность (миллион операций в секунду), ёмкость оперативного запоминающего устройства (ОЗУ) (Мбайт), ёмкость внешнего запоминающего устройства (ВЗУ) (Гбайт) и разрядность (бит). Кроме того, одним из основных параметров является мультипроцессорность. Мультипроцессорные системы позволяют устанавливать на материнской плате несколько отдельных процессоров. Такие системы отличаются очень высокой производительностью и используются в качестве серверов или для решения специализированных вычислительных задач. 3. Основные характеристики ЭВМ Персональный компьютер обладает следующими основными характеристиками. 35 Быстродействие, производительность, тактовая частота. Единицами измерения быстродействия являются: – MIPS – Mega Instruction Per Second – миллион операций в секунду с фиксированной точкой; – MFLOPS – Mega Floating Operations Per Second – миллион операций в секунду над числами с плавающей точкой; – GFLOPS – Giga Floating Operations Per Second – миллиард операций в секунду над числами с плавающей точкой; – KOPS – Kilo Operations Per Second – тысяча неких усреднённых операций в секунду над числами;  Index – Intel Comparative Microprocessor Performance – в этом случае используется смесь 16- и 32-битных операций четырёх категорий: целочисленных, с плавающей точкой, скорость обработки графики и видео (за базовый для отсчёта был взят процессор Intel 486 SX–25, так как у него iCOMP Index равен 100);  Index 2.0 отличается своим набором показателей и весовыми коэффициентами (базовым для отсчёта был взят Pentium 120 МГц, так как в нём уже используются 32-битные операции и мультимедийный текст). Остальные фирмы используют понятие P–Rating – они сравнивают свои процессоры с производительностью процессора Pentium соответствующей частоты. – Ёмкость и тип оперативной, кэш-памяти, жёсткого диска. – Разрядность машины и кодовых шин интерфейса. – Тип видеомонитора, видеоадаптера и других внешних устройств. – Аппаратная и программная совместимость с другими ПК. – Имеющееся программное обеспечение и возможность работать в многозадачном режиме и сетях ПК. – Надёжность, стоимость, габариты и масса, портативность. – 4. Упрощенная архитектура ЭВМ В широком смысле архитектурой цифровой вычислительной машины называют совокупность её свойств и характеристик, рассматриваемую с точки зрения пользователя машины. 36 В основу архитектуры современных персональных компьютеров положен магистрально-модульный принцип. Модульный принцип позволяет потребителю самому комплектовать нужную ему конфигурацию компьютера и производить при необходимости ее модернизацию. Модульная организация компьютера опирается на магистральный (шинный) принцип обмена информацией между устройствами. ЭВМ состоит из набора устройств, связанных между собой. Физически связь между устройствами организована через интерфейс, причём часто он уточняется дополнительным определяющим словом: ввода/вывода, магистральный, пользовательский, программный. Суть интерфейса как способа организации связи заключается в том, что устанавливаются соглашения о характере входных и выходных сигналов, которыми обмениваются взаимодействующие объекты (устройства). Технически связь между устройствами реализована в виде шины – физической совокупности проводов (каналов передачи электрических сигналов). Каждый провод шины имеет своё строгое назначение: одни отвечают за передачу адреса объекта, с которым устанавливается связь, другие – за передачу данных, третьи – за управляющие сигналы. Поскольку связь между всеми устройствами осуществляется через одну магистраль, в момент организации связи двух устройств она может быть уже занята другой парой. В этом случае используется механизм прерываний, который может временно разрывать связь между устройствами для доступа к магистрали устройств с более высоким приоритетом. Упрощённая структура персонального компьютера приведена на рис. Внешняя память является автономной памятью и предназначена для длительного хранения информации. Её обработка производится после её перемещения в оперативную память. Процессор – это устройство обработки данных. Выполняет арифметические и логические операции, а также управляет работой узлов и блоков компьютера. Внешние периферийные устройства служат для ввода/вывода и отображения информации и обеспечивают взаимодействие человека с ЭВМ. К устройствам ввода/вывода информации относятся клавиатура, мышь, монитор и др. 37 Центральная часть Периферийная часть Магистраль Рис. 2.1. Упрощённая структура персонального компьютера 5. Аппаратная реализация ЭВМ В классическом варианте исполнения ПК состоит из системного блока, к которому подключаются монитор, клавиатура, мышь и все периферийные устройства. Системная (материнская) плата Основным аппаратным компонентом компьютера является системная плата. На системной плате реализована магистраль обмена информацией, имеются разъемы для установки процессора и оперативной памяти, а также слоты для установки контроллеров внешних устройств (рис. 2.2). Быстродействие различных компонентов компьютера (процессора, оперативной памяти и контроллеров периферийных устройств) может существенно различаться. Для согласования быстродействия на системной плате устанавливаются специальные микросхемы (чипсеты), включающие в себя контроллер оперативной памяти (так называемый северный мост) и контроллер периферийных устройств (южный мост). Северный мост обеспечивает обмен информацией между процессором и оперативной памятью по системной шине. В процессоре используется внутреннее умножение частоты, поэтому частота процессора в несколько раз больше, чем частота системной шины. В современных компьютерах частота процессора может превышать частоту системной шины в 10 раз (например, частота процессора – 1 ГГц, а частота шины – 100 МГц). 38 Рис. 2.2. Архитектура системной платы К северному мосту подключается шина PCI (Peripherial Component Inобеспечивает обмен информацией с контроллерами периферийных устройств. 39 Южный мост обеспечивает обмен информацией между северным мостом и портами для подключения периферийного оборудования. Для расширения функциональности компьютера с появлением новых внешних устройств, соответствующих требованиям спецификаций последовательного интерфейса передачи данных для среднескоростных и низкоскоростных периферийных устройств в вычислительной технике – USB (Universal Serial Bus – «универсальная последовательная шина»). Процессор Процессор (Central Processing Unit, CPU) – это один из основных компонентов компьютера, который выполняет арифметические и логические операции, заданные программой. Физически процессор представляет собой интегральную микросхему, выполненную на пластине кристаллического кремния прямоугольной формы. На этом кристалле размещаются электронные блоки, реализующие функции процессора. Для защиты от внешних воздействий кристалл кремния помещается в плоский керамический корпус и соединяется тонкими золотыми (медными) проводниками с внешними контактами, представляющими собой металлические штырьки или площадки. В настоящее время развитие процессоров идет по трем направлениям: процессоры для серверов, процессоры для персональных стационарных компьютеров и процессоры для портативных устройств (ноутбуков, планшетов, КПК, смартфонов и др.). Процессоры для портативных устройств характеризуются пониженным энергопотреблением и уменьшенным тепловыделением. Быстродействие любого процессора – это комплексный показатель, который зависит от очень многих факторов, основными из которых являются шины обмена информацией, количество и частота работы ядер, наличие расширений стандартных инструкций, тип и размер кэш-памяти, пропускная способность контроллера памяти, аппаратные технологии ядра и многое другое. Память Память компьютера – это устройство хранения информации. Ее типы приведены на рис. 2.3. 40 На рисунке внутренняя память представлена как сумма двух типов памяти: оперативной и постоянной, а устройствами внешней памяти могут быть жесткий диск, компакт-диск, флеш-карта. Оперативная память хранит данные и программу решения задачи в текущий момент времени и ряд вспомогательных программ для организации работы компьютера. Рис. 2.3. Типы памяти компьютера Постоянная память позволяет только считывать информацию, так как в ней хранятся программы контроля устройств и ряд программ, постоянно используемых при работе компьютера. Внешняя память является автономной памятью и предназначена для длительного хранения информации. Её обработка производится после её перемещения в оперативную память. Все вычислительные операции происходят в основной памяти и процессоре. Это связано с тем, что перед обработкой процессором данных и программ они должны быть помещены в определенную область основной 41 памяти. Некоторые программы и небольшие массивы данных могут находиться в памяти постоянно. Большинство из них помещаются в память только по мере необходимости, а затем отбрасываются (программы) или сохраняются в постоянной области хранения (данные), после чего занятое ими пространство снова становится доступным для новых программ и данных. Оперативная память – временная память, так как данные хранятся в ней только до выключения ПК. Конструктивно память выполнена в виде модулей, которые можно заменять, дополнять, чтобы увеличить объём ОП. К данным, находящимся в ОП – RAM-памяти (Random Access Memory – памяти с произвольным доступом), CPU имеет непосредственный доступ, а к периферийной, или внешней памяти (НГМД, НЖМД) – через буфер, являющийся также разновидностью ОП, недоступной пользователю. Время доступа к данным мало, а потому скорость обработки их велика. Запоминание данных в ОП носит временный характер не только изза питания, но и потому, что она является динамической, т. е. она должна периодически обновляться, так как информация здесь хранится на конденсаторе, а в нём есть ток утечки, что его разряжает, и информация теряется. Для увеличения объёма памяти системы и для работы в многозадачном режиме была разработана концепция виртуальной памяти. Виртуальная память (Virtual Memory) представляет собой программно-аппаратное средство расширения пространства памяти, предоставляемой программе в качестве оперативной. Эта память физически реализуется с помощью оперативной и дисковой памяти под управлением соответствующей операционной системы. Суть её в том, что на жёстком диске создаётся файл обмена (Swap-файл), являющийся как бы расширением ОП. Виртуальное пространство памяти разбито на страницы фиксированного размера (4–8 Кбайт). В физической ОП в каждый момент времени присутствует только часть из них. Остальные страницы хранятся на диске, откуда ОС может «подкачать» их в физическую память, предварительно выгрузив на диск часть неиспользуемых в данный момент модифицированных страниц. Обращение процессора к ячейке виртуальной памяти, присутствующей в физической памяти, происходит обычным способом. 42 Если же затребованная область в данный момент не отображена в физической памяти, процессор вырабатывает внутреннее прерывание, по которому ОС программы организует замещение страниц, называемое свопингом (Swapping). Когда все ячейки реальной ОП заняты, а для работы программ нужна память, менеджер виртуальной памяти ОС освобождает физическую память, перенося часть информации, которая давно не использовалась, в файл обмена. Шины Все компоненты на материнской плате каким-то образом должны быть соединены между собой. Это соединение осуществляется с помощью шин. Совокупность линий (проводников на материнской плате), по которым обмениваются информацией компоненты устройств и устройства РС, называется шиной (Bus). Шина предназначена для обмена между двумя и более устройствами. Шина, связывающая только два устройства, называется портом. Обычно шина имеет гнёзда для подключения внешних устройств, которые в результате сами становятся частью шины и могут обмениваться информацией со всеми другими подключаемыми к ней устройствами. Шины в РС различаются по своему функциональному назначению. Системная шина (или шина CPU) используется микросхемами и Chipset для пересылки информации от устройств к CPU и от CPU к устройствам. Шина кэш-памяти предназначена для обмена информацией между CPU и кэш-памятью. Шина памяти используется для обмена информацией между оперативной памятью и CPU. Шины ввода/вывода бывают стандартные и локальные. Шина имеет собственную архитектуру, позволяющую реализовать важнейшие её свойства – возможность параллельного подключения практически неограниченного числа внешних устройств и обеспечения обмена информацией между ними. Архитектура любой шины включает следующие компоненты. Линии данных (по ним происходит обмен данными между CPU, картами расширения, установленными в слоты, и памятью). В режиме DMA 43 D i r Линии управления данными (шины управления) необходимы для заe писи (считывания) в регистры устройств, подключенных к шине, ряда неc обходимых при передаче данных сигналов: записи/считывания, готовности кt приёму/передаче данных, подтверждения приёма данных, аппаратного M прерывания, управления и инициализации контроллера. e Контроллер шины осуществляет управление процессом обмена данm ными и служебными сигналами и обычно выполняется в виде отдельной o микросхемы или интегрируется в микросхемы Chipset. r Чипсет y Чипсет (Chipset) – набор микросхем системной логики, обеспечиваюAccess) щий взаимодействие управление обменом элементов данными системыосуществляется друг с другом исоответствующим периферийными контроллером, Основные устройствами. минуя CPU. характеристики системной платы во многом определяются чипсетом. Физически чипсет представляет собой одну или несколько микросхем, предназначенных для обеспечения центрального процессора данными и командами, а также для управления периферией (видео- и звуковые контроллеры, оперативная память, дисковые накопители и различные порты ввода/вывода). Кроме того, чипсет выполняет функции контроллера прерываний, контроллера энергонезависимой памяти (BIOS), системного таймера, контроллера клавиатуры и мыши, контроллера дисковых накопителей и т. д. 6. Устройства для длительного хранения информации Накопитель на жестких магнитных дисках, жесткий диск – это устройство хранения информации произвольного доступа, основанное на принципе магнитной записи. На жестком диске информация записывается на магнитный слой диска, выполненный из жёсткого материала, чаще из алюминия. В корпусе из прессованного алюминия объединены такие элементы винчестера, как управляющий двигатель, носитель информации (диски), головки чтения/записи и электроника. Корпус жесткого диска герметичный, но вакуума в нём нет. 44 Жесткий диск состоит из нескольких одинаковых дисков, расположенных друг над другом. На каждый диск установлена пара головок, которые позиционируются шаговым двигателем. Все головки перемещаются одновременно, а потому в логической структуре диска есть понятие цилиндра. Шпиндель вращается непрерывно, даже когда к нему нет обращения. Объем современных жестких дисков достигает нескольких терабайт. Приводы CD-ROM работают не так, как все электромагнитные носители информации. При записи компакт-диск обрабатывается лазерным лучом (без механического контакта), выжигающим тот участок, который хранит единицу, и оставляет нетронутым тот участок, который хранит логический ноль, в результате чего на поверхности образуются маленькие углубления – так называемые питы (Pits). Толщина компакт-диска составляет 1,2 мм, а диаметр – 120 мм. Диск изготавливается из поликарбоната, который покрыт с одной стороны тонким металлическим отражающим слоем (чаще всего из серебра или его сплавов) и защитной плёнкой специального прозрачного лака. Объём информации CD-ROM – 650 Мбайт и 700 Мбайт. Устройства флеш-памяти – это энергонезависимые запоминающие устройства, используемые для долговременного хранения информации с возможностью многократной перезаписи. Устройство флеш-памяти представляет собой металл-нитридные микросхемы, помещенные в небольшой картридж с USB разъемом. Стирание, считывание и запись производятся электрическими сигналами, а не лазером. В современных устройствах имеются программные или аппаратные средства формирования виртуальных блоков, обеспечивающие запись информации поочерёдно в разные области флеш-памяти. Ёмкость флеш-накопителей, изготавливаемых на основе многоуровневых ячеек на базе логических схем NAND (НЕ–И, штрих Шеффера) достигает нескольких десятков гигабайтов. Современные модули флеш-памяти используют в твердотельных накопителях (SSD, solid-state drive), которые являются альтернативой накопителям на жестких магнитных дисках. 7. Периферийные устройства (устройства ввода/вывода) Видеосистема ПК включает монитор и видеоадаптер. 45 С точки зрения принципа действия, все мониторы для ПК делят на два типа: – мониторы на основе электронно-лучевой трубки (ЭЛТ); – на основе жидкокристаллических экранов (плоскопанельные мониторы). Первая группа (ЭЛТ) до недавнего времени являлась наиболее распространённой из-за низкой цены и простого принципа действия: испускаемый электронной пушкой пучок электронов, попадая на экран, покрытый люминофором, вызывает его свечение. На пути пучка электронов обычно находятся дополнительные электроды: модулятор, регулирующий интенсивность пучка электронов и связанную с ней яркость изображения, фокусирующий электрод, определяющий размер светового пятна, а также размещённые на горловине ЭЛТ катушки отклоняющей системы, позволяющие изменять направление пучка. На экране ЭЛТ монитора любое текстовое или графическое изображение – это набор дискретных точек люминофора, называемых пикселами. Минимальный элемент изображения называют растром, а мониторы – растровыми. Электронный луч в этом случае периодически сканирует экран, образуя на нём близко расположенные строки развёртки. По мере движения луча по строкам видеосигнал, подаваемый на модулятор, изменяет яркость светового пятна, образуя на экране изображение. Для формирования растра луч движется по зигзагообразной траектории от левого верхнего угла до правого нижнего. Прямой ход по горизонтали осуществляется сигналом строчной развёртки, а по вертикали – кадровой. Перевод луча из крайней правой точки строки в крайнюю левую точку следующей строки (обратный ход луча по горизонтали) и из крайней правой позиции последней строки экрана в крайнюю левую позицию первой строки (обратный ход луча по вертикали) происходит с помощью специальных сигналов обратного хода. Здесь частота обновления изображения 25 Гц. Вторую группу составляют жидкокристаллические мониторы. В них экран состоит из двух панелей, между которыми залит слой жидкокристаллического вещества. Экран представляет собой совокупность отдельных ЖК-ячеек, каждая из которые обычно выдаёт 1 пиксел изображения, но здесь ячейка не генерирует, а управляет интенсивностью проходящего света. Для этого в них используют подсветку. ЖК-ячейка – это электронно46 управляемый светофильтр. Жидкокристаллическое вещество имеет молекулы вытянутой формы – неметаллические, что позволяет их упорядочивать. Если на подложку нанести мелкие бороздки, то молекулы ЖК-вещества будут ориентироваться вдоль этих бороздок. Другим важнейшим свойством является зависимость ориентации этих молекул от направления внешнего электрического поля. Подсветку ЖК-экранов делают светодиодами или электролюминесцентными лампами с холодным катодом сзади или по бокам экрана. Для цветного изображения используют триады ячеек, каждая из которых пропускает через светофильтр только один из основных цветов. Видеоадаптер, или видеокарта – это устройство, преобразующее графический образ, хранящийся в памяти компьютера в цифровом виде, в форму, пригодную для отображения на экране монитора. Другими словами, видеоадаптер является интерфейсом между компьютером и устройством отображения информации (монитором), но по мере развития РС на него стали возлагаться и другие обязанности: аппаратное ускорение 2D- и Физически видеоадаптер может быть выполнен на отдельной плате, вставляемой в слот расширения компьютера, или может быть расположен непосредственно на системной плате компьютера. Видеоадаптер включает в себя видеопамять, в которой хранится изображение, отображаемое в данный момент на экране дисплея, постоянное запоминающее устройство, в котором записаны наборы шрифтов, отображаемые видеоадаптером в текстовых и графических режимах, устройство формирования графического изображения на экране монитора, а также управляющее устройство, обеспечивающее обмен данными с чипсетом компьютера. Воспроизведение звука в ПК обеспечивают в настоящее время звуковые карты. Однако так было не всегда. Первые компьютеры могли издавать звуки только с помощью маленького динамика в корпусе. В 1989 г. появилась звуковая карта, что улучшило качество звука, и появился комплекс программно-аппаратных средств, предназначенный для следующих целей: 47 – запись звука с микрофона или магнитофона – идёт преобразование аналоговых сигналов в цифровые сигналы и запись на винчестер компьютера; – микширование (смешивание) при записи или воспроизведении сигналов от нескольких источников; – одновременная запись и воспроизведение звуковых сигналов; – обработка звуковых сигналов: редактирования, объединения, разделения фрагментов сигналов и т. п.; – управление панорамой стереофонического звукового сигнала и уровнем сигнала в каждом канале при записи и воспроизведении; – обработка звукового сигнала в соответствии с алгоритмами объёмного звучания; – генерирование с помощью синтезатора звучания музыкальных инструментов и человеческой речи; – управление работой внешних музыкальных инструментов через специальный интерфейс MIDI; – воспроизведение звуков компакт-дисков; – управление компьютером и ввод текста с помощью микрофона. Звуковая система может быть выполнена в виде самостоятельных звуковых карт или интегрирована в другую карту расширения. Клавиатура Сегодня наиболее распространена клавиатура типа QWERTY, включающая 101–103 клавиши. Клавиатуру можно условно разделить на зоны (рис. 2.4):  алфавитно-цифровая;  специальных клавиш: , , , , , , <←>, , ;  управления курсором;  переключаемая (цифровая/ управления курсором);  функциональная: ;  индикаторы. 48 Рис. 2.4. Условные зоны на клавиатуре Сканер – это устройство для ввода изображений. Сканеры имеют следующие характеристики: – формат сканируемого изображения. Бытовые сканеры имеют формат A4 или A3; – разрешающая способность. У неё два показателя – оптический и программный. Оптический – это показатель первичного сканирования, но его программный показатель улучшает оптический. При использовании оптического показателя разрешающая способность равна 300 * 600 dpi, а программного – 4 800 * 4 800 dpi. Разрешающая способность у сканера бывает по горизонтали и вертикали. Для текста надо 500–600 dpi (dot per inch); – разрядность – фактически она означает то количество цветов, которое может обеспечить сканер – 24 бита соответствуют 16,7 млн. цветов; 30 бит – 1 млрд. Разница в цене: 30-битные используются профессионалами, так как это более качественные сканеры, а потому дороже; – способ сканирования. Различают ручные, рулонные, планшетные и проекционные сканеры. Принцип работы любого сканера состоит в том, что изображение с бумаги или пленки при сканировании преобразуется в цифровой формат. При этом полученное изображение будет представлять собой растр. Принтеры Существует три типа печатающих устройств: – матричные (ударного типа); – струйные; – лазерные. 49 Матричные принтеры (принтеры ударного типа) бывают типовые и игольчатые. У первых есть пластмассовый диск со спицами, на концы которых на прямоугольные пластинки нанесены символы для печати (типы). Диск крепится на ось перпендикулярно валу и бумаге, ось управляется шаговым двигателем. Позади диска находится ударный механизм. Двигатель вращает диск до тех пор, пока перед ударником не появится требуемый символ. Срабатывание в этот момент ударника приводит к печати символа через красящую ленту на бумагу. Скорость печати 30–40 знаков в секунду. Игольчатый принтер формирует знаки при помощи головки с иголками. Иголки внутри головки активизируются электромагнитным методом. Головка движется по горизонтальной направляющей и управляется шаговым двигателем. Струйные принтеры в своей работе используют следующие методы: пьезоэлектрический; метод газовых пузырей; метод drop-on-demand. В первом методе в каждое из 300 для чёрных или 416 для цветных чернил сопел установлен пьезокристалл, связанный с диафрагмой. Под воздействием электрического поля происходит деформация пьезоэлемента, что вызывает наполнение капиллярной системы чернилами. Выдавливаясь, они оставляют на бумаге точку. Подобные устройства выпускает компания EpВо втором методе каждое сопло оборудовано нагревательным элементом, который при пропускании через него электрического тока разогревается до 500 градусов, а образующиеся в сопле газовые пузырьки выталкивают каплю чернил, которая переносится на бумагу. Подобная технология используется фирмой Canon. Третий метод drop-on-demand используется фирмой Hewlett-Packard. Здесь тоже есть нагревательный элемент, но для подачи чернил есть ещё и специальный механизм. В этом методе обеспечивается наиболее быстрое впрыскивание чернил, что существенно улучшает качество и увеличивает скорость печати до 17 страниц в минуту, а цвета делает более контрастными. Важнейшим конструктивным элементом лазерного принтера является вращающийся барабан, с помощью которого происходит перенос изображения на бумагу. Металлический барабан покрыт тонкой плёнкой светопроводящего полупроводника (оксида цинка). Коронирующий провод равномерно распределяет статический заряд из-за подачи высокого напряжения. 50 Лазер генерирует световой луч, отражающийся от вращающегося зеркала на поверхность барабана, что приводит к изменению электрического заряда в точке прикосновения. На следующем шаге на барабан наносится красящая пыль, которая притягивается к поверхности в точках, подвергшихся экспозиции, что позволяет сформировать изображение. Бумага втягивается из подающего лотка и через систему валиков перемещается к барабану. Перед самым барабаном бумаге сообщается статический заряд, который и притягивает частички пыли при соприкосновении с барабаном. Для фиксации пылинок бумага снова заряжается и пропускается между двумя роликами с высокой температурой. После печати специальный ролик очищает барабан. 8. Оборудование для организации сетей ЭВМ Проводящая среда Витая пара – два изолированных провода, свитые вместе. Кабель состоит из четырех пар. Коаксиальный кабель состоит из центрального проводника, одножильного и внешней экранирующей оплётки (рис. 2.5). Между ними находится внутренний изолирующий материал. Обладает высокой защищённостью и скоростью передачи большей, чем витая пара. Рис. 2.5. Коаксиальный кабель Стекловолоконный кабель проводит световые волны, состоит из двух проводов, каждый из которых проводит данные только в одном направлении. Этот кабель не подвержен влиянию электрополей, длина не ограничена, скорость передачи данных велика. Сетевые карты являются посредником между компьютером и сетью, передают сетевые данные по системе шин к процессору или оперативной 51 памяти сервера или рабочей станции. Наибольшее распространение получили сетевые карты стандарта Ethernet. Сетевой концентратор, или хаб – это сетевое устройство, предназначенное для объединения нескольких сетевых устройств в общий сегмент сети. Устройства могут подключаются при помощи витой пары, коаксиального кабеля или оптоволокна, в зависимости от модели концентратора. Концентраторы могут иметь различное количество портов: 8, 12, 16 и т. д. При соединении концентраторов необходимо соблюдать правила: не создавать закольцованных путей, не устанавливать более 4 концентраторов между любыми двумя станциями. В настоящее время концентраторы почти не выпускаются. На смену им пришли сетевые коммутаторы, или свитчи, выделяющие каждое подключённое устройство в отдельный сегмент. Сетевой коммутатор, или свитч – устройство, предназначенное для соединения сетевых устройств в пределах одного или нескольких сегментов сети. В отличие от концентратора, который транслирует пакеты с данными от одного подключенного устройства всем остальным, коммутатор передаёт данные только тому устройству, которому они предназначались. Трансивер – сетевое устройство, используемое для соединения линий связи разных типов, например, для соединения оптического и медного кабелей. Репитер (повторитель или усилитель мощности) – это сетевое устройство, которое используется для увеличения длины сегмента сети. Терминатор – устройство, предназначенное для гашения отражения сигнала от концов линии связи (заглушка). Физически представляет собой разъём с впаянным сопротивлением. Один из двух терминаторов должен быть заземлён. Подключение кабеля «витая пара» к сетевой карте, концентратору или коммутатору осуществляется разъёмом RJ–45 (розетка и вилка). 52 РАЗДЕЛ 3. МОДЕЛИ РЕШЕНИЯ ФУНКЦИОНАЛЬНЫХ И ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ 1. 2. 3. 4. План Моделирование как метод познания. Классификация и формы представления моделей. Информационная модель объекта. Методы моделирования 1. Моделирование как метод познания Человечество в своей деятельности (научной, образовательной, технологической, художественной) постоянно создает и использует модели окружающего мира. Строгие правила построения моделей сформулировать невозможно, однако человечество накопило богатый опыт моделирования различных объектов и процессов. Первоначально моделью называли некое вспомогательное средство, объект, который в определенной ситуации заменял другой объект. При этом далеко не сразу была понята универсальность законов природы, всеобщность моделирования, т. е. не просто возможность, но и необходимость представлять любые наши знания в виде моделей. Например, древние философы считали невозможным моделирование естественных процессов и явлений, так как, по их представлениям, природные и искусственные процессы подчинялись различным закономерностям. В результате очень долго понятие «модель» относилось только к материальным объектам специального типа, например, манекен (модель человеческой фигуры), модели судов, чучела (модели животных) и т. п. Развитие понятия модели происходило поэтапно. Осмысливание основных особенностей таких моделей привело к разработке многочисленных определений, типичным примером которых служит следующее: моделью называется некий объект-заместитель, который в определенных условиях может заменять объект-оригинал, воспроизводя интересующие нас свойства и характеристики оригинала, причем имеет существенные преимущества удобства (наглядность, обозримость, доступность испытаний, легкость оперирования с ним и пр.). Затем были осознаны модельные свойства чертежей, рисунков, карт – реальных объектов искусственного происхождения, 53 воплощающих абстракцию довольно высокого уровня. Следующий шаг заключался в признании того, что моделями могут служить не только реальные объекты, но и абстрактные, идеальные построения. Например, математические модели. В результате деятельности математиков, логиков и философов, занимавшихся исследованием оснований математики, была создана теория моделей. В ней модель определяется как результат отображения одной абстрактной математической структуры на другую, тоже абстрактную, либо как результат интерпретации структуры в терминах и образах второй. Со временем понятие модели становится все более общим, охватывающим и реальные, и идеальные модели. При этом понятие абстрактной модели вышло за пределы математических моделей, стало относиться к любым знаниям и представлениям о мире. Познавательные и прагматические модели Поскольку модели играют чрезвычайно важную роль в организации любой деятельности человека, все виды деятельности удобно разделить по направленности основных потоков информации, циркулирующих между субъектом и окружающим его миром. Разделим модели на познавательные и прагматические, что соответствует делению целей на теоретические и практические. Хотя это деление (как, впрочем, и всякое другое) относительно, и можно легко привести примеры, когда конкретную модель нелегко однозначно отнести к одному из классов, оно все же не целиком условно и отображает реальные различия. Проявления этих различий разнообразны, но, пожалуй, наиболее наглядно разница между познавательными и прагматическими моделями проявляется в их отношении к оригиналу в процессе деятельности. Познавательные модели являются формой организации и представления знаний, средством соединения новых знаний с имеющимися. Поэтому при обнаружении расхождения между моделью и реальностью встает задача устранения этого расхождения с помощью изменения модели. Познавательная деятельность ориентирована в основном на приближение модели к реальности (рис. 3.1). 54 Рис. 3.1. Сравнение фотографии и картины Прагматические модели являются средством управления, средством организации практических действий, способом представления образцово правильных действий или их результата, т. е. являются рабочим представлением целей. Поэтому использование прагматических моделей состоит в том, чтобы при обнаружении расхождений между моделью и реальностью направить усилия на изменение реальности так, чтобы приблизить реальность к модели. Таким образом, прагматические модели носят нормативный характер, играют роль стандарта, образца, под которые «подгоняются» как сама деятельность, так и ее результат. Примерами прагматических моделей могут служить планы и программы действий, уставы организаций, кодексы законов, алгоритмы, рабочие чертежи и шаблоны, параметры отбора, технологические допуски, экзаменационные требования и т. д. Другими словами, основное различие между познавательными и прагматическими моделями можно выразить так: познавательные модели отражают существующее, а прагматические – не существующее, но желаемое и (возможно) осуществимое. Статические и динамические модели. Другим принципом классификации целей моделирования может служить деление моделей на статические и динамические. Статические модели отображают состояние объекта в фиксированный момент времени, например, «моментальная фотография» интересующего нас объекта. В тех же случаях, когда необходимо отобразить не само состояние, а его изменение, создают динамические модели, например, видеоролик. 55 Отображение, которым является модель, есть отношение между отображаемым и отображающим объектами. На отношение отображения весьма существенным образом влияет все, что связано с целью, под которую создается модель. Модели, сознательно создаваемые человеком, делятся на абстрактные (идеальные) и материальные (реальные, вещественные), в зависимости от того, какой материал находится в его распоряжении для построения моделей: средства самого сознания или средства окружающего материального мира. Абстрактные модели и роль языков. Абстрактные модели являются идеальными конструкциями, построенными средствами мышления, сознания. Очевидно, что к абстрактным моделям относятся языковые конструкции; однако современные представления о мышлении и сознании утверждают, что языковые модели (т. е. модели, построенные средствами естественного языка) являются своего рода конечной продукцией мышления, уже готовой или почти готовой для передачи другим носителям языка. На естественном языке человек может говорить обо всем, он является универсальным средством построения любых абстрактных моделей. Эта универсальность обеспечивается не только возможностью введения в язык новых слов, но и возможностью иерархического построения все более развитых языковых моделей (слово – предложение – текст; понятия – отношения – определения – конструкции...). Универсальность языка достигается, тем, что языковые модели обладают неоднозначностью, расплывчатостью, размытостью. Это свойство проявляется уже на уровне слов. Многозначность почти каждого слова (см. толковый словарь любого языка) или неопределенность слов (например, «много», «несколько») вместе с многовариантностью их возможных соединений во фразы позволяет любую ситуацию отобразить с достаточной для обычных практических целей точностью. Эта приблизительность – неотъемлемое свойство языковых моделей, человек преодолевает в практике их расплывчатость с помощью «понимания», «интерпретации». Иногда эта расплывчатость используется сознательно – в юморе, дипломатии, поэзии; в других случаях она мешает выразиться так точно, как хотелось бы. Модели специальных наук более точны и более конкретны, они содержат больше информации. Новые знания аккумулируются в новых моделях, и если старых языковых средств для их построения не хватает, то возникают 56 еще более специализированные языки. В результате получаем иерархию языков и соответствующую иерархию типов моделей. На верхнем уровне этого спектра находятся модели, создаваемые средствами естественного языка, и так вплоть до моделей, имеющих максимально достижимую определенность и точность для сегодняшнего состояния данной отрасли знаний. Материальные модели и виды подобия. Чтобы некоторая материальная конструкция могла быть отображением, т. е. замещала в каком-то отношении оригинал, между оригиналом и моделью должно быть установлено отношение похожести подобия. Существуют разные способы установления такого подобия, что придает моделям особенности, специфичные для каждого способа. Прежде всего, это подобие, устанавливаемое в результате физического взаимодействия (или цепочки физических взаимодействий) в процессе создания модели. Примерами таких отображений являются фотографии, масштабированные модели самолетов, кораблей или гидротехнических сооружений, макеты зданий, куклы, протезы, шаблоны, выкройки и т. п. Такое подобие называют прямым. Однако и прямое подобие может быть лишь отдаленным сходством, но только при прямом подобии возможна трудно обнаружимая взаимозаменяемость модели и оригинала (например, копии произведений искусства, голографические изображения предметов и т. п.), и даже фактическая перемена их местами (натурщик является моделью в работе художника, манекенщица моделирует будущих потребителей одежды, актер является моделью персонажа пьесы). С другой стороны, как бы хороша ни была модель, она все-таки лишь заменитель оригинала, выполняющий эту роль только в определенном отношении. Даже тогда, когда модель прямого подобия осуществлена из того же материала, что и оригинал, возникают проблемы переноса результатов моделирования на оригинал. Например, при испытании уменьшенной модели корабля на гидродинамические качества, часть условий эксперимента можно привести в соответствие масштабам модели (скорость течения), другая же часть условий (вязкость и плотность воды, сила тяготения, определяющие свойства волн, и т. д.) не может быть масштабирована. Задача пересчета данных модельного эксперимента на реальные условия становится нетривиальной; возникает разветвленная, содержательная теория подобия, относящаяся именно к моделям прямого подобия. 57 Второй тип подобия, в отличие от прямого, называют косвенным. Косвенное подобие между оригиналом и моделью устанавливается не в результате их физического взаимодействия, а объективно существует в природе, обнаруживается в виде совпадения или достаточной близости их абстрактных моделей, и после этого используется в практике реального моделирования. Наиболее известным примером этого является электромеханическая аналогия. Оказалось, что некоторые закономерности электрических и механических процессов описываются одинаковыми уравнениями; различие состоит лишь в разной физической интерпретации переменных, входящих в эти уравнения. В результате оказывается возможным не только заменить неудобное и громоздкое экспериментирование с механической конструкцией на простые опыты с электрической схемой, перепробовать множество вариантов, не переделывая конструкцию, но и «проиграть» на модели варианты, в механике пока неосуществимые (например, с произвольным и непрерывным изменением масс, длин и т. д.). Роль моделей, обладающих косвенным подобием оригиналу, очень велика. Часы – аналог времени; подопытные животные у медиков – аналоги человеческого организма; автопилот – аналог летчика; электрический ток в подходящих цепях может моделировать транспортные потоки информации в сетях связи, течение воды в городской водопроводной сети; аналоговые вычислительные машины позволяют найти решение почти всякого дифференциального уравнения, представляя собой модель-аналог процесса, описываемого этим уравнением. Третий, особый класс реальных моделей образуют модели, подобие которых оригиналу не является ни прямым, ни косвенным, а устанавливается в результате соглашения. Называют такое подобие условным. Примером условного подобия могут являться деньги (модель стоимости), удостоверения личности (официальная модель владельца), всевозможные и разнообразные сигналы (модели сообщений), рабочие чертежи (модели будущей продукции), карты (модели местности) и т. д. С моделями условного подобия приходится иметь дело очень часто, поскольку они являются способом материального воплощения абстрактных моделей, вещественной формой, в которой абстрактные модели могут передаваться от одного человека к другому, храниться до (иногда очень отдаленного) момента их использования, т. е. отчуждаться от сознания и все-таки 58 сохранять возможность возвращения в абстрактную форму. Это достигается с помощью соглашения о том, какое состояние реального объекта ставится в соответствие данному элементу абстрактной модели. Такое соглашение принимает вид совокупности правил построения моделей условного подобия и правил пользования ими. Знаковые модели и сигналы Эта общая схема конкретизируется и углубляется в ряде конкретных наук, в которых используются или непосредственно изучаются модели условного подобия. Например, теория связи, теория информации, радиотехника, теория управления и ряд других наук имеют дело со специфическими моделями условного подобия, которые применяются в технических устройствах без участия человека; они получили название сигналов. В этих науках правила построения и способы использования сигналов, названные кодом, кодированием и декодированием, сами стали предметом углубленных исследований (например, возникла очень развитая теория кодирования). С иных позиций рассматриваются модели условного подобия в науках, изучающих создание и использование этих моделей самим человеком. У предназначенных для этого моделей имеется своя специфика, позволяющая дать им специальное название – знаки – и требующая специальных методов для ее исследования. Возникшая в связи с этим область знаний получила название семиотики (от греч. «знак»). Семиотика изучает знаки не в отдельности, а как входящие в знаковые системы, в которых выделено три основных группы отношений: – синтаксис (греч. «построение, порядок»), т. е. отношения между различными знаками, позволяющие отличать их и строить из них знаковые конструкции все более высокой сложности; – семантика (греч. «обозначение»), т. е. отношения между знаками и тем, что они обозначают, или вложенный, изначальный смысл знаков; – прагматика (греч. «дело, действие»), т. е. отношения между знаками и теми, кто их использует в своей деятельности, или понятый, воспринятый смысл знаков. Существуют и другие многочисленные аспекты исследования моделей условного подобия (языкознание, картография, криптография, графология, техническое черчение, нумизматика, информатика, литературоведение и т. д.). 59 Хотя условное подобие в принципе не требует фактического сходства, оно должно строиться с учетом особенностей человека – создателя и потребителя моделей условного подобия. Выбор символики для обозначения цифр только на первый взгляд кажется произвольным: в практике вычислений арабская символика в конце концов вытеснила римскую из-за существенного различия в удобстве ручного выполнения операций над знаками чисел. На ЭВМ двоичная символика вытеснила арабскую по подобным соображениям. Моделирование (в широком смысле) является основным методом исследований во всех областях знаний и научно обоснованным методом оценок характеристик сложных систем, используемым для принятия решений в различных сферах инженерной деятельности. Существующие и проектируемые системы можно эффективно исследовать с помощью математических моделей (аналитических и имитационных), реализуемых на современных ЭВМ, которые в этом случае выступают в качестве инструмента экспериментатора с моделью системы. 2. Классификация и формы представления моделей Классификация по области использования Если рассматривать модели с позиции для чего, с какой целью они используются, то можно применять классификацию, изображенную на рис. 3.2. Рис. 3.2. Классификация моделей по области использования Учебные модели – это наглядные пособия, различные тренажеры, обучающие программы. Опытные модели – это уменьшенные или увеличенные копии проектируемого объекта. Их называют также натурными и используют для исследования объекта и прогнозирования его будущих характеристик. 60 Например, модель корабля испытывается в бассейне для определения устойчивости судна при качке, а уменьшенная копия автомобиля «продувается» в аэродинамической трубе для изучения обтекаемости его кузова. Научно-технические модели создают для исследования процессов и явлений. К ним можно отнести, например, прибор, имитирующий разряд молнии, стенд для проверки телевизоров. Игровые модели – это военные, экономические, спортивные, деловые игры. Они как бы репетируют поведение объекта в различных ситуациях, проигрывая их с учетом возможной реакции со стороны конкурента, союзника или противника. Игровые модели позволяют оказывать психологическую помощь больным либо разрешать конфликтные ситуации. Имитационные модели не просто отражают реальность с той или иной степенью точности, а имитируют ее. Эксперимент либо многократно повторяется, чтобы изучить и оценить последствия каких-либо действий на реальную обстановку, либо проводится одновременно со многими другими похожими объектами, но поставленными в разные условия. Подобный метод выбора правильного решения называется методом проб и ошибок. К примеру, в ряде опытов на мышах испытывается новое лекарственное средство, чтобы выявить побочные действия и уточнить дозировки. Классификация с учетом фактора времени и области использования Как уже упоминалось, одна из классификаций связана с фактором времени. С учетом фактора времени модели делят на статические и динамичес к и е Рис. 3.3. Классификация моделей по временному фактору ( р Можно классифицировать модели и по тому, к какой области знаний и они принадлежат (биологические, социологические, исторические и т. п.), с и по множеству других факторов. Классификация по способу представления 61 По способу представления модели делятся на две большие группы: материальные и информационные (рис. 3.4). Названия этих групп как бы показывают, из чего «сделаны» модели. Рис. 3.4. Классификация моделей по способу представления Материальные модели иначе можно назвать предметными, физическими. Они воспроизводят геометрические и физические свойства оригинала и всегда имеют реальное воплощение. Материальные модели – это, к примеру, чучела птиц в кабинете биологии, карты при изучении истории и географии, схемы солнечной системы и звездного неба в планетарии, макет многоступенчатой ракеты и еще многое другое. Подобные модели реализуют материальный подход к изучению объекта, явления или процесса. Информационные модели нельзя потрогать или увидеть воочию, они не имеют материального воплощения, потому что они строятся только на информации. В основе этого метода моделирования лежит информационный подход к изучению окружающей действительности. Информационная модель – совокупность информации, характеризующая свойства и состояния объекта, процесса, явления, а также взаимосвязь с внешним миром. Информация, характеризующая объект или процесс, может иметь разный объем и форму представления, выражаться различными средствами. 62 К информационным моделям можно отнести вербальные (от лат. «verbalis» – устный) модели, полученные в результате раздумий, умозаключений. Они могут оставаться мысленными или быть выражены словесно. Примером такой модели может являться идея, возникшая у изобретателя, музыкальная тема, промелькнувшая в голове композитора, и рифма, прозвучавшая пока еще в сознании поэта. Вербальная модель – информационная модель в мысленной или разговорной форме. Знаковая модель – информационная модель, выраженная специальными знаками, т. е. средствами любого формального языка. Знаковые модели – это рисунки, тексты, графики и схемы. Вербальные и знаковые модели, как правило, взаимосвязаны. Мысленный образ, родившийся в мозгу человека, может быть облечен в знаковую форму. И наоборот, знаковая модель помогает сформировать в сознании верный мысленный образ. Например, лекция (вербальная модель), читаемая преподавателем, фиксируется в тетради студента (знаковая модель). По форме представления можно выделить следующие виды информационных моделей: – геометрические модели – графические формы и объемные конструкции; – словесные модели – устные и письменные описания с использованием иллюстраций; – математические модели – математические формулы, отображающие связь различных параметров объекта или процесса; – структурные модели – схемы, графики, таблицы и т. п.; – логические модели – модели, в которых представлены различные варианты выбора действий на основе умозаключений и анализа условий; – специальные модели – ноты, химические формулы и т. п.; – компьютерные и некомпьютерные модели. Многообразие моделей предполагает огромный спектр инструментов для их реализации. Существует немало формальных языков, относящихся к разным областям деятельности, пригодных для описания моделей. Если модель имеет материальную природу, то для ее создания годятся традиционные инструменты: резец скульптора, кисть художника, фотоаппарат, токарный или фрезерный станок, пресс и т. д. 63 Если модель выражена в абстрактной форме, то необходимы некоторые знаковые системы, позволяющие описать ее: специальные языки, чертежи, схемы, графики, таблицы, алгоритмы, математические формулы и т. п. Здесь могут быть использованы два варианта инструментария: либо традиционный набор инженера или конструктора (карандаш, линейка), либо самый совершенный в наши дни прибор – компьютер. Поэтому по способу реализации модели подразделяются на компьютерные и некомпьютерные модели. Компьютерная модель – модель, реализованная средствами программной среды. Имея дело с компьютером как с инструментом, нужно помнить, что он работает с информацией. Поэтому следует исходить из того, какую информацию и в каком виде может воспринимать и обрабатывать компьютер. Современный компьютер способен работать со звуком, видеоизображением, анимацией, текстом, схемами, таблицами и т. д. Но для использования всего многообразия информации необходимо как техническое (Hardware), так и программное (Software) обеспечение. И то и другое – инструменты компьютерного моделирования. Например, для работы со звуком нужна специальная плата в компьютере, звуковая карта (Sound Blaster) и специализированное программное обеспечение. Для композитора это, к примеру, профессиональный музыкальный редактор, который позволяет не только набрать нотный текст и распечатать его, но и сделать аранжировку произведения. Цифровое звучание компьютерных моделей почти не отличается от тембра реальных инструментов. Компьютер позволяет соединять реальный голос певца со звуковой моделью мелодии, а также моделировать голос разной высоты и тембра (тенор, драматический бас и т. п.). Существуют программы, с помощью которых компьютер может создавать композиции самостоятельно в соответствии с заданным ритмом, темпом, музыкальным стилем и т. п. Рассмотрим другой пример. Инструментом для создания геометрической модели, передающей внешний облик прототипа, могут быть программы, работающие с графикой, например, графический редактор. С его помощью возможно моделировать как плоское, так и объемное изображение, управляя графическими объектами. Сейчас имеется широкий круг программ, позволяющих создавать раз- 64 личные виды компьютерных знаковых моделей: текстовые процессоры, редакторы формул, электронные таблицы, системы управления в базах данных, профессиональные системы проектирования, а также различные среды программирования. 3. Информационная модель объекта Объектно-информационные модели Объектный подход к информационному моделированию берет свое начало в сфере объектно-ориентированного программирования (ООП), возникшего в 1970-х гг. Главным понятием здесь является «объект». Объект – часть окружающей нас действительности. Понятие объекта является очень широким и объединяет в себе как реальные, осязаемые предметы (например, кресло, автомобиль, мост), так и образы, созданные мышлением человека (например, стихотворение, музыкальное произведение, математическая теорема). Информационная модель объекта должна отражать некоторый набор его свойств. Свойства объекта – это совокупность признаков, которые отличают его от других объектов. Примеры объектов и их свойств приведены в таблице. Имена объектов и их свойства Имя объекта Студент Жесткий диск Свойства Фамилия, имя, отчество Институт Факультет Специальность Курс Объем Количество занимаемой памяти У каждого конкретного объекта свойства имеют определенные значения. В таблице приведены значения свойств. Значения свойств Имя объекта Студент Свойства Фамилия, имя, отчество Институт 65 Значения свойств Иванов Иван Иванович ИГиМ Жесткий диск Факультет Специальность Курс Объем Количество занимаемой памяти Геодезический Прикладная геодезия 300 Гб 150 Гб Состояние объекта характеризуется перечнем всех возможных его свойств и текущими значениями каждого из этих свойств. Изменение состояния объекта отражается в его информационной модели изменением значений его свойств. Как правило, объекты не остаются неизменными. Например, растет стаж работы учителя И.И. Иванова; на жестком диске изменяется объем занятой памяти; документ может быть перенесен на другой диск, в другую папку и пр. Все эти процессы в информационной модели отражаются изменениями значений свойств. В объектно-информационной модели отражаются не только свойства, но также и поведение объекта. Поведение объекта – действия, которые могут выполняться над объектом или которые может выполнять сам объект. В таблице приведено поведение объектов. Поведение свойств Имя объекта Студент Жесткий диск Свойства Значения свойств Фамилия, имя, отчество Институт Факультет Специальность Курс Объем Количество занимаемой памяти Иванов Иван Иванович ИГиМ Геодезический Прикладная геодезия 300 Гб 150 Гб Поведение (действия) Посещение лекций, сдача экзаменов, зачетов, посещение консультаций Форматирование Копирование Объекты, обладающие одинаковыми свойствами и поведением, образ у Каждый объект является экземпляром какого-либо класса. Все стую денты обладают одним и тем же набором свойств (имя, институт, факультет, т специальность, курс) и поэтому образуют класс объектов. Присвоим этому классу имя «СТУДЕНТ». Каждый конкретный студент – экземпляр этого к л а 66 с класса (или объект). Следовательно, «Студент» – экземпляр класса «СТУДЕНТ». Аналогично можно ввести класс «ЖЕСТКИЙ ДИСК», объединив в нем все жесткие диски. Тогда «Жесткий диск» – экземпляр класса «ЖЕСТКИЙ ДИСК». Таким образом, экземпляр класса (объект) – это конкретный предмет или образ, а класс определяет множество объектов с одинаковыми свойствами и поведением. Класс может порождать произвольное число объектов, однако любой объект относится к строго фиксированному классу. Иерархии классов. Объектно-информационные модели имеют иерархическую структуру (дерево). Иерархичность проявляется в том, что некоторый класс сам может быть подмножеством другого, более широкого класса. Пример иерархической классификации: вид «Автомобили» включает в себя два класса: «Легковые» и «Грузовые»; в свою очередь, «Легковые» автомобили делятся на: «Хэтчбек», «Седан», «Универсал», «Джип», «Кабриолет» и т. д. (рис. 3.5). Рис. 3.5. Фрагмент классификации автомобилей В такой иерархической структуре между классами определяется отношение наследования. Наследование – это такое отношение между классами, когда один класс повторяет свойства и поведение другого класса. Пример: на рис. 3.6 рассмотрена система классов, отражающих сведения о различных видах печатных устройств. 67 Печатные устройства Принтеры Матричные Копиры Многофункциональные устройства Печатная машинка Струйные Лазерные Рис. 3.6. Печатные устройства Свойства и поведение, присущие каждому классу, отражены в таблице. Имена классов, имена объектов и их свойства Имя класса Имя объекта Лазерные Принтеры Струйные Матричные Индивидуальные Наследуемые свойства свойства Марка, картридж Скорость печати. (тонер) Качество печати. Марка, картридж Нагрузка (чернила) Марка, картридж (печатная лента) Общие свойства располагаются в суперклассе «Печатные устройства». Эти свойства наследуются классами «Принтеры», «Копиры», «Многофункциональные устройства», «Печатная машинка». Свойства объектов «Скорость печати», «Качество печати», «Нагрузка» наследуются от класса «Принтеры». Таким образом, объектно-информационная модель включает в себя описание иерархической системы классов, между которыми действуют отношения наследования. Для каждого класса определяется совокупность присущих ему свойств, указывается, какие свойства являются наследуемыми, а какие – индивидуальными. 68 4. Методы моделирования Получение моделей в общем случае – процедура неформализованная. Основные решения, касающиеся выбора вида математических соотношений, характера используемых переменных и параметров, принимает проектировщик. В то же время такие операции, как расчет численных значений параметров модели, определение областей адекватности и другие, алгоритмизированы и решаются на ЭВМ. Все методы получения функциональных моделей элементов делят на теоретические и экспериментальные. Теоретические методы основаны на изучении физических закономерностей протекающих в объекте процессов, определении соответствующего этим закономерностям математического описания, обосновании и принятии упрощающих предположений, выполнении необходимых выкладок и приведении результата к принятой форме представления модели. Экспериментальные методы основаны на использовании внешних проявлений свойств объекта, фиксируемых во время эксплуатации однотипных объектов или при проведении целенаправленных экспериментов. Систематизация известных к настоящему времени моделей и методов их использования позволяет утверждать правомерность классификации, изображенной на рис. 3.7. Моделирование Идеальное Материальное Аналоговое Мысленный эксперимент Интуитивное Семантическое Семиотическое Вербальное Графическое Математическое Аналитическое Алгоритмическое Физическое Метод сценариев Операционная игра Рис. 3.7. Классификация методов моделирования Как видно на схеме все методы моделирования делятся на две группы: материальное моделирование, в которое объединены экспериментальные методы, и идеальное моделирование, объединяющее все теоретические методы. 69 РАЗДЕЛ 4. КОМПЬЮТЕРНЫЕ СЕТИ План 1. Общие сведения о компьютерных сетях. 2. Аппаратное, программное и информационное обеспечение компьютерных сетей. 3. Характеристики сетей. 4. Классификация компьютерных сетей. 5. Построение компьютерных сетей. 6. Семейство протоколов TCP/IP. 7. Глобальные сети. 8. Компьютерные вирусы. Антивирусные программы. 1. Общие сведения о компьютерных сетях Компьютерные (вычислительные) сети появились давно. Еще в середине XX в. существовали огромные системы, известные как системы разделения времени. Они позволяли использовать центральную ЭВМ с помощью удаленных терминалов. Такой терминал состоял из дисплея и клавиатуры. Внешне выглядел как обычный персональный компьютер, но не имел собственного процессорного блока. Пользуясь такими терминалами, сотни, а иногда тысячи сотрудников имели доступ к центральной ЭВМ. Такой режим обеспечивался благодаря тому, что система разделения времени разбивала время работы центральной ЭВМ на короткие интервалы времени, распределяя их между пользователями. При этом создавалась иллюзия одновременного использования центральной ЭВМ многими сотрудниками. В конце 1970-х гг. большие ЭВМ уступили место персональным компьютерам, которые использовались на рабочих местах. Однако, автономно работающие персональные компьютеры не дают непосредственного доступа к данным всей организации и не позволяют совместно использовать программы и оборудование. С этого момента начинается современное развитие компьютерных сетей. 70 Компьютерная сеть – совокупность узлов (компьютеров, терминалов, периферийных устройств), имеющих возможность информационного взаимодействия друг с другом с помощью специального коммуникационного оборудования и программного обеспечения. Также компьютерная сеть, образуемая множеством взаимосвязанных абонентских систем и средствами связи, является сетью обмена и распределённой обработки информации. 2. Аппаратное, программное и информационное обеспечение компьютерных сетей Аппаратное обеспечение составляют компьютеры различных типов, оборудование абонентских систем, средства территориальных систем связи (в том числе узлов связи), аппаратура связи и согласования работы сетей одного и того же уровня или различных уровней. Программное обеспечение отличается большим многообразием как по своему составу, так и по перечню решаемых задач. К функциям ПО сети относятся: – планирование, организация и осуществление коллективного доступа пользователей к общесетевым ресурсам – телекоммуникационным, вычислительным, информационным, программным; – автоматизация процессов программирования задач обработки информации; – динамическое распределение и перераспределение общесетевых ресурсов с целью повышения оперативности и надежности удовлетворения запросов пользователей. Состав ПО сетей: – общесетевое ПО в качестве основных элементов включает распределенную операционную систему (РОС) сети и комплект программ технического обслуживания (КПТО) всей сети и ее отдельных звеньев и подсистем, включая ТКС; – специальное ПО, куда входят прикладные программные средства: интегрированные и функциональные пакеты прикладных программ (ППП) общего назначения, прикладные программы сети (ППС), библиотеки стан- 71 дартных программ, а также прикладные программы специального назначения, отражающие специфику предметной области пользователей при реализации своих задач; – базовое программное обеспечение компьютеров абонентских систем, включающее операционные системы ПК, системы автоматизации программирования, контролирующие и диагностические тест-программы. Информационное обеспечение представляет собой единый информационный фонд, ориентированный на решаемые в сети задачи и содержащий базы данных общего применения, доступные для всех пользователей сети, базы данных индивидуального пользования, предназначенные для отдельных абонентов, базы знаний общего и индивидуального применения, автоматизированные базы данных – локальные и распределённые, общего и индивидуального назначения. 3. Характеристики сетей Характеристики производительности сети: – время реакции, которое определяется как время между возникновением запроса к какому-либо сетевому сервису и получением ответа на него; – пропускная способность, которая отражает объем данных, переданных сетью в единицу времени; – задержка передачи, которая равна интервалу между моментом поступления пакета на вход какого-либо сетевого устройства и моментом его появления на выходе этого устройства. Характеристики для оценки надёжности сети: – коэффициент готовности, означающий долю времени, в течение которого система может быть использована; – безопасность, т. е. способность системы защитить данные от несанкционированного доступа; – отказоустойчивость – способность системы работать в условиях отказа некоторых ее элементов. Общие характеристики сети: 1) расширяемость – возможность сравнительно легкого добавления отдельных элементов сети (пользователей, компьютеров, приложений, сервисов), наращивания длины сегментов сети и замены существующей аппаратуры более мощной; 72 2) масштабируемость – сеть позволяет наращивать количество узлов и протяженность связей в очень широких пределах, при этом производительность сети не ухудшается; 3) прозрачность – свойство сети скрывать от пользователя детали своего внутреннего устройства, упрощая тем самым его работу в сети; 4) управляемость – возможность централизованно контролировать состояние основных элементов сети, выявлять и разрешать проблемы, возникающие при работе сети, выполнять анализ производительности и планировать развитие сети. Совместимость – сеть способна включать в себя самое разнообразное программное и аппаратное обеспечение. 4. Классификация компьютерных сетей По степени территориальной рассредоточенности основных элементов сети (абонентских систем, узлов связи) выделяют: – глобальные компьютерные сети (ГКС) или Wide Area Networks Объединяют абонентские системы, рассредоточенные на большой территории, охватывающей различные страны и континенты. Они решают проблему объединения информационных ресурсов всего человечества и организации доступа к ним. Взаимодействие АО осуществляется на базе различных территориальных сетей связи (ТСС), в которых используются телефонные линии связи, радиосвязь, системы спутниковой связи; – региональные или городские компьютерные сети (РКС или ГорКС) или Metropolitan Area Networks (MAN). Объединяют абонентские системы, расположенные в пределах отдельного региона – города, административного района, функционируют в интересах организаций и пользователей региона и, как правило, имеют выход в ГКС. Взаимодействие абонентских систем осуществляется также с помощью ТСС; – локальные компьютерные сети (ЛКС) или Local Area Networks Объединяют абонентские системы, расположенные в пределах небольшой территории (этаж здания, здание, несколько зданий одного и того же 73 предприятия). К классу ЛКС относятся сети предприятий, фирм, банков, офисов, учебных заведений и т. д. По масштабу производственного подразделения: 1) сети отделов. Сети, которые используются сравнительно небольшой группой сотрудников, работающих в одном отделе предприятия. Эти сотрудники решают некоторые общие задачи, например ведут бухгалтерский учет или занимаются маркетингом. Считается, что отдел может насчитывать до 100–150 сотрудников. Главная цель сети отдела – разделение локальных ресурсов, таких как приложения, данные, лазерные принтеры и модемы. Обычно сети отделов имеют один или два файловых сервера и не более тридцати пользователей. Сети отделов обычно не разделяются на подсети. В этих сетях локализуется большая часть трафика предприятия. Сети отделов обычно создаются на основе какой-либо одной сетевой технологии – Ethernet, Token Ring. Для такой сети характерен один или, максимум, два типа операционных систем. Чаще всего это сеть с выделенным сервером, например, NetWare, хотя небольшое количество пользователей делает возможным использование одноранговых сетевых ОС. Задачи управления сетью на уровне отдела: – добавление новых пользователей; – устранение простых отказов; – инсталляция новых узлов; – установка новых версий программного обеспечения. Такой сетью может управлять сотрудник, посвящающий обязанностям администратора только часть своего времени. Чаще всего администратор сети отдела не имеет специальной подготовки, но является тем человеком в отделе, который лучше всех разбирается в компьютерах, и само собой получается так, что он занимается администрированием сети; 2) сети кампусов. Получили свое название от английского слова campus – студенческий городок. Именно на территории университетских городков часто возникала необходимость объединения нескольких мелких сетей в одну большую сеть. Сейчас это название не связывают со студенческими городками, а используют для обозначения сетей любых предприятий и организаций. 74 Сети этого типа объединяют множество сетей различных отделов одного предприятия в пределах отдельного здания или в пределах одной территории, покрывающей площадь в несколько квадратных километров. Отсюда вытекают сложности управления сетями кампусов. Администраторы должны быть в этом случае более квалифицированными, а средства оперативного управления сетью – более совершенными; 3) корпоративные сети. Называют также сетями масштаба предприятия, что соответствует дословному переводу термина «enterprise-wide типа сетей. Сети масштаба предприятия (корпоративные сети) объединяют большое количество компьютеров на всех территориях отдельного предприятия. Они могут быть сложно связаны и покрывать город, регион или даже континент. Число пользователей и компьютеров может измеряться тысячами, а число серверов – сотнями, расстояния между сетями отдельных территорий могут оказаться такими, что становится необходимым использование глобальных связей. Для соединения удаленных локальных сетей и отдельных компьютеров в корпоративной сети применяются разнообразные телекоммуникационные средства, в том числе телефонные каналы, радиоканалы, спутниковая связь. Корпоративную сеть можно представить в виде «островков локальных сетей», плавающих в телекоммуникационной среде. Непременным атрибутом такой сложной и крупномасштабной сети является высокая степень гетерогенности – нельзя удовлетворить потребности тысяч пользователей с помощью однотипных программных и аппаратных средств. В корпоративной сети обязательно будут использоваться различные типы компьютеров – от мэйнфреймов до персоналок, несколько типов операционных систем и множество различных приложений. Неоднородные части корпоративной сети должны работать как единое целое, предоставляя пользователям по возможности прозрачный доступ ко всем необходимым ресурсам. По способу управления: – сети с централизованным управлением; – сети с децентрализованным управлением; – сети со смешанным управлением. 75 В определенном сочетании реализованы принципы централизованного и децентрализованного управления. По организации передачи информации: сети с селекцией информации. Строятся на основе моноканала, взаимодействие АС осуществляется выбором (селекцией) адресованных им блоков данных (кадров): всем АС сети доступны все передаваемые в сети кадры, но копию кадра снимают только АС, которым они предназначены; сети с маршрутизацией информации. Используют механизм маршрутизации для передачи кадров (пакетов) от отправителя к получателю по одному из альтернативных маршрутов. По типу организации передачи данных эти сети делятся на 3 группы: – сети с коммутацией каналов; – сети с коммутацией сообщений; – сети с коммутацией пакетов. По топологии, т. е. по конфигурации элементов в сети: 1) широковещательные сети. Обладают единым каналом связи, совместно используемым всеми машинами сети. Короткие сообщения, называемые пакетами, посылаемые одной машиной, принимаются всеми машинами. Поле адреса в пакете указывает, кому направляется сообщение. При получении пакета машина проверяет его адресное поле. Если пакет адресован этой машине, она обрабатывает пакет. Пакеты, адресованные другим машинам, игнорируются. Для этих сетей характерен широковещательный режим работы, когда на передачу может работать только одна рабочая станция, а все остальные станции сети – на прием. Это локальные сети с селекцией информации: общая шина, дерево, звезда с пассивным центром. 2) последовательные сети (сети с передачей от узла к узлу). Состоят из большого количества соединённых пар машин. Осуществляется маршрутизация информации. Передача данных производится последовательно от одной станции к соседней, причем на различных участках сети могут использоваться различные виды физической передающей среды. Часто существует несколько возможных путей от источника к получателю. 76 Широковещательные сети и значительная часть последовательных конфигураций (кольцо, звезда с «интеллектуальным центром») характерны для ЛКС. Для глобальных и региональных сетей наиболее распространенной является произвольная (ячеистая) топология. По размеру сети: – локальные вычислительные сети (ЛВС); – муниципальные; – глобальные. Отличия локальных сетей от глобальных: – протяженность, качество и способ прокладки линий связи. Класс ЛВС по определению отличается от класса глобальных сетей небольшим расстоянием между узлами сети. Это в принципе делает возможным использование в локальных сетях качественных линий связи: коаксиального кабеля, витой пары, оптоволоконного кабеля, которые не всегда доступны (из-за экономических ограничений) на больших расстояниях, свойственных глобальным сетям. В глобальных сетях часто применяются уже существующие линии связи (телеграфные или телефонные), а в локальных сетях они прокладываются заново; – сложность методов передачи и оборудования. В условиях низкой надежности физических каналов в глобальных сетях требуются более сложные, чем в локальных сетях, методы передачи данных и соответствующее оборудование. Так, в глобальных сетях широко применяются модуляция, асинхронные методы, сложные методы контрольного суммирования, квитирование и повторные передачи искаженных кадров. С другой стороны, качественные линии связи в локальных сетях позволили упростить процедуры передачи данных за счет применения немодулированных сигналов и отказа от обязательного подтверждения получения пакета; – скорость обмена данными. Одним из главных отличий локальных сетей от глобальных является наличие высокоскоростных каналов обмена данными между компьютерами, скорость которых (4, 10, 16, 100, 1 000 Мбит/с) сравнима со скоростями работы устройств и узлов компьютера – дисков, внутренних шин обмена данными и т. п. За счет этого у пользователя локальной сети, подключенного к удаленному разделяемому ре- 77 сурсу (например, диску сервера), складывается впечатление, что он пользуется этим диском, как «своим». Для глобальных сетей типичны гораздо более низкие скорости передачи данных – 2,4, 9,6, 28,8, 33,6, 56 и 64 Кбит/с и только на магистральных каналах – до 2 Мбит/с; – разнообразие услуг. Локальные сети предоставляют, как правило, широкий набор услуг – это различные виды услуг файловой службы, услуги печати, услуги службы передачи факсимильных сообщений, услуги баз данных, электронная почта и другие, в то время как глобальные сети в основном предоставляют почтовые услуги и иногда файловые услуги с ограниченными возможностями – передачу файлов из публичных архивов удаленных серверов без предварительного просмотра их содержания; – оперативность выполнения запросов. Время прохождения пакета через локальную сеть обычно составляет несколько миллисекунд, время же его передачи через глобальную сеть может достигать нескольких секунд. Низкая скорость передачи данных в глобальных сетях затрудняет реализацию служб для режима online, который является обычным для локальных сетей; – разделение каналов. В локальных сетях каналы связи используются, как правило, совместно сразу несколькими узлами сети, а в глобальных сетях – индивидуально; – использование метода коммутации пакетов. Важной особенностью локальных сетей является неравномерное распределение нагрузки. Отношение пиковой нагрузки к средней может составлять 100:1 и даже выше. Такой трафик обычно называют пульсирующим. Из-за этой особенности трафика в локальных сетях для связи узлов применяется метод коммутации пакетов, который для пульсирующего трафика оказывается гораздо более эффективным, чем традиционный для глобальных сетей метод коммутации каналов. Эффективность метода коммутации пакетов состоит в том, что сеть в целом передает в единицу времени больше данных своих абонентов. В глобальных сетях метод коммутации пакетов также используется, но наряду с ним часто применяется и метод коммутации каналов, а также некоммутируемые каналы – как унаследованные технологии некомпьютерных сетей; – масштабируемость. «Классические» локальные сети обладают пло- 78 хой масштабируемостью из-за жесткости базовых топологий, определяющих способ подключения станций и длину линии. При использовании многих базовых топологий характеристики сети резко ухудшаются при достижении определенного предела по количеству узлов или протяженности линий связи. Глобальным же сетям присуща хорошая масштабируемость, так как они изначально разрабатывались в расчете на работу с произвольными топологиями. В мире локальных и глобальных сетей явно наметилось движение навстречу друг другу, которое уже сегодня привело к значительному взаимопроникновению технологий локальных и глобальных сетей. В локальных сетях в последнее время уделяется такое же большое внимание методам обеспечения защиты информации от несанкционированного доступа, как и в глобальных сетях. Такое внимание обусловлено тем, что локальные сети перестали быть изолированными, чаще всего они имеют выход в «большой мир» через глобальные связи. При этом часто используются те же методы – шифрование данных, аутентификация пользователей, возведение защитных барьеров, предохраняющих от проникновения в сеть извне. 5. Построение компьютерных сетей Топология сети – это конфигурация графа, вершинам которого соответствуют компьютеры сети (иногда и другое оборудование, например, концентраторы), а ребрам – физические связи между ними. Компьютеры, подключенные к сети, часто называют станциями, или узлами сети. Конфигурация физических связей определяется электрическими соединениями компьютеров между собой и может отличаться от конфигурации логических связей между узлами сети. Логические связи представляют собой маршруты передачи данных между узлами сети и образуются путем соответствующей настройки коммуникационного оборудования. Виды топологий представлены на рис. 4.1. 79 а) б) г) д) в) е) Рис. 4.1. Виды топологий 1. Полносвязная топология (рис. 4.1, а) соответствует сети, в которой каждый компьютер сети связан со всеми остальными. Несмотря на логическую простоту, этот вариант оказывается громоздким и неэффективным. Каждый компьютер в сети должен иметь большое количество коммуникационных портов, достаточное для связи с каждым из остальных компьютеров сети. Для каждой пары компьютеров должна быть выделена отдельная электрическая линия связи. Применяются редко, чаще всего в многомашинных комплексах или глобальных сетях при небольшом количестве компьютеров. Все другие варианты основаны на неполносвязных топологиях, когда для обмена данными между двумя компьютерами может потребоваться промежуточная передача данных через другие узлы сети. 2. Ячеистая топология (рис. 4.1, б) получается из полносвязной путем удаления некоторых возможных связей. В сети непосредственно связываются только те компьютеры, между которыми происходит интенсивный обмен данными, а для обмена данными между компьютерами, не соединенными прямыми связями, используются транзитные передачи через промежуточные узлы. Допускает соединение большого количества компьютеров и характерна, как правило, для глобальных сетей. 80 3. Общая шина (рис. 4.1, в) является очень распространенной топологией для локальных сетей. Компьютеры подключаются к одному коаксиальному кабелю по схеме «монтажного ИЛИ». Передаваемая информация может распространяться в обе стороны. Применение общей шины снижает стоимость проводки, унифицирует подключение различных модулей, обеспечивает возможность почти мгновенного широковещательного обращения ко всем станциям сети. Основными преимуществами такой схемы являются дешевизна и простота разводки кабеля по помещениям. Самый серьезный недостаток общей шины заключается в ее низкой надежности: любой дефект кабеля или какого-нибудь из многочисленных разъемов полностью парализует всю сеть. Другим недостатком общей шины является ее невысокая производительность, так как при таком способе подключения в каждый момент времени только один компьютер может передавать данные в сеть. Поэтому пропускная способность канала связи всегда делится здесь между всеми узлами сети. 4. Топология звезда (рис. 4.1, г): компьютер подключается отдельным кабелем к общему устройству, называемому концентратором, который находится в центре сети. В функции концентратора входит направление передаваемой компьютером информации одному или всем остальным компьютерам сети. Главное преимущество этой топологии перед общей шиной – существенно большая надежность. Любые неприятности с кабелем касаются лишь того компьютера, к которому этот кабель присоединен, и только неисправность концентратора может вывести из строя всю сеть. Кроме того, концентратор может играть роль интеллектуального фильтра информации, поступающей от узлов в сеть, и при необходимости блокировать запрещенные администратором передачи. К недостаткам топологии типа звезда относится более высокая стоимость сетевого оборудования из-за необходимости приобретения концентратора. Кроме того, возможности по наращиванию количества узлов в сети ограничиваются количеством портов концентратора. Иногда имеет смысл строить сеть с использованием нескольких концентраторов, иерархически соединенных между собой связями типа «звезда» (рис. 4.1, д). В настоящее время иерархическая звезда является самым распространенным типом топологии связей как в локальных, так и глобальных сетях. 81 5. Кольцевая топология (рис. 4.1, е): данные передаются по кольцу от одного компьютера к другому, как правило, в одном направлении. Если компьютер распознает данные как «свои», то он копирует их себе во внутренний буфер. В сети с кольцевой топологией необходимо принимать специальные меры, чтобы в случае выхода из строя или отключения какой-либо станции не прервался канал связи между остальными станциями. Кольцо представляет собой очень удобную конфигурацию для организации обратной связи – данные, сделав полный оборот, возвращаются к узлу-источнику. Поэтому этот узел может контролировать процесс доставки данных адресату. Часто это свойство кольца используется для тестирования связности сети и поиска узла, работающего некорректно. Для этого в сеть посылаются специальные тестовые сообщения. 6. Сети со смешанной топологией (рис. 4.2) характерны для крупных сетей. Рис. 4.2. Смешанная топология Эталонная модель взаимодействия открытых систем Для обеспечения обмена информацией между компьютерными сетями или между компьютерами данной КС в 1978 г. Международная организация по стандартизации (МОС) или International Organization of Standardization (ISO) (ISO) разработала многоуровневый комплект протоколов, известный как семиуровневая эталонная модель взаимодействия открытых систем (ЭМВОС) или Open System Interconnection (OSI). 82 Она получила широкое распространение и признание и является основой для анализа существующих сетей, создания новых сетей и стандартов. Одна из основных идей модели OSI – обеспечение относительно простого обмена информацией при использовании изготовленных разными фирмами аппаратных и программных средств, соответствующих стандартам ЭМВОС. Конечные пользователи не должны заботиться о проблемах совместимости, которые все еще свойственны системам, включающим устройства различных производителей. Сеть, удовлетворяющая требованиям ЭМВОС, называется открытой. Многоуровневый подход, реализованный в модели ВОС, оказался очень эффективным. Каждый уровень протоколов включает определенный круг функций и сервиса. Преимущество такого подхода заключается в возможности внесения изменений в один уровень без переработки всей модели в целом. Абонентская система в соответствии с ЭМВОС представляется прикладными процессами и процессами взаимодействия АС. Последние разбиваются на семь функциональных уровней. Функции и процедуры, выполняемые в рамках одного функционального уровня, составляют соответствующий уровневый протокол. Отдельные уровни ЭМВОС удобно рассматривать как группы программ, предназначенных для выполнения конкретных функций. Нумерация уровневых протоколов идет снизу вверх. Функциональные уровни взаимодействуют на строго иерархической основе: каждый уровень обеспечивает сервис для вышестоящего уровня, запрашивая, в свою очередь, сервис у нижестоящего уровня. Схема семиуровневой ЭМВОС представлена на рис. 4.3. 83 АС-1 АС-N 7 Прикладной Управление прикладными процессами Представительный Управление представлением данных 6 Прикладные процессы Уровневые протоколы 5 Сеансовый Управление сеансами 4 Транспортный Управление трафиком 3 Сетевой Управление сетью 2 Канальный Управление информационным каналом 1 Физический Управление физическим каналом Уровни процессов взаимодействия Уровни процессов взаимодействия Прикладные процессы 7 Прикладной 6 Представительный 5 Сеансовый 4 Транспортный 3 Сетевой 2 Канальный 1 Физический Передающая среда (коммуникационная подсеть) Рис. 4.3. Схема семиуровневой ЭМВОС При передаче информации по мере продвижения ее от верхнего (прикладного) уровня к нижнему (физическому) на каждом уровне, кроме физического, к ней добавляется заголовок, содержащий управляющую информацию для соответствующего уровня на принимающем компьютере. Управляющая информация в заголовках и концевиках содержит такие данные, как тип передаваемой информации адреса станции-отправителя и станции-получателя, режим передач (дуплексный, полудуплексный и т. д.), метод кодирования информации, метод контроля ошибок. Приемный компьютер принимает информацию в виде потока битов и собирает ее в кадры. По мере продвижения кадров снизу вверх (от физического уровня к прикладному) протоколы соответствующих уровней удаляют предназначенную для них управляющую информацию, и в конечном итоге прикладная программа получит только исходные данные. 84 Прикладной уровень является границей между процессами сети и прикладными (пользовательскими) процессами. На этом уровне выполняются вычислительные, информационно-поисковые и справочные работы, осуществляется логическое, преобразование данных пользователя. Прикладной уровень занимается непосредственно поддержкой прикладного процесса пользователя и имеет дело с семантикой данных. Прикладная программа, которой необходимо выполнить конкретную задачу, посылает конкретные данные на прикладной уровень, где определяется, как следует обрабатывать запрос прикладной программы. Важной функцией прикладного уровня является реализация протоколов электронной почты. Прикладной уровень содержит несколько так называемых общих элементов прикладного сервиса (ACSE – Application Common Service Elements), представляемых прикладным процессам во всех системах, и специальных элементов прикладного сервиса (SASE Specific Application Service Elements), которые обеспечивают сервис для конкретных прикладных программ. На прикладном уровне реализуются функции управления сетями. По мере усложнения сетей вопрос административного управления им приобретает все большее значение. Это касается прежде всего разработки, совершенствования и стандартизации информационно-управляющих протоколов. Представительный уровень (уровень представления данных) отвечает за физическое отображение (представление) информации, он преобразует информацию к виду, который необходим прикладным процессам пользователей, т. е. занимается синтаксисом данных. Выше этого уровня поля данных имеют явную смысловую форму, а ниже его поля рассматриваются как передаточный груз, и их смысловое значение не влияет на обработку. В основу работы представительного уровня положена единая для всех уровней ЭМВОС система обозначений для описания абстрактного синтаксиса – ASCII. Эта система используется для описаний структуры файлов, а на прикладном уровне применяется при выполнении операций пересылки файлов при работе с виртуальным терминалом. Одна из важнейших проблем, возникающих при управлений сетями – проблема шифрования данных, решается также с помощью ASCII. 85 Сеансовый уровень предназначен для организации и управления сеансами взаимодействия прикладных процессов пользователей. Сеанс создается по запросу процесса пользователя, переданному через прикладной и представительный уровни, и включает: формирование сквозного канала связи между взаимодействующими прикладными процессами, управление обменом информацией между этими процесс сами, расторжение связи между указанными процессами по завершении обмена. Отвечает за режим передачи, т. е. на этом уровне определяется, какая будет передача между двумя прикладными процессами: полудуплексной (процессы будут передавать и принимать данные по очереди) или дуплексной (процессы будут передавать и принимать данные одновременно). На сеансовом уровне также осуществляется управление очередностью передачи данных и их приоритетом, синхронизация отдельных событий. Транспортный уровень в иерархии уровней сети занимает центральное место, он обеспечивает связь между коммуникационной подсетью и верхними тремя уровнями, отделяет пользователя от физических и функциональных аспектов сети. Главная задача транспортного уровня – управление трафиком в сети. При этом выполняются такие функции, как деление длинных сообщений, поступающих от верхних уровней, на пакеты данных (при передаче информации) и формирование первоначальных сообщений из набора пакетов, полученных через канальный и сетевой уровни, исключая их потери или смещение (при приеме информации). Определяет качество сервиса, которое требуется обеспечить посредством сетевого уровня, включая обнаружение и устранение ошибок. Транспортный уровень есть граница, ниже которой пакет данных является единицей информации, управляемой сетью. Выше этой границы в качестве единицы информации рассматривается только сообщение. Этот уровень обеспечивает также сквозную отчетность в сети. Главные функции сетевого уровня состоят в маршрутизации и буферизации, он прокладывает путь от отправителя к получателю через всю сеть. Протоколы верхних уровней выдают запросы на передачу пакетов из одной компьютерной системы в другую, а сетевой уровень обеспечивает практическую реализацию механизма этой передачи. 86 Сетевой и транспортный уровни в некоторой степени дублируют друг друга, особенно в плане функций управления потоком данных и контроля ошибок. Главная причина такого дублирования заключается в существовании двух вариантов связи – с установлением соединения и без установления соединения. Эти варианты связи базируются на разных предположениях относительно надежности сети. В сети с установлением соединения, работающей аналогично обычной телефонной системе, после установления соединения происходит обычный обмен информацией между взаимодействующими абонентами, причем абоненты не обязаны завершать каждое заявление своим именем, именем вызываемого партнера и его адресом, так как считается, что связь надежна и информация доставляется без искажений. В такой сети адрес получателя необходим лишь при установлении соединения, а в самих пакетах он не нужен. Сетевой уровень отвечает за контроль ошибок и управление потоком данных, в его функции входит также сборка пакетов на приемной стороне. В сети без установления соединения сетевой сервис, наоборот, предполагает, что контроль ошибок и управление потоком осуществляется на транспортном уровне. Поскольку пакеты, принадлежащие одному и тому же сообщению, могут передаваться по разным маршрутам и поступать к адресату в разное время, адрес получателя необходимо указывать в каждом пакете. Указывается также порядковый номер пакета в сообщении, так как соблюдение очередности приема пакетов не гарантируется. Канальный уровень определяет правила совместного использования физического уровня узлами связи. Его главные функции – управление доступом к передающей среде (т. е. реализация выбранного метода доступа к общесетевым ресурсам) и управление передачей данных по информационному каналу, включающее генерацию стартового сигнала и организацию начала передачи информации, передачу информации по каналу, проверку получаемой информации и исправление ошибок, отключение канала при его неисправности и восстановление передачи после ремонта, генерацию сигнала окончания передачи и перевод канала в пассивное состояние. В обязанности канального уровня входит также прием пакетов, поступающих с сетевого уровня и подготовка пакетов к передаче, укладывая их в 87 кадры, которые являются контейнерами для пакетов. Принимая информацию с физического уровня в виде потока битов, канальный уровень должен определять, где начинается и где заканчивается передаваемый блок, обнаруживать ошибки передачи. В случае обнаружения ошибки oсyществляется инициализация соответствующих действий по восстановлению информации (характер этих действий определяется реализуемым методом защиты от ошибок). Канальный и физический уровни определяют характеристики физического канала и процедуру передачи по нему кадров. Физический уровень непосредственно связан с каналом передачи данных, обеспечивает физический путь для электрических сигналов, несущих информацию. На этом уровне осуществляется установление, поддержка и расторжение соединения с физическим каналом, определение электрических и функциональных параметров взаимодействий компьютера с коммуникационной подсетью. Физический уровень наименее противоречивый, его функции реализованы только аппаратными средствами, причем на аппаратуру разработаны и вошли в обиход международные стандарты. Для физического уровня определен подробный список рекомендованных к использованию соединений. Он может обеспечивать как асинхронный, так и синхронный режим передачи информации. На физическом уровне определяются такие важнейшие компоненты сети, как тип коаксиального кабеля, витой пары, волоконно-оптического кабеля, применяемых в ЛКС. На этом же уровне определяется схема кодирования для представления двоичных значений при передаче по каналу связи и обеспечения синхронизации сигналов (синхронизации работы генераторов тактовых импульсов передающей и приемной стороны). 6. Семейство протоколов TCP/IP Термин «TCP/IP» обычно обозначает все, что связано с протоколами TCP и IP. Иногда этот термин употребляют как «стек протоколов TCP/IP». Он охватывает целое семейство протоколов, прикладные программы и даже саму сеть. – это технология межсетевого взаимодействия. Глобальная сеть, которая использует технологию TCP/IP, называется Internet. 88 Стек TCP/IP был изначально разработан для сети Advanced Research Project Agency Network (ARPANET). ARPANET рассматривалась как экспериментальная распределенная сеть с коммутацией пакетов. Эксперимент по применению TCP/IP в этой сети закончился положительно. В результате стек протоколов был принят в промышленную эксплуатацию, а в дальнейшем расширялся и совершенствовался в течение нескольких лет. Позже стек адаптировали для использования в локальных сетях. В начале 1980 г. протокол стал основной частью операционной системы Berkley UNIX v4.2. В том же году появилась объединенная сеть Internet. Переход к технологии Internet был завершен в 1983 г., когда Министерство обороны США решило, что все компьютеры, присоединенные к глобальной сети, будут использовать стек протоколов TCP/IP. Архитектура протоколов TCP/IP предназначена для объединенной сети, состоящей из соединенных друг с другом шлюзами отдельных разнородных пакетных подсетей, к которым подключаются разнородные машины. Каждая из подсетей работает в соответствии со своими специфическими требованиями и имеет свою природу средств связи. Однако предполагается, что каждая подсеть может принять пакет информации (данные с соответствующим сетевым заголовком) и доставить его по указанному адресу в этой конкретной подсети. Не требуется, чтобы подсеть гарантировала обязательную доставку пакетов и имела надежный сквозной протокол. Таким образом, две машины, подключенные к одной подсети, могут обмениваться пакетами. Основные преимущества стека протоколов TCP/IP: – независимость от сетевой технологии; TCP/IP не зависит от оборудования, так как он только определяет элемент передачи – дейтаграмму – и описывает способ ее движения по сети; – всеобщая связанность; стек позволяет любой паре компьютеров, которые его поддерживают, взаимодействовать друг с другом. Каждому компьютеру назначается логический адрес, а каждая передаваемая дейтаграмма содержит логические адреса отправителя и получателя. Промежуточные маршрутизаторы используют адрес получателя для принятия решения о маршрутизации; – подтверждения – протоколы стека TCP/IP обеспечивают подтвер- 89 ждения правильности прохождения информации при обмене между отправителем и получателем. – стандартные прикладные протоколы. Протоколы TCP/IP включают в свой состав средства поддержки основных приложений, таких как электронная почта, передача файлов, удаленный доступ и т. д. IP (Internet Protocol) является базовым протоколом всего стека TCP/IP. Он отвечает за передачу информации по сети. Информация передается блоками, которые называются дейтаграммами. IP является протоколом сетевого уровня. При этом для каждой среды передачи данных, например Ethernet, определен способ инкапсуляции IPдейтаграмм. Маршрутизаторы пересылают инкапсулированные дейтаграммы по различным сетям, образуя объединение IP-сетей, по которому каждая рабочая станция может поддерживать связь по протоколу IP с любой другой рабочей станцией. Услуги, предлагаемые протоколом IP, сводятся к негарантированной доставке дейтаграмм. Протокол IP не исключает потерь дейтаграмм, доставки дейтаграмм с ошибками, а также дублирования и нарушения порядка следования дейтаграмм, заданного при их отправлении. Протокол IP выполняет фрагментацию и сборку дейтаграмм, если принятый размер кадров в данной сети (или участке распределенной сети) отличается от размера исходных дейтаграмм. В протоколе IP отсутствуют механизмы повышения достоверности передачи данных, управления протоколом и синхронизации, которые обычно предоставляются в протоколах более высокого уровня. Протокол IP получает информацию для передачи от протоколов, расположенных по сравнению с ним на более высоком уровне. К этим протоколам, прежде всего, относятся протоколы TCP и UDP. После получения информации от них протокол IP передает дейтаграммы через распределенную сеть, используя сервисы локальных сетей. IP-адрес – это 4-байтный числовой адрес. IP-адрес узла идентифицирует точку доступа модуля IP к сетевому интерфейсу. Менеджер сети присваивает IP-адреса машинам в соответствии с тем, к каким IP-сетям они подключены. Старшие биты IP-адреса определяют номер IP-сети. Оставшаяся часть IP-адреса – номер узла (хостномер). Некоторые IP-адреса являются выделенными и трактуются по-особому. 90 Для ссылок на всю IP-сеть в целом используется IP-адрес с нулевым номером узла. Особый смысл имеет IP-адрес, первый октет которого равен 127. Он используется для тестирования программ и взаимодействия процессов в пределах одной машины. Когда программа посылает данные по IPадресу 127.0.0.1, то образуется как бы «петля». Данные не передаются по сети, а возвращаются модулям верхнего уровня как только что принятые. Поэтому в IP-сети запрещается присваивать машинам IP-адреса, начинающиеся со 127. Адрес 255.255.255.255 – широковещательный канал для всей сети. Прежде чем вы начнете использовать сеть с TCP/IP, вы должны получить один или несколько официальных сетевых номеров. Выделением номеров (как и многими другими вопросами) занимается DDN Network Выделение номеров производится бесплатно и занимает около недели. Вы можете получить сетевой номер вне зависимости от того, для чего предназначена ваша сеть. Даже если ваша сеть не имеет связи с объединенной сетью Internet, получение уникального номера желательно, так как в этом случае есть гарантия, что в будущем при включении в Internet или при подключении к сети другой организации не возникнет конфликта адресов. Протокол TCP предоставляет транспортные услуги и используется в тех случаях, когда требуется надежная доставка сообщений. Он освобождает прикладные процессы от необходимости использовать таймауты и повторные передачи для обеспечения надежности. Наиболее типичными прикладными процессами, использующими TCP, являются FTP (File Transfer Protocol – протокол передачи файлов) и TELNET. Протокол TCP разбивает поток байт на пакеты; он не сохраняет границ между записями. Например, если один прикладной процесс делает 5 записей в TCP-порт, то прикладной процесс на другом конце виртуального канала может выполнить 10 чтений для того, чтобы получить все данные. Но этот же процесс может получить все данные сразу, сделав только одну операцию чтения. Не существует зависимости между числом и размером записываемых сообщений с одной стороны и числом и размером считываемых сообщений с другой стороны. 91 Протокол TCP требует, чтобы все отправленные данные были подтверждены принявшей их стороной. Он использует таймауты и повторные передачи для обеспечения надежной доставки. Отправителю разрешается передавать некоторое количество данных, не дожидаясь подтверждения приема ранее отправленных данных. Таким образом, между отправленными и подтвержденными данными существует окно уже отправленных, но еще неподтвержденных данных. Количество байт, которые можно передавать без подтверждения, называется размером окна. Как правило, размер окна устанавливается в стартовых файлах сетевого программного обеспечения. Так как TCP-канал является дуплексным, то подтверждения для данных, идущих в одном направлении, могут передаваться вместе с данными, идущими в противоположном направлении. Приемники на обеих сторонах виртуального канала выполняют управление потоком передаваемых данных для того, чтобы не допускать переполнения буферов. 7. Глобальные сети Глобальные сети (Wide Area Networks, WAN, территориальные компьютерные сети) служат для того, чтобы предоставлять свои сервисы большому количеству конечных абонентов, разбросанных по большой территории – в пределах области, региона, страны, континента или всего земного шара. Ввиду большой протяженности каналов связи построение глобальной сети требует очень больших затрат, в которые входит стоимость кабелей и работ по их прокладке, затраты на коммутационное оборудование и промежуточную усилительную аппаратуру, обеспечивающую необходимую полосу пропускания канала, а также эксплуатационные затраты на постоянное поддержание в работоспособном состоянии разбросанной по большой территории аппаратуры сети. Типичными абонентами глобальной компьютерной сети являются локальные сети предприятий, расположенные в разных городах и странах, которым нужно обмениваться данными между собой. Услугами глобальных сетей пользуются также и отдельные компьютеры. Крупные компьютеры класса мэйнфреймов обычно обеспечивают доступ к корпоративным данным, в то время как персональные компьютеры используются для доступа к корпоративным данным и публичным данным Internet. 92 Глобальные сети обычно создаются крупными телекоммуникационными компаниями для оказания платных услуг абонентам. Такие сети называют публичными, или общественными. Оператор сети (network operator) – это компания, которая поддерживает нормальную работу сети. Поставщик услуг, провайдер (service provider) – компания, которая оказывает платные услуги абонентам сети. Владелец, оператор и поставщик услуг могут объединяться в одну компанию, а могут представлять и разные компании. 8. Компьютерные вирусы. Антивирусные программы Вирус – программа, способная создавать свои копии (необязательно совпадающие с оригиналом) и внедрять их в файлы, системные области компьютера, компьютерных сетей, а также осуществлять иные деструктивные действия. При этом копии сохраняют способность дальнейшего распространения. Вирусы попадают на жесткий диск компьютера или его оперативную память (загрузочные вирусы) через носимые хранилища данных – гибкие дискеты, CD(DVD)-диски, карты флэш-памяти, но больше всего вирусов приходит из Всемирной паутины. Вирусы пишут как энтузиасты-одиночки, так и целые организации (группы хакеров). Они могут преследовать различные цели, но результат почти всегда одинаков – потерянные (испорченные, и даже украденные) данные. В некоторых случаях заражение компьютера вирусом приводит к огромным денежным убыткам. И хотя вирусописание и вирусораспространение во многих странах считается преступлением, это не спасает ситуацию в целом и с каждым годом вредоносных программ становится все больше и больше. Чаще всего вирусы поражают загрузочный сектор диска (как жесткого, так и гибкого) и исполняемые файлы. Классифицировать вирусы можно по следующим признакам: – по среде обитания; – по способу заражения среды обитания; – по деструктивным возможностям; – по особенностям алгоритма вируса. По среде обитания вирусы можно разделить на группы: 93 – файловые вирусы, которые внедряются в выполняемые файлы – загрузочные вирусы, которые внедряются в загрузочный сектор диска или в сектор, содержащий системный загрузчик винчестера; – макровирусы, которые внедряются в системы, использующие при работе так называемые макросы (например, в программах MS Word, MS – сетевые вирусы – распространяются по различным сетям, т. е. при передаче данных с одного компьютера на другой, соединенных сетью. Существуют и сочетания – например, файлово-загрузочные вирусы, заражающие как файлы, так и загрузочные сектора. Такие вирусы, как правило, имеют довольно сложный алгоритм работы, часто применяют оригинальные методы проникновения в систему, и их труднее обнаружить. По способам заражения вирусы бывают: – резидентные; – нерезидентные. Резидентный вирус при инфицировании компьютера оставляет в оперативной памяти свою резидентную часть, которая затем перехватывает обращение операционной системы к объектам заражения и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения или перезагрузки компьютера. Нерезидентные вирусы не заражают память компьютера и являются активными лишь ограниченное время. По деструктивным возможностям вирусы можно разделить на группы: – безвредные, т. е. никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения); – неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и прочими эффектами; – опасные – вирусы, которые могут привести к серьезным сбоям в работе; – очень опасные, могущие привести к потере программ, уничтожить данные, стереть необходимую для работы компьютера информацию, записанную в системных областях памяти и т. д. 94 По особенностям алгоритма можно выделить следующие основные группы вирусов: – компаньон-вирусы (companion) – алгоритм работы этих вирусов состоит в том, что они создают для exe-файлов файлы-спутники, имеющие то же самое имя, но с расширением com, которые при выполнении исходной программы запускаются первыми, а затем передают управление исходной выполняемой программе; – вирусы-«черви» (worm) – вариант компаньон-вирусов. «Черви» не связывают свои копии с какими-то файлами. Они создают свои копии на дисках и в подкаталогах дисков, никаким образом не изменяя других файлов и не используя СОМ-ЕХЕ прием; – сетевые черви – вирусы, которые распространяются в компьютерной сети и, так же, как и компаньон-вирусы не изменяют файлы или сектора на дисках. Они проникают в память компьютера из компьютерной сети, вычисляют сетевые адреса других компьютеров и рассылают по этим адресам свои копии. Такие вирусы иногда создают рабочие файлы на дисках системы, но могут вообще не обращаться к ресурсам компьютера (за исключением оперативной памяти). Сетевых вирусов известно всего несколько штук. Например, XMasTree, Вирус Морриса (Internet Worm). – «паразитические» – все вирусы, которые при распространении своих копий обязательно изменяют содержимое дисковых секторов или файлов. В эту группу относятся все вирусы, которые не являются «червями» или «компаньон-вирусами»; – «студенческие» – самые простые и легко обнаруживаемые вирусы, содержащие большое число ошибок; – «стелс»-вирусы (вирусы-невидимки) представляют собой весьма совершенные программы, которые перехватывают обращения операционной системы к пораженным файлам или секторам дисков и «подставляют» вместо себя незараженные участки информации. Кроме того, такие вирусы при обращении к файлам используют достаточно оригинальные алгоритмы, позволяющие «обманывать» резидентные антивирусные программы-фильтры; – «полиморфик»-вирусы (самошифрующиеся, или вирусы-призраки) – достаточно труднообнаруживаемые вирусы, не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного 95 и того же полиморфик-вируса не будут иметь ни одного совпадения. Это достигается шифрованием основного тела вируса и модификациями программы-расшифровщика; – макровирусы – вирусы этого семейства используют возможности макроязыков (таких как Word Basic), встроенных в системы обработки данных (текстовые редакторы, электронные таблицы и т. д.). В настоящее время широко распространены макровирусы, заражающие документы текстового редактора Microsoft Word и электронные таблицы Microsoft Excel; – троянские программы (квазивирусы) не способны к самораспространению, но очень опасны, так как, маскируясь под полезную программу, разрушают загрузочный сектор и файловую систему дисков. На сегодняшний день сетевые вирусы не представляют никакой опасности, так как они нежизнеспособны в современных сетях, как глобальных, так и локальных. Однако это не мешает обычным вирусам и макровирусам поражать компьютерные сети (локальные и глобальные). Делают они это, в отличие от сетевых вирусов, не используя сетевые протоколы и «дыры» в программном обеспечении. Заражению подвергаются файлы на «общих» дисках на серверах и рабочих местах, через которые эти вирусы перебираются и на другие рабочие места, а часто и передаются в Internet. Многие разновидности вирусов устроены так, что при запуске зараженной программы вирус остается в памяти компьютера и время от времени заражает программы и выполняет нежелательные действия на компьютере. Пока на компьютере заражено относительно мало программ, наличие вируса может быть практически незаметным. К числу наиболее характерных признаков заражения компьютера вирусами относятся следующие: – некоторые ранее исполнявшиеся программы перестают запускаться или внезапно останавливаются в процессе работы; – увеличивается длина исполняемых файлов; – быстро сокращается объём свободной дисковой памяти и оперативной памяти; – на носителях появляются дополнительные сбойные кластеры, в которых вирусы прячут свои фрагменты или части повреждённых файлов; – замедляется работа некоторых программ; – в текстовых файлах появляются бессмысленные фрагменты; 96 – на экране появляются странные сообщения, которые раньше не наблюдались; – появляются не существовавшие ранее "странные" файлы, особенно в каталоге Windows или корневом; – операционная система перестаёт загружаться с винчестера; – появляются сообщения об отсутствии винчестера; – данные на носителях портятся; – снижается скорость работы в Интернете (вирусы могут передавать информацию по сети); – поступают жалобы от друзей (или провайдера) о том, что к ним приходят непонятные письма-вирусы любят рассылать себя по почте. Для защиты информации от вирусов используются общие и программные средства. К общим средствам, помогающим предотвратить заражение и его разрушительные последствия, относят: – резервное копирование информации (создание копий файлов и системных областей жестких дисков); – избежание пользования случайными и неизвестными программами (чаще всего вирусы распространяются вместе с компьютерными программами); – ограничение доступа к информации, в частности физическая защита дискеты во время копирования файлов с нее. К программным средствам защиты относят разные антивирусные программы (антивирусы). 97 РАЗДЕЛ 5. ПРОГРАММНЫЕ СРЕДСТВА РЕАЛИЗАЦИИ ИНФОРМАЦИОННЫХ ПРОЦЕССОВ 1. 2. 3. 4. 5. 6. 7. 8. 9. План Программное обеспечение ПК. Операционные системы. Операционная система Windows. Прикладное программное обеспечение. Текстовые процессоры. Электронные таблицы. Базы данных. Программы создания презентаций. Технологии обработки графической информации. 1. Программное обеспечение ПК Программное обеспечение (ПО) – это совокупность программ, предназначенная для решения задач на ПК, а состав программного обеспечения ПК называют программной конфигурацией. Программное обеспечение можно условно разделить на три категории. 1. Системное ПО – это совокупность программ для обеспечения работы компьютера. 2. Прикладное ПО – программное обеспечение для выполнения необходимых работ на ПК: редактирование текстовых документов, создание рисунков или картинок, обработка информационных массивов и т. д. 3. Инструментальное ПО (системы программирования), обеспечивающее разработку новых программ для компьютера на языке программирования. Системное ПО предназначено для управления работой вычислительной системы: – операционная система загружается в ОЗУ при включении компьютера; – оболочка операционной системы обеспечивает более удобный и наглядный способ общения с компьютером; – драйверы предназначены для взаимодействия с периферийными устройствами; 98 – утилиты – служебные программы, представляющие пользователю ряд дополнительных услуг. Назначение служебных программ (утилит) состоит в автоматизации работ по проверке и настройке компьютерной системы, а также для улучшения функций системных программ. Служебные программы входят в состав операционной системой, а также имеют автономное функционирование. Служебное программное обеспечение включает: – диспетчеры файлов (файловые менеджеры), с помощью которых выполняются операции по обслуживанию файловой структуры: копирование, перемещение, переименование файлов, создание папок, уничтожение объектов, поиск файлов; – средства сжатия данных (архиваторы), предназначенные для создания архивов. Так как архивные файлы имеют повышенную плотность записи информации, то они эффективнее используют носители информации; – средства диагностики, служат для автоматизации процессов диагностики программного и аппаратного обеспечения. Их используют для исправления ошибок и для оптимизации работы компьютерной системы; – программы инсталляции (установки), предназначенные для модификации программной конфигурации и контролирующие состояние окружающей программной среды; – средства коммуникации, позволяющие устанавливать соединение с удаленными компьютерами, передают сообщения электронной почты, пересылают факсимильные сообщения и т. п.; – средства просмотра и воспроизведения текстовых файлов, звука или видео; – средства компьютерной безопасности. Это средства пассивной и активной защиты данных от повреждения, несанкционированного доступа, просмотра и изменения данных. Средства пассивной защиты – служебные программы, предназначенные для резервного копирования. Средства активной защиты применяют антивирусное программное обеспечение. Для защиты данных от несанкционированного доступа, их просмотра и изменения используют специальные системы, базирующиеся на криптографии. Прикладное ПО – это комплекс программ для решения задач определённого класса в конкретной предметной области. Прикладное ПО работает при наличии системного ПО. Прикладными программами (приложениями) 99 являются: текстовые процессоры, табличные процессоры, базы данных, интегрированные пакеты, системы иллюстративной и деловой графики, экспертные системы, обучающие программы, программы математических расчетов, моделирования и анализа, игры, коммуникационные программы. Инструментальное ПО (или системы программирования) – это совокупность программ для разработки, отладки и внедрения программных продуктов в разных областях, в том числе и для создания системного программного обеспечения. Системы программирования обычно содержат: трансляторы, среду разработки программ, библиотеки справочных программ (функций, процедур), отладчики, редакторы связей и др. 2. Операционные системы Операционная система (ОС) представляет собой набор программ, предназначенных для управления компьютером, хранения информации и организации работы всех подключенных к нему устройств. Основная функция всех операционных систем заключается в обеспечении нескольких видов интерфейса: – интерфейса между пользователем и программно-аппаратными средствами компьютера (интерфейс пользователя); – интерфейса между программным и аппаратным обеспечением (аппаратно-программный интерфейс); – интерфейса между разными видами программного обеспечения (программный интерфейс). К современным операционным системам предъявляются следующие требования: – совместимость – ОС должна включать средства для выполнения приложений, подготовленных для других ОС; – переносимость – обеспечение возможности переноса ОС с одной аппаратной платформы на другую; – надежность и отказоустойчивость – предполагает защиту ОС от внутренних и внешних ошибок, сбоев и отказов; – безопасность – ОС должна содержать средства защиты ресурсов одних пользователей от других; – расширяемость – ОС должна обеспечивать удобство внесения последующих изменений и дополнений; 100 – производительность – система должна обладать достаточным быстродействием. В состав ОС входят следующие модули: – программа начальной загрузки (загрузчик) – загружает основную часть ОС в память. Программа начальной загрузки всегда размещается на внешнем носителе (винчестер, дискета); – базовый модуль (ядро ОС) – управляет работой программ и файловой системой, обеспечивает доступ к ней и обмен файлами между периферийными устройствами; – командный процессор – исполняет команды пользователя, поступающие, прежде всего, через клавиатуру; – драйверы периферийных устройств – программно обеспечивают согласованность работы этих устройств с процессором (каждое периферийное устройство обрабатывает информацию по-разному и в различном темпе); – дополнительные сервисные программы (утилиты) – делают удобным процесс общения пользователя с компьютером. Состав разных ОС может отличаться друг от друга. Программы для выполнения и, следовательно, файлы операционной системы должны находиться в оперативной памяти (ОЗУ). Однако сразу после включения компьютера в ОЗУ нет никаких программ. Выход из этой ситуации состоит в последовательной, поэтапной загрузке операционный системы в оперативную память. Первый этап загрузки ОС. В ПЗУ компьютера содержатся программы тестирования блоков компьютера и первого этапа загрузки операционной системы – BIOS (базовая система ввода-вывода). Они начинают выполняться с первым импульсом тока при включении компьютера. На этом этапе процессор обращается к диску и проверяет наличие на определенном месте программы-загрузчика. Если эта программа обнаружена, то она считывается в ОЗУ, и ей передается управление. Второй этап загрузки ОС. Программа-загрузчик в свою очередь ищет на диске базовый модуль операционной системы, переписывает его в оперативную память и передает ему управление. 101 Третий этап загрузки ОС. В состав базового модуля входит основной загрузчик, который ищет остальные модули ОС и считывает их в ОЗУ. После окончания загрузки ОС управление передается командному процессору, и на экране появляется приглашение системы к вводу команд пользователя. В оперативной памяти во время работы компьютера обязательно должны находиться базовый модуль операционной системы и программы, обеспечивающие ввод и выполнение команд пользователя. Классификация операционных систем Операционные системы различаются особенностями реализации алгоритмов управления ресурсами компьютера, областями использования. В зависимости от алгоритма управления процессором, операционные системы делятся на несколько типов: однозадачные и многозадачные; однопользовательские и многопользовательские; однопроцессорные и многопроцессорные системы; локальные и сетевые. По числу одновременно выполняемых задач операционные системы делятся на два класса: 1) однозадачные (MS DOS); 2) многозадачные (OS/2, Unix, Windows). В однозадачных системах используются средства управления периферийными устройствами, средства управления файлами, средства общения с пользователями. Многозадачные ОС используют все средства, которые характерны для однозадачных, и, кроме того, управляют разделением совместно используемых ресурсов: процессор, ОЗУ, файлы и внешние устройства. В зависимости от областей использования многозадачные ОС подразделяются на три типа: 1) системы пакетной обработки (ОС ЕС); 2) системы с разделением времени (Unix, Linux, Windows); 3) системы реального времени (RT11). Системы пакетной обработки предназначены для решения задач, которые не требуют быстрого получения результатов. 102 Главной целью ОС пакетной обработки является максимальная пропускная способность или решение максимального числа задач в единицу времени. Эти системы обеспечивают высокую производительность при обработке больших объемов информации, но снижают эффективность работы пользователя в интерактивном режиме. В системах с разделением времени для выполнения каждой задачи выделяется небольшой промежуток времени, и ни одна задача не занимает процессор надолго. Если этот промежуток времени выбран минимальным, то создается видимость одновременного выполнения нескольких задач. Эти системы обладают меньшей пропускной способностью, но обеспечивают высокую эффективность работы пользователя в интерактивном режиме. Системы реального времени применяются для управления технологическим процессом или техническим объектом, например, летательным объектом, станком и т. д. По числу одновременно работающих пользователей ОС разделяются на 2 типа: 1) однопользовательские (MS DOS); 2) многопользовательские (Unix, Linux, Windows). В многопользовательских ОС каждый пользователь настраивает для себя интерфейс пользователя, т. е. может создать собственные наборы ярлыков, группы программ, задать индивидуальную цветовую схему, переместить в удобное место панель задач и добавить в меню Пуск новые пункты. В многопользовательских ОС существуют средства защиты информации каждого пользователя от несанкционированного доступа других пользователей. Одним из важнейших признаков классификации ЭВМ является разделение их на локальные и сетевые. Локальные ОС применяются на автономных ПК или ПК, которые используются в компьютерных сетях в качестве клиента. В состав локальных ОС входит клиентская часть ПО для доступа к удаленным ресурсам и услугам. Сетевые ОС предназначены для управления ресурсами ПК, включенных в сеть с целью совместного использования ресурсов. Они представляют собой мощные средства разграничения доступа 103 к информации, ее целостности и другие возможности использования сетевых ресурсов. Файловые системы Файловые системы предназначены для хранения данных на дисках и обеспечения доступа к ним. Основные функции файловой системы: – работа с файлами (создание, удаление, переименование файлов и т. д.); – работа с данными, которые хранятся в файлах (запись, чтение, поиск данных и т. д.). Файл – это последовательность произвольного числа байтов, обладающая уникальным собственным именем или поименованная область на машинных носителях. Файлы используются для организации и хранения данных на машинных носителях. Структурирование множества файлов на машинных носителях осуществляется с помощью каталогов. Каталог – специальное место на диске, в котором хранятся атрибуты (параметры и реквизиты) файлов. На самом деле, каталог является файлом специального вида. Каждый диск имеет один корневой каталог, который создается операционной системой. Остальные каталоги создаются либо пользователем, либо могут быть автоматически созданы программами. Каталог может включать множество подкаталогов, в результате чего на дисках образуются разветвленные файловые структуры. Организация файлов в виде древовидной структуры называется файловой системой. Принцип организации файловой системы – табличный. Данные о том, в каком месте на диске записан файл, хранятся в таблице размещения файлов (File Allocation Table – FAT). Эта таблица размещается в начале диска (тома). В целях защиты тома на нем хранятся две копии FAT, если повредится первая копия FAT, то для восстановления тома можно воспользоваться второй копией. По принципу построения FAT похожа на оглавление книги, так как операционная система использует ее для поиска файла и определения кластеров, которые этот файл занимает на жестком диске. Наименьшей физической единицей хранения данных является сектор. Размер сектора – 512 байт. Поскольку размер FAT-таблицы ограничен, то для дисков, размер которых превышает 32 Мбайт, обеспечить адресацию к каждому отдельному сектору не представляется возможным. 104 В связи с этим группы секторов условно объединяются в кластеры. Кластер является наименьшей единицей адресации к данным. Размер кластера, в отличие от размера сектора, не фиксирован и зависит от емкости диска. FAT32 обеспечивает поддержку дисков размером до 2 Тбайт и более эффективное расходование дискового пространства. FAT32 использует более мелкие кластеры, что позволяет повысить эффективность использования дискового пространства. В Windows XP применялись FAT32 и NTFS. Более перспективным направлением в развитии файловых систем стал переход к NTFS (New Technology File System – файловая система новой технологии) с длинными именами файлов и надежной системой безопасности. Объем раздела NTFS не ограничен. В NTFS минимизируется объем дискового пространства, теряемый вследствие записи небольших файлов в крупные кластеры. Кроме того, NTFS позволяет экономить место на диске, сжимая сам диск, отдельные папки и файлы. По способам именования файлов различают «короткое» и «длинное» имя. Согласно соглашению, принятому в MS-DOS, способом именования файлов на компьютерах IBM PC было соглашение 8.3, т. е. имя файла состоит из двух частей: собственно имени и расширения имени. На имя файла отводится 8 символов, а на его расширение – 3 символа. Имя от расширения отделяется точкой. Как имя, так и расширение могут включать только алфавитно-цифровые символы латинского алфавита. Имена файлов, записанные в соответствии с соглашением 8.3, считаются «короткими». С появлением операционной системы Windows 95 было введено понятие «длинного» имени. Такое имя может содержать до 256 символов. Этого вполне достаточно для создания содержательных имен файлов. «Длинное» имя может содержать любые символы, кроме девяти специальных: В имени разрешается использовать пробелы и несколько точек. Имя файла заканчивается расширением. Расширение используется для классификации файлов по типу. 105 Уникальность имени файла обеспечивается тем, что полным именем файла считается собственное имя файла вместе с путем доступа к нему. Путь доступа к файлу начинается с имени устройства и включает все имена каталогов (папок), через которые проходит. В качестве разделителя используется символ «\» (обратный слеш – обратная косая черта). Например: D:\Documents and Settings\ТВА\Мои документы\lessons\robot.txt 3. Операционная система Windows Операционная система Windows – это современная многозадачная многопользовательская ОС с графическим интерфейсом пользователя. Для общения с пользователем в Windows используется графический интерфейс, который отображает информацию на экране в виде различных рисунков. В Windows широко используется понятие объекта. Объектами называются файлы и папки, а также некоторые физические устройства, например, диски и принтеры. На экране монитора все объекты представляются значками. Управление системой осуществляется с помощью различных операций над значками с помощью компьютерной мыши или клавиатуры. Но можно указать необходимое действие, выбрав его в списке. Списки возможных действий называются меню. После включения компьютера происходит его тестирование, затем он автоматически начинает загрузку установленной на жесткий диск операционной системы. По окончании загрузки системы на экране появится изображение Рабочего стола Windows, внешний вид которого зависит от настроек системы. На рабочем столе могут быть расположены различные объекты: программы, папки с документами (текстами, рисунками, таблицами), ярлыки программ или папок. Например, значок Мой компьютер предназначен для работы с дисками и файлами компьютера, а значок Корзина позволит увидеть удаленные файлы и восстанавливать их, в случае если они были удалены ошибочно. Ярлык – это специальный значок, который располагается в удобно-доступном месте и служит для открытия соответствующего ему файла. Все 106 операции, осуществляемые с ярлыком, никак не отражаются на связанном с ним файле. На рабочем столе можно хранить и обычные файлы (документы) и папки с файлами. Внешне ярлыки от обычных значков файлов отличаются наличием у них маленькой стрелки в левом нижнем углу, хотя это необязательно. В нижней части рабочего стола расположена Панель задач, назначение которой – отображение активных программ и быстрое переключение между ними. Слева имеется кнопка Пуск, назначение которой – запуск программ и настройка компьютера. Правее кнопки Пуск расположена панель «Быстрый запуск» – для запуска часто используемых программ. Можно добавлять в эту панель любые значки для запуска программ. В правой части панели задач располагаются Языковая панель и Панель индикации, показывающие текущий язык ввода с клавиатуры, текущее время и значки различных запущенных программ. Кнопка Пуск открывает меню Главное меню Windows. В меню располагаются команды, предназначены для запуска различных программ. Команды в верхней части позволяют запустить важные и часто используемые программы. Выбрав команду Все программы, можно запустить любую программу. Работа в системе Windows представляет собой запуск различных программ с помощью кнопки Пуск или с помощью значков на рабочем столе. 4. Прикладное программное обеспечение Прикладная программа – это программа, способствующая решению какой-либо задачи в проблемной области. Например, там, где на компьютер возложена задача контроля за финансовой деятельностью какой-либо фирмы, прикладной будет программа подготовки платежных ведомостей. Прикладные программы могут носить и общий характер, например, обеспечивать составление и редактирование документов и т. п. В противоположность этому, операционная система или инструментальное ПО не вносят прямого вклада в удовлетворение конечных потребностей пользователя. Прикладные программы могут использоваться либо автономно, т. е. решать 107 поставленную задачу без помощи других программ, либо в составе программных комплексов или пакетов. Прикладные программы предназначены для того, чтобы обеспечить применение вычислительной техники в различных сферах деятельности человека. Помимо создания новых программных продуктов много усилий тратится на совершенствование и модернизацию популярных систем. Классификация программных средств (ПС), составляющих прикладное программное обеспечение (ППО), показана на рис. 5.1. Здесь представлены не все виды прикладных программ, но данная схема полезна для создания общего представления о ППО. ППО ПС общего назначения ПС специального назначения ПС профессионального уровня АРМ Текстовые редакторы САПР Авторские системы Издательские системы АСНИ Экспертные системы Графические системы СУБД Интегрированные системы Гипертекстовые системы Системы мультимедиа АСУ АСУП ТП Педагогические комплексы Системы телекоммуникаций Рис. 5.1. Классификация прикладного программного обеспечения ПО общего назначения Текстовые редакторы и издательские системы являются самыми популярными программами для работы с текстами. Текстовыми редакторами называют программы для ввода, обработки, хранения и печатания текстовой информации в удобном для пользователя виде. Компьютерная графика включает в себя ввод, обработку и вывод графической информации средствами компьютерной техники – с помощью 108 сканера или видеокамеры. Графические редакторы позволяют создавать анимационные ролики, пользоваться стандартными библиотеками изображений и их редактированием, наборами стандартных шрифтов, копированием и перемещением фрагментов по страницам экрана и др. Для выполнения расчетов и дальнейшей обработки числовой информации существуют специальные программы (приложения) – электронные таблицы, представляющие результаты работы в виде таблиц, где одна часть полей занята исходными данными, а другая – результатами вычислений и графического анализа. Характерными для них является автоматизация расчетов большого объема перерабатываемой информации при многократных изменениях исходных данных. Одним из наиболее перспективных направлений развития вычислительной техники является создание специальных аппаратных средств для хранения гигантских массивов информационных данных и последующей нечисловой обработки их – поиска и сортировки. Для этого используют системы управления базами данных. СУБД – это набор средств программного обеспечения, необходимых для создания, обработки и вывода записей баз данных. Интегрированные системы содержат в качестве элементов текстовые и графические редакторы, электронные таблицы и систему управления базами данных. Программные системы, входящие в Microsoft Office, являются независимыми, более того, они поддерживают функции других систем. Например, текстовый редактор Word обладает возможностью манипулировать с электронными таблицами и базами данных, а в электронной таблице Excel встроен мощный текстовый редактор. Для обмена данными из различных программных систем, в них предусматривают импорт/экспорт обмена с перекодировкой форматов представления данных. Программные средства специального назначения используются специалистами в некоторой предметной области. Такие программы называют еще авторскими инструментальными системами, представляющими интегрированную среду с заданной интерфейсной оболочкой, которую пользователь может наполнить информационным содержанием своей предметной области. 109 Экспертная система – это программа (приложение), которая ведет себя подобно эксперту в некоторой узкой прикладной области. Экспертные системы призваны решать задачи с неопределенностью и неполными исходными данными, требующие для своего решения экспертных знаний. Принципиальным отличием экспертных систем от других программ является их изменчивость в процессе самообучения. Экспертные системы являются основой искусственного интеллекта. Они получили широкое распространение в науке (классификация животных и растений по видам, химический анализ), в медицине (постановка диагноза, анализ электрокардиограмм, определение методов лечения), в технике (поиск неисправностей в технических устройствах, слежение за полетом космических кораблей и спутников), в политологии и социологии, криминалистике, лингвистике и т. д. Программные средства профессионального уровня Каждая прикладная программа этой группы ориентируется на достаточно узкую предметную область, но проникает в нее максимально глубоко. Например, АСНИ – автоматизированные системы научных исследований в определенной области науки или САПР – системы автоматизированного проектирования, работающие в узкой области, АСУ – автоматизированные системы управления. Предложенная выше классификация ПС является, конечно же, условной, так как в ней имеются пересечения. Так, каждую конкретную экспертную систему вполне можно отнести к ППО профессионального уровня; принцип гипертекста реализован в ряде авторских систем и т. д. 5. Текстовые процессоры Текстовым процессором называют вид прикладной компьютерной программы, предназначенной для создания любого вида печатной информации. Впервые название «текстовые процессоры» появилось для машин индивидуального и офисного использования для набора и печати текстов, состоящих из клавиатуры, встроенного компьютера для простейшего редактирования текста и электрического печатного устройства. Позже наименование «текстовый процессор» стало использоваться для компьютерных программ, предназначенных для аналогичного использования. 110 В отличие от текстовых редакторов, они имеют больше возможностей для форматирования текста, внедрения в него графики, формул, таблиц и других объектов и могут быть использованы не только для набора текстов, но и для создания различного рода документов. Примером текстового процессора может служить Microsoft Word. 6. Электронные таблицы Электронная таблица – компьютерная программа, позволяющая проводить вычисления с данными, представленными в виде двумерных массивов, имитирующих бумажные таблицы. Некоторые программы организуют данные в «листы», предлагая, таким образом, третье измерение. Электронные таблицы (ЭТ) представляют собой удобный инструмент для автоматизации вычислений. Многие расчёты, в частности в области бухгалтерского учёта, выполняются в табличной форме: балансы, расчётные ведомости, сметы расходов и т. п. Кроме того, решение численными методами целого ряда математических задач удобно выполнять именно в табличной форме. Использование математических формул в электронных таблицах позволяет представить взаимосвязь между различными параметрами некоторой реальной системы. Решения многих вычислительных задач, которые раньше можно было осуществить только с помощью программирования, стало возможным реализовать через математическое моделирование в электронной таблице. Идею электронных таблиц впервые сформулировал американский учёный австрийского происхождения Ричард Маттисич (нем. Richard Mattesich), опубликовав в 1961 году исследование под названием «Budgeting Models and System Simulation». Концепцию дополнили в 1970 году Рене Пардо (англ. Rene Pardo) и Реми Ландау (англ. Remy Landau), подавшие заявку на соответствующий патент. Патентное ведомство отклонило заявку, но авторы через суд добились этого решения. Общепризнанным родоначальником электронных таблиц как отдельного класса ПО является Дэн Бриклин, который совместно с Бобом Фрэнкстоном разработал программу VisiCalc в 1979 году. Эта электронная таблица для компьютера Apple II стала очень популярной, превратив персональный компьютер из игрушки для технофилов в массовый инструмент для бизнеса. 111 7. Базы данных База данных – представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ). История возникновения и развития технологий баз данных может рассматриваться как в широком, так и в узком аспекте. В широком смысле понятие истории баз данных обобщается до истории любых средств, с помощью которых человечество хранило и обрабатывало данные. В таком контексте упоминаются, например, средства учёта царской казны и налогов в древнем Шумере (4000 г. до н. э.), узелковая письменность инков – кипу, клинописи, содержащие документы Ассирийского царства и т. п. Следует помнить, что недостатком этого подхода является размывание понятия «база данных» и фактическое его слияние с понятиями «архив» и даже «письменность». История баз данных в узком смысле рассматривает базы данных в традиционном (современном) понимании. Эта история начинается с 1955 года, когда появилось программируемое оборудование обработки записей. Программное обеспечение этого времени поддерживало модель обработки записей на основе файлов. Для хранения данных использовались перфокарты. Оперативные сетевые базы данных появились в середине 1960-х. Операции над оперативными базами данных обрабатывались в интерактивном режиме с помощью терминалов. Простые индексно-последовательные организации записей быстро развились к более мощной модели записей, ориентированной на наборы. За руководство работой Data Base Task Group (DBTG), разработавшей стандартный язык описания данных и манипулирования данными, Чарльз Бахман получил Тьюринговскую премию. В это же время в сообществе баз данных Кобол была проработана концепция схем баз данных и концепция независимости данных. Следующий важный этап связан с появлением в начале 1970-х реляционной модели данных, благодаря работам Эдгара Кодда. Работы Кодда от- 112 крыли путь к тесной связи прикладной технологии баз данных с математикой и логикой. За свой вклад в теорию и практику Эдгар Ф. Кодд также получил премию Тьюринга. Сам термин база данных (англ. database) появился в начале 1960-х годов, и был введён в употребление на симпозиумах, организованных компанией SDC в 1964 и 1965 годах, хотя понимался сначала в довольно узком смысле, в контексте систем искусственного интеллекта. В широкое употребление в современном понимании термин вошёл лишь в 1970-е годы. 8. Программы создания презентаций В настоящее время существуют прикладные программы для подготовки выступлений или создания презентаций (демонстрационных материалов) с использованием компьютерных слайдов. К таким приложениям относится Mіcrosoft PowerPoint, входящее в комплект Mіcrosoft Office. Каждая страница презентации называется слайдом. Презентация состоит из множества слайдов, которые хранятся в одном файле. Расширение файла .pptx. Презентации можно представлять в электронном виде, распечатывать в виде раздаточного материала (копии всех слайдов) или распространять через интернет. Для размещения презентации на сайте, необходимо сохранить ее как веб-страницу. Основными элементами презентации являются слайды. С помощью редактора PowerPoint можно создавать слайды, в которых текст сочетается с таблицами, диаграммами, графическими объектами, картинками, рисунками, фотографиями, фильмами и звуком, видео клипами. 9. Технологии обработки графической информации Графический способ отображения данных стал неотъемлемой принадлежностью подавляющего числа компьютерных систем, в особенности персональных. Графический интерфейс пользователя сегодня является стандартом «де-факто» для программного обеспечения разных классов, начиная с операционных систем. Существует специальная область информатики, изучающая методы и средства создания и обработки изображений с помощью программно-аппаратных вычислительных комплексов – компьютерная графика. Она охва- 113 тывает все виды и формы представления изображений, доступных для восприятия человеком либо на экране монитора, либо в виде копии на внешнем носителе (бумага, кинопленка, ткань и прочее). В зависимости от способа формирования изображений компьютерную графику принято подразделять на растровую, векторную и фрактальную. Отдельным предметом считается трехмерная (3D) графика, изучающая приемы и методы построения объемных моделей объектов в виртуальном пространстве. Как правило, в ней сочетаются векторный и растровый способы формирования изображений. Фракталом называется структура, состоящая из частей, которые в каком-то смысле подобны целому. Одним из основных свойств фракталов является самоподобие. Объект называют самоподобным, когда увеличенные части объекта походят на сам объект и друг на друга. Перефразируя это определение, можно сказать, что в простейшем случае небольшая часть фрактала содержит информацию обо всем фрактале. Фрактальная графика основана на математических вычислениях. Базовым элементом фрактальной графики является математическая формула. Никаких объектов в памяти компьютера не хранится, и изображение строится исключительно по уравнениям. Таким способом строят как простейшие регулярные структуры, так и сложные иллюстрации, имитирующие природные ландшафты и трехмерные объекты. Примеры фрактальных рисунков представлены на рис. 5.2. Рис. 5.2. Образцы фрактальных рисунков В основе растровой графики лежит растровое изображение. Растровое изображение – это файл данных или структура, представляющая собой сетку пикселей или точек цветов (на практике прямоуголь- 114 ную) на компьютерном мониторе, бумаге и других отображающих устройствах и материалах. Для того чтобы понять, каким образом формируется растровое изображение, рассмотрим принцип работы сканера. В основе принципа работы сканера лежит свет, отраженный от объекта или прошедший через него (в зависимости от модели и предназначения устройства). Поступая от специального источника (обычно просто очень яркой лампы), он искажается сканируемым объектом (отражается от документа или проходит через слайд), предварительно размещенным на стекле изображением вниз. Приемник света фиксирует яркость и цвет отражения от каждой точки, преобразовывая световые импульсы в электрический сигнал. При сканировании все изображение разбивается на элементарные участки. Например, необходимо отсканировать изображение черного круга. Разобьем это изображение на 25 частей. Свет направляется на каждый квадрат изображения и отражается от него. В зависимости от цвета объекта, свет будет полностью (белые квадраты) или частично (серые квадраты) отражаться или полностью поглощаться (черные квадраты). Если свет отражается полностью, этот участок изображения кодируется цифрой 1, черный объект (свет полностью поглощается) – цифрой 0. Если в квадрат попадает частично белый и черный участки изображения, компьютер анализирует степень заполнения квадрата определенным цветами и если площадь участка занята более чем на 50 % черным цветом, то этому квадрату присваивается значение 0, в противном случае – 1. В результате формируется так называемая битовая картина (рис. 5.3). Рис. 5.3. Схема получения цифрового изображения Количество элементарных участков на единицу длины принято называть разрешающей способностью. Обычно за единицу длины принимают дюйм, а разрешающую способность оценивают в dpi (например, 300 dpi 115 обозначает, что сканирующее устройство разбивает участок длиной 2.54 см на 300 точек). Данный способ кодирования графической информации используется при сканировании черно-белых изображений (режим Black/White). Если необходимо получить черно-белое изображение с градациями серого цвета (обыкновенную черно-белую фотографию), на кодирование одного пикселя (единичного участка изображения) отводится 1 байт (8 бит). С помощью одного байта можно закодировать 256 различных последовательностей. Следовательно, абсолютно белый цвет можно закодировать последовательностью из восьми единиц (11111111), а черный – из восьми нулей. Все остальные градации представляются комбинациями ноликов и единичек. Такой режим называется Gray (серый). При сканировании цветного изображения реализуются различные технические приемы, но общий смысл заключается в следующем: на изображение направляется три цветовых потока (синий, зеленый и красный). Освещаемый объект, в зависимости от его цвета, одни лучи поглощает, другие отражает. Доля отраженного света по каждому цветовому каналу анализируется светоприемниками, и каждый цвет кодируется одним байтом. Следовательно, на каждый квадрат отводится 3 бита (24 байта), в результате чего можно закодировать около 16 млн. цветов (2 24). Данный режим носит название True Color. Справедливости ради следует отметить, что человеческий глаз способен различать не более 180 цветовых оттенков. Зная размер изображения, разрешающую способность сканирующего устройства и глубину цветов, можно определить информационный объем данного изображения. Например, отсканируем фотографию 10 × 15 см (для простоты расчетов примем размер фотографии равным 4 × 6 дюйма) с разрешением точки потребуется 1 бит (1 или 0). Умножив длину и ширину фотографии на 300 и перемножив эти два произведения, определяем, что для хранения растровой картинки требуется 2 160 000 бит, или 270 000 байт (примерно 264 Кб). При сканировании в режиме Gray это же изображение займет уже 2 160 000 байт (что равно примерно 2 110 Кб, или 2.06 Мб). Сканирование 116 в полноцветном 24-битовом режиме потребует для хранения уже 16.48 Мб свободного места на диске. Разрешение оригинала. Разрешение оригинала измеряется в точках на дюйм (dots per inch – dpi) и зависит от требований к качеству изображения и размеру файла, способу оцифровки и создания исходной иллюстрации, избранному формату файла и другим параметрам. В общем случае действует правило: чем выше требование к качеству, тем выше должно быть разрешение оригинала. Масштабирование растровых изображений. Одним из недостатков растровой графики является так называемая пикселизация изображений при их увеличении (если не приняты специальные меры). Раз в оригинале присутствует определенное количество точек, то при большем масштабе увеличивается и их размер, становятся заметны элементы растра, что искажает саму иллюстрацию. Для противодействия пикселизации принято заранее оцифровывать оригинал с разрешением, достаточным для качественной визуализации при масштабировании. Другой прием состоит в применении стохастического растра, позволяющего уменьшить эффект пикселизации в определенных пределах. Наконец, при масштабировании используют метод интерполяции, когда увеличение размера иллюстрации происходит не за счет масштабирования точек, а путем добавления необходимого числа промежуточных точек. Если в растровой графике базовым элементом изображения является точка, то в векторной графике – линия. Линия описывается математически как единый объект, и потому объем данных для отображения объекта средствами векторной графики существенно меньше, чем в растровой графике. Линия – элементарный объект векторной графики. Как и любой объект, линия обладает свойствами: формой (прямая, кривая), толщиной, цветом, начертанием (сплошная, пунктирная). Замкнутые линии приобретают свойство заполнения. Охватываемое ими пространство может быть заполнено другими объектами (текстуры, карты) или выбранным цветом. Простейшая незамкнутая линия ограничена двумя точками, именуемыми узлами. Узлы также имеют свойства, параметры которых влияют на форму конца линии и характер сопряжения с другими объектами. Все прочие объекты векторной графики составляются из линий. 117 В компьютерной графике применяют по несколько десятков форматов файлов для хранения изображений, но лишь часть из них стала стандартом и применяется в подавляющем большинстве программ. Как правило, несовместимые форматы имеют файлы растровых, векторных, трехмерных изображений, хотя существуют форматы, позволяющие хранить данные разных классов. Многие приложения ориентированы на собственные форматы, перенос их файлов в другие программы вынуждает использовать специальные фильтры или экспортировать изображения в «стандартный» формат. B M P – формат предназначен для Windows и поддерживается всеми приложениT Iями, работающими в этой среде. Использует только индексированные цвета. Малопригоден для профессиональной работы. F F T a P g S g D e P d h I o tm a J o g S P eE h F o G i p J l Document) – встроенный формат программы Adobe Photoshop (расширение o e файла .PSD), один из наиболее мощных по возможностям хранения iимени Format) – формат растровой графической предназначен информации. для хранения Позволяет растровых запоминать изображений параметры вымаn сокого слоев, качества каналов, (расширение степени прозрачности. имени файлаПоддерживаются .TIF). Важным достоинством 48-разрядное tсок, этогоGформатацвета, кодирование является цветоделение его переносимость и различные на разные цветовые платформы модели. Основной (IBM или P Macintosh), –онотсутствие недостаток импортируется эффективного во все программы алгоритманастольных сжатия информации, издательских что Ih систем. к большому объему файлов. приводит o F t G 118 ro g a Получил популярность в Интернете благодаря высокой степени сжатия. Последняя версия формата GIF89a позволяет выполнять чересстрочную загрузку изображений и создавать рисунки с прозрачным фоном. P N G P o r t P a D b F l P e o rN te В компьютерной графике применяют понятие цветового разрешения (или глубины цвета). Оно определяет метод кодирования цветовой инфорt a мации для ее воспроизведения на экране монитора. Для отображения черноw b белого изображения достаточно двух бит (белый и черный цвета). Восьlo миразрядное кодирование позволяет отобразить 256 градаций цветового er тона (обычно применяется для хранения черно-белых фотографий). При 24k D разрядном способе кодирования можно задать более 16,5 миллионов цветов G o (режим называют True Color). cr a С практической точки зрения цветовому разрешению монитора близко u понятие цветового охвата. Под ним подразумевается диапазон цветов, коp m торый можно воспроизвести с помощью того или иного устройства вывода eh (монитор, принтер и прочие). В соответствии с принципами формирования i n изображения аддитивным или субтрактивным методами разработаны споtc собы разделения цветового оттенка на составляющие компоненты, назыs F ваемые цветовыми новый моделями. (1995 г.) формат В компьютерной хранения графике изображений в основном для их припубo– сравнительно меняют в Интернете RGB (для (расширение создания иимени обработки файлааддитивных .PNG). Поддерживаются изображений) rликациимодели три и CMYK типа (для изображений печати копии – цветные изображения с глубиной на 8полиграфическом или 24 бита и черно-белое оборудова-с m градацией 256 оттенков серого. Сжатие информации происходит практичении). a без потерь,модель предусмотрены RGB является 254 уровня аддитивной, альфа-канала, т. е. любой чересстрочная цвет предtски Цветовая развертка. ставляет – форматсобой описания сочетание документов, в различной разработанный пропорциифирмой трех основных Adobe (расширецветов – ние имени файла .PDF). Формат является аппаратно-независимым, поэтому 119 вывод изображений допустим на любых устройствах – от экрана монитора до фотоэкспонирующего устройства. Мощный алгоритм сжатия со сред- красного (Red), зеленого (Green), синего (Blue). Она служит основой при создании и обработке компьютерной графики, предназначенной для электронного воспроизведения (на мониторе, телевизоре). При наложении одного компонента основного цвета на другой яркость суммарного излучения увеличивается. Совмещение трех компонентов дает ахроматический серый цвет, который при увеличении яркости приближается к белому цвету. При 256 градационных уровнях тона черному цвету соответствуют нулевые значения RGB, а белому – максимальные, с координатами (255, 255, 255). Цветовая модель CMYK относится к субтрактивным, и ее используют при подготовке публикаций к печати. Цветовыми компонентами CMY служат цвета, полученные вычитанием основных из белого: – голубой (cyan) = белый – красный = зеленый + синий; – пурпурный (magenta) = белый – зеленый = красный + синий; – желтый (yellow) = белый – синий = красный + зеленый. Голубой, пурпурный и желтый цвета называются дополнительными, потому что они дополняют основные цвета до белого. Отсюда вытекает и главная проблема цветовой модели CMY – наложение друг на друга дополнительных цветов на практике не дает чистого черного цвета. Поэтому в цветовую модель был включен компонент чистого черного цвета. Так появилась четвертая буква в аббревиатуре цветовой модели CMYK (Cyan, цветное компьютерное изображение необходимо разделить на составляющие, соответствующие компонентам цветовой модели CMYK. Этот процесс называют цветоделением. В итоге получают четыре отдельных изображения, содержащих одноцветное содержимое каждого компонента в оригинале. Затем в типографии с форм, созданных на основе цветоделенных пленок, печатают изображение, получаемое наложением цветов CMYK. 120 РАЗДЕЛ 6. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ План 1. Понятие алгоритма и его свойства. 2. Способы описания алгоритмов. 3. Основные алгоритмические конструкции. 1. Понятие алгоритма и его свойства Любой человек ежедневно встречается с множеством задач от самых простых и хорошо известных до очень сложных. Для многих задач существуют определенные правила (инструкции, предписания), объясняющие исполнителю, как решать данную задачу. Эти правила человек может изучить заранее или сформулировать сам в процессе решения задачи. Чем точнее и понятнее будут описаны правила решения задач, тем быстрее человек овладеет ими и будет эффективнее их применять. Источниками возникновения алгоритмов служат: наблюдение и эксперимент, научная теория, прошлый опыт и др. Решение многих задач человек может передавать техническим устройствам – ПК, автоматам, роботам и т.д. Применение технических устройств предъявляет очень строгие требования к точности описания правил и последовательности выполнения действий. Поэтому разрабатываются специальные языки для четкого и строгого описания различных правил. Алгоритмизация – это раздел информатики, изучающий методы и приемы построений алгоритма, а также их свойства, т. е. алгоритмика задачи, построения модели и алгоритмизация. Алгоритм – понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение указанной цели или на решение поставленной задачи. Алгоритм – это метод (способ) решения задачи, записанный по определенным правилам, обеспечивающим однозначность его понимания и механического исполнения при всех значениях исходных данных. Алгоритм применительно к ПК – точное предписание, т.е. набор операций и правил их чередования, при помощи которого, начиная с некото- 121 рых исходных данных, можно решить задачу фиксированного типа. Команда алгоритма – предписание о выполнении отдельного законченного действия исполнителя. Термин алгоритм происходит от имени узбекского ученого IX в. Абу Абдуллах Мухаммеда ибн Муса Аль-Хорезми (783 – 850), который в своем труде «Арифметический трактат», переведенном в XII в. с арабского на латынь, изложил правила арифметических действий над числами в позиционной десятичной системе счисления. Эти правила и называли алгоритмами. Таким образом, правила сложения, вычитания, деления, умножения чисел, правила преобразования алгебраических выражений, правила построения геометрических фигур, грамматические правила правописания слов и предложений – все это алгоритмы. Многие правила, инструкции, записанные в различных документах и представляющие собой подробнейшие указания, годные во всевозможных ситуациях, также можно отнести к алгоритмам. Свойства алгоритма – набор свойств, отличающих алгоритм от любых предписаний и обеспечивающих его автоматическое исполнение. Понятность для исполнителя – содержание предписания о выполнении только таких действий, которые входят в систему команд исполнителя, т. е. алгоритм должен быть задан с помощью таких указаний, которые исполнитель (персональный компьютер, промышленный компьютер, контроллер, однокристальная микроЭВМ и др.) может воспринимать и выполнять по ним требуемые действия (операции). Дискретность (прерывность, раздельность) – выполнение команд алгоритма последовательно, с точной фиксацией моментов окончания выполнения одной команды и начала выполнения следующей, т. е. алгоритм должен содержать последовательность указаний (команд), каждое из которых приводит к выполнению в исполнителе одного шага (действия). Детерминированность (определенность) – каждое правило алгоритма должно быть четким, однозначным. Благодаря этому свойству алгоритм выдаёт один и тот же результат (ответ) для одних и тех же исходных данных. Результативность – либо завершение решения задачи после выполнения алгоритма, либо вывод о невозможности продолжения решения по какой-либо из причин, т. е. алгоритм должен обеспечивать возможность получения результата после конечного числа шагов. 122 Массовость – означает, что алгоритм решения задачи разрабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма. Основные характеристики алгоритмов Для решения одной и той же задачи как правило можно использовать различные алгоритмы. В связи с этим, возникает необходимость сравнивать их между собой, и для этого нужны определенные критерии качества алгоритмов. Временные характеристики алгоритма определяют длительность решения или временную сложность. Длительность решения часто выражается в единицах времени, но удобнее ее выражать через количество операций, так как количество операций не зависит от быстродействия конкретной машины. Временной сложностью алгоритма называется зависимость времени счета, затрачиваемого на получение результатов от объема исходных данных. Временная сложность позволяет определить наибольший размер задачи, которую можно решить с помощью данного алгоритма на ПК. Каждый алгоритм можно характеризовать функцией f(n), выражающей скорость роста объема вычислений при увеличении размерности задачи – n. Объемные характеристики алгоритма определяют его информационную сложность. Информационная сложность связана со сложностью описания, накопления и хранения исходных, промежуточных и результирующих данных при решении определенной задачи. Объем текста алгоритма (программы) определяется количеством операторов, использованных для записи алгоритма. Объем внутренней и внешней памяти необходимой для хранения данных и программ при использовании данного алгоритма определяется на основании расчетов или опытным путем. Сложность структуры алгоритма определяется количеством маршрутов, по которым может реализовываться процесс вычислений и сложностью каждого маршрута. 123 Очевидно, что при выборе алгоритмов нужно учитывать не только их характеристики качества, но и способ реализации алгоритма. Например, многие итерационные алгоритмы удобны для ПК, но слишком трудоемки для человека. 2. Способы описания алгоритмов Для строгого задания различных структур данных и алгоритмов их обработки требуется иметь такую систему формальных обозначений и правил, чтобы смысл всякого используемого предписания трактовался точно и однозначно. Соответствующие системы правил называют языками описаний. К средствам описания алгоритмов относятся следующие основные способы их представления: словесный; графический; псевдокоды; программный. На практике используются также и другой способ описания: табличный (таблицы переключений (таблицы истинности); таблицы автоматов; циклограммы работы; таблицы решений). Словесный способ записи алгоритмов представляет собой последовательное описание основных этапов обработки данных и задается в произвольном изложении на естественном языке. В качестве примера рассмотрим запись алгоритма нахождения наибольшего общего делителя двух натуральных чисел (m и п). Алгоритм может быть записан в следующем виде: - если числа равны, то необходимо взять любое из них в качестве ответа, в противном случае – продолжить выполнение алгоритма; - определить большее из чисел; - заменить большее число разностью большего и меньшего чисел; - повторить алгоритм сначала. Способ основан на использовании общепринятых средств общения между людьми и с точки зрения написания трудностей не представляет. Такой способ записи удобно использовать на начальном этапе алгоритмизации задачи. К недостаткам словесного способа записи можно отнести следующее: 1) полное подробное словесное описание алгоритма получается очень громоздким; 124 2) естественный язык допускает неоднозначность толкования отдельных инструкций; 3) при переходе к этапу программирования требуется дополнительная работа по формализации алгоритма, так как словесное описание может быть понятно человеку, но «непонятно» ПК. Поэтому словесный способ записи алгоритмов не имеет широкого распространения. Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным. При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т. п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. Для начертания этих схем используется набор символов, определяемых ГОСТ 19.701–90 (ИСО 5807 – 85) «Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.». Символ «Процесс» применяется для обозначения одного или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединить в один блок. Представление отдельных операций достаточно свободно. Например, для обозначения вычислений можно использовать математические выражения, для пересылок данных – стрелки, для других действий – пояснения на естественном языке. В зависимости от уровня детализации схемы пояснения на естественном языке могут быть более или менее подробными. Метод блок-схем, так же как и алгоритмический язык (псевдокод), независим от специфики языков программирования, поэтому в описаниях операторов не следует использовать резервированные слова и символы языков программирования, а также 125 применять имена данных, образованные в соответствии с синтаксическими правилами этих языков. Символ «Решение» используется для обозначения переходов управления по условию. В каждом блоке решения должны быть указаны вопрос, решение, условие или сравнение, которые он определяет. Стрелки, выходящие из блока решения, должны быть помечены соответствующими ответами (например, ДА, НЕТ), так чтобы были учтены все возможные ответы. Символ «Модификация» используется для выполнения операций, меняющих команды или группы команд, изменяющих программу (например, для организации циклических конструкций). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и правило изменения значения параметра для каждого повторения. Блок размещается в начале циклической конструкции, для управления которой он используется, даже в том случае, если изменение параметра и проверка условий окончания цикла при реализации алгоритма производится не в начале, а в конце цикла. Линии переходов используются для обозначения порядка выполнения действий. Для улучшения наглядности следует придерживаться стандартных правил изображения линий передач управления – сверху вниз и слева направо. Если необходимо показать передачу управления снизу вверх или справа налево, то направление следует отметить стрелкой. Символ «Предопределенный процесс» используется для указания обращений к вспомогательным алгоритмам, выделенным автономно, в виде некоторого модуля; для обращений к библиотечным подпрограммам; для обозначения части алгоритма, не зависящей от основной схемы управления; для обозначения определенной части алгоритма, которая будет кодироваться вместе со всем алгоритмом, но в документации представлена отдельной схемой. Если такая часть алгоритма представляет собой итерационный процесс, то в соответствующий ей блок вызова необходимо включить описания условий окончания цикла. По мнению некоторых специалистов, использование более одной схемы для одного алгоритма затрудняет его понимание. Однако практика показывает, что удобнее всего применять схемы алгоритмов, разбитые в соответствии с уровнями абстракции. 126 Символ «Ввод - вывод» используется для преобразования данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). Отдельным логическим устройствам ПК или отдельным функциям обмена соответствуют определенные блочные символы. В каждом из них указываются тип устройства или файла данных, тип информации, участвующий в обмене, а также вид операции обмена. Символ «Соединитель» используется в том случае, когда схема алгоритма разделяется на автономные части, особенно если она не умещается на одном листе или когда необходимо избежать излишних пересечений линий переходов. Применение соединителей не должно нарушать структурности при изображении схем. Символ «Пуск - останов» используется для обозначения начала, конца, прерывания процесса обработки данных или выполнения программы. Символ «Комментарий» позволяет включать в схемы алгоритмов пояснения к функциональным блокам. Частое использование комментариев нежелательно, так как это усложняет (загромождает) схему, делает ее менее наглядной. Однако некоторые обозначения переменных, принятые допущения или назначение отдельных алгоритмов требуют пояснительных записей. Псевдокод Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному, естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи. В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. 127 Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций. Примером псевдокода является школьный алгоритмический язык (АЯ), содержащий систему обозначений для единообразной и точной записи алгоритмов и задания правил их использования. Важной особенностью алгоритмических языков типа псевдокодов является их близость к языкам программирования. Как и любой язык, АЯ строится на основе алфавита, включающего в себя набор символов, разрешенных к использованию при написании алгоритмов. Алфавит АЯ включает в себя строчные и прописные буквы русского и латинского алфавитов; цифры десятичной системы счисления; специальные символы, имеющиеся на клавиатуре устройства ввода данных ПК и в наборах устройств печати; символы математических операций, используемых при написании выражений. Для дополнения символов алфавита в АЯ вводятся так называемые ключевые (служебные) слова, которые позволяют сделать запись алгоритма более понятной и выразительной. Они используются для формирования типовых синтаксических конструкций. Алгоритм, записанный на алгоритмическом языке, начинается с заголовка и затем содержит последовательно расположенные друг за другом операторы (команды), которые образуют тело алгоритма. Тело алгоритма заключается между ключевыми словами нач и кон. Ниже приводится пример общего вида алгоритма: алг название алгоритма (аргументы и результаты) нач описание промежуточных величин, последовательность команд (тело алгоритма) | комментарий кон 128 Часть алгоритма от слова алг до слова нач называется заголовком, а часть, заключенная между словами нач и кон, – телом алгоритма. Признаком заголовка алгоритма является ключевое слово алг, следом за которым указывается название алгоритма. Название должно отражать специфику решаемой задачи и лаконично записываться в виде отдельного предложения или некоторой аббревиатуры. После знака ′′|′′ записаны комментарии. Комментарии можно помещать в конце любой строки. Они не обрабатываются транслятором, но существенно облегчают понимание алгоритма. 3. Основные алгоритмические конструкции Преобразования величин, реализуемые в алгоритмическом языке, осуществляются по операторам (командам), располагаемым в заданной последовательности. Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование, ветвление, цикл. Характерной особенностью базовых структур является наличие в них одного входа и одного выхода. Структура алгоритма является линейной, если она образована последовательностью простых операторов (команд). Разветвляющийся алгоритм – алгоритм, содержащий хотя бы одно условие, в результате проверки которого ПК обеспечивает переход на один из двух возможных шагов. Циклический алгоритм – алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. Группа команд (операторов), выполняющихся одна за другой, называется серией. Серия может состоять из одного оператора. Для построения разветвляющихся и циклических структур алгоритма в алгоритмическом языке используются составные операторы. К ним относятся операторы ветвления и цикла. Оператор ветвления записывается следующим образом: если условие то серия 1 иначе серия 2 все. В зависимости от итога проверки условия выполняется только одна из двух серий, входящих в команду ветвления. Если 129 условие соблюдено, то следует выполнять серию 1, если нет – серию 2. Оператор ветвления используется и в сокращенной форме: если условие то серия все При этом, если условие соблюдено, необходимо выполнить серию команд, следующую в записи алгоритма за служебным словом то, в противном случае, пропуская серию, перейти к выполнению команды, следующей за командой ветвления (после служебного слова все). Структура ветвление существует в четырех основных вариантах: если – то; если – то – иначе; выбор; выбор – иначе. Оператор выбора используется в тех случаях, когда возникает необходимость выбора альтернативы из трех возможностей и более. 130 Различия в исполнении этих конструкций вытекают из свойств ветвления. С формальной точки зрения рассмотренные конструкции эквивалентны, их использование определяется удобством составления алгоритма. Оператор повторения (цикла) используется для описания алгоритмов, в которых требуется организовать многократное повторение одних и тех же действий. Циклические структуры имеют особое значение для построения алгоритмов, так как только на их основе можно добиться компактной записи алгоритмов, требующих выполнения большого числа действий. При выполнении этого оператора серия, включающая одну или несколько команд, повторяется несколько раз подряд до тех пор, пока условие соблюдается. Как только условие нарушается, выполнение серии прекращается. Если условие изначально неверно, то серия не выполняется. Алгоритм, в состав которого входит итерационный цикл, называется итерационным алгоритмом. Итерационные алгоритмы используются при реализации итерационных численных методов. Возможны случаи, когда внутри тела цикла необходимо повторить некоторую последовательность операторов, т. е. организовать внутренний цикл. Такая структура получила название цикла в цикле или вложенных циклов. Глубина вложения циклов (количество вложенных друг в друга циклов) может быть различной. 131 Рассмотрим несколько примеров на циклические структуры. Анализ этого алгоритма показывает, что в общем случае в подобных конструкциях используются: целая переменная (I), указывающая текущий элемент таблицы; начальное значение этой переменной (N), присваиваемое ей до начала цикла; конечное значение (К), по достижении которого происходит выход из цикла; шаг переменной – изменение ее значения при каждом проходе цикла (в данном случае шаг равен 1). 132 РАЗДЕЛ 7. ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ План 1. Основные этапы решения задач с помощью компьютера. 2. Понятие о структурном программировании. Модульный принцип программирования. Подпрограммы. Принципы проектирования программ сверху-вниз и снизу-вверх 3. Объектно-ориентированное программирование 4. Эволюция и классификация языков программирования. Основные понятия языков программирования 5. Структуры и типы данных языка программирования 6. Трансляция, компиляция и интерпретация 1. Основные этапы решения задач с помощью компьютера 1. Общая формулировка задачи. Этот пункт, несмотря на кажущуюся простоту, чрезвычайно важен. Здесь необходимо сформулировать задачу в содержательных терминах и определить, что является «входными» данными задачи и что мы собираемся получить в результате решения. Недопустимо требование «найти то, сам не знаю что». 2. Математическая формулировка задачи. Здесь необходимо определить математические величины, которые будут описывать задачу, и получить математические связи между ними, т.е. составить математическую модель. Этот этап является критическим, поскольку неправильная или плохая модель сводит на нет все дальнейшие усилия. В то же время во многих случаях этот этап является очевидным, если есть общепринятые уравнения, описывающие рассматриваемый класс задач. 3. Выбор математического метода решения. Здесь необходимо на основе накопленного арсенала математических методов выбрать тот, который целесообразно использовать для решения поставленной задачи. Как правило, этот выбор осуществляется исходя как из субъективных причин (знание тех или иных математических методов), так и объективных причин, к которым в первую очередь необходимо отнести имеющиеся ресурсы компьютера (память, быстродействие). При этом если для получения решения 133 требуются ресурсы, которые превосходят имеющиеся в наличии (чрезмерное время счета или недоступный объем памяти), то необходим поиск других математических методов, либо упрощение математической модели. 4. Составление алгоритма решения. Этот этап тесно связан с предыдущим и должен быть направлен в первую очередь на разработку эффективных алгоритмов, т.е. таких, которые требуют наименьшего количества ресурсов компьютера для своей реализации. 5. Составление и отладка программы. Этот этап может быть весьма трудоемким, особенно для начинающих программистов. При отладке больших программ целесообразно использовать специальные программные средства, облегчающие процесс нахождения ошибок. 6. Тестирование программы. На этом этапе, чтобы удостовериться в правильности работы алгоритма, решаются задачи с такими исходными данными, для которых известно достоверное решение, либо используются какие-то косвенные свидетельства. Так в ряде задач существует связь между исходными данными и результатами, например, закон сохранения энергии, импульса и т.д. 7. Решение поставленной задачи и представление результатов. Здесь наиболее существенным является удобный и наглядный вывод результатов. Во многих случаях целесообразно использовать графические программные средства для визуализации полученных данных. 2. Понятие о структурном программировании. Модульный принцип программирования. Подпрограммы. Принципы проектирования программ сверху-вниз и снизу-вверх Структурное программирование – методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом. В соответствии с данной методологией любая программа представляет собой структуру, построенную из трёх типов базовых конструкций: ‒ последовательное исполнение – однократное выполнение операций в том порядке, в котором они записаны в тексте программы; ‒ ветвление – однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия; 134 ‒ цикл – многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла). В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается. Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы. Разработка программы ведётся пошагово, методом «сверху вниз». Сначала пишется текст основной программы, в котором, вместо каждого связного логического фрагмента текста, вставляется вызов подпрограммы, которая будет выполнять этот фрагмент. Вместо настоящих, работающих подпрограмм, в программу вставляются «заглушки», которые ничего не делают. Полученная программа проверяется и отлаживается. После того, как программист убедится, что подпрограммы вызываются в правильной последовательности (то есть общая структура программы верна), подпрограммы-заглушки последовательно заменяются на реально работающие, причём разработка каждой подпрограммы ведётся тем же методом, что и основной программы. Разработка заканчивается тогда, когда не останется ни одной «заглушки», которая не была бы заменена. Такая последовательность гарантирует, что на каждом этапе разработки программист одновременно имеет дело с обозримым и понятным ему множеством фрагментов, и может быть уверен, что общая структура всех более высоких уровней программы верна. При сопровождении и внесении изменений в программу выясняется, в какие именно процедуры нужно внести изменения, и они вносятся, не затрагивая части программы, непосредственно не связанные с ними. Это позволяет гарантировать, что при внесении изменений и исправлении ошибок не выйдет из строя какая-то часть программы, находящаяся в данный момент вне зоны внимания программиста. 135 Нисходящее проектирование – разработка приложения (программы) сверху вниз. Сначала выделяется несколько подпрограмм (модулей), решающих самые глобальные задачи (например, инициализация данных), потом каждый из этих модулей детализируется на более низком уровне, разбиваясь на небольшое число других подпрограмм и т.д. 3. Объектно-ориентированное программирование Объектно-ориентированное программирование или ООП (objectoriented programming) – методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного типа, использующая механизм пересылки сообщений и классы, организованные в иерархию наследования. Центральный элемент ООП – абстракция. Данные с помощью абстракции преобразуются в объекты, а последовательность обработки этих данных превращается в набор сообщений, передаваемых между этими объектами. Каждый из объектов имеет свое собственное уникальное поведение. С объектами можно обращаться как с конкретными сущностями, которые реагируют на сообщения, приказывающие им выполнить какие-то действия. ООП характеризуется следующими принципами (по Алану Кею): ‒ все является объектом; ‒ вычисления осуществляются путем взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие; объекты взаимодействуют, посылая и получая сообщения; сообщение – это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия; ‒ каждый объект имеет независимую память, которая состоит из других объектов; ‒ каждый объект является представителем класса, который выражает общие свойства объектов данного типа; ‒ в классе задается функциональность (поведение объекта); тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия; 136 ‒ классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования; память и поведение, связанное с экземплярами определенного класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве. Абстрагирование (abstraction) – метод решения задачи, при котором объекты разного рода объединяются общим понятием (концепцией), а затем сгруппированные сущности рассматриваются как элементы единой категории. Абстрагирование позволяет отделить логический смысл фрагмента программы от проблемы его реализации, разделив внешнее описание (интерфейс) объекта и его внутреннюю организацию (реализацию). Инкапсуляция (encapsulation) – техника, при которой несущественная с точки зрения интерфейса объекта информация прячется внутри него. Наследование (inheritance) – свойство объектов, посредством которого экземпляры класса получают доступ к данным и методам классов-предков без их повторного определения. Наследование позволяет различным типам данных совместно использовать один и тот же код, приводя к уменьшению его размера и повышению функциональности. Полиморфизм (polymorphism) – свойство, позволяющее использовать один и тот же интерфейс для различных действий; полиморфной переменной, например, может соответствовать несколько различных методов. Полиморфизм перекраивает общий код, реализующий некоторый интерфейс, так, чтобы удовлетворить конкретным особенностям отдельных типов данных. Класс (class) – множество объектов, связанных общностью структуры и поведения; абстрактное описание данных и поведения (методов) для совокупности похожих объектов, представители которой называются экземплярами класса. Объект (object) – конкретная реализация класса, обладающая характеристиками состояния, поведения и индивидуальности, синоним экземпляра. 137 4. Эволюция и классификация языков программирования. Основные понятия языков программирования В основе компьютерного программирования лежат простые идеи, применявшиеся в технике до появления компьютеров. Одна из них – запись последовательности действий на перфокарты для управления ткацким станком, придуманная и реализованная французом Жозефом Мари-Жаккаром. Однако объединил идеи для решения вычислительных задач Чарльз Бэббидж, дополнив их главной мыслью – о предварительной записи порядка действий с последующим автоматическим воспроизведением. Это произошло в двадцатых годах XIX века. В результате его деятельности появилась первая аналитическая машина, способная выполнять арифметические действия. Идеи Ч. Бэббиджа поддержала Ада Лавлейс, ставшая впоследствии первым программистом в мире. При работе с аналитической машиной, ею были развиты некоторые базисные конструкции, которые легли затем в основы программирования. Одной из них является «цикл». Следующий большой шаг вперед языки программирования сделали с появлением системы кодирования машинных команд с помощью специальных символов, предложенной Джоном Моучли (Пенсильванский университет). Позже Моучли создал собственную компанию, получавшую финансирование от министерства обороны США. Работы, проводимые в этой компании, дали миру множество основополагающих концепций программирования. В ней же был создан первый в мире язык высокого уровня, позволявший записывать программы с помощью математических формул. В дальнейшем был разработан и первый интерпретатор, позволявший использовать вычислительную машину для преобразования исходного кода программы и машинные коды. Другим ярким результатом работы этой компании является труд Грейс Мюррей Хоппер, которая вместе со своей группой придумала такие термины как «подпрограммы», «отладка» и «компилятор». Первые термины возникали спонтанно и имели обычно интересные истории своего происхождения. Например, появление термина «отладка» свя- 138 зано с мотыльком, залетевшим в помещение вычислительного центра и заблокировавшим работу одного из реле. С тех пор технический процесс тестирования неисправностей в компьютере и в программировании называют «debuging». Другой способ появления терминов – их заимствование. Например, термины «компилятор» и «компиляция» заимствованы из библиотечного дела. Подпрограммы находятся в отдельных библиотеках, а подбор подпрограмм из библиотек схож с подбором литературы в традиционной библиотеке. Первым языком программирования для математических расчетов стал Фортран (компания IBM, 1954 г.), а первым популярным языком для коммерческих приложений – КОБОЛ. Его предшественник, FLOW-MATIC, не имел широкого распространения. В середине 1960-х годов Томас Курц и Джон Кемени создали язык программирования, который состоял из простых слов английского языка и был назван «универсальным символическим кодом для начинающих» BASIC (Beginners All-Purpose Symbolic Instruction Code). Широкому распространению языка BASIC способствовала его поставка как встроенного языка программирования в современных, для того времени, ЭВМ. Первыми универсальными языками программирования стали: PL/I (Programm Language One), 1967 г., а затем АЛГОЛ-68 (1968 г.). Эти языки не получили широкого распространения из-за своей неоправданной, с точки зрения программиста, сложности конструкций и неэффективности компиляторов. Первым языком программирования для создания систем искусственного интеллекта стал Пролог (Prolog-PROgramming in LOGic). В конце 50х годов прошлого века плодом международного сотрудничества в области программирования явился Алгол (ALGOL, от ALGOrithmic Language – алгоритмический язык). В СССР в те годы под руководством Сергея Петровича Ершова был создан транслятор Альфа, который представлял собою довольно удачную русифицированную версию Алгола. Впоследствии академик Ершов сыграл важнейшую роль в становлении в нашей стране школьной информатики. 139 Развитие идеи Алгола о структуризации разработки алгоритмов нашло важнейшее применение при создании в начале 70-х годов языка Паскаль швейцарским ученым Никлаусом Виртом. Период с конца 60-х и до начала 80-х годов 20-го века характеризуется бурным ростом числа различных языков программирования, сопровождавшим кризис программного обеспечения. Этот кризис особо остро переживало военное ведомство США. В январе 1975 г. Пентагон учредил комитет, которому было предписано разработать один универсальный язык. На конкурсной основе комитетом были проработаны сотни проектов, и когда стало ясно, что ни один из существующих языков не может их удовлетворить, комитет принял два проекта для окончательного рассмотрения. В мае 1979 г. был объявлен победитель – группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс. Язык АДА – прямой наследник языка Паскаль – предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, он допускает возможность параллельной обработки, управления процессами в реальном времени и многое другое, чего трудно или невозможно достичь средствами более простых языков. Значительный отпечаток на современное программирование наложил язык Си (первая версия – 1972 г.), являющийся очень популярным в среде разработчиков систем программного обеспечения (включая операционные системы). Си сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль. Следует отметить, что многие языки, первоначально разработанные для больших и малых ЭВМ, в дальнейшем были приспособлены к персональным компьютерам. Хорошо вписались в «персоналки» не только Паскаль, Бейсик, Си, Лого, но и ЛИСП, ПРОЛОГ – языки искусственного интеллекта. В течение многих лет программное обеспечение строилось на основе операциональных и процедурных языков, таких, как Фортран, Бейсик, Паскаль, Ада, Си. И сегодня современные версии этих и им подобных языков (Модула, Форт и др.) доминируют при разработке прикладных программ- 140 ных средств. Однако по мере эволюции языков программирования получили широкое распространение и другие, принципиально иные подходы к созданию программ. Классическое операциональное и/или процедурное программирование требует от программиста детального описания того, как решать задачу, т.е. формулировки алгоритма и его специальной записи. При этом ожидаемые свойства результата обычно не указываются. Основные понятия языков этих групп – оператор и данные. При процедурном подходе операторы объединяются в группы – процедуры. Структурное программирование в целом не выходит за рамки этого направления, оно лишь дополнительно фиксирует некоторые полезные приемы технологии программирования. Принципиально иное направление в программировании связано с методологиями (парадигмами) непроцедурного программирования. К ним можно отнести объектно-ориентированное и декларативное программирование. Объектно-ориентированный язык создает окружение в виде множества независимых объектов. Из языков объектного программирования, популярных среди профессионалов, следует назвать прежде всего Си++. При использовании декларативного языка программист указывает исходные информационные структуры, взаимосвязи между ними и то, какими свойствами должен обладать результат. При этом процедуру его получения («алгоритм») программист не строит (по крайней мере, в идеале). В этих языках отсутствует понятие «оператор» («команда»). Декларативные языки можно подразделить на два семейства – логические (типичный представитель – Пролог) и функциональные (Лисп). По всей видимости, непроцедурные языки имеют большое будущее. Крупноструктурную классификацию языков программирования, в которой указаны основные методологии программирования; в нижнем ряду, в скобках – типичные языки соответствующих групп иллюстрирует рис. 7. Языки программирования – это формальные языки, специально созданные для общения человека с компьютером. Каждый язык программирования, равно как и «естественный» язык (русский, английский и т.д.), имеет свой алфавит, словарный запас, грамматику и синтаксис, а также семантику. Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке. 141 Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита. Семантика – это система правил однозначного толкования отдельных языковых конструкций, позволяющая воспроизвести процесс обработки данных. При описании языка и его применении используют понятия языка. Понятие подразумевает некоторую синтаксическую конструкцию и определяемые ею свойства программных объектов или процесса обработки данных. Взаимодействие синтаксических и семантических правил определяют те или иные понятия языка, например, операторы, идентификаторы, переменные, функции и процедуры, модули и т.д. В отличие от естественных языков правила грамматики и семантики для языков программирования, как и для всех формальных языков, должны быть сформулированы явно, однозначно и четко. Языки программирования, имитирующие естественные языки и обладающие укрупненными командами, ориентированными на решение прикладных содержательных задач, называют языками высокого уровня. В настоящее время насчитывается несколько сотен таких языков, а если считать и их диалекты, то это число возрастает до нескольких тысяч. Языки программирования высокого уровня существенно отличаются от машинноориентированных (низкого уровня) языков. Во-первых, машинная программа, в конечном счете, записывается с помощью лишь двух символов 0 и 1. Во-вторых, каждая ЭВМ имеет ограниченный набор машинных операций, ориентированных на структуру процессора. Как правило, этот набор состоит из сравнительно небольшого числа простейших операций, типа: переслать число в ячейку; считать число из ячейки; увеличить содержимое ячейки на +1 и т.п. Команда на машинном языке содержит очень ограниченный объем информации, поэтому она обычно определяет простейший обмен содержимого ячеек памяти, элементарные арифметические и логические операции. Команда содержит код и адреса ячеек, с содержимым которой выполняется закодированное действие. Языки программирования высокого уровня имеют следующие достоинства: 142 ‒ алфавит языка значительно шире машинного, что делает его гораздо более выразительным и при этом существенно повышает наглядность и понятность текста; ‒ набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса; ‒ конструкции команд (операторов) отражают содержательные виды обработки данных и задаются в удобном для пользователя виде; ‒ используется аппарат переменных и действий с ними; ‒ поддерживается широкий набор типов данных. Таким образом, языки программирования высокого уровня являются машинно-независимыми и требуют использования соответствующих программ-переводчиков (трансляторов) для представления программы на языке той машины, на которой программа будет исполняться. Языки программирования позволяют работать со структурированными и неструктурированными величинами. Важнейшие характеристики структурированной величины таковы: упорядоченность (да или нет), однородность (да или нет), способ доступа к элементам, фиксированность числа элементов (да или нет). Так, массив является упорядоченной однородной структурой с прямым доступом к элементам и фиксированным их количеством. Всем программным объектам в языках даются индивидуальные имена. Имя программного объекта называют идентификатором (от слова «идентифицировать»). Чаще всего идентификатором является любая конечная последовательность букв и цифр, начинающаяся с буквы. Как правило, в большинстве языков программирования в качестве идентификатора запрещается использовать служебные слова языка. Многим термин «идентификатор» не нравится, и в настоящее время чаще употребляют слово «имя». Описания или объявления программных объектов связаны с правилами обработки данных. Данные бывают разные и для каждого из них необходимо определить его свойства. Например, если в качестве данных выступает массив, то необходимо задать его размерность, границы индексов, тип элементов массива. Описательная часть языка программирования является 143 необходимой как для системных программистов – разработчиков трансляторов, которые должны, в частности, проводить синтаксическую и семантическую диагностику программ, так и для «прикладного» программиста, которому объявления программных объектов часто облегчают процесс разработки и отладки программ. Переменные играют важнейшую роль в системах программирования. Понятие «переменная» в языках программирования отличается от общепринятого в математике. Переменная – это программный объект, способный принимать некоторое значение с помощью оператора присваивания. В ходе выполнения программы значения переменной могут неоднократно изменяться. Каждая переменная после ее описания отождествляется с какойлибо ячейкой памяти, содержимое которой является ее значением. Семантический смысл переменной заключается в хранении некоторого значения, соответствующего ее типу (например, переменная целого типа может принимать значение произвольного целого числа), а также в выполнении с ней операций пересылки в нее и извлечения из нее этого значения. Функция – это программный объект, задающий вычислительную процедуру определения значения, зависимую от некоторых аргументов. Вводится в языки программирования для задания программистом необходимых ему функциональных зависимостей. В каждом языке высокого уровня имеется в наличии библиотека стандартных функций: арифметических, логических, символьных, файловых и т.п. Функции – как стандартные, так и задаваемые программистом – используются в программе в выражениях. Выражения строятся из величин – постоянных и переменных, функций, скобок, знаков операций и т.д. Выражение имеет конкретный тип, определяемый типом принимаемых в его итоге вычисления значений. Возможны выражения арифметические, принимающие числовые значения, а также логические, символьные, строковые и т. д. Выражение «5 + 7» является, несомненно, арифметическим, а выражение «А + В» может иметь самый разный смысл – в зависимости от того, что стоит за идентификаторами А и В. Процедура – это программный объект, представляющий некоторый самостоятельный этап обработки данных. По сути, процедуры явились преемниками подпрограмм, которые были введены для облегчения разработки программ еще на самых ранних стадиях формирования алгоритмических 144 языков. Процедура имеет входные и выходные параметры, называемые формальными. При использовании процедуры формальные параметры заменяются на фактические. Модуль – это специальная программная единица, предназначенная для создания библиотек и разделения больших программ на логически связанные блоки. По сути, модуль – это набор констант, типов данных, переменных, процедур и функций. В состав модуля входят разделы: заголовок, интерфейс, реализация, инициализация. Заголовок необходим для ссылок на модуль. Интерфейс содержит объявления, включая процедуры и функции. Раздел «реализация» содержит тела процедур и функций, перечисленных в интерфейсной части. Раздел «инициализация» содержит операторы, необходимые для инициализации модуля. Каждый модуль компилируется отдельно, и каждый элемент модуля можно использовать в программе без дополнительного объявления. 5. Структуры и типы данных языка программирования Любые данные, то есть константы, переменные, свойства, значения функции или выражения характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, которые применимы к нему. Кроме того, тип определяет также формат внутреннего представления данных в памяти ПК. Необходимость использования типов данных Типы данных различаются, начиная с нижних уровней системы. Так, например, даже в Ассемблере х86 различаются типы «целое число» и «вещественное число». Это объясняется тем, что для чисел рассматриваемых типов отводятся различные объёмы памяти, используются различные регистры микропроцессора, а для операций с ними применяются различные команды Ассемблера и различные ядра микропроцессора. Концепция типа данных появилась в языках программирования высокого уровня как естественное отражение того факта, что обрабатываемые 145 программой данные могут иметь различные множества допустимых значений, храниться в памяти компьютера различным образом, занимать различные объёмы памяти и обрабатываться с помощью различных команд процессора. Типы данных бывают следующие: ‒ простые: 1) Перечислимый тип. Может хранить только те значения, которые прямо указаны в его описании. 2) Числовые. Хранятся числа. Могут применяться обычные арифметические операции. 3) Целочисленные: со знаком, то есть могут принимать как положительные, так и отрицательные значения; и без знака, то есть могут принимать только неотрицательные значения. 4) Вещественные: с запятой (то есть хранятся знак и цифры целой и дробной частей) и с плавающей запятой (то есть число приводится к виду m*be, где m -- мантисса, b -- основание показательной функции, e -- показатель степени (порядок) (в англоязычной литературе экспонента), причём в нормальной форме 0<=m
«Информатика: технические средства реализации информационных процессов; компьютерные сети» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты

Тебе могут подойти лекции

Автор(ы) Теличко В.Г.
Смотреть все 462 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot