- •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. Смешанные алгоритмы планирования
18. Преимущества и недостатки микроядерной архитектуры
Микроядерная архитектура - альтернатива классическому способу построения операционной системы.
Преимущества и недостатки микроядерной архитектуры
Операционные системы, основанные на концепции микроядра, удовлетворяют большинству требований, предъявляемых к современным ОС, обладая переносимостью, расширяемостью, надежностью и возможностью поддержки распределенных приложений.
Высокая степень переносимости - весь машинно-зависимый код изолирован в микроядре, поэтому для переноса системы на новый процессор требуется меньше изменений и все они логически сгруппированы вместе.
Расширяемость в высокой степени. В традиционных системах даже при наличии многослойной структуры нелегко удалить один слой и поменять его на другой по причине множественности и размытости интерфейсов между слоями. Добавление новых функций и изменение существующих требует хорошего знания операционной системы и больших затрат времени. Ограниченный набор четко определенных интерфейсов микроядра позволяет расширять ОС. Добавление новой подсистемы требует разработки нового сервера ОС и не затрагивает целостность микроядра. Микроядерная структура позволяет также сокращать число компонентов операционной системы. Обычно традиционные операционные системы позволяют динамически добавлять в ядро или удалять из ядра только драйверы внешних устойств. При микроядерном подходе конфигурируемость ОС не требует особых мер - достаточно изменить файл с настройками начальной конфигурации системы или же остановить не нужные больше серверы в ходе работы обычными для остановки приложений средствами.
Использование микроядерной модели повышает надежность ОС. Каждый сервер выполняется в виде отдельного процесса в своей собственной области памяти и защищен от других серверов операционной системы, что не наблюдается в традиционной ОС, где все модули ядра могут влиять друг на друга. И если отдельный сервер терпит крах, то он может быть перезапущен без останова или повреждения остальных серверов ОС. Поскольку серверы выполняются в пользовательском режиме, они не имеют непосредственного доступа к аппаратуре и не могут модифицировать память, в которой хранится и работает микроядро. Другим потенциальный источник повышения надежности ОС - уменьшенный объем кода микроядра по сравнению с традиционным ядром и это снижает вероятность появления ошибок программирования.
Модель с микроядром хорошо подходит для поддержки распределенных вычислений, так как использует механизмы, аналогичные сетевым: взаимодействие клиентов и серверов путем обмена сообщениями. Серверы микроядерной ОС могут работать как на одном, так и на разных компьютерах. В этом случае при получении сообщения от приложения микроядро может обработать его самостоятельно и передать локальному серверу или же переслать по сети микроядру, работающему на другом компьютере. Переход к распределенной обработке требует минимальных изменений в работе операционной системы - локальный транспорт заменяется на сетевой.
Производительность. При классической организации ОС (рисунок 5, а) выполнение системного вызова сопровождается двумя переключениями режимов, а при микроядерной организации (рисунок 5, б) - четырьмя.
Операционная система на основе микроядра при прочих равных условиях всегда будет менее производительной, чем ОС с классическим ядром. Микроядерная архитектура операционной системы вносит дополнительные накладные расходы, связанные с передачей сообщений, что отрицательно влияет на производительность.
Рисунок 5 - Смена режимов при выполнении системного вызова
Для того чтобы микроядерная операционная система по скорости не уступала операционным системам на базе монолитного ядра, требуется очень аккуратно проектировать разбиение системы на компоненты, стараясь минимизировать взаимодействие между ними. Таким образом, основная сложность при создании микроядерных операционных систем — необходимость очень аккуратного проектирования.