2.3. Многослойная структура ос
Вычислительную систему, работающую под управлением ОС на основе ядра, можно рассматривать как систему, состоящую из трех иерархически расположенных слоев: нижний слой образует аппаратура, промежуточный ядро, а утилиты, обрабатывающие программы и приложения, составляют верхний слой системы (рис. 2.2).
Рис. 2.2. Трехслойная схема вычислительной системы
Слоистую структуру вычислительной системы принято изображать в виде системы концентрических окружностей, иллюстрируя тот факт, что каждый слой может взаимодействовать только со смежными слоями. Действительно, при такой организации ОС приложения не могут непосредственно взаимодействовать с аппаратурой, а только через слой ядра.
Поскольку ядро представляет собой сложный многофункциональный комплекс, то многослойный подход обычно распространяется и на структуру ядра.
Ядро может состоять из следующих слоев (рис. 2.3.).
Интерфейс системных вызовов |
Менеджеры ресурсов |
Базовые механизмы ядра |
Машинно зависимые компоненты ядра |
Средства аппаратной поддержки |
Рис. 2.3. Структура ядра
Средства аппаратной поддержки ОС. До сих пор об операционной системе говорилось как о комплексе программ, но часть функций ОС может выполняться и аппаратными средствами. Поэтому иногда можно встретить определение операционной системы как совокупности программных и аппаратных средств, что и отражено на рис. 2.3. К операционной системе относят, естественно, не все аппаратные устройства компьютера, а только средства аппаратной поддержки ОС, т.е. те, которые прямо участвуют в организации вычислительных процессов: средства поддержки привилегированного режима, систему прерываний, средства переключения контекстов процессов, средства защиты областей памяти и т.п.
Машинно зависимые компоненты ОС. Этот слой образуют програм-мные модули, в которых отражается специфика аппаратной платформы компьютера. В идеале этот слой полностью экранирует вышележащие слои ядра от особенностей аппаратуры. Это позволяет разрабатывать вышележащие слои на основе машинно независимых модулей, существующих в единственном экземпляре для всех типов аппаратных платформ, поддерживаемых данной ОС.
Базовые механизмы ядра. Этот слой выполняет наиболее примитивные операции ядра, такие как программное переключение контекстов процессов, диспетчеризация прерываний, перемещение страниц из памяти на диск и обратно и т.п. Модули данного слоя не принимают решений о распределении ресурсов они только отрабатывают принятые «наверху» решения, что и дает повод называть их исполнительными механизмами для модулей верхних слоев. Например, решение о том, что в данный момент нужно прервать выполнение текущего процесса «А» и начать выполнение процесса «В», принимается менеджером процессов на вышележащем слое, а слою базовых механизмов передается только директива о том, что нужно выполнить переключение с контекста текущего процесса на контекст процесса «В».
Менеджеры ресурсов. Этот слой состоит из мощных функциональных модулей, реализующих стратегические задачи по управлению основными ресурсами вычислительной системы. Обычно на данном слое работают менеджеры (называемые также диспетчерами) процессов, ввода-вывода, файловой системы и оперативной памяти. Разбиение на менеджеры может быть и несколько иным, например, менеджер файловой системы иногда объединяют с менеджером ввода-вывода, а функции управления доступом пользователей к системе в целом и ее отдельным объектам поручают отдельному менеджеру безопасности. Каждый из менеджеров ведет учет свободных и используемых ресурсов определенного типа и планирует их распределение в соответствии с запросами приложений. Например, менеджер виртуальной памяти управляет перемещением страниц из оперативной памяти на диск и обратно. Для исполнения принятых решений менеджер обращается к нижележащему слою базовых механизмов с запросами о загрузке (выгрузке) конкретных страниц. Внутри слоя менеджеров существуют тесные взаимные связи, отражающие тот факт, что для выполнения процессу нужен доступ одновременно к нескольким ресурсам процессору, области памяти, возможно, к определенному файлу или устройству ввода-вывода. Например, при создании процесса менеджер процессов обращается к менеджеру памяти, который должен выделить процессу определенную область памяти для его кодов и данных.
Интерфейс системных вызовов. Этот слой является самым верхним слоем ядра и взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс операционной системы. Функции API, обслуживающие системные вызовы, предоставляют доступ к ресурсам системы в удобной и компактной форме, без указания деталей их физического расположения.
Приведенное разбиение ядра ОС на слои является достаточно условным. В реальной системе количество слоев и распределение функций между ними может быть и иным. В системах, предназначенных для аппаратных платформ одного типа, например ОС NetWare, слой машинно зависимых модулей обычно не выделяется, сливаясь со слоем базовых механизмов и, частично, со слоем менеджеров ресурсов. Не всегда оформляются в отдельный слой базовые механизмы в этом случае менеджеры ресурсов не только планируют использование ресурсов, но и самостоятельно реализуют свои планы.
Возможна и противоположная картина, когда ядро состоит из большего количества слоев. Например, менеджеры ресурсов, составляя определенный слой ядра, в свою очередь, могут обладать многослойной структурой. Прежде всего это относится к менеджеру ввода-вывода, нижний слой которого составляют драйверы устройств, например драйвер жесткого диска или драйвер сетевого адаптера, а верхние слои драйверы файловых систем или протоколов сетевых служб, имеющие дело с логической организацией информации.
Способ взаимодействия слоев в реальной ОС также может отклоняться от описанной выше схемы. Для ускорения работы ядра в некоторых случаях происходит непосредственное обращение с верхнего слоя к функциям нижних слоев, минуя промежуточные.
Выбор количества слоев ядра является ответственным и сложным делом: увеличение числа слоев ведет к некоторому замедлению работы ядра за счет дополнительных накладных расходов на межслойное взаимодействие, а уменьшение числа слоев ухудшает расширяемость и логичность системы. Обычно операционные системы, прошедшие долгий путь эволюционного развития, например многие версии UNIX, имеют неупорядоченное ядро с небольшим числом четко выделенных слоев, а у сравнительно «молодых» операционных систем, таких как Windows NT, ядро разделено на большее число слоев, и их взаимодействие формализовано в гораздо большей степени.
- Рецензенты:
- Ответственные за выпуск:
- Оглавление
- Введение
- 1. Назначение и функции операционной системы
- 1.1. Функциональные компоненты операционной системы автономного компьютера
- 1.1.1. Управление процессами
- 1.1.2. Управление памятью
- 1.1.3. Управление файлами и внешними устройствами
- 1.1.4. Защита данных и администрирование
- 1.1.5. Интерфейс прикладного программирования
- 1.1.6. Пользовательский интерфейс
- Вопросы для самопроверки
- Контрольные вопросы
- 1.2. Сетевые операционные системы
- 1.2.1. Сетевые и распределенные ос
- 1.2.2. Два значения термина «сетевая ос»
- 1.2.3. Функциональные компоненты сетевой ос
- 1.2.4. Сетевые службы и сетевые сервисы
- 1.2.5. Встроенные сетевые службы и сетевые оболочки
- 1.3. Требования к современным операционным системам
- Вопросы для самопроверки
- Контрольные вопросы
- 2. Архитектура операционной системы
- 2.1. Ядро и вспомогательные модули ос
- 2.2. Ядро и привилегированный режим
- 2.3. Многослойная структура ос
- 2.4. Аппаратная зависимость ос
- 2.5. Переносимость операционной системы
- Вопросы для самопроверки
- Контрольные вопросы
- 2.6. Микроядерная архитектура
- 2.6.1. Концепция
- 2.6.2. Преимущества и недостатки микроядерной архитектуры
- 2.7. Совместимость и множественные прикладные среды
- 2.7.1. Двоичная совместимость и совместимость исходных текстов
- 2.7.2. Трансляция библиотек
- 2.7.3. Способы реализации прикладных программных сред
- Вопросы для самопроверки
- Контрольные вопросы
- 3. Процессы и потоки
- 3.1. Мультипрограммирование
- 3.1.1. Мультипрограммирование в системах пакетной обработки
- 3.1.2. Мультипрограммирование в системах разделения времени
- 3.1.3. Мультипрограммирование в системах реального времени
- Вопросы для самопроверки
- Контрольные вопросы
- 3.2. Мультипроцессорная обработка
- Вопросы для самопроверки
- Контрольные вопросы
- 3.3. Планирование процессов и потоков
- 3.4. Понятия «процесс» и «поток»
- 3.4.1. Создание процессов и потоков
- 3.4.2. Планирование и диспетчеризация потоков
- 3.4.3. Состояния потока
- 3.4.4. Вытесняющие и невытесняющие алгоритмы планирования
- 3.4.5. Алгоритмы планирования, основанные на квантовании
- 3.4.6. Алгоритмы планирования, основанные на приоритетах
- 3.4.7. Смешанные алгоритмы планирования
- 3.5. Синхронизация процессов и потоков
- 3.5.1. Цели и средства синхронизации
- 3.5.2. Сигналы
- Вопросы для самопроверки
- Контрольные вопросы
- 4. Управление памятью
- 4.1. Функции операционной системы по управлению памятью
- 4.2. Типы адресов
- Вопросы для самопроверки
- Контрольные вопросы
- 4.3. Алгоритмы распределения памяти
- 4.3.1. Алгоритмы распределения без использования внешней памяти Распределение памяти динамическими разделами
- Распределение памяти перемещаемыми разделами
- 4.3.2. Алгоритмы распределения с использованием внешней памяти
- Свопинг и виртуальная память
- Страничное распределение
- Сегментное распределение
- Сегментно-страничное распределение
- Разделяемые сегменты памяти
- Вопросы для самопроверки
- Контрольные вопросы
- 5. Ввод-вывод и файловая система
- 5.1. Задачи операционной системы по управлению файлами и устройствами
- 5.2. Специальные файлы
- 5.3. Логическая организация файловой системы
- 5.3.1. Цели и задачи файловой системы
- 5.3.2. Типы файлов
- 5.3.3. Иерархическая структура файловой системы
- 5.3.4. Имена файлов
- 5.3.5. Монтирование
- 5.3.6. Атрибуты файлов
- 5.3.7. Логическая организация файла
- Вопросы для самопроверки
- Контрольные вопросы
- 5.4. Физическая организация файловой системы
- 5.4.1. Диски, разделы, секторы, кластеры
- 5.4.2. Физическая организация и адресация файла
- 2048 Записей
- 5.5. Физическая организация fat
- Кластер № 17 – начальный кластер файла file1; кластер № 18 – начальный кластер файла file2
- 5.6. Физическая организация файловых систем s5 и ufs
- 5.7. Физическая организация файловой системы ntfs
- 5.7.1. Структура тома ntfs
- 5.7.2. Структура файлов ntfs
- 5.7.3. Каталоги ntfs
- Вопросы для самопроверки
- Контрольные вопросы
- 5.8. Контроль доступа к файлам
- 5.8.1. Доступ к файлам как частный случай доступа к разделяемым ресурсам
- 5.8.2. Механизм контроля доступа
- Имена файлов
- 5.8.3. Организация контроля доступа в ос unix
- Процесс
- Запрос операции
- Вопросы для самопроверки
- Контрольные вопросы
- 5.8.4. Организация контроля доступа в ос Windows nt
- 5.8.5. Разрешения на доступ к каталогам и файлам
- Соотношение индивидуальных и стандартных разрешений для файлов
- Вопросы для самопроверки
- Контрольные вопросы
- Ответы на вопросы для самопроверки
- Лабораторные работы
- Методические указания для проведения лабораторных занятий и выполнения контрольной работы
- Лабораторная работа № 1 Системный реестр Windows 9x. Редактор базы данных регистрации
- Редактор системного реестра. Утилита regedit.Exe
- Командный файл системного реестра
- Утилита редактора системных правил Poledit
- Список ключей системного реестра
- Заблокировать возможность удаления принтеров.
- Заблокировать возможность добавления принтеров.
- Скрыть вкладку «Устройства» утилиты «Система».
- Скрыть вкладку «Профили оборудования» утилиты «Система».
- Лабораторная работа № 2 Администрирование сетевой ос Windows xp
- Установка удаленного терминала (Remote DeskTop Connection)
- Работа с Windows 2003 Server
- Утилиты панели управления
- Управление рабочей станцией
- Администрирование
- Конфигурирование сервера
- Управление контроллером домена
- Предоставление доступа к ресурсам сервера
- Привилегия клиента удаленного терминала
- Панель задач. Управление процессами
- Лабораторная работа № 3 Командные центры Windows 9х
- Утилита «Дата/время»
- Утилита «Клавиатура»
- Утилита «Мышь»
- Утилита «Специальные возможности»
- Утилита «Принтеры»
- Утилита «Шрифты»
- Утилита «Установка и удаление программ»
- Утилита «Система»
- Утилита «Язык и стандарты» Окно утилиты Язык и стандарты содержит вкладки Денежные единицы, Время, Дата, Региональные стандарты, Числа.
- Рабочий стол. Свойства рабочего стола
- Лабораторная работа № 4 Установка ос Fedora Core X. Режимы работы системы. Инсталляция приложений
- Подготовка жесткого диска к инсталляции ос Linux
- Программа редактирования разделов жесткого диска PowerQuest PartitionMagic 8.0
- Создать как: (Create as:) Logical Partition Тип раздела: (Partition type:) Linux Ext3 Размер: (Size:) 9500
- Инсталляция ос Fedora Core X
- Графический интерфейс gnome ос Linux
- Лабораторная работа № 4 Установка ос Fedora Core X
- Текстовый интерфейс ос Linux Алфавитно-цифровой терминал
- Режимы работы ос Linux
- Установка приложений в ос Red Hat
- Лабораторная работа № 5 Подсистемы управления ос
- Управление ресурсами ос Linux
- Графические утилиты управления процессами. Системный монитор
- Подсистемы управления, общие для всех ресурсов
- Администрирование в ос Red Hat. Локальные системы
- Пользовательский интерфейс
- Регистрация событий
- Лабораторная работа № 6 Файловые системы. Сетевые сервисы ос Linux
- Команды и утилиты, предназначенные для работы с файловыми системами
- Создание, редактирование и удаление разделов жесткого диска. Утилита fdisk
- Создание и локализация файловой системы
- Файловые службы и сетевые файловые системы
- Автомонтирование
- Сервисы Linux
- Список вопросов к контрольной работе
- Библиографический список