Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СПО

.pdf
Скачиваний:
39
Добавлен:
31.05.2015
Размер:
2.9 Mб
Скачать

ФГБОУ ВПО «Воронежский государственный технический университет»

О.Б. Кремер М.Ю. Сергеев

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

Утверждено Редакционно-издательским советом университета в качестве учебного пособия

Воронеж 2012

УДК 681.3

Кремер О.Б. Системное программное обеспечение: учеб. пособие / О.Б. Кремер, М.Ю. Сергеев. Воронеж: ФГБОУ ВПО «Воронежский государственный технический университет»,

2012. 247 с.

В учебном пособии рассматриваются основы организации операционных систем и принципы управления системными ресурсами.

Издание соответствует требованиям Государственного образовательного стандарта высшего профессионального образования по направлению 230100 «Информатика и вычислительная техника», специальности 230101 «Вычислительные машины, комплексы, системы и сети», дисциплине «Системное программное обеспечение».

Учебное пособие предназначено для студентов нормативной и сокращенной заочной форм обучения.

Пособие подготовлено в электронном виде в текстовом редакторе MS Word 2003 и содержится в файле СПО_ЗО.doc.

Табл. 18. Ил. 35. Библиогр.: 9 назв.

Научный редактор д-р техн. наук, проф. С.Л. Подвальный

Рецензенты: кафедра информационных и управляющих систем Воронежской государственной технологической академии (д-р техн. наук, проф. В.Ф. Лебедев); д-р техн. наук, проф. В.Л. Бурковский

©Кремер О.Б., Сергеев М.Ю., 2012

©Оформление. ФГБОУ ВПО «Воронежский государственный технический университет», 2012

ВВЕДЕНИЕ

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

Другое направление разработки системного программного обеспечения - построение трансляторов для языков программирования.

Главной целью данного пособия является изложение теоретического материала учебного курса по дисциплине «Системное программное обеспечение».

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

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

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

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

Пособие соответствует типовой программе по дисциплине «Системное программное обеспечение» и предназначено для студентов заочной полной и сокращенной форм обучения.

1. ОСНОВНЫЕ ПОНЯТИЯ СИСТЕМНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

1.1. Понятия прикладного и системного программного обеспечения

Программное обеспечение (ПО) - совокупность про-

грамм системы обработки информации и программных документов, необходимых для эксплуатации этих программ.

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

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

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

– прикладное программное обеспечение;

– системное программное обеспечение.

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

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

– эффективное управление компонентами вычислительной системы (процессор, оперативная память, носители информации, устройства ввода вывода, сетевое оборудование и т.д.);

– разработка нового программного обеспечения.

Внекоторых случаях, для акцентирования роли средств, выполняющих последнюю группу задач, их выделяют в специ-

альную категорию, называемую инструментальное про-

граммное обеспечение.

1.2. Состав системного программного обеспечения

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

1)операционные системы;

2)системы управления файлами;

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

4)инструментальные среды программирования;

5)утилиты.

Охарактеризуем кратко вышеперечисленные группы.

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

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

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

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

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

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

распределение памяти, а также организация виртуальной памяти;

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

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

прием и исполнение различных запросов от выполняющихся приложений (операционная система умеет выполнять очень большое количество системных функций или сервисов, которые могут быть запрошены из выполняющейся программы). Обращение к подобным сервисам осуществляется по ряду правил, которые и определяют интерфейс прикладного программирования (Application Program Interface, API) этой операционной системы;

обслуживание всех операций ввода-вывода;

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

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

планирование и диспетчеризация задач в соответствии

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

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

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

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

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

удовлетворение жестким ограничениям на время ответа

врежиме реального времени;

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

темы;

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

Назначение системы управления файлами — органи-

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

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

Следует понимать, что любая система управления файлами не существует сама по себе – она разработана для работы

в конкретной операционной системе и с конкретной файловой системой. Можно сказать, что известная в прошлом (и сейчас) файловая система FAT (file allocation table) имеет множество реализаций как система управления файлами, например FAT16 для самой MS-DOS, FAT32 для Windows 9x и NT и т. Д (в

целом, подобное можно сказать и о NTFS). Другими словами, для работы с файлами, организованными в соответствии с некоторой файловой системой, для каждой ОС должна быть разработана соответствующая система управления файлами; и эта система управления файлами будет работать только в той ОС, для которой она и создана.

Для удобства взаимодействия с ОС могут использоваться

дополнительные интерфейсные оболочки. Их основное на-

значение – либо расширить возможности по управлению ОС, либо изменить встроенные в систему возможности. В качестве классических примеров интерфейсных оболочек и соответствующих операционных сред выполнения программ можно назвать различные варианты графического интерфейса X Window в системах семейства UNIX, разнообразные варианты интерфейсов для семейства ОС Windows компании Microsoft. Следует отметить, что в семействе ОС компании Microsoft с общим интерфейсом заменяемой является только интерфейсная оболочка, в то время как сама операционная среда остается неизменной – она интегрирована в ОС. Другими словами, операционная среда определяется программными интерфейсами,

то есть API (application program interface). Интерфейс приклад-

ного программирования (API) включает в себя управление процессами, памятью и вводом/выводом.

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

– система программирования – система, образуемая языком программирования, компиляторами или интерпретаторами программ, представленных на этом языке, соответствующей

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

язык программирования высокого уровня – формализованный язык для описания решения алгоритма, решения задачи на ПК, понятия и структура которого удобны для восприятия человеком;

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

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

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

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

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

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

программу форматирования, и программу переноса основных системных файлов самой ОС.