Ядро операционной системы сущность понятия
Ядром операционных систем называется тот их элемент, который всё время находится в оперативной памяти устройства и который выполняет функции управления всей операционной системой, включая драйверы устройств, программы, управляющие ресурсами памяти и тому подобное.
То есть все процессы и операции управляются именно ядром операционной системы. Вместе с тем, ядро это лишь незначительная составляющая кодировки всей операционной системы, но это составляющая работает практически всё время и является наиболее загруженным компонентом операционной системы. Именно поэтому ядро помещается в базовой части памяти, а другие элементы операционной системы пересылаются во внешнюю зону памяти и затем обратно при возникновении такой необходимости.
Основной задачей, выполняемой ядром, считается выполнение программ обработки прерываний. В крупных операционных системах, состоящих из большого числа абонентов, центральный процессор обрабатывает, фактически, непрерывную цепочку требований прерывания программы. И немедленное реагирование на требования прерываний очень важно, так как это обеспечивает полноценную загрузку системных ресурсов и означает оптимальное время реагирования на запросы пользователей, которые работают в режиме диалога.
Во время выполнения программы обслуживания какого-либо прерывания, ядро временно блокирует остальные требования прерываний и возобновляет их только по завершению программы обслуживания действующего прерывания. Если поток требований прерывания очень плотный, то возможно возникновение ситуации, когда ядро заблокирует какие-то прерывания на существенный временной интервал. Это означает отсутствие эффективного реагирования на требования прерываний программы. Чтобы исключить вероятность возникновения такой ситуации, ядро проектируется так, что оно выполняет только минимальную начальную обработку прерывания, а далее отсылает его для дальнейшего обслуживания в соответствующий системный процесс. После этого ядро разрешает поступление следующих запросов на прерывание программы.
Главные задачи, решаемые ядром
Ядро операционной системы включает в свой состав следующие программы, решающие соответствующие задачи:
- Программа обработки прерываний.
- Программа для формирования и ликвидации различных процессов.
- Программа переключения состояний процессов.
- Программа, выполняющая диспетчеризацию процессов.
- Программа для приостановки и последующей активации процесса.
- Программа синхронизации выполняемых процессов и организации обменов данными между ними.
- Программа по выполнению ввода и вывода данных.
- Программа управления функциями распределения ресурсов памяти.
- Программа поддержки файловых систем.
- Программа обеспечения вызова и возврата при работе с процедурами.
- Программа поддержки операций по учёту работ ЭВМ.
Виды структуры ядра операционной системы
Возможны следующие типы структуры (архитектуры) ядра операционной системы:
- Монолитная структура ядра.
- Модульная структура ядра.
- Микроструктура ядра.
- Экзо структура ядра.
- Нано структура ядра.
- Гибридная структура ядра.
- Комбинированная структура ядра.
Монолитное ядро формируется их обширного комплекта абстракций оборудования. Все элементы монолитного ядра работают в едином адресном формате. При такой организации операционной системы все составляющие части её ядра выступают как элементы основной программы, применяют одни и те же системы организации данных и работают друг с другом, используя непосредственный вызов процедуры. Это самый старый метод формирования операционной системы. В качестве примера можно привести UNIX. Достоинством является большая скорость выполнения операций и простота конструирования модулей. Недостатком можно считать работу ядра в едином адресном пространстве, так как неисправность в любом элементе способна блокировать работу всей системы.
Модульное ядро является современной и модифицированной версией структуры монолитного ядра операционной системы. Она отличается от классического монолитного ядра тем, что не требует общей реструктуризации ядра при различных вариациях аппаратной оснастки компьютеров. У модульных ядер есть возможность подгружать различные модули (элементы) ядра, которые поддерживают нужное аппаратное оборудование (как пример, загрузка драйвера), причём подзагрузка модуля возможна как в динамическом режиме, то есть без перезагрузки операционной системы, так и в статике, когда выполняется переконфигурирование системы и её перезагрузка.
Микроядро решает лишь самые простые задачи по управлению процессами и имеет небольшой комплект абстракций оборудования. Основная часть функций выполняется специальными процессами пользователя, которые называются сервисами. Главным признаком микроядра можно считать распределение практически всех драйверов и элементов в процессах сервиса. Часто нет возможности загрузки расширительных модулей в такое микроядро. Достоинством является нечувствительность к аппаратным сбоям, компонентных ошибках системы. Недостатком можно считать тот факт, что пересылка данных между процессами ведёт к накладным расходам.
Экзоядро –это ядро операционной системы, которое предоставляет только возможность взаимного обмена между процессами и надёжного распределения и высвобождения ресурсов.
Наноядро имеет такую структуру, при которой очень простое ядро решает лишь проблему обработки аппаратного прерывания программы, которое генерируют различные блоки компьютера. Когда обработка прерывания, например, при нажатии символа на клавиатуре, завершается, наноядро пересылает результаты программе, которая выше по рангу. При этом пересылка тоже выполняется посредством прерываний.
Гибридное ядро представляет собой модификацию микроядра, которая позволяет ускорить работу системы.
И, наконец, возможен вариант комбинированного применения вышеперечисленных вариантов построения структуры ядра операционной системы.