- •Тема 1: Основные компоненты ос
- •1.1 Роль и задачи операционных систем
- •1.2 История развития операционных систем
- •1.3. Классификация современных операционных систем
- •1.4 Основные функции типовых ос
- •1.4.1. Управление процессами и потоками
- •1.4.2. Управление памятью
- •1.4.3. Управление вводом-выводом
- •1.4.4. Управление файлами и файловые системы
- •1.4.5. Сетевая поддержка
- •1.4.6. Безопасность данных
- •1.4.7. Интерфейс пользователя
- •1.4.8 Поддержка 64-битовых процессоров
- •1.5 Аппаратная инициализация компьютера
- •1.6.1 Два этапа загрузки
- •1.6.2 Загрузка и инициализация ядра
- •1.6.3 Загрузка компонентов системы
- •1.7 Загрузка Windows хр
- •1.8 Базовые понятия архитектуры операционных систем
- •1.8.1 Ядро системы и вспомогательные модули ос.
- •1.8.2 Привилегированный режим и режим пользователя
- •1.9 Реализация архитектуры операционных систем
- •1.9.1. Монолитные системы
- •1.9.2 Системы с микроядром
- •1.10 Операционная система и ее окружение
- •1.10.1 Взаимодействие ос и аппаратного обеспечения
- •1.10.2 Взаимодействие ос и выполняемой программы
- •Тема 2: Управление процессами и потоками
- •2.1. Базовые понятия процессов и потоков
- •2.1.1. Процессы и потоки в современных ос
- •2.1.2. Модели процессов и потоков
- •2.1.3. Составные элементы процессов и потоков
- •2.2. Многопотоковость и ее реализация
- •2.2.1. Понятие параллелизма
- •2.2.2. Виды параллелизма
- •2.2.3. Преимущества и недостатки многопотоковости
- •2.2.4 Состояния процессов и потоков
- •Тема 3 Прерывания. Методы и реализация
- •3.1 Прерывания. Назначение и типы.
- •3.2 Механизм прерываний
- •3.3 Обработка прерываний
1.9.2 Системы с микроядром
Микроядро –это небольшая часть функций ядра, которая реализуется в привелегированном режиме и осуществляет связь между компонентами системы и выполняет базовое распределение ресурсов.
Суть микроядерной архитектуры состоит в следующем. В привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром. Микроядро защищено от остальных частей ОС и приложений. В состав микроядра обычно входят машинно-зависимые модули, а также модули, выполняющие некоторые базовые функции ядра по управлению процессами, обработке прерываний, управлению виртуальной памятью и некоторые другие.
Другие функции ОС выполняются процессами режима пользователя (серверными процессами, серверами). Серверы могут отвечать за поддержку файловой системы, за работу с процессами, памятью и т.п..
Чтобы выполнить системный вызов, процесс (пользовательская программа) обращается к микроядру. Микроядро посылает серверу запрос, сервер выполняет работу и пересылает ответ назад, а микроядро переправляет его клиенту (рис. 1.2). Клиентами могут быть не только процессы пользователя, а и другие модули ОС.
Рис.1.2-Системный вызов в архитектуре с микроядром
Преимущества подхода системы с микроядром:
небольшие размеры микроядра, которое упрощает его разработку и отладку;
высокая надежность системы, вследствие того, что серверы работают в режиме пользователя и в них нет прямого доступа к аппаратному обеспечению;
Главным недостатком применения микроядра является снижения производительности. Вместо двух переключений режима процессора в случае системного вызова происходит четыре (два - во время обмена между клиентом и микроядром, два - между сервером и микроядром).
Примером применения архитектуры с микроядром является Windows NT версий 3.1 и 3.5, а также ОС реального времени QNX.
1.10 Операционная система и ее окружение
Из определение ОС вытекает, что она реализует связь между аппаратным обеспечением компьютера (через интерфейс аппаратного обеспечения) и программами пользователя (через интерфейс прикладного программирования).
1.10.1 Взаимодействие ос и аппаратного обеспечения
Взаимодействие ОС и аппаратного обеспечения следует рассматривать с двух сторон. С одной стороны, ОС должна реализовывать средства взаимодействия с аппаратным обеспечением, с другой стороны - архитектуру компьютера надо проектировать с учетом того, что на компьютере будет функционировать ОС.
Интерфейс аппаратного обеспечения должны быть полностью скрыт от прикладных программ и пользователей, всю работу с ним выполняет ОС. Рассмотрим особенности аппаратной поддержки этого интерфейса и его использование в современных ОС.
Средства аппаратной поддержки операционных систем
Современные аппаратные архитектуры компьютеров реализуют базовые средства поддержки операционных систем. К ним принадлежат:
-система прерываний,
-привилегированный режим процессора,
-средства переключения задач,
-поддержка управления памятью (механизмы трансляции адресов, защита памяти),
-системный таймер,
-защита устройств ввода-вывода,
-базовая система ввода-вывода (BIOS).
Рассмотрим эти средства подробнее.
Система прерываний является основным механизмом, который обеспечивает функционирование ОС. С помощью прерываний процессор получает информацию о событиях, не связанных с основным циклом его работы (получением инструкций по памяти и их выполнением). Прерывания бывают двух типов: аппаратные и программные.
Аппаратное прерывание - это специальный сигнал (запрос прерывания, IRQ), который передается процессору от аппаратного устройства.
К аппаратным прерываниям принадлежат:
-прерывание введения-вывода, которые поступают от контролера периферийного устройства; например, такое прерывание генерирует контролер клавиатуры при нажатии на клавишу;
-прерывание, связанные с аппаратными или программными ошибками (такие прерывания возникают, например, в случае сбоя контролера диска, доступа к запрещенной области памяти или деление на нуль).
Программные прерывания генерирует прикладная программа, выполняя специальную инструкцию прерывания. Такая инструкция есть в системе команд большинства процессоров. Обработка программных прерываний процессором не отличается от обработки аппаратных прерываний.
Если прерывания состоялось, то процессор немедленно передает управление специальной процедуре - обработчику прерывания. После выхода из обработчика процессор продолжает выполнение инструкций прерванной программы. Различают два типа прерываний в зависимости от того, какая инструкция будет выполнена после выхода из обработчика:
-для отказов повторяется инструкция, которая вызвала прерывание,
-для ловушек - выполняется следующая инструкция.
Все прерывания ввода-вывода и программные прерывания принадлежат к категории ловушек, большинство прерываний через ошибки относятся к отказам.
Если ОС не занятая выполнениям какой-нибудь задачи, она ожидает прерывание, которое и привлекает ее к работе. Поэтому можно считать, что современные ОС управляются прерываниями.
Для реализации привилегированного режима процессора в одном из его регистры предусмотрены специальный бит (бит режима), который показывает, в каком режиме находится процессор. В случае программного или аппаратного прерывания процессор автоматически переключается в привилегированный режим, и именно поэтому ядро ОС (которое состоит из обработчиков прерываний) всегда получает управление в этом режиме. За любой попытки непосредственно выполнить привилегированную инструкцию в режиме пользователя происходит аппаратное прерывание.
Средства переключения задач дают возможность сохранять содержимое регистров процессора (контекст задачи) в случае прекращения задачи и восстанавливать данные перед ее дальнейшим выполнением.
Механизм трансляции адресов обеспечивает преобразование адресов памяти, с которыми работает программа, у адреса физической памяти компьютера. Аппаратное обеспечение генерирует физический адрес, используя специальные таблицы трансляции.
Защита памяти обеспечивает проверку прав доступа к памяти во время каждой попытки его получить. Средства защиты памяти интегрированные с механизмами трансляции адресов: в таблицах трансляции поддерживается информация о правах, необходимых для их использования, и о лимите (размеры участка памяти, к которой можно получить доступ с их помощью). Невозможно получить доступ к памяти сверх лимита или при отсутствии прав на использование таблицы трансляции.
Системный таймер является аппаратным устройством, которое генерирует прерывание таймера через определенные промежутки времени. Такие прерывания обрабатывает ОС; информацию от таймера чаще всего используют для определения времени переключения задач.
Защита устройств ввода-вывода основывается на том, что все инструкции ввода-вывода определены как привилегированные. Прикладные программы осуществляют ввод-вывод не прямо, а при посредничестве ОС.
Базовая система ввода-вывода (BIOS) - служебный программный код, который сохраняется в постоянном запоминающем устройстве и предназначен для изоляции ОС от конкретного аппаратного обеспечения. Укажем, что средства BIOS не всегда дают возможность использовать все возможности архитектуры: например, процедуры BIOS для архитектуры IА-32 не работают в защищенном режиме. Поэтому современные ОС используют их только для начальной загрузки системы.