Программное обеспечение компьютера

Компьютер — это формальный исполнитель команд, ко­торые задает ему пользователь. Задать команды можно раз­ными способами. Например, можно ввести одну команду, подождать, пока она выполнится, затем ввести следующую и так далее. Мы так и поступаем, когда сохраняем файл, ко­пируем его на другой носитель или выводим на печать. Но то, что для нас является одной командой, для компьютера разворачивается в целую программу действий.

ПримерВы хотите посмотреть, что у вас есть на дискете. Это мож­но сделать с помощью дисковода, но учтите, что дисковод (НГМД — накопитель на гибких магнитных дисках или floppy-дисковод) «понимает» только такие элементарные операции, как включить/выключить двигатель дисково­да, установить читающие головки на определенную до­рожку, выбрать определенный сектор, прочесть информа­цию с дорожки диска и скопировать ее в оперативную память компьютера и т. д. Поэтому даже для чтения ин­формации с дискеты компьютер выполняет несколько де­сятков элементарных команд дисковода. И у каждого устройства есть свой набор команд, свой «язык».

Стоит также заметить, что ввод команд человеком зани­мает достаточно много времени по сравнению со скоростью их выполнения компьютером. Чтобы избежать простоев процессора, неизбежных, когда команды вводятся пользова­телем «вручную», целесообразно подготовить сначала зада-


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

Уже при разработке первых ЭВМ были сформулированы основные принципы их работы. К ним относятся:

1. Принцип программного управления работой ЭВМ. Ре­шение поставленной задачи реализуется в полном соот­ветствии с программой, которая заранее составлена и вве­дена в память компьютера. Программа — это последовательность команд.

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

3. Принцип условного перехода. Он означает возможность в процессе выполнения программы менять последовате­льность действий в зависимости от полученных промежу­точных результатов.

4. Принцип использования двоичного кодирования. При­меняется для представления информации любого вида (в том числе и программ).

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

Таким образом, в основе работы любого компьютера ле­жит принцип программного управления.

Совершим краткий исторический экскурс.

Первоначально работа компьютера организовывалась так:заранее составлялась программа для решения каждой конкретной задачи. Команды этой программы последовате­льно вводились с пульта в память ЭВМ и затем выполня­лись. После того, как программа завершала свою работу (за­канчивала вычисления) вводилась следующая программа и так далее. Когда быстродействие процессоров и объем опера­тивной памяти возрасли, такой метод стал существенной по­мехой на пути эффективного использования возможностей ЭВМ. Появились специальные устройства для подготовки программ и данных, в частности, перфораторы, позволяю­щие перенести составленную программу на перфокарты и


перфоленты, а вместо пульта для ввода программы в память ЭВМ стали использоваться устройства для быстрого считы­вания информации с этих носителей. Процесс ввода про­грамм ускорился. Затем несколько отдельных программ ста­ли объединять в пакеты заданий. Чтобы сообщить ЭВМ, что одна программа закончилась и начинается другая, появился язык управления заданиями.

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

Совершенствовались и сами языки программирования. Чтобы пользователь мог составлять программу, ориентируясь не на конкретную ЭВМ, а на специфику решаемой задачи, разрабатывались такие среды программирования, которые позволяли составлять программы, где один оператор соответ­ствовал целому набору действий. Для выполнения таких про­грамм часть памяти отводилась для хранения основных про­граммных модулей самой среды программирования, с помощью которой программа пользователя переводилась на язык элементарных команд, понятных процессору.

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


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

Программное обеспечение современного компьютера очень разнообразно в соответствии с многообразием задач, решаемых пользователями с его помощью, и множеством операций, выполняемых устройствами компьютера. Все программные модули взаимосвязаны через управляющие (системные) программы. Часть модулей работает во взаимо­действии с пользователем, часть — автоматически. Каждая из программ выполняет свою функцию, а все вместе они обеспечивают автоматизированное выполнение информаци­онных процессов при решении задач пользователей. Таким образом программное обеспечение компьютера — это авто­матизированная информационная система, достаточно боль­шая и сложная.

Современные программы состоят, как правило, из боль­шого числа модулей, а потому вместо термина «программа» чаще используются термины «программное средство» (ПС) и «пакет программ».

Какие же виды программных средствможно выделить?

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

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

операционные системы (ОС), необходимые для управле­ния согласованной работой всех устройств и программ компьютера, выполнения команд пользователя;

операционные оболочки, предназначенные для обеспече­ния удобного для пользователя способа работы с приклад­ными программами и файлами;

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


Другой класс программного обеспечения — прикладное ПО. Именно оно предназначено для решения пользователем задач из самых различных предметных областей — матема­тики, лингвистики, делопроизводства, управления и так да­лее. Существуют самые разные класификации прикладного ПО. Приведем класификацию по типам решаемых задач.

В прикладном ПО можно выделить следущие группы про­граммных средств:

• ПС для обработки текстов — текстовые редакторы, тек­стовые процессоры, редакционно-издательские системы, программы-переводчики, программы проверки орфогра­фии и синтаксиса, лингвокорректоры, программы опти­ческого распознавания символов и т. п.;

• ПС для обработки числовой информации — электронные таблицы, пакеты математических программ, пакеты для статистической обработки данных и др.;

• ПС для обработки графической информации — графиче­ские редакторы, аниматоры, программы деловой и пре­зентационной графики, средства работы с трехмерными и видеоизображениями и др.;

• ПС для обработки звуковой информации — музыкальные и звуковые редакторы, синтезаторы звука, программы распознавания и синтеза речи и др.;

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

• ПС, обеспечивающие автоматизированное хранение ин­формации — системы управления базами данных (СУБД), специализированные информационно-поисковые системы (ИПС) и др.;

• ПС, используемые в процессах управления и диагности­ки — различные типы автоматизированных систем управления (АСУ) и систем автоматического управления (САУ), системы поддержки принятия решений (СППР), экспертные системы (ЭС) и др.;

• ПС, применяемые для проведения исследовательских и проектно-конструкторских работ — специализированные моделирующие программы, системы автоматирированно-го проектирования (САПР) и др.;

• ПС, используемые в обучении — электронные учебники, тренажеры, тесты и др.;

• игровые программы;

• программы, созданные пользователем с помощью сред программирования.


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

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

Пример.Когда пользователь активно работает за компьютером, то ему часто приходится сохранять на винчестере нуж­ные файлы и удалять те, которые больше не требуются. При удалении файла место, которое он занимал, осво­бождается. На это место в дальнейшем может быть запи­сан другой файл, но его размер может быть меньше. В результате многократного удаления/записи файлов на диске появляется много небольших «пустых» мест. Их размеры не позволяют записать на них новые файлы це­ликом, и если свободного места на диске немного, то файлы большого размера разбиваются на отдельные фрагменты и записываются по частям. В этом случае го­ворят, что информация записана фрагментарно (не не­прерывно). Обращение к таким файлам требует гораздо большего времени и, чтобы избежать этого, пользователь может провести дефрагментацию диска, то есть выпол­нить программу, которая расположит, если это возмож­но, файлы один за другим, собрав тем самым все свобод­ные участки в одну область.

В специальном ПО можно выделить инструментальное ПО и сервисное ПО. Инструментальное ПО — это всевоз­можные среды программирования, с помощью которых со­здается все многообразие программных средств. К сервисно­му ПО относятся:

• антивирусные программы;

• программы-архиваторы;

• утилиты, расширяющие возможности ОС по управлению аппаратными и программными средствами (восстановле­ние ошибочно удаленных файлов, дефрагментация диска, попытка восстановления «испорченных» секторов диска и т. п.


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

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

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

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

Вы уже знакомы с понятием файла, его свойствами и ха­рактеристиками. Кратко напомним лишь основные поло­жения.

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

То, что файл — целостная совокупность записей, означа­ет, что, например, нельзя скопировать или удалить только половинку файла.

В определении подчеркивается, что файлы хранятся лишь на внешних носителях. Это, властности означает, что по отношению к оперативной памяти нельзя сказать, что информация в ней хранится в виде файлов.

То есть файловая система — это способ хранения инфор­мации на внешних носителях.


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

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

Сопровождение программы— исправление ошибок, вне­сение модификаций и проведение консультаций по програм­ме, находящейся в эксплуатации.

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