- •1. Ос как виртуальная машина
- •2. Ос как система управления ресурсами
- •4. Определение распределенной ос
- •3. Определение сетевой ос
- •5. Функциональные компоненты сетевой ос
- •6. Сетевые службы и сетевые сервисы
- •7. Способы реализации сетевых служб и оболочек
- •8. Характеристика одноранговых ос
- •10. Требования к современным сетевым ос
- •12. Привилегированный и пользовательский режим
- •14. Переносимость ос
- •13. Многослойная структура ядра ос
- •15. Монолитное ядро
- •16. Модульное ядро
- •17. Особенности микроядерной архитектуры
- •18. Преимущества и недостатки микроядерной архитектуры
- •19. Выполнение системного вызова при классической организации ядра ос
- •20. Выполнение системного вызова при микроядерной организации ядра
- •21. Наноядро
- •22. Гибридное ядро
- •23. Гипервизор. Виртуальные машины
- •25. Реализация множественных прикладных программных сред
- •43. Планирование в системах реального времени
- •26. Мультипрограммирование в системах пакетной обработки
- •27. Мультипрограммирование в системах разделения времени
- •24. Двоичная совместимость и совместимость исходных текстов
- •31. Понятие «процесс»
- •32. Понятие «поток»
- •28. Мультипрограммирование в системах реального времени
- •30. Симметричная организация вычислительного процесса
- •29. Асимметричная организация вычислительного процесса
- •33. Информационные структуры для управления процессами и потоками
- •34. Статическое планирование потоков
- •35. Динамическое планирование потоков
- •36. Диспетчеризация потоков
- •37. Состояния потока
- •38. Преимущества и недостатки вытесняющих алгоритмов планирования
- •39. Преимущества и недостатки невытесняющих алгоритмов планирования
- •40. Алгоритмы планирования основанные на квантовании
- •41. Приоритетные алгоритмы планирования
- •42. Смешанные алгоритмы планирования
15. Монолитное ядро
Монолитное ядро — классическая и наиболее распространённая архитектура ядер. Все части монолитного ядра работают в одном адресном пространстве.
Монолитные ядра имеют долгую историю развития и усовершенствования и являются наиболее архитектурно развитыми и пригодными к эксплуатации. Монолитность ядер усложняет их отладку, понимание кода ядра, добавление новых функций и возможностей, удаление ненужного кода от предыдущих версий. Увеличение кода монолитных ядер также повышает требования к объёму оперативной памяти, требуемому для функционирования ядра ОС. Это делает монолитные ядерные архитектуры мало пригодными к эксплуатации в системах, сильно ограниченных по объёму ОЗУ, например, встраиваемых системах, производственных микроконтроллерах и т. д.
Альтернатива монолитным ядрам – микроядерная архитектура.
Старые монолитные ядра требовали перекомпиляции при любом изменении состава оборудования. Большинство современных ядер позволяют динамически во время работы подгружать модули, выполняющие части функции ядра. Такие ядра - модульные ядра. Возможность динамической загрузки модулей не нарушает монолитности архитектуры ядра, так как динамически подгружаемые модули загружаются в адресное пространство ядра и работают как часть ядра. Не следует путать модульность ядра с гибридной или микроядерной архитектурой.
Достоинства: Скорость работы, упрощённая разработка модулей.
Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.
Примеры: Традиционные ядра UNIX, такие как BSD; Linux.
16. Модульное ядро
Модульное ядро - современная, усовершенствованная модификация архитектуры монолитных ядер.
В отличие от «классических» монолитных ядер, считающихся ныне устаревшими, модульные ядра обычно не требуют перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. Вместо этого модульные ядра предоставляют некоторый механизм загрузки модулей ядра, поддерживающих аппаратное обеспечение (например, драйверов). Подгрузка модулей может быть как динамической (выполняемой «на лету», без перезагрузки ОС, в работающей системе), так и статической (выполняемой при перезагрузке ОС после переконфигурирования системы на загрузку нужных модулей).
Все модули ядра работают в адресном пространстве ядра и могут пользоваться всеми функциями ядра. Поэтому модульные ядра продолжают оставаться монолитными.
Модульные ядра удобнее для разработки, чем традиционные монолитные ядра, не поддерживающие динамическую загрузку модулей, так как не требуется многократная полная перекомпиляция ядра при работе над какой-либо его подсистемой или драйвером. Выявление, локализация, отладка и устранение ошибок при тестировании также облегчаются. Модули позволяют легко расширить возможности ядра по мере необходимости.
Примеры: OpenVMS, Linux, FreeBSD, NetBSD, Solaris.
17. Особенности микроядерной архитектуры
Микроядерная архитектура - альтернатива классическому способу построения операционной системы.
Суть микроядерной архитектуры в следующем. В привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром.
Микроядро защищено от остальных частей ОС и приложений. В состав микроядра обычно входят машинно-зависимые модули, а также модули, выполняющие наиболее базовые (но не все!) функции ядра по управлению процессами, обработке прерываний, управлению виртуальной памятью, управлению устройствами ввода-вывода, связанные с загрузкой или чтением регистров устройств и средства межпроцессной коммуникации. Набор функций микроядра обычно соответствует функциям слоя базовых механизмов обычного ядра и эти функции операционной системы невозможно выполнить в пространстве пользователя.
Все остальные более высокоуровневые функции ядра оформляются в виде приложений (серверов ОС), работающих в пользовательском режиме. Однозначного решения о том, какие из системных функций нужно оставить в привилегированном режиме, а какие перенести в пользовательский, не существует. Вынести в пространство пользователя можно, например, сетевые сервисы и файловые системы.
Микроядерная архитектура должна предоставлять удобный и эффективный способ вызова процедур одного процесса из другого. Поддержка такого механизма является одной из главных задач микроядра.