3OS

Лексикон 3ОС. Ядро


Определение - характеристика


Ядро - система управления процессами ОС; является важнейшей частью любой операционной системы. Предназначено для выделения аппаратных ресурсов процессам, принадлежащим самой ОС, а также приложениям, выполняющимся под ее управлением. Располагая ресурсами процессора и платформы монопольно, ядро непосредственно влияет на функционирование абсолютно всех подсистем ОС.

В задачу ядра входит: унификация и обеспечение легкости общения системных и прикладных задач с ресурсами платформы, бесконфликтное (без значительного снижения производительности) распределение ресурсов между задачами и осуществление контроля за безопасностью работы потоков.

Ядро выполняет планирование и диспетчеризацию потоков, обработку прерываний и синхронизацию процессов. Кроме того, оно синхронизирует деятельность компонентов исполняющей системы, обеспечивает создание и управление примитивными объектами (процессы, потоки, сообщения) исполняющей системы ОС и т.п.

С точки зрения архитектурного исполнения ядро 3ОС представляет собой микроядро, которое состоит из нескольких функциональных модулей, реализованных с помощью классов. А именно: менеджера памяти, диспетчера потоков, менеджера внутрисистемных сообщений (менеджер событий и синхронизации, фабрика класса), планировщика прерываний, подсистемы безаварийной работы ядра и отладчика уровня ядра (опционально).


Процесс - выполняемое приложение с собственным виртуальным адресным пространством, кодом, данными и другими ресурсами операционной системы, такими как файлы, каналы и синхронизирующие объекты; может иметь один или несколько потоков, выполняемых в контексте данного процесса.


Поток - создаваемый операционной системой объект (один или несколько) внутри процесса. Реализуется в виде совокупности исполняемых инструкций и данных, загруженных в оперативную память и дополненных служебной информацией, позволяющей ОС приостанавливать и возобновлять исполнение потока по своему усмотрению. Является минимальной (неделимой) единицей исполнения инструкций приложения.

В качестве атрибутов потока выступают код, данные, стек, сегмент состояния задачи.

Потоки позволяют осуществлять параллельное выполнение процессов и одновременное выполнение одним процессом различных частей программы на различных процессорах.

Для обеспечения независимости потоков друг от друга прямой доступ из адресного пространства одного потока в адресное пространство другого потока запрещен. Для осуществления необходимого взаимодействия между потоками операционной системой предоставляется возможность производить корректный вызов функций между различными адресными пространствами с помощью механизма удаленного доступа.


Безопасность (независимость) потоков - выделение каждому потоку собственного адресного пространства (кучи) для динамического размещения структур данных.


Данные - один из атрибутов потока; информация, предназначенная для ее обработки кодом потока. Может обрабатываться несколькими потоками одновременно.


Код - атрибут потока; совокупность функциональных методов, предназначенных для оперирования принадлежащими потоку данными.


Стек - упорядоченная структура данных, в которой добавление или удаление элементов всегда осуществляется в ее начало (вершину). Функционирует по принципу LIFO. Используется для временного хранения адресов возврата при вызовах методов (функций), а также для хранения передаваемых параметров и локальных переменных. Является атрибутом потока.


Сегмент состояния задачи (TSS) - атрибут потока; предназначен для сохранения состояния исполняемого кода.


Микроядро - архитектурное решение, согласно которому в состав ядра входят ...


Менеджер памяти - модуль ядра, отвечающий за управление оперативной памятью (ОП) и ее выделение под объекты ядра.


Диспетчер потоков - модуль ядра, отвечающий за управление потоками.


Менеджер внутрисистемных сообщений - модуль ядра, отвечающий за обмен сообщениями между потоками.


Планировщик прерываний - модуль ядра, отвечающий за управление порядком выполнения задач.


Подсистема безаварийной работы ядра - модуль ядра, отвечающий за ...


Отладчик уровня ядра - модуль ядра, отвечающий за ...


Сообщение - упорядоченная последовательность символов, предназначенная для передачи адресуемой ресурсу ОС информации.