Читайте также: |
|
ОС является программной средой. Для каждой программной среды понимается программная и функциональная структура.
Функциональная структура – выполняемые функции программной средой.
Программная структура – состав и взаимодействие программных компонент, которые реализуют указанные функции.
Программная структура ОС. Наиболее общим подходом к построению является разбиение ОС на ядро и обеспечивающие модули.
Ядро – программная структура. Как правило, состоит из двух основных частей:
а) резидентная часть ядра – постоянно находится в реальной ОП, не подвергается страничному обмену;
б) нерезидентная часть – модули находятся в виртуальной памяти ядра и загружаются по мере необходимости. Как правило, модули ядра являются реентерабельными (повторно используемыми). Идея: после выполнения модуля изменения в нем не происходят и его могут использовать еще раз. Т.е. во время выполнения модуль не пишет и не изменяет свои области.
Разделение на резидентную и нерезидентную часть условно и осуществляется в различных ОС на различных подходов. В целях сокращения операций ввода/вывода наиболее часто используемые модули ядра помещают резидентную часть. В некоторых ОС существует инструментарий оптимизации, с помощью которого можно определить, какие модули наиболее часто подвергаются страничному обмену и вводу/выводу в целом и сделать их резидентными.
Ядро ОС имеет многослойную программную структуру:
а) модули по управлению средствами аппаратной поддержки – управляют обработкой команд на той или иной платформе;
б) машинно-зависимые модули – экранируют основные компоненты ядра от специфики аппаратуры, что позволяет разрабатывать модули более высокого уровня как машинно-независимые компоненты;
в) модули базовых механизмов ядра – выполняют наиболее примитивные операции ядра, являются исполнительным механизмом модулей более высокого уровня;
г) модули менеджера ресурсов (диспетчера) реализуют алгоритмы планирования, учета, выделения и освобождения ресурсов системы при организации вычислительного процесса.
Функциональная структура ядра. В общем случае для всех ОС в той или иной мере характерны следующие основные функции, сосредоточенные в ядре. Замечание: некоторые функции, перечисленные ниже, непосредственно не связаны с ядром, но являются функциональной компонентой ядра:
а) загрузчик (IPL, initial program loader) – представляет программу, которая, как правило, в зависимости от ОС, записывается в нулевой сектор диска, который опрашивается первым. Программа может записываться различными способами: при форматировании носителя или процесса генерации ОС.
б) программа инициализации ядра (NID, nuclear initial program) – программа APL, выполняясь, загружает в реальную ОП часть ядра, которая подготавливает информацию для дальнейшей загрузки. В некоторых ОС программа NID грузится в старшие адреса реальной ОП, чтобы в младшие адреса загрузить ядро. После того, как APL отработала, выполняется NIP, определяющая состояние аппаратных средств, устанавливающая место загрузки ядра в ОП, устанавливающая размер ОП и др. После этого NIP загружает в реальную ОП ядро ОС и передает ему управление. Область реальной ОП, где находилась NIP, освобождается.
в) поддержка привилегированного режима – в ОС предусмотрена функция корректного перевода процессора из пользовательского режима в режим ядра. В режиме ядра может использоваться все команды по управлению системой, вводом/выводом и аппаратной поддержкой. Если такая команда начинает выполняться в пользовательском режиме, возникает прерывание по привилегированной операции.
г) средства трансляции виртуальных адресов в реальные. Создание и актуализация таблиц для поддержки того или иного способа организации виртуальной памяти.
д) средства обработки прерываний – обработка прерываний происходит по-разному в зависимости от аппаратной платформы и типа ОС. Общим подходом является то, что сигнал прерывания того или иного типа, если он не замаскирован, осуществляет смену PSV, некой структуры, которая отслеживает автоматически аппаратно состояние системы в текущий момент времени, в т. ч. в ней находится адрес следующей выполняемой команды. PSV хранится в регистрах и может быть загружена в них с помощью машинной команды (например loadpsv <адрес ОП>). С этого момента следующей командой, которая будет выполняться, является та команда, адрес которой указан в загруженном новом PSV. Старая PSV сохраняется и после обработки прерывания загружается и вновь становится текущим, возобновляя прерванный процесс.
Лекция
Дата добавления: 2015-07-07; просмотров: 305 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Основные концепции построения Windows | | | Обзор архитектуры |