- •Тема 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 Базовые понятия архитектуры операционных систем
1.8.1 Ядро системы и вспомогательные модули ос.
Наиболее общим подходом к структуризации ОС является разделение всех её модулей на две группы:
Ядро -модули, выполняющие основные функции ОС;
Вспомогательные модули –выполняют вспомогательные функции ОС.
Базовые компоненты ОС, которые отвечают за важнейшие ее функции, находятся в памяти постоянно и выполняются в привилегированном режиме, называют ядром операционной системы.
К важнейшим функциям ОС, выполнение которых обычно возлагают на ядро, принадлежат:
-управление процессами;
-обработка прерываний;
-управление памятью;
-управление вводом-выводом.
Эти функции недоступны для приложений.
Другой класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами — системными вызовами — для выполнения тех или иных действий, например для открытия и чтения файла, вывода графической информации на дисплей, получения системного времени и т. д.
Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования — API.
Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями операционной системы, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются резидентными.
Ядро является движущей силой всех вычислительных процессов в компьютерной системе, и крах ядра равносилен краху всей системы. Поэтому разработчики операционной системы уделяют особое внимание надежности кодов ядра.
Остальные (вспомогательные) модули ОС выполняют весьма полезные, но менее обязательные функции. Например, к таким вспомогательным модулям могут быть отнесены программы архивирования данных на магнитной ленте, дефрагментации диска, текстового редактора. Вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек процедур.
Поскольку некоторые компоненты ОС оформлены как обычные приложения, то есть в виде исполняемых модулей стандартного для данной ОС формата, то часто бывает очень сложно провести четкую грань между операционной системой и приложениями.
Некоторая программа может существовать определенное время как пользовательское приложение, а потом стать частью ОС, или наоборот.
Вспомогательные модули ОС обычно подразделяются на следующие группы:
утилиты — программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования данных на магнитную ленту;
системные обрабатывающие программы — текстовые или графические редакторы, компиляторы, компоновщики, отладчики;
программы предоставления пользователю дополнительных услуг — специальный вариант пользовательского интерфейса, калькулятор и даже игры;
библиотеки процедур различного назначения, упрощающие разработку приложений, например библиотека математических функций, функций ввода-вывода и т. д.
К ак и обычные приложения, для выполнения своих задач утилиты, обрабатывающие программы и библиотеки ОС, обращаются к функциям ядра посредством системных вызовов (рис. 1.1).
Рис.1.1-Взаимодействие между ядром и вспомогательными модулями ОС
Разделение операционной системы на ядро и модули-приложения обеспечивает легкую расширяемость ОС.
Чтобы добавить новую высокоуровневую функцию, достаточно разработать новое приложение, и при этом не требуется модифицировать ответственные функции, образующие ядро системы.
Однако внесение изменений в функции ядра может оказаться гораздо сложнее, и сложность эта зависит от структурной организации самого ядра.