- •Тема 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.8.2 Привилегированный режим и режим пользователя
Основным характерным признаком ядра является то, что оно выполняется в привилегированном режиме.
Рассмотрим особенности этого режима.
Для обеспечения эффективного управления ресурсами компьютера ОС должна иметь определенные привилегии относительно прикладных программ. Надо, чтобы прикладные программы не вмешивались в работу ОС, и вместе с тем ОС должна иметь возможность вмешаться в работу любой программы, например для переключения процессора или решение конфликта в борьбе за ресурсы.
Для реализации таких привилегий нужна аппаратная поддержка: процессор должен поддерживать по крайней мере два режима работы - привилегированный (защищенный режим или режим ядра) и режим пользователя. Подразумевается, что ОС или некоторые её части работают в привелигерованном режиме, а прриложения –в пользовательском режиме.
В режиме пользователя недопустимы команды, которые являются критическими для работы системы (переключение задач, обращение к памяти за заданными границами, доступ к устройствам ввода-вывода и т.п.).
Рассмотрим, каким образом используются разные режимы процессора во время взаимодействия между ядром и прикладными программами.
После загрузки ядро включает процессор в привилегированный режим и получает полнейший контроль над компьютером. Каждое приложение запускается и выполняется в режиме пользователя, где оно не имеет доступа к ресурсам ядра и других программ.
Когда нужно выполнить действие, реализованное в ядре, приложение делает системный вызов. Ядро перехватывает его, включает процессор в привилегированный режим, выполняет действие, переключает процессор назад в режим пользователя и возвращает результат приложению.
Системный вызов выполняется медленнее чем вызов функции, реализованной в режиме пользователя, потому что процессор дважды переключается между режимами. Для повышения производительности в некоторых ОС часть функциональности реализована в режиме пользователя, поэтому для доступа к ней системные вызовы использовать не нужно.
1.9 Реализация архитектуры операционных систем
В реальных ОС обычно используют некоторую комбинацию подходов к реализации архитектуры ОС.
1.9.1. Монолитные системы
ОС, в которых все базовые функции сконцентрированы в ядре, называют монолитными системами.
В случае реализации монолитного ядра ОС становится производительнее (процессор не переключается между режимами во время взаимодействия между ее компонентами), но менее надежной (весь ее код выполняется в привилегированном режиме, и ошибка в каждом из компонентов будет критической).
Монолитность ядра не означает, что все его компоненты должны постоянно находиться в памяти. Современные ОС дают возможность динамично размещать в адресном пространстве ядра фрагменты кода (модуль ядра).
Достоинства: Недостатки:
-простота разработки; -большой объем оперативной памяти занимаемый ОС;
-высокая скорость работы. -сбой какого либо модуля ОС приводит к сбою всей системы
Примеры: ОС с ядром UNIX такие как: LINUX, BSD