Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_модуль1.doc
Скачиваний:
10
Добавлен:
25.08.2019
Размер:
276.48 Кб
Скачать

В ведение в операционные системы стр. 27

Архитектура операционной системы

Архитектура ОС – это структурная организация ОС на основе различных программных модулей.

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

Рассмотрим 3 типа архитектуры, которые применялись на практике в разных системах.

1. Монолитные системы

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

2. Многоуровневые системы

Многоуровневые системы – это системы, организованные в виде иерархии уровней. Первая ОС такого типа – это операционная система THE, созданная в 1968 г. в Голландии Дейкстрой и его студентами. Такая система включала 6 уровней. Позднее эта же схема была применена и улучшена в ОС MULTICS. Такую систему можно рассматривать как набор концентрических колец. Каждое внутреннее кольцо является более привилегированным, чем внешнее. Процедура внешнего кольца, вызывает процедуру внутреннего при помощи «системного вызова», о котором речь пойдет позже.

3. Виртуальные машины

Самая известная ОС, реализующая виртуальные машины – это VM/370 фирмы IBM.

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

Основная часть такой ОС – «монитор виртуальной машины». Он работает с оборудованием и предоставляет верхнему слою ПО несколько отдельных копий оборудования – виртуальных машин.

Идея виртуальных машин широко используется в современных ОС. Например, в ОС Windows виртуальная машина используется для запуска программ MS DOS.

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

Кроме того, виртуальные машины используются для работы программ Java. Программы Java выполняются на JVM (Java Virtual Machine) – виртуальных машинах Java.

Архитектура, основанная на ядре

Архитектура, основанная на ядре, стала классической и получила наибольшее распространение. Такую архитектуру используют все популярные современные ОС: все версии UNIX, Windows NT, OS/2.

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

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

  • модули, выполняющие вспомогательные функции ОС.

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

Наиболее общие функции ядра:

  1. управление устройствами компьютера, прерываниями и памятью;

  2. организация вычислительных процессов.

Вспомогательные модули ОС

Вспомогательные модули делятся на следующие группы:

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

  2. системные обрабатывающие программы – системные редакторы (не знаю, что это за редакторы), компиляторы, компоновщики и отладчики;

  3. библиотеки процедур.

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

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

CreateProcess – создание процесса в Win32 API в Windows.

Рисунок 2.1 – Общая структура ядра ОС.

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

Но, между слоями ядра и пользовательскими программами всегда располагается слой «интерфейса системных вызовов».

Некоторая программа может существовать какое-то время как пользовательское приложение, а потом стать частью ОС (и наоборот). Пример – WEB-браузер фирмы Microsoft Internet Explorer, который сначала был самостоятельным приложением, а потом стал частью ОС Windows NT и 95/98.

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

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