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

2.4. Особенности архитектур

2.4.1. Базовая архитектура UNIX

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

Базовая структура классического ядра UNIX изображена на рис. 2.3

Система состоит из трех основных компонентов: подсистемы управления процессами, файловой подсистемы и подсистемы введения-вывода.

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

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

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

Современные UNIX-системы отличаются своей архитектурой.

  • В них выделено отдельный менеджер памяти, ответственный за поддержку виртуальной памяти.

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

  • В этих системах поддерживается многопроцессорная обработка, а также многопото-ковость.

Базовые архитектурные решения, такие как доступ ко всем устройствам ввода-вывода через интерфейс файловой системы или организация системных вызовов, остаются неизменными во всех реализациях UNIX.

2.4.2 Особенности архитектуры Windows ХР

Основные компоненты Windows ХР изображены на рис. 2.4

Некоторые компоненты Windows ХР выполняются в привилегированном режиме, другие компоненты - в режиме пользователя. Начнем рассмотрение системы c компонентов режима ядра.

Компоненты режима ядра

В традиционном понимании (см. раздел 1.1.2) ядро ОС содержит все компоненты привилегированного режима, однако в Windows ХР понятие ядра закреплено только за одним из этих компонентов.

Уровень абстрагирования ( от оборудования

В Windows ХР реализован уровень абстрагирования от оборудования (в этой системе его называют НАL, hardware abstracting layer). Для разных аппаратных конфигураций фирма Microsoft или посторонние разработчики могут поставлять разные реализации НАL.

Ядро

Ядро Windows ХР отвечает за базовые операции системы. К его основным функциям принадлежат:

  • переключение контекста, сохранение и восстановление состояния потоков;

  • планирование выполнения потоков;

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

Рис.2.4 Базовые компоненты Windows XP

Ядро Windows ХР соответствует базовым службам ОС и предоставляет набор механизмов для реализации политики управления ресурсами.

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

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

Исполнительная система

Исполнительная система (ИС) Windows ХР (Windows ХР Ехесutive) - это набор компонентов, ответственных за важнейшие службы ОС (управление памятью, процессами и потоками, вводом-выводом и т.п.).

Основными компонентами ИС являются базовые средства поддержки, это:

  • Менеджер объектов - отвечает за распределение ресурсов в системе, поддерживая их универсальное представление через объекты.

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

Другие компоненты ИС реализуют важнейшие службы Windows ХР. Остановимся на некоторые из них.

Менеджер процессов и потоков — создает и завершает процессы и потоки, а также распределяет для них ресурсы.

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

Менеджер ввода-вывода — руководит периферийными устройствами, предоставляя другим компонентам аппаратно-независимые средства ввода-вывода. Этот ме­неджер реализует единый интерфейс для драйверов устройств.

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

  • Менеджер конфигурации - отвечает за поддержку работы с системным реестром (registry) - иерархически организованным хранилищем информации о налаживании системы и прикладных программ.

  • Справочный монитор защиты - обеспечивает политику безопасности на изолированном компьютере, т.е. защищает системные ресурсы.

Драйверы устройств

В Windows ХР драйверы не обязательно связаны с аппаратными устройствами. Программы, которым нужны средства, доступные в режиме ядра, всегда следует оформлять как драйвер. Это связанное с тем, что для внешних разработчиков режим ядра доступный только из кода драйверов.

Оконная и графическая подсистемы

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

  • Менеджер окон - реализует управленческие функции. Он руководит оконным выводом, обрабатывает ввод с клавиатуры или мыши и передает процессам сообщения пользователя.

  • Интерфейс графических устройств (Graphical Device Interface, GDI) — состоит из набора базовых операций графического вывода, которые не зависят от конкретного устройства (черчение линий, отображение текста и т.п.).

  • Драйверы графических устройств (видеокарт, принтеров и т.п.) - отвечают за взаимодействие с контролерами этих устройств.

Во время создания окон или элементов управления запрос поступает в менеджера окон, который для выполнения базовых графических операций обращается к GDI. Потом запрос передается драйверу устройства, затем - аппаратному обеспечению через НАL.

Компоненты режима пользователя

Компоненты режима пользователя не имеют прямого доступа к аппаратному обеспечению, их код выполняется в изолированном адресном пространстве. Большая часть кода режима пользователя находится в динамических библиотеках, которые в Windows называют DLL (dynamic-link libraries).

Библиотека системного интерфейса

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

Подсистемы среды

Подсистемы среды предоставляют программам пользователя доступ к службам операционной системы, реализуя соответствующий АРI. Мы остановимся на двух подсистемах среды: Win32 и POSIX.

Подсистема Win32, которая реализует Win32 АРI, является обязательным компонентом Windows ХР. В неё входят такие компоненты:

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

  • библиотеки подсистемы Win32, которые предоставляют прикладным программам функции Win32 АРI. Чаще всего используют библиотеки gdi32.dll (низкоуровневые графические функции, независимые от устройства), user32.dll (функции интерфейса пользователя) и kernel32.dll (функции, реализованные в ИС и ядре).

После того как программа обратится к функции Win32 АРI, сначала будет вызвана соответствующая функция из библиотеки подсистемы Win32. Рассмотрим варианты выполнения такого вызова.

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

  2. Если нужен переход в режим ядра, из кода библиотеки подсистемы выполняется системный вызов. Так происходит в большинстве случаев, например во время создания окон или элементов управления.

  3. Функция библиотеки подсистемы может обратиться к процессу подсистемы Win32, при этом:

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

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

Подсистема POSIX работает в режиме пользователя и реализует набор функций, определенных стандартом POSIX 1003.1. Поскольку процессы, или прикладные программы, написанные для одной подсистемы, не могут использовать функции других, в POSIX-программах нельзя пользоваться средствами Win32 АРI (в частности, графическими и сетевыми функциями), что снижает важность этой подсистемы.

Подсистема POSIX не является обязательным компонентом Windows ХР.

Наперед определенные системные процессы

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

  • Менеджер сессий (Session Manager, smss.ехе) создается в системе первым. Он запускает другие важные процессы (процесс подсистемы Win32, процесс регистрации в системе и т.п.), а также отвечает за их повторное выполнение во время аварийного завершения.

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

  • Менеджер управления службами (Service Control Manadger, services.ехе) отвечает за автоматическое выполнение определенных применений во время загрузки системы. Применения, которые будут выполнены при этом, называют службами (services). Такие службы, как журнал событий, планировщик задач, менеджер печатания, поставляют вместе с системой. Кроме того, есть много служб посторонних разработчиков; так по обыкновению реализовывают серверные применения (серверы баз данных, веб-серверы и т.п.).

Применение пользователя

Процессы пользователя могут быть созданы для разных подсистем среды. Такие процессы используют только функции соответствующего АРI. Вызовы этих функций превращаются в системные вызовы с помощью динамических библиотек подсистем среды.

Объектная архитектура Windows ХР

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

  • Имена объектов организованные в единое пространство имен, где их легко находить.

  • Доступ ко всем объектам осуществляется одинаково. После создания нового объекта или после получения доступа к имеющемуся менеджер объектов возвращает у применение дескриптор объекта.

  • Обеспечена защита ресурсов. Каждую попытку доступа к объекту рассматривает подсистема защиты - без нее доступ к объекту, а так же и к ресурсу, получить невозможно.

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

Объекты реализованы как структуры данных в адресном просторные ядра. При перезагрузке системы содержимое всех объектов теряется.

Структура заголовка объекта

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

К атрибутам заголовка объекта принадлежат:

  • имя объекта и его место в пространстве имен;

  • дескриптор защиты (определяет права, необходимые для использования объекта);

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

  • список процессов, которые получили доступ к дескрипторам объекта.

Менеджер объектов осуществляет управление объектами на основании информации из их заголовков.

Объекты типа

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

Часть характеристик объектов являются общими для всех объектов этого типа. Для хранения сведений о таких характеристиках используют специальные объекты типа (tipe objects). В таком объекте, в частности, сохраняют:

♦ имя типа объекта («процесс», «поток», «открытый файл» и т.п.);

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

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

Методы объектов

Когда компонент ИС создает новый тип объекта, он может зарегистрировать в диспетчере объектов один или несколько методов. После этого диспетчер объектов вызывает эти методы на определенных этапах жизненного цикла объекта. Приведем некоторые из методов объектов:

  • ореп - вызывается при открытии дескриптора объекта;

  • close - вызывается при закрытии дескриптора объекта;

  • delete - вызывается перед изъятием объекта из памяти.

Указатели на код реализации методов также сохраняются в объектах типа.

Пространство имен объектов

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

  • Device - имена устройств введения-вывода;

  • Driver - загруженные драйверы устройств;

ObjectTypes - объекты типов.

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

Выводы

  • Архитектуру ОС определяет набор ее компонентов, а также порядок их взаимодействия друг с другом и с внешней средой.

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

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

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

  • Операционная система взаимодействует с прикладными программами. Она предоставляет набор системных вызовов для доступа к функциям, реализованным в ядре. Для прикладных программ системные вызовы вместе со средствами системных библиотек доступные через интерфейс программирования применений (АРI).

Контрольные вопросы и задачи

  1. Перечислите причины, по которым ядро ОС должны выполняться в привилегированном режиме процессора.

  2. Может ли процессор переходить в привилегированный режим во время выполнения программы пользователя? Может ли такая программа выполняться исключительно в привилегированном режиме?

  3. В чем заключается главный недостаток традиционной многоуровневой архитектуры ОС? Имеет ли такой недостаток архитектура с выделением уровней в монолитном ядре?

  4. Почему переход к использованию микроядровой архитектуры может вызвать снижение производительности ОС?

  5. Автор Linux Линус Торвальдс утверждает, что мобильность Linux должны распространяться на системы с «приемлемой» архитектурой. Какие аппаратные средства должна поддерживать такая архитектура?

  6. Приведите преимущества и недостатки реализации взаимодействия прикладной программы с операционной системой в Linux и Windows ХР.

  7. Не противоречит ли использования модулей ядра принципам монолитной архитектуры Linux? Объясните свой ответ.

  8. Перечислите преимущества и недостатки архитектуры ОС, в соответствии с которой оконная и графическая подсистемы в Windows ХР выполняются в режиме ядра.

  9. Почему некоторые диагностические утилиты Windows ХР состоят из прикладной программы и драйвера устройства?