Макроядерные операционные системы

В макроядерных, или монолитных, операционных системах ядро, состоящее из мно­жества управляющих модулей и структур данных, не разделено на центральную часть и периферийные (по отношению к этой центральной части) модули. Ядро получается монолитным, неделимым. В этом смысле макроядерные операцион­ные системы являются прямой противоположностью микроядерным. Можно со­гласиться с тем, как трактуется архитектура монолитных операционных систем в работах [29, 30]. В монолитной операционной системе, несмотря на ее возможную сильную структуризацию, очень трудно удалить один из уровней многоуровневой модульной структуры. Добавление новых функций и изменение существующих для монолитных операционных систем требует очень хорошего знания всей архи­тектуры операционной системы и чрезвычайно больших усилий.

Очень плодотворным оказался подход, основанный на модели клиент-сервер. Эта модель предполагает наличие программного компонента — потребителя какого-либо сервиса, или клиента, и программного компонента — поставщика этого сер­виса, или сервера. Взаимодействие между клиентом и сервером стандартизируется, так что сервер может обслуживать клиентов, реализованных различными спосо­бами и, возможно, разными разработчиками. При этом главным требованием яв­ляется то, чтобы использовался единообразный интерфейс. Инициатором обмена обычно является клиент, который посылает запрос на обслуживание серверу, на­ходящемуся в состоянии ожидания запроса. Один и тот же программный компо­нент может быть клиентом по отношению к одному виду услуг и сервером для другого вида услуг. Модель клиент-сервер является скорее удобным концептуаль­ным средством ясного представления функций того или иного программного эле­мента в той или иной ситуации, нежели технологией. Эта модель успешно приме­няется не только при построении операционных систем, но и на всех уровнях программного обеспечения, и имеет в некоторых случаях более узкий, специфи­ческий смысл, сохраняя, естественно, при этом все свои общие черты. Микроядер­ные операционные системы в полной мере используют модель клиент-сервер.

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




Макроядерные операционные системы - student2.ru Требования к операционным системам реального времени____________________ 293

Микроядерные операционные системы нынче разрабатываются чаще монолитных. Однако следует заметить, что использование технологии клиент-сервер — это еще не гарантия того, что операционная система станет микроядерной. В качестве под­тверждения этому можно привести пример с операционными системами класса Windows NT, которые построены на идеологии клиент-сервер, но которые тем не менее трудно назвать микроядерными. Их «микроядро» имеет уже достаточно боль­шой размер, приставка «микро» здесь вызывает улыбку. Хотя по своей архитекту­ре супервизорная часть этих систем без каких-либо условностей может быть отне­сена к системам, построенным на базе модели клиент-сервер. Причем для последних версий операционных систем с общим названием NT (New Technology) еще более заметным является отход от микроядерной архитектуры, но сохранение принципа клиент-сервер во взаимодействиях между модулями управляющей (супервизор-ной) части. Для того чтобы согласиться с таким высказыванием, достаточно срав­нить операционную систему QNX и операционные системы Windows NT/2000/ ХР.

Требования к операционным системам реального времени

Как известно, система реального времени (СРВ) должна давать отклик на любые непредсказуемые внешние воздействия в течение предсказуемого интервала вре­мени. Для этого должны выполняться следующие требования.

- Ограничение времени отклика. После наступления события реакция на него га­рантированно должна последовать до предустановленного крайнего срока. От­сутствие такого ограничения рассматривается как серьезный недостаток про­граммного обеспечения.

- Одновременность обработки. Даже если наступает более одного события одно­временно, все временные ограничения для всех событий должны быть выдер­жаны. Это означает, что системе реального времени должен быть присущ па­раллелизм, что достигается использованием нескольких процессоров и/или многозадачного подхода.

Примерами систем реального времени являются системы управления атомными электростанциями или какими-нибудь технологическими процессами, системы медицинского мониторинга, системы управления вооружением, системы косми­ческой навигации, системы разведки, системы управления лабораторными экспе­риментами, системы управления автомобильными двигателями, робототехника, телеметрические системы управления, системы антиблокировки тормозов, систе­мы сигнализации — список в принципе бесконечен.

Иногда можно услышать из разговоров специалистов, что различают системы «мяг­кого» и «жесткого» реального времени. Различие между жесткой и мягкой СРВ зависит от требований к системе — система считается жесткой, если «нарушение временных ограничений недопустимо», и мягкой, если «нарушение временных ограничений нежелательно». В недалеком прошлом велось множество дискуссий о точном смысле терминов «жесткая» и «мягкая» СРВ. Можно даже показать, что

Макроядерные операционные системы - student2.ru 294______________________________ Глава 9. Архитектура операционных систем

мягкая СРВ не является СРВ вовсе, ибо основное требование о соблюдении вре­менных ограничений не выполнено. В действительности термин СРВ часто не­правомерно применяют по отношению к быстрым системам.

Часто путают понятия СРВ и ОСРВ (операционная система реального времени), а также неправильно используют атрибуты «мягкая» и «жесткая», когда говорят, что та или иная ОСРВ мягкая или жесткая. Нет мягких или жестких операцион­ных систем реального времени. ОСРВ может только служить основой для постро­ения мягкой или жесткой СРВ. Сама по себе ОСРВ не препятствует тому, что ваша СРВ будет мягкой. Например, пусть вы решили создать СРВ, которая должна ра­ботать через Ethernet по протоколу TCP/IP. Такая система не может быть жест­кой СРВ, поскольку сама сеть Ethernet в принципе непредсказуема вследствие использования случайного метода доступа к среде передачи данных, в отличие, например, от сети IBM Token Ring или ARC Net, в которых используются детер­минированные методы доступа.

Итак, перечислим основные требования к ОСРВ.

Наши рекомендации