Тема №1. Классификация программного обеспечения.
Введение в системное программное обеспечение
Вопросы:
1. Классификация программного обеспечения.
1.1. Прикладные программы.
1.2. Специальное программное обеспечение информационных и управляющих систем.
1.3. Системное программное обеспечение
2. Классификация системного программного обеспечения
Управляющие системные программы.
Обрабатывающие системные программы.
Базовое ПО.
Сервисное ПО.
Группы системных программ.
3. Требования к системному программному обеспечению.
3.1. Необходимость использования специальных языков для создания СПО.
Традиционно программное обеспечение подразделяют на два класса:
1. системное программное обеспечение (СПО) и
2. прикладное (пользовательское)программное обеспечение (ППО)
Выделим еще один класс (скорее группу) программ - специальное программное обеспечение информационных и управляющих систем.
Прикладные программы предназначены для решения функциональных задач, они выполняют обработку информации различных предметных областей.
К специальному программному обеспечению информационных и управляющих систем относятся
программы (системы) управления базами данных;
программы управления языком интерфейса информационных систем;
программы сбора и предварительной обработки информации (в информационно-измерительных системах, например, бортовые системы).
ПО этого класса часто оказывается скрытым в составе драйверов оборудования или поставляется в виде библиотек функционального расширения языков программирования.
Поэтому часто такие ПО относят к системному программному обеспечению.
Система управления базами данных (СУБД) - это сложная программная система накопления и последующего манипулирования данными. Каждая СУБД предоставляет интерфейс с базой данных и может располагать средствами непосредственного доступа к последней ее пользователей.
С помощью языка описания данных создаются описания элементом и записей данных, а также взаимосвязей между ними. Для выполнения операция с базой данных (например, выборка или обновление) в прикладных программах используется язык манипулирования данными. Фактическая структура физического хранения данных известна только СУБД.
Системное программное обеспечение (System Software) - совокупность программ и программных комплексов для обеспечения работы компьютера и сетей ЭВМ.
СПО управляет ресурсами компьютерной системы и позволяет пользователям программировать в более выразительных языках, чем машинный язык компьютера. Состав СПО мало зависит от характера решаемых задач пользователя.
Системное программное обеспечение предназначено для:
создания операционной среды функционирования других программ (другими словами, для организации выполнения программ);
автоматизации разработки (создания) новых программ;
обеспечения надежной и эффективной работы самого компьютера и вычислительной сети;
проведения диагностики и профилактики аппаратуры компьютера и вычислительных сетей;
выполнения вспомогательных технологических процессов (копирование, архивирование, восстановление файлов программ и баз данных и т.д.).
Данный класс программных продуктов тесно связан с типом компьютера и является его неотъемлемой частью.
Программные продукты данного класса в основном ориентированы на квалифицированных пользователей - профессионалов в компьютерной области: системного программиста, администратора сети, прикладного программиста, оператора.
Программные продукты данного класса носят общий характер применения, независимо от специфики предметной области.
К системным программным продуктам предъявляются высокие требования по надежности и технологичности работы, удобству и эффективности использования.
Классификация системного программного обеспечения
В СПО традиционно включают
системные управляющие программы
системные обрабатывающие программы.
Управляющие системные программы организуют корректное функционирование всех устройств системы.
Основные системные функции управляющих программ -
управление вычислительными процессами и вычислительными комплексами
работа с внутренними данными ОС.
Как правило, они находятся в основной памяти. Это резидентные программы, составляющие ядро ОС. Управляющие программы, которые загружаются в память непосредственно перед выполнением, называю транзитными (transitive).
Обрабатывающие системные программы выполняются как специальные прикладные задачи, или приложения.
Замечание. В пакеты системных программ помимо основных программ, допускающих реконфигурацию, входят специальные настроечные программы, называемые программами инсталляции.
Другая классификация
Часто Системное ПО компьютера подразделяют на БАЗОВОЕ и СЕРВИСНОЕ программное обеспечение.
БАЗОВОЕ программное обеспечение (base software) - минимальный набор программных средств, обеспечивающих работу компьютера.
К базовому программному обеспечению компьютера относятся
операционные системы и драйверы в составе ОС;
интерфейсные оболочки для взаимодействия пользователя с ОС (операционные оболочки) и программные среды;
системы управления файлами.
Операционная система - совокупность программных средств, обеспечивающая управление аппаратной частью компьютера и прикладными программами, а также их взаимодействием между собой и пользователем.
Операционная система предназначена для управления выполнением пользовательских программ, планирования и управления вычислительными ресурсами ЭВМ.
Операционная система, с одной стороны, выступает как интерфейс между аппаратурой компьютера и пользователем с его задачами, с другой стороны, предназначена для эффективного использования ресурсов вычислительной системы и организации надежных вычислений.
Системы управления файлами предназначены для организации более удобного доступа к данным, организованным как файлы.
Вместо низкоуровневого доступа к данным с указанием конкретных физических адресов система управления файлами позволяет использовать логический доступ с указанием имени файла.
Любая система управления файлами не существует сама по себе - она разработана для работы в конкретной ОС и с конкретной файловой системой. То есть можно было бы систему управления файлами отнести к ОС.
Но в связи с тем, что
1) ряд ОС позволяет работать с несколькими файловыми системами (либо с одной из нескольких, либо сразу с несколькими одновременно); а дополнительную файловую систему можно установить (т.е. они самостоятельны)
2) простейшие ОС могут работать и без файловых систем;
системы управления файлами выделяются в отдельную группу системных программ.
СЕРВИСНОЕ программное обеспечение - программы и программные комплексы, которые расширяют возможности базового программного обеспечения и организуют более удобную среду работы пользователя.
Это набор сервисных, дополнительно устанавливаемых программ, которые можно классифицировать по функциональному признаку следующим образом:
драйверы специфических и специальных устройств (те, которые не поставляются в составе ОС).
программы диагностики работоспособности компьютера;
антивирусные программы, обеспечивающие защиту компьютера, обнаружение и восстановление зараженных файлов;
программы обслуживания дисков, обеспечивающие проверку качества поверхности магнитного диска, контроль сохранности файловой системы на логическом и физическом уровнях, сжатие дисков, создание страховых копий дисков, резервирование данных на внешних носителях и др.;
программы архивирования данных, которые обеспечивают процесс сжатия информации в файлах с целью уменьшения объема памяти для ее хранения;
программы обслуживания сети.
Эти программы часто называются утилитами. (Заметим, что к антивирусным средствам этот термин обычно не применяется)
Утилиты - программы, служащие для выполнения вспомогательных операций обработки данных или обслуживания компьютеров (диагностики, тестирования аппаратных и программных средств, оптимизации использования дискового пространства, восстановления разрушенной на магнитном диске информации и т.п.).
Отдельно вспомним о такой группе системного ПО как системы программирования.
Это набор специализированных программных продуктов, которые являются инструментальными средствами разработчика. Программные продукты данного класса поддерживают все этапы процесса программирования, отладки и тестирования создаваемых программ.
Система программирования включает следующие программные компоненты:
редактор текста;
транслятор с соответствующего языка;
компоновщик (редактор связей);
отладчик;
библиотеки подпрограмм.
Заметим, что любая система программирования может работать только в соответствующей ОС, под которую она и создана, однако при этом она может позволять разрабатывать программное обеспечение и под другие ОС.
Например, одна из популярных систем программирования на языке С/С++ от фирмы Watcom для OS/2 позволяет получать программы и для самой OS/2, и для DOS, и для Windows.
Редактор текста - это программа для ввода и модификации текста.
Трансляторы предназначены для преобразования программ, написанных на языках программирования, в программы на машинном языке.
Трансляторы делятся на два класса:
Компиляторы
Интерпретаторы.
Компиляторы переводят весь исходный модуль на машинный язык. Интерпретатор последовательно переводит на машинный язык и выполнят операторы исходного модуля
(У интерпретаторов есть недостаток. Низкая скорость работы интерпретируемых программ.)
Преимущество интерпретатора перед компилятором состоит в том, что программа пользователя имеет одно представление - в виде текста. При компиляции одна и та же программа имеет несколько представлений - в виде текста и в виде выполняемого файла.
Компоновщик, или редактор связей - системная обрабатывающая программа, редактирующая и объединяющая объектные (ранее оттраслированные) модули в единые загрузочные, готовые к выполнению программные модули. Загрузочный модуль может быть помещен ОС в основную память и выполнен.
Отладчик позволяет управлять процессом исполнения программы, является инструментом для поиска и исправления ошибок в программе. Базовый набор функций отладчика включает:
пошаговое выполнение программы (режим трассировки) с отображением результатов,
остановка в заранее определенных точках,
возможность остановки в некотором месте программы при выполнении некоторого условия;
изображение и изменение значений переменных.
Загрузчик - системная обрабатывающая программа, объединяющая основные функции редактора связей и программы выборки в одном пункте задания. Загрузчик помещает находящиеся в его входном наборе данных объектные и загрузочные модули в оперативную память, объединяет их в единую программу, корректирует перемещаемые адресные константы с учетом фактического адреса загрузки и передает управление в точку входа созданной программы.
Средства сетевого доступа обеспечивают обработку, передачу и хранение данных в сети.
Заметим, что чаще говорят о сетевых операционных системах, которые предоставляют пользователям различные виды сетевых служб (управление файлами, электронная почта, процессы управления сетью и др.)
Ключом к использованию этих ресурсов является сервер, специальная программа на компьютере, подключенному к сети, которая принимает запросы (или команды) и посылает ответы автоматически.
Программы, предназначенные для подачи запросов серверу, называются программами-клиентами. Сервер предназначен для их обслуживания. Клиент посылает запросы пользователя на сервер, используя стандартизированный формат, называемый протоколом. Ответ сервера содержит информацию, представленную в виде файла, содержащего данные того или иного формата.
Постоянно ведется разработка все новых программ-клиентов, предлагающих более удобные способы взаимодействия с сервером.
Таким образом, в системном ПО мы выделили шесть групп системных программ:
операционные системы;
интерфейсные оболочки для взаимодействия пользователя с ОС (операционная оболочка) и программные среды;
системы управления файлами;
системы программирования;
утилиты;
средства сетевого доступа.
Требования к системному программному обеспечению
Системные программы должны удовлетворять следующим требованиям:
прозрачность работы;
гарантированная надежность выполнения в соответствии со спецификациями;
Функциональные требования называются спецификациями
максимальная скорость выполнения;
минимальные затраты на хранение машинных кодов;
поддержка стандартных средств связи с прикладными программами.
Эффективность системных программ зависит от времени их создания и надежности исполняемого кода.
Требование эффективности системных программ вызывает необходимость использования специальных языков
машинно-ориентированных типа языка Assembler и
высокого уровня типа C или C++.
К типам данных этих языков отнесены указатели на данные различных типов или адреса данных и программных объектов.
Работа с большинством пакетов для разработки системного программного обеспечения предполагает знание и использование ассемблера для создания модулей и ассемблерных вставок.