Программное обеспечение ЭВМ

Тема1.Програмное обеспечение ЭВМ



1. Виды программного обеспечения ЭВМ



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

системное; 

прикладное. 



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



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



В настоящее время существует большое количество ОС, разработанных для ЭВМ различных типов. На ЭВМ Единой Системы (ЕС ЭВМ), например, использовались такие операционные системы, как СВМ и ОС ЕС, на малых ЭВМ (СМ-4, СМ-1420 и др.) - ОС РВ и RSX-11. На персональных ЭВМ долгое время эксплуатировалась ОС-MS-DOS. В настоящее время получили распространение системы Windows 98/Me, Windows 2000, Linix.



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



Например, большое распространение получили следующие сетевые ОС: NetWare 4.1 (фирма Novell), Windows NT Server 3.5 (фирма Microsoft) и LAN Server 4.0 Advanced (фирма IBM). Однако в последнее время лидирующие позиции начинает занимать ОС Windows 2000 Server фирмы Microsoft.  



Для расширения возможностей операционных систем и предоставления набора дополнительных услуг используются сервисные программы. Их можно разделить на следующие группы:

интерфейсные системы; 

оболочки операционных систем; 

утилиты. 



Интерфейсные системы являются естественным продолжением операционной системы и модифицируют как пользовательский, так и программный интерфейсы, а также реализуют дополнительные возможности по управлению ресурсами ЭВМ. В связи с тем, что развитая интерфейсная система может изменить весь пользовательский интерфейс, часто их также называют операционными системами. Это относится, например, к Windows 3.11 и Windows 3.11 for WorkGroups (для рабочих групп).



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



На ПЭВМ широко используются такие программы-оболочки, как Norton Commander, FAR Manager и Windows Commander.



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

обслуживание магнитных дисков; 

обслуживание файлов и каталогов; 

предоставление информации о ресурсах компьютера; 

шифрование информации; 

защита от компьютерных вирусов; 

архивация файлов и др. 



Существуют отдельные утилиты, используемые для решения одного из перечисленных действий, и многофункциональные комплекты утилит. В настоящее время для ПЭВМ среди многофункциональных утилит одним из наиболее совершенных является комплект утилит Norton Utilities. Существуют его версии для использования в среде DOS и Windows.



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



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



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



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



К типовому прикладному ПО относят следующие программы:

текстовые процессоры; 

табличные процессоры; 

системы иллюстративной и деловой графики (графические процессоры); 

системы управления базами данных; 

экспертные системы; 

программы математических расчетов, моделирования и анализа экспериментальных данных. 



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



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







2 Назначение, функции, классификация основных компонентов системного программного обеспечения. 





Cистемное программное обеспечение может быть разделено на следующие пять групп: 

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

Системы управления файлами. 

Интерфейсные оболочки для взаимодействия пользователя с ОС и программные среды. 

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

Утилиты. 

Рассмотрим вкратце эти группы системных программ. 

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

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



 

Основными функциями, которые выполняет ОС, являются следующие: 

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

прием и исполнение программных запросов па запуск, приостановку, остановку других программ; 

загрузка в оперативную намять подлежащих исполнению программ, 

инициация программы (передача ей управлении, в результате процессор исполняет программу)'. 

идентификация всех программ и данных; 

обеспечение работы систем управлений файлами (СУФ) и/или 

управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения; 

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

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

удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для соответствующих ОС); 

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

планирование и диспетчеризация задач в соответствии с заданными стратегией и дисциплинами обслуживания; 

организация механизмов обмена сообщениями и данными между выполняющимися программами; 

защита одной программы от влияния другой; обеспечение сохранности данных; 

предоставление услуг на случай частичного сбоя системы; 

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

 

Система управления файлами

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

Можно сказать, что всем известная файловая система FAT (file allocation table) имеет множество реализаций как система управления файлами, например FAT-16 для самой MS-DOS. Super-FAT для OS/2. FAT для Windows NT и т. д. Другими словами, для работы с файлами, организованными в соответствии с некоторой файловой системой, для каждой ОС должна быть разработана соответствующая система управления файлами; и эта система управления файлами будет работать только в той ОС, для которой она и создана. 

Интерфейсные оболочки



Для удобства взаимодействия с ОС могут использоваться дополнительные интерфейсные оболочки. Их основное назначение — либо расширить возможности по управлению ОС, либо изменить встроенные в систему возможности. В качестве классических примеров интерфейсных оболочек и соответствующих операционных сред выполнения программ можно назвать различные варианты графического интерфейса X Window и системах семейства UNIX (например, К Desktop Environment в Linux), PM Shell или Object Desktop в OS/2 с графическим интерфейсом Presentation Manager, наконец, можно указать разнообразные варианты интерфейсов для семейства ОС Windows компании Microsoft, которые заменяют Explorer и могут напоминать либо UNIX с его графическим интерфейсом, либо OS/2, либо MAC OS. Следует отметить, что о семействе ОС компании Microsoft с общим интерфейсом, реализуемым программными модулями с названием Explorer (в файле system.ini, который находится в каталоге Windows, имеется строка SHELL=EXPLORER.EXE), все же можно сказать, что заменяемой в этих системах является только интерфейсная оболочка, в то время как сама операционная среда остается неизменной; она интегрирована в ОС. Другими словами, операционная среда определяется программными интерфейсами, то есть API (application program interface). Интерфейс прикладного программирования (API) включает в себя управление процессами, памятью и вводом/выводом. 

Ряд операционных систем могут организовывать выполнение программ, созданных для других ОС. Например, в OS/2 можно выполнять как программы, созданные для самой OS/2, так и программы, предназначенные для выполнения в среде MS-DOS и Windows 3.x. Соответствующая операционная среда организуется в операционной системе в рамках отдельной виртуальной машины. Аналогично, в системе Linux можно создать условия для выполнения некоторых программ, написанных для Windows 95/98. Определенными возможностями исполнения программ, созданных для иной операционной среды, обладает и Windows NT. Эта система позволяет выполнять некоторые программы, созданные для MS-DOS, OS/2 1.x, Windows 3.x. Правда, в своем последнем семействе ОС Windows ХР разработчики решили отказаться от поддержки возможности выполнения DOS-программ. 

Наконец, к этому классу системного программного обеспечения следует отнести и эмуляторы, позволяющие смоделировать в одной операционной системе какую-либо другую машину или операционную систему. Так, известна система эмуляции WMWARE, которая позволяет напустить в среде Linux любую другую ОС, например Windows. Можно, наоборот, создать эмулятор, работающий в среде Windows, который позволит смоделировать компьютер работающий под управлением любой ОС, в том числе и под Linux. Таким образом, термин операционная среда означает соответствующий интерфейс, необходимый программам для обращения к ОС с целью получить определенный сервис - выполнить операцию ввода/вывода, получить или освободить участок памяти и т. д. 

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



Система программирования на представлена прежде всего такими компонентами, как транслятор с соответствующего языка, библиотеки подпрограмм, редакторы, компоновщики и отладчики. Не бывает самостоятельных (оторванных от ОС) систем программирования. Любая система программирования может работать только в соответствующей ОС, под которую она и создана, однако при этом она может позволять разрабатывать программное обеспечение и под другие ОС. Например, одна из популярных систем программирования на языке C/C++ от фирмы Watcom для OS/2 позволяет получать программы и для самой OS/2, и для DOS, и для Windows. 

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

Утилиты



Под утилитами понимают специальные системные программы, с помощью которых можно как обслуживать саму операционную систему, так и подготавливать для работы носители данных, выполнять перекодирование данных, осуществлять оптимизацию размещения данных на носителе и производить некоторые другие работы, связанные с обслуживанием вычислительной системы. К утилитам следует отнести и программу разбиения накопителя на магнитных дисках на разделы, и программу форматирования, и программу переноса основных системных файлов самой ОС. Также к утилитам относятся и небезызвестные комплексы программ от фирмы Symantec, носящие имя Питера Нортона (создателя этой фирмы и соавтора популярного набора утилит для первых IBM PC). Естественно, что утилиты могут работать только и соответствующей операционной среде.



5 КЛАССИФИКАЦИЯ Прикладного программного обеспечения

К прикладному программному обеспечению (application software) относятся компьютерные программы, написанные для пользователей или самими пользователями, для задания компьютеру конкретной работы. Программы обработки заказов или создания списков рассылки — пример прикладного программного обеспечения. Программистов, которые пишут прикладное программное обеспечение, называют прикладными программистами.

Классификация

По типу

-программные средства общего назначения: 

Текстовые редакторы

Системы компьютерной вёрстки

Графические редакторы

СУБД

-программные средства специального назначения 

Экспертные системы

Мультимедиа приложения (Медиаплееры, программы для создания/редактирования видео, звука, Text-To-Speech и пр.)

Гипертекстовые системы (Электронные словари, энциклопедии, справочные системы)

Системы управления содержимым

-программные средства профессионального уровня 

По сфере применения

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

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

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

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

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

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

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

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

-Прикладные программы для проектирования и конструирования. Используются при разработке аппаратного («Железо») и программного обеспечения. Охватывают автоматизированный дизайн (computer aided design — CAD), автоматизированное проектирование (computer aided engineering — CAE), редактирование и компилирование языков программирования, программы интегрированной среды разработки (Integrated Development Environments), интерфейсы для прикладного программирования (Application Programmer Interfaces).



ОПРЕДЕЛЕНИЕ ППП



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

В зависимости от характера решаемых задач различают следующие разновидности ППП: 

1) пакеты для решения типовых инженерных, планово-экономических, общенаучных задач; 

2) пакеты системных программ; 

3) пакеты для обеспечения систем автоматизированного проектирования и систем автоматизации научных исследований; 

4) пакеты педагогических программных средств и другие. 

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

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

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

Часто пакеты прикладных программ располагают базами данных для хранения данных и передачи их прикладным программам.