Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Архитектура операционных систем




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

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

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

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

Функции, которые выполняет ядро, наиболее часто востребованы, поэтому скорость их выполнения определяет производительность системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть находятся постоянно в памяти, то есть являются резидентными.

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

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

Объем машинно-зависимых компонентов ОС зависит от того, насколько велики отличия в аппаратных платформах, для которых разрабатывается ОС. Например, ОС, построенную на 32-битных адресах, для переноса на 16-битную систему придется полностью переписать. Одно из очевидных отличий - несовпадение системы команд процессоров - преодолевается достаточно просто. ОС программируется на языке высокого уровня, а затем соответствующим компилятор вырабатывается код для конкретного типа процессора.

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

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

Разделение ОС на ядро и модули обеспечивает легкую расширяемость. Дополнительные модули ОС обычно загружаются в оперативную память только на время выполнения, т.е. являются транзитивными.

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

Аппаратура компьютера должна поддерживать как минимум два режима работы: режим пользователя и режим супервизора. ОС должна работать с исключительными полномочиями, для того чтобы играть роль арбитра в споре приложений за ресурсы компьютера в мультипрограммном режиме. В современных ОС для обеспечения уровней привилегий без поддержки аппаратуры не обойтись. Аппаратура должна поддерживать как минимум два режима – пользовательский и привилегированный режим.

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

Рис. 1. Многослойность

 

Современная тенденция в разработке операционных систем – это перенесение значительной части системного кода на уровень пользователя и одновременной минимизации ядра. Речь идет о подходе к построению ядра, называемом микроядерной архитектурой (microkernel architecture) операционной системы, когда большинство ее составляющих являются самостоятельными программами. В этом случае взаимодействие между ними обеспечивает специальный модуль ядра, называемый микроядром (рис. 2).

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

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

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

 

 




Поделиться с друзьями:


Дата добавления: 2014-12-08; Просмотров: 1518; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.