|
||||||||||||||||||||||||||||||||||||||||||||||||||
Многоуровневая структура ОССтр 1 из 2Следующая ⇒
Тема: Структура операционных систем. Ядро операционной системы. Виды ядра операционных систем. Микроядерная архитектура (модель клиент-сервер).
Перед изучением структуры операционных систем следует рассмотреть режимы работы процессоров. Современные процессоры имеют минимум два режима работы – привилегированный (supervisor mode) и пользовательский (user mode). Отличие между ними заключается в том, что в пользовательском режиме недоступны команды процессора, связанные с управлением аппаратным обеспечением, защитой оперативной памяти, переключением режимов работы процессора. В привилегированном режиме процессор может выполнять все возможные команды. Приложения, выполняемые в пользовательском режиме, не могут напрямую обращаться к адресным пространствам друг друга – только посредством системных вызовов. Все компоненты операционной системы можно разделить на две группы – работающие в привилегированном режиме и работающие в пользовательском режиме, причем состав этих групп меняется от системы к системе. Основным компонентом операционной системы является ядро (kernel) (Рис.1). Рис.1 Ядро ОС
Ядро ОС выполняют базовые функции ОС: •управление процессами; •управление памятью; •управление устройствами ввода-вывода и файловой системой; •интерфейс прикладного программирования API; •защита данных и администрирование. Функции, выполняемые модулями ядра, используются наиболее часто, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра постоянно находятся в ОП (то есть являются резидентными). Разрушение ядра равносильно разрушению всей системы, поэтому особое внимание уделяется надежности кодов ядра. Формат программного модуля ядра – специальный. Он отличается от формата пользовательских приложений. По сути, ядро работает в привилегированном режиме. Оболочка ОС выполняет вспомогательные функции ОС: •утилиты, то есть программы, решающие отдельные задачи (сжатие дисков, архивация, антивирусные программы и т. д.). •системные обрабатывающие программы (текстовые и графические редакторы, компиляторы, компоновщики, отладчики и т. д.). •библиотеки – процедуры и функции различного назначения (математические функции ввода-вывода и т. д.). Разделение ОС на ядро и оболочку обеспечивает легкую расширяемость ОС.
Функции ядра могут существенно отличаться в разных системах; но во всех системах ядро работает в привилегированном режиме (который часто называется режим ядра, kernel mode) (Рис.2) Рис. 2. Архитектура операционной системы с ядром в привилегированном режиме
Термин «ядро» также используется в разных смыслах. Например, в Windows термин «ядро» (NTOS kernel) обозначает совокупность двух компонентов – исполнительной системы (executive layer) и собственно ядра (kernel layer). Существует два основных вида ядер – монолитные ядра (monolithic kernel) и микроядра (microkernel). В монолитном ядре реализуются все основные функции операционной системы, и оно является, по сути, единой программой, представляющей собой совокупность процедур. В микроядре остается лишь минимум функций, который должен быть реализован в привилегированном режиме: планирование потоков, обработка прерываний, межпроцессное взаимодействие. Остальные функции операционной системы по управлению приложениями, памятью, безопасностью и пр. реализуются в виде отдельных модулей в пользовательском режиме. Ядра, которые занимают промежуточные положение между монолитными и микроядрами, называют гибридными (hybrid kernel). Примеры различных типов ядер: - монолитное ядро – MS-DOS, Linux, FreeBSD; - микроядро – Mach, Symbian, MINIX 3; - гибридное ядро – NetWare, BeOS, Syllable. Кроме ядра в привилегированном режиме (в большинстве операционных систем) работают драйверы (driver) – программные модули, управляющие устройствами. В состав операционной системы также входят: - системные библиотеки (system DLL – Dynamic Link Library, динамически подключаемая библиотека), преобразующие системные вызовы приложений в системные вызовы ядра; - пользовательские оболочки (shell), предоставляющие пользователю интерфейс – удобный способ работы с операционной системой. Пользовательские оболочки реализуют один из двух основных видов пользовательского интерфейса: - текстовый интерфейс (Text User Interface, TUI), другие названия – консольный интерфейс (Console User Interface, CUI), интерфейс командной строки (Command Line Interface, CLI); - графический интерфейс (Graphic User Interface, GUI). Пример реализации текстового интерфейса в Windows – интерпретатор командной строки cmd.exe; пример графического интерфейса – Проводник Windows (explorer.exe). Монолитная система состоит из: 1. Главная программа, которая вызывает требуемые сервисные процедуры. 2. Набор сервисных процедур, реализующих системные вызовы. 3. Набор утилит, обслуживающих сервисные процедуры. Рисунок 3. Простая модель монолитной системы
В этой модели для каждого системного вызова имеется одна сервисная процедура (например, читать из файла). Утилиты выполняют функции, которые нужны нескольким сервисным процедурам (например, для чтения и записи файла необходима утилита работы с диском). Этапы обработки вызова: - принимается вызов; - выполняется переход из режима пользователя в режим ядра; - ОС проверяет параметры вызова для того, чтобы определить, какой системный вызов должен быть выполнен; - после этого ОС обращается к таблице, содержащей ссылки на процедуры, и вызывает соответствующую процедуру. Многоуровневая структура ОС Обобщением предыдущего подхода является организация ОС как иерархии уровней. Уровни образуются группами функций операционной системы – файловая система, управление процессами и устройствами и т. п. Каждый уровень может взаимодействовать только со своим непосредственным соседом – выше - или нижележащим уровнем. Прикладные программы или модули самой операционной системы передают запросы вверх и вниз по этим уровням.
Рисунок 3. Пример структуры многоуровневой системы
Преимущества: - высокая производительность. Недостатки: - большой код ядра, и как следствие большое содержание ошибок; - ядро плохо защищено от вспомогательных процессов. Пример реализации многоуровневой модели Windows Рисунок 4. Структура Windows 2k (2000)
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|