Программное обеспечение компьютера
Компьютер — это формальный исполнитель команд, которые задает ему пользователь. Задать команды можно разными способами. Например, можно ввести одну команду, подождать, пока она выполнится, затем ввести следующую и так далее. Мы так и поступаем, когда сохраняем файл, копируем его на другой носитель или выводим на печать. Но то, что для нас является одной командой, для компьютера разворачивается в целую программу действий.
ПримерВы хотите посмотреть, что у вас есть на дискете. Это можно сделать с помощью дисковода, но учтите, что дисковод (НГМД — накопитель на гибких магнитных дисках или floppy-дисковод) «понимает» только такие элементарные операции, как включить/выключить двигатель дисковода, установить читающие головки на определенную дорожку, выбрать определенный сектор, прочесть информацию с дорожки диска и скопировать ее в оперативную память компьютера и т. д. Поэтому даже для чтения информации с дискеты компьютер выполняет несколько десятков элементарных команд дисковода. И у каждого устройства есть свой набор команд, свой «язык».
Стоит также заметить, что ввод команд человеком занимает достаточно много времени по сравнению со скоростью их выполнения компьютером. Чтобы избежать простоев процессора, неизбежных, когда команды вводятся пользователем «вручную», целесообразно подготовить сначала зада-
ние, включающее в себя серию последовательных команд, на каком-либо внешнем устройстве, а затем уже загружать это задание для его выполнения. Такое заранее подготовленное задание, написанное на языке, понятном компьютеру, называется программой.
Уже при разработке первых ЭВМ были сформулированы основные принципы их работы. К ним относятся:
1. Принцип программного управления работой ЭВМ. Решение поставленной задачи реализуется в полном соответствии с программой, которая заранее составлена и введена в память компьютера. Программа — это последовательность команд.
2. Принцип хранимой программы. Команды представляются в числовой форме и хранятся в том же запоминающем устройстве, что и обрабатываемые с их помощью данные.
3. Принцип условного перехода. Он означает возможность в процессе выполнения программы менять последовательность действий в зависимости от полученных промежуточных результатов.
4. Принцип использования двоичного кодирования. Применяется для представления информации любого вида (в том числе и программ).
5. Принцип иерархичности запоминающего устройства (ЗУ). Наиболее часто используемые программы и данные хранятся в быстром ЗУ сравнительно малой емкости (ОЗУ), а более редко используемые — в медленном, но гораздо большей емкости (ВЗУ).
Таким образом, в основе работы любого компьютера лежит принцип программного управления.
Совершим краткий исторический экскурс.
Первоначально работа компьютера организовывалась так:заранее составлялась программа для решения каждой конкретной задачи. Команды этой программы последовательно вводились с пульта в память ЭВМ и затем выполнялись. После того, как программа завершала свою работу (заканчивала вычисления) вводилась следующая программа и так далее. Когда быстродействие процессоров и объем оперативной памяти возрасли, такой метод стал существенной помехой на пути эффективного использования возможностей ЭВМ. Появились специальные устройства для подготовки программ и данных, в частности, перфораторы, позволяющие перенести составленную программу на перфокарты и
перфоленты, а вместо пульта для ввода программы в память ЭВМ стали использоваться устройства для быстрого считывания информации с этих носителей. Процесс ввода программ ускорился. Затем несколько отдельных программ стали объединять в пакеты заданий. Чтобы сообщить ЭВМ, что одна программа закончилась и начинается другая, появился язык управления заданиями.
С ростом быстродействия компьютера и появлением магнитных носителей (магнитных лент, магнитных барабанов, магнитных дисков) появилась возможность коллективного использования ресурсов компьютера. То есть несколько пользователей могли одновременно выполнять свои задачи и использовать по мере необходимости ресурсы ЭВМ — процессорное время, общую память на магнитных дисках, общие устройства вывода результатов (устройства печати) и пр. Возникла необходимость координировать их работу и, как результат, появились программы, обеспечивающие управление потоком заданий пользователей, управление ресурсами, защиту программ и данных и пр. Совокупность таких программ получила название операционной системы.
Совершенствовались и сами языки программирования. Чтобы пользователь мог составлять программу, ориентируясь не на конкретную ЭВМ, а на специфику решаемой задачи, разрабатывались такие среды программирования, которые позволяли составлять программы, где один оператор соответствовал целому набору действий. Для выполнения таких программ часть памяти отводилась для хранения основных программных модулей самой среды программирования, с помощью которой программа пользователя переводилась на язык элементарных команд, понятных процессору.
Программисты составляли программы для решения самых разных задач. Из наиболее удачных и эффективных программ стали создаваться библиотеки прикладных программ. Сначала в этих библиотеках хранились программы, необходимые для проведения тех или иных расчетов, но затем появились программные средства, позволявшие решать свои задачи пользователю, не знающему языков программирования. Да и сам круг задач расширился: кроме проведения рассчетов можно было создавать базы данных, работать с текстовыми документами. С появлением графических дисплеев и матричных принтеров появилась возможность работать с графикой. Дальнейший рост мощности компьютеров позволил полноценно обрабатывать звуковую информацию, создавать мультимедийные объекты. То есть круг при-
кладных программ расширился очень существенно и сейчас составляет значительную часть программного обеспечения.
Программное обеспечение современного компьютера очень разнообразно в соответствии с многообразием задач, решаемых пользователями с его помощью, и множеством операций, выполняемых устройствами компьютера. Все программные модули взаимосвязаны через управляющие (системные) программы. Часть модулей работает во взаимодействии с пользователем, часть — автоматически. Каждая из программ выполняет свою функцию, а все вместе они обеспечивают автоматизированное выполнение информационных процессов при решении задач пользователей. Таким образом программное обеспечение компьютера — это автоматизированная информационная система, достаточно большая и сложная.
Современные программы состоят, как правило, из большого числа модулей, а потому вместо термина «программа» чаще используются термины «программное средство» (ПС) и «пакет программ».
Какие же виды программных средствможно выделить?
Прежде всего, это программы, необходимые для управления работой самого компьютера как сложной системы. Пользователь, как правило, может даже не знать, что это за программы, сколько их, что они делают. Но большинство команд пользователя выполняется именно с их помощью. В совокупности они называются системным программным обеспечением (ПО). Кнему традиционно относят:
• программы начальной загрузки компьютера. Они хранятся в ПЗУ (постоянном запоминающем устройстве) и обеспечивают проверку работоспособности основных устройств компьютера после его включения и передачу управления операционной системе. Эти программы часто называют базовым ПО;
• операционные системы (ОС), необходимые для управления согласованной работой всех устройств и программ компьютера, выполнения команд пользователя;
• операционные оболочки, предназначенные для обеспечения удобного для пользователя способа работы с прикладными программами и файлами;
• драйверы устройств, обеспечивающие программную поддержку работы конкретных устройств (в последнее время входят в состав операционной системы).
Другой класс программного обеспечения — прикладное ПО. Именно оно предназначено для решения пользователем задач из самых различных предметных областей — математики, лингвистики, делопроизводства, управления и так далее. Существуют самые разные класификации прикладного ПО. Приведем класификацию по типам решаемых задач.
В прикладном ПО можно выделить следущие группы программных средств:
• ПС для обработки текстов — текстовые редакторы, текстовые процессоры, редакционно-издательские системы, программы-переводчики, программы проверки орфографии и синтаксиса, лингвокорректоры, программы оптического распознавания символов и т. п.;
• ПС для обработки числовой информации — электронные таблицы, пакеты математических программ, пакеты для статистической обработки данных и др.;
• ПС для обработки графической информации — графические редакторы, аниматоры, программы деловой и презентационной графики, средства работы с трехмерными и видеоизображениями и др.;
• ПС для обработки звуковой информации — музыкальные и звуковые редакторы, синтезаторы звука, программы распознавания и синтеза речи и др.;
• ПС, обеспечивающие работу в телекоммуникационных сетях — почтовые программы, поисковые системы, браузеры и др.;
• ПС, обеспечивающие автоматизированное хранение информации — системы управления базами данных (СУБД), специализированные информационно-поисковые системы (ИПС) и др.;
• ПС, используемые в процессах управления и диагностики — различные типы автоматизированных систем управления (АСУ) и систем автоматического управления (САУ), системы поддержки принятия решений (СППР), экспертные системы (ЭС) и др.;
• ПС, применяемые для проведения исследовательских и проектно-конструкторских работ — специализированные моделирующие программы, системы автоматирированно-го проектирования (САПР) и др.;
• ПС, используемые в обучении — электронные учебники, тренажеры, тесты и др.;
• игровые программы;
• программы, созданные пользователем с помощью сред программирования.
С назначением и особенностями некоторых из этих программных средств (текстовый и графический редакторы, электронные таблицы, почтовые программы) вы уже знакомы. С некоторыми знакомство только предстоит. Но, наверное, нет сейчас ни одного человека, который бы успел освоить возможности и поработать со всеми программами перечисленных классов — так обширен их перечень.
Еще один класс программного обеспечения — специальное ПО. Основное его отличие от системного ПО в том, что пользователь сам решает, будет ли он использовать эти ПС или нет, а отличие от прикладного ПО состоит в том, что специальные ПС используются не для решения задач из предметных областей, а для помощи пользователю в использовании компьютера.
Пример.Когда пользователь активно работает за компьютером, то ему часто приходится сохранять на винчестере нужные файлы и удалять те, которые больше не требуются. При удалении файла место, которое он занимал, освобождается. На это место в дальнейшем может быть записан другой файл, но его размер может быть меньше. В результате многократного удаления/записи файлов на диске появляется много небольших «пустых» мест. Их размеры не позволяют записать на них новые файлы целиком, и если свободного места на диске немного, то файлы большого размера разбиваются на отдельные фрагменты и записываются по частям. В этом случае говорят, что информация записана фрагментарно (не непрерывно). Обращение к таким файлам требует гораздо большего времени и, чтобы избежать этого, пользователь может провести дефрагментацию диска, то есть выполнить программу, которая расположит, если это возможно, файлы один за другим, собрав тем самым все свободные участки в одну область.
В специальном ПО можно выделить инструментальное ПО и сервисное ПО. Инструментальное ПО — это всевозможные среды программирования, с помощью которых создается все многообразие программных средств. К сервисному ПО относятся:
• антивирусные программы;
• программы-архиваторы;
• утилиты, расширяющие возможности ОС по управлению аппаратными и программными средствами (восстановление ошибочно удаленных файлов, дефрагментация диска, попытка восстановления «испорченных» секторов диска и т. п.
Программное обеспечение компьютера постоянно совершенствуется. Появляются новые программы, позволяющие расширить круг решаемых задач. Существующие программы модифицируются: устраняются замеченные ошибки, добавляются новые функции, пользовательский интерфейс (средства взаимодействия пользователя с программой) делается более удобным. Для сложных программ составляются инструкции, пишутся обучающие версии, демонстрирующие приемы и правила работы и так далее. Все эти процессы называют сопровождением программ.
В предыдущих параграфах говорилось, что в одной и той же системе можно выделить различные подсистемы, по разному провести структуризацию.
Одной из важных подсистем программного обеспечения является файловая система. В виде файлов хранятся и сами программы, и данные к ним, и результаты их работы.
Пример. Посмотрите каталог, в котором хранятся файлы текстового редактора, с которым вы работаете. Среди файлов этого каталога есть загрузочные файлы, выполнение которых загружает редактор в оперативную память и позволяет пользователю работать в нем. Есть файлы с данными, например, различные шрифты или файлы помощи. Есть текстовые файлы, созданные с помощью этого редактора.
Вы уже знакомы с понятием файла, его свойствами и характеристиками. Кратко напомним лишь основные положения.
Файл — это поименованная целостная совокупность записей на внешнем носителе. Иными словами, файл — это совокупность записей, логически взаимосвязанных между собой, хранящихся на внешнем носителе под определенным именем.
То, что файл — целостная совокупность записей, означает, что, например, нельзя скопировать или удалить только половинку файла.
В определении подчеркивается, что файлы хранятся лишь на внешних носителях. Это, властности означает, что по отношению к оперативной памяти нельзя сказать, что информация в ней хранится в виде файлов.
То есть файловая система — это способ хранения информации на внешних носителях.
Одним из основных принципов работы компьютера является принцип программного управления, в соответствии скоторым решение поставленной задачи реализуется в полном соответствии с программой, которая заранее составлена и введена в память компьютера.
Программа— конечная последовательность описаний и команд, соответствующая правилам синтаксиса конкретного языка программирования. Выполнение ее на компьютере есть реализация решения поставленной задачи.
Сопровождение программы— исправление ошибок, внесение модификаций и проведение консультаций по программе, находящейся в эксплуатации.
Программное обеспечение компьютера— совокупность программ, обеспечивающих согласованную работу всех подсистем компьютера и предоставляющих пользователю возможности решения прикладных задач.