Многослойная структура ОС




 

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

Существует универсальный и эффективный подход к построению сложной системы любого типа – многослойный подход. В соответствии с ним система делится на иерархию слоев, каждый из которых обслуживает вышележащий слой, выполняя для него некоторый набор функций, образующих так называемый межслойный интерфейс. Основываясь на функциях, предоставляемых нижележащим слоем, вышележащий слой строит свои более мощные функции, являющиеся основой для создания функций еще более высокого в иерархии слоя. Межслойные интерфейсы, с помощью которых происходит взаимодействие слоев, строго оговорены, тогда как связи между модулями внутри одного слоя могут быть произвольными.

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

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

 

Рис. 3. Трехслойная структура вычислительной системы

 

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

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

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

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

менеджеры ресурсов, реализующие задачи по стратегическому управлению основными ресурсами вычислительной системы. Слой состоит из сложных и мощных функциональных модулей. Каждый менеджер ресурсов (называемый также диспетчером) ведет учет свободных и используемых ресурсов соответствующего типа и планирует их распределение в соответствии с запросами приложений. Менеджер должен отслеживать интенсивность обращений к ресурсу, длительность его применения и многие другие параметры с целью рационального планирования использования ресурсов. Взаимосвязь модулей внутри данного слоя обусловлена необходимостью доступа процесса к нескольким ресурсам одновременно. Например, при создании процесса менеджер процессов обращается к менеджеру памяти, который должен выделить этому процессу определенную область памяти для размещения его кодов и данных. Для управления ресурсами менеджеры ресурсов используют функции нижележащего слоя – базовых механизмов ядра;

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

 

 

Рис. 4. Многослойная структура ядра операционной системы

 

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

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: