Автор работы: Пользователь скрыл имя, 28 Января 2013 в 21:29, контрольная работа
1вопрос Основные функции ОС
2вопрос Классификация ОС
3вопрос Управление процессами
4вопрос Макроядерные ОС
5вопрос Микроядерные ОС
Код ядра, выполняемый в привилегированном режиме, имеет доступ к областям памяти всех приложений, но сам полностью от них защищен. Приложения обращаются к ядру с запросами на выполнение системных функций.
Однозначного решения о том, какие из системных функций нужно оставить в привилегированном режиме, а какие перенести в пользовательский режим, не существует. В общем случае многие программы менеджеров ресурсов, являющиеся неотъемлемыми частями обычного ядра — файловая система, подсистемы управления виртуальной памятью и процессами, программы обеспечения информационной безопасности и т. п., — становятся «периферийными» модулями, работающими в пользовательском режиме.
Работающие в пользовательском
режиме программы менеджеров ресурсов
имеют принципиальные отличия от
традиционных утилит (специальные сервисные
программы) и обрабатывающих программ
операционной системы, хотя при микроядерной
архитектуре все эти
Совсем другая ситуация возникает, когда в форме приложения оформляется часть операционной системы. Основным назначением такого приложения является обслуживание запросов других приложений, например создание процесса, выделение памяти, проверка прав доступа к ресурсу и т. д. Именно поэтому, программы менеджеров ресурсов, вынесенные в пользовательский режим, называются серверной частью ОС, то есть модулями, основным назначением которых является обслуживание запросов локальных приложений и других модулей ОС. Очевидно, что для реализации микроядерной структуры необходимым условием является наличие в операционной системе удобного и эффективного способа вызова процедур одного процесса из другого. Поддержка такого метода и является одной из главных задач микроядра.
Схематично механизм обращения к функциям ОС, оформленным в виде серверов, выглядит следующим образом (рисунок 14).
Рисунок 14. Схема обращения к функциям ОС
Пользователь, которым может быть либо прикладная программа, либо другой компонент ОС, запрашивает выполнение некоторой функции у соответствующего сервера, посылая ему запрос. Непосредственная передача запросов между приложениями невозможна, так как их адресные пространства изолированы друг от друга.
Микроядерная часть ОС, работающая в привилегированном режиме, имеет доступ к адресным пространствам каждого из приложений и поэтому может работать в качестве посредника. Микроядро сначала передает запрос, содержащий имя и параметры вызываемой процедуры нужному серверу, затем сервер выполняет запрос, после чего ядро возвращает результаты пользователю в виде ответа. Таким образом, работа микроядерной части операционной системы соответствует известной модели связи клиент-сервер, в которой роль транспортных средств выполняет микроядро.
Преимущества и недостатки микроядерной ОС
Операционные системы, основанные
на концепции микроядра, в высокой
степени удовлетворяют
Высокая степень переносимости ОС на другой компьютер обусловлена тем, что весь машинно-зависимый код изолирован в микроядре, поэтому для переноса системы на новый процессор требуется меньше изменений и все коды ядра логически сгруппированы в одном месте.
Расширяемость присуща только микроядерной ОС. В традиционных макроядерных ОС при наличии многослойной структуры нелегко удалить один слой и поменять его на другой. Это обусловлено множественностью и размытостью интерфейсов между слоями. Добавление новых функций и изменение существующих требует хорошего знания операционной системы и больших затрат времени.
В то же время ограниченный
набор четко определенных интерфейсов
микроядра открывает путь к упорядоченному
росту и эволюции ОС. Добавление
новой подсистемы требует разработки
нового приложения, что никак не
затрагивает целостность
При микроядерном структуре ОС ее конфигурируемость не вызывает никаких проблем и не требует особых мер — достаточно изменить файл с настройками начальной конфигурации системы.
Использование микроядерной структуры ОС повышает ее надежность. Каждая пользовательская серверная часть ОС (см. рисунок 14) выполняется в виде отдельного процесса в своей собственной области памяти и, таким образом, защищена от других пользовательских серверных частей ОС, что не наблюдается в традиционной макроядерной структуре ОС, где все модули ядра могут влиять друг на друга.. Если отдельная пользовательская серверная часть ОС терпит крах, то она может быть перезапущена без останова или повреждения остальных серверных частей ОС. Более того, поскольку серверные части ОС работают в пользовательском режиме, они не имеют непосредственного доступа к аппаратуре и не могут модифицировать память, в которой хранится и работает микроядро. Другим потенциальным источником повышения надежности ОС является уменьшенный объем кода микроядра по сравнению с традиционным макроядром — это снижает вероятность появления ошибок программирования.
Микроядерная структура ОС хорошо подходит для поддержки распределенных вычислений, так как использует методы, аналогичные сетевым: взаимодействие клиентов и серверов путем обмена запросами. Серверная часть микроядерной ОС может работать как на одном, так и на разных компьютерах. В этом случае при получении запроса от приложения микроядро может обработать его самостоятельно и передать серверной части микроядерной ОС этого компьютера или же переслать по сети микроядру, работающему на другом компьютере. Переход к распределенной обработке запроса требует минимальных изменений в работе операционной системы, таким образом организуется сетевой режим работы ОС.
При классической макроядерной организации ОС выполнение системного запроса сопровождается двумя переключениями режимов (рисунок 12), а при микроядерной организации ОС— четырьмя (рисунок 14). Таким образом, операционная система на основе микроядра при прочих равных условиях всегда будет менее производительной, чем ОС с классическим макроядром. Именно по этой причине микроядерный подход не получил такого широкого распространения, которое ему предрекали.
Под производительностью ОС понимается показатель качества работы ОС, определяемой числом операций, выполняемых в единицу времени.
Серьезность недостатка снижения производительности хорошо иллюстрирует история развития Windows - NT. В версиях 3.1 и 3.5 этой версии ОС диспетчер окон, графическая библиотека и высокоуровневые драйверы графических устройств входили в состав пользовательской серверной части ОС, и обработка запросов осуществлялась в соответствии с микроядерной структурой ОС. Однако очень скоро разработчики Windows поняли, что такой способ организации запросов к часто используемым функциям графического интерфейса существенно замедляет работу приложений. Все перечисленные недостатки микроядерной структуры ОС были учтены, начиная с версии Windows NT 4.0. В частности, пользовательские серверные части ОС были перенесены в ядро, что отдалило эту ОС от идеальной микроядерной структуры, но зато резко повысило ее производительность.
Этот пример иллюстрирует главную проблему, с которой сталкиваются разработчики операционной системы, решившие использовать микроядерную структуру ОС, что включать в микроядро, а что выносить в пользовательское пространство. В идеальном случае микроядро может состоять только из средств передачи запросов, средств взаимодействия с аппаратурой, в том числе средств доступа к средствам защиты памяти. Однако многие разработчики не всегда жестко придерживаются принципам минимизации функций ядра, часто жертвуя этим ради повышения производительности.
Следует отметить то, что далеко не все ОС можно явно отнести к определенному типу структуры. Зачастую встречаются ОС, в которых используются некоторые элементы из другой структуры, благодаря чему достигается компромисс между быстродействием компьютера и его надежностью.
Например, в версиях Windows NT 3.x использовалась типичная микроядерная структура, а в версиях 4х и позднее (Windows 2000 и Windows ХР) такие приложения как диспетчер окон, графическая библиотека и высокоуровневые драйверы графических устройств были перенесены в ядро ОС, что позволило повысить ее производительность, и приблизить их к классу макроядерных, даже несмотря на то, что у них используется технология «клиент-сервер».
Типичным примером микроядерных систем является ОСРВ QNX, микроядро которой выполняет не более 20 системных функций и занимает не более 46 Кбайт. Поэтому его можно разместить даже в кэш-памяти процессора IBM PC 486.