Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700383.doc
Скачиваний:
15
Добавлен:
01.05.2022
Размер:
4.33 Mб
Скачать

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

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

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

ОБЕСПЕЧЕНИЕ

Утверждено Редакционно-издательским советом

университета в качестве учебного пособия

Воронеж 2012

УДК 681.3

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

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

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

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

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

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

Рецензенты:

кафедра вычислительной математики и прикладных информационных технологий Воронежского государственного университета (зав. кафедрой, д-р техн. наук, проф. Т.М. Леденева);

канд.техн.наук, доцент С.А. Олейникова

©

©

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

Оформление. ФГБОУ ВПО

«Воронежский государственный

технический университет», 2012

Введение

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

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

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

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

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

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

1. Основные понятия системного программного обеспечения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5) утилиты.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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