|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Привилегированный режим ядра1.ПР реализуются средствами аппаратной поддержки. Аппаратура компьютера поддерживает как правило 2 режима привилегий - пользовательский режим (user mode) и привилегированный режим, или режим ядра (kernel mode), или режим супервизора (supervisor mode). 2.Приложениям запрещается выполнение в пользовательском режиме команд, связанных с использованием системных ресурсов. 3.Выполнение инструкций в пользовательском режиме запрещается либо безусловно, либо при определенных условиях. Например, выполнение инструкции (команды) доступа к памяти для приложения разрешается, если инструкция обращается к области памяти, отведенной данному приложению Говорят, что каждое приложение работает в своем адресном пространстве. Это позволяет локализовать некорректно работающее приложение в собственной области памяти, так что его ошибки не оказывают влияния на остальные приложения и операционную систему. 4. Между количеством уровней привилегий, реализуемых аппаратно, и количеством уровней привилегий, поддерживаемых ОС, нет прямого соответствия. Например, на базе четырех уровней, обеспечиваемых процессорами компании Intel, операционная система OS/2 строит трехуровневую систему привилегий, а операционные системы Windows NT, UNIX и некоторые другие ограничиваются двухуровневой системой. С другой стороны если аппаратура поддерживает два уровня привилегий, то ОС может на этой основе создать программным способом развитую систему защиты, образующую иерархию уровней привилегий. Например, Структуру привилегий можно изобразить в виде нескольких концентрических кругов. В этом случае системный режим (или режим супервизора) нулевое кольцо, «кольцо 0», обеспечивает максимальный доступ к ресурсам, режим пользователя с ограниченным доступом — внешним, третье кольцо. На рис. представлена иерархия семейства микропроцессоров Intel x86. которая обеспечивает четыре кольца защиты. Практика. На основе двух режимов привилегий процессора ОС может построить сложную систему индивидуальной защиты ресурсов, примером которой является типичная система защиты файлов и каталогов. Такая система позволяет задать для любого пользователя определенные права доступа к каждому из файлов и каталогов 5.Повышение устойчивости операционной системы, при переходе ядра в привилегированный режим, достигается за счет некоторого замедления выполнения системных вызовов. 6.Архитектура ОС, основанная на привилегированном ядре и приложениях пользовательского режима, является классической (см. МКЯА). Ее используют различные операционные системы, такие как UNIX, VAX VMS, IBM OS/390, OS/2, Windows NT с определенными модификациями.
В некоторых случаях разработчики ОС отступают от этого классического варианта архитектуры, организуя работу ядра и приложений в одном и том же режиме. Например, 1. известная специализированная операционная система NetWare компании Novell использует привилегированный режим процессоров Intel x86/ Pentium как для работы ядра, так и для работы своих приложений. При таком построении ОС обращения приложений к ядру выполняются быстрее, так как нет переключения режимов, однако при этом отсутствует надежная аппаратная защита памяти, занимаемой модулями ОС, от некорректно работающего приложения. Разработчики NetWare пошли на такое потенциальное снижение надежности своей операционной системы, поскольку ограниченный набор ее специализированных приложений позволяет компенсировать этот архитектурный недостаток за счет тщательной отладки каждого приложения. 2. Операционная система MS-DOS, разработанная для микропроцессора Intel 8088/86, которые вообще не поддерживающих привилегированного режима работы. Некорректно написанные приложения вполне могли разрушить основные модули MS-DOS, что иногда и происходило, но область использования MS-DOS (и многих подобных ей ранних операционных систем для персональных компьютеров, таких как MSX, СР/М) и не предъявляла высоких требований к надежности ОС.
Многослойная структура ОС (Олифер) – классическая Обобщением 3-хслойного подхода является организация ОС в виде иерархии функциональных уровней. В соответствии с этим подходом 1. Функциональность операционной системы разделяется на уровни. Например, уровень управления аппаратурой (это уровень ядра ОС), уровень управления памятью, уровень управления процессами, уровень файловой системы. 2. Для каждого уровня определяется интерфейс взаимодействия - набор правил, регулирующих обращения за услугами данного уровня. 3. Каждый уровень может обращаться за услугами только к соседнему нижележащему уровню через его интерфейс. 4. Внутренние структуры данных и процедуры уровня не доступны другим уровням и не зависят от реализации их процедур. Такая организация системы имеет много достоинств. 1. Упрощается разработка системы. Сначала определяются функции слоев и их интерфейсы, а затем наращивается мощность слоев по направлению «снизу вверх». 2. При модернизации ОС изменение модулей внутри слоя не влияет на какие-либо изменения в остальных слоях. Многоуровневая архитектура ОС является прямым развитием монолитной архитектуры, в которую введена более четкая структуризация. По мере дальнейшего усложнения операционных систем и с ростом динамики их развития, обнаружились недостатки многоуровневой архитектуры. 1. Интерфейс уровня со временем становится громоздким, увеличивается сложность реализации отдельных уровней 2. Деление функциональности ОС на уровни является сдерживающим фактором в развитии операционной системы, так как изначально созданную структуру уровней не поменять из соображений совместимости. Многослойный подход обычно распространяется и на структуру ядра ОС. Ядро может состоять из следующих слоев: 1. Средства аппаратной поддержки ОС. К ним относятся средства поддержки привилегированного режима, система прерываний, средства переключения контекстов процессов, средства защиты областей памяти средства, т.е. те которые прямо участвуют в организации вычислительного процесса 2. Машинно-зависимые компоненты ОС. Этот слой образуют программные модули, в которых отражается специфика аппаратной платформы компьютера. Этот слой экранирует (защищает) вышележащие слои ядра от особенностей аппаратуры, что позволяет разрабатывать вышележащие слои на основе машинно-независимых модулей. Примером экранирующего слоя может служить слой HAL операционной системы Windows NT. Hardware Abstraction Layer Слой абстрагирования (Hardware Abstraction Layer, HAL). позволяет обеспечить переносимость 99% кода на системы с различным оборудованием. 3. Базовые механизмы ядра. Этот слой выполняет простые операции, связанные с реализацией функций ОС верхним слоем ядра (менеджерами или диспетчерами ресурсов), таких как управление процессами, обработка прерываний, управление виртуальной памятью, пересылка сообщений и управление устройствами ввода-вывода, связанные с загрузкой или чтением регистров устройств. Например, решение о том, что в данный момент нужно прервать выполнение текущего процесса А и начать выполнение процесса В, принимается менеджером процессов на вышележащем слое, а слою базовых механизмов передается только директива о том, что нужно выполнить переключение с контекста текущего процесса на контекст процесса В. 4. Менеджеры или диспетчера ресурсов. Этот слой состоит из функциональных модулей, реализующих задачи по управлению основными ресурсами вычислительной системы. Как правило на данном слое работают менеджеры (диспетчера), управляющие файловой системой, системой ввода-вывода, виртуальной памятью и процессами., 5. Интерфейс системных вызовов. Это самый верхний слой ядра, взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс операционной системы API (рассмотрели ранее в системных вызовах) Рис. Многослойная структура ядра ОС Приведенное разбиение ядра ОС на слои, а так способ взаимодействия слоев является условным и в реальной системе может быть и иным. Для ускорения работы ядра в некоторых случаях происходит непосредственное обращение с верхнего слоя к функциям нижних слоев, минуя промежуточные. Обычно операционные системы, прошедшие долгий путь эволюционного развития, например многие версии UNIX, имеют неупорядоченное ядро с небольшим числом четко выделенных слоев, а у сравнительно «молодых» операционных систем, таких как Windows NT, ядро разделено на большее число слоев и их взаимодействие формализовано в гораздо большей степени. Структуру UNIX проще всего представить в виде двух слоев. Первым является ядро. Оно непосредственно взаимодействует с железом и обеспечивает переносимость всего остального ПО на компьютеры с разным аппаратным обеспечением. Ядро предоставляет программам определенный набор системных API, с помощью которых производятся создание процессов, управление ими, их взаимодействие и синхронизация, а также файловый ввод/вывод. Вторым слоем является программное обеспечение, прикладное или системное: командный интерпретатор, графическая оболочка и т. д. Таким образом, многослойная структура является классической архитектурой для современных ОС в соответствии с которой - все основные функции многослойного ядра операционной системы выполняются в привилегированном режиме. Код ядра, выполняемый в привилегированном режиме, имеет доступ к областям памяти всех приложений, но сам полностью от них защищен. - вспомогательные функции ОС оформляются в виде приложений и выполняются в пользовательском режиме наряду с обычными пользовательскими программами (утилиты или обрабатывающие программы). - каждое приложение пользовательского режима работает в собственном адресном пространстве и обращаются к ядру с запросами на выполнение системных функций.
Классическая многоуровневая архитектура в наиболее современных операционных системах в настоящее время вытесняется клиент-серверной архитектурой, реализованной на принципе микроядерности.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |