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

Лекции_операционные системы (Информатики)

.pdf
Скачиваний:
57
Добавлен:
06.06.2015
Размер:
3.81 Mб
Скачать

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

2.Функции, связанные с управлением ресурсами компьютера:

управление работой запущенных программ

(процессов);

управление устройствами ввода-вывода;

управление памятью;

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

(обслуживание файловой системы).

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

Дополнительные функции многозадачной ОС:

обеспечение одновременного выполнения нескольких программ (процессов);

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

обеспечение обмена данными между программами.

Дополнительные функции многопользовательской ОС:

обеспечение многопользовательского режима работы;

разграничение прав доступа;

защита данных то несанкционированного доступа.

Дополнительные функции сетевой ОС:

обеспечение сетевого интерфейса;

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

2.4.Требования к современным операционным системам

Помимо того, что операционные системы должны обеспечивать

выполнение перечисленных чуть выше функций, к современным ОС

предъявляется целый ряд важных эксплуатационных требований.

41

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

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

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

(кроссплатформенностью).

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

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

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

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

авторизации (предоставления дифференцированных прав доступа к

42

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

ресурсам), аудита (фиксации всех «подозрительных» с точки зрения безопасности событий).

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

многообразием функций, качеством программного кода,

возможностью работы ОС на высокопроизводительной

(многопроцессорной) платформе.

Контрольные вопросы:

1.Как проходила эволюция ЭВМ? Сколько поколений сменилось за это время? Какими отличительными признаками обладали ЭВМ каждого поколения?

2.Возможно ли управление ЭВМ без операционной системы?

3.Какие программы были предшественниками операционных систем, и для каких машин они предназначались?

4.Когда появились первые операционные системы?

5.Направления развития компьютерной техники.

6.Расскажите о назначении операционных систем. Какие функции они выполняют?

7.По каким признакам классифицируются ОС?

8.Какие дополнительные функции должна выполнять многозадачная ОС?

9.Какие дополнительные функции накладываются на многопользовательскую ОС?

10.Каким требованиям должны отвечать современные операционные системы?

43

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

Глава 3. Архитектура операционной системы

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

Принято разделять все модули операционной системы на две группы:

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

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

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

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

системах и определяется запросами и потребностями пользователей.

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

Ядро самая главная и важная составляющая операционной системы. Без ядра система будет просто неработоспособной.

44

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

Вспомогательные модули ОС являются транзитными

(загружаются в оперативную память только на время выполнения своих функций).

Работу компьютера с установленным программным обеспечением можно рассматривать как многослойную систему:

нижний слой – аппаратура, следующий слой – ядро ОС, верхний слой – утилиты, обрабатывающие программы и приложения.

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

Рис. 3.1. Схема модулей ОС.

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

3.1. Кольца защиты

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

контролировать доступ приложений к памяти и др. Таким образом,

45

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

низкий для остальных приложений (непривилегированный, или

пользовательский режим работы).

Рис. 3.2. Режимы работы ОС и приложений.

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

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

Программа, исполняющаяся в привилегированном режиме,

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

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

46

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

доступа к системному адресному пространству. Пользовательские программы имеют доступ только к своим внутренним объектам и тем внешним объектам, доступ к которым им разрешен ОС.

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

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

Такие модули ОС, как планировщик, менеджер памяти,

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

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

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

3.2. Структура ядра

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

выделяют следующие основные слои.

47

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

Рис. 3.3. Структура ядра ОС.

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

средства поддержки привилегированного режима, средства защиты областей памяти и др.

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

машинно-зависимые модули реализованы в Слое аппаратных абстракций HAL (Hardware Abstraction Layer).

48

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

Базовые механизмы ядра. Этот слой выполняет наиболее примитивные операции ядра: диспетчеризацию прерываний,

перемещение страниц из памяти на диск и обратно и др. Модули данного слоя не принимают «самостоятельных» решений, а

выполняют директивы более высоких слоях ядра.

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

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

Интерфейс системных вызовов (API). Именно через этот слой ядра происходит взаимодействие прикладных приложений и системных утилит с компонентами ядра. Фактически интерфейс системных вызовов определяет интерфейс прикладного программирования (Application Programming Interface, API).

Приложения выполняют обращения к функциям API при помощи

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

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

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

49

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

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

обращении к функции API передаются необходимые аргументы в определенном порядке).

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

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

Первый шаг к переносимости приложений был сделан стандартизацией API различных операционных систем семейства

UNIX (стандарт POSIX). Это дало гарантию работы приложений,

основанных на POSIX, в любой операционной UNIX-подобной операционной системе, что, в свою очередь, увеличило популярность этого семейства ОС.

3.3. Операционные системы с монолитным ядром

Монолитное ядро (monolithic kernel) – старейший способ организации операционных систем. В этом случае компоненты операционной системы являются не самостоятельными модулями, а

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

Примером систем с монолитным ядром является большинство

Unix-систем, в том числе Linux, MS-DOS и другие ОС.

50