КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Структура и состав ОСВ состав ОС входят исполняемые и объектные модули стандартных для данной ОС форматов, программные модули специального формата (например, загрузчики ОС, драйверы ввода-вывода), конфигурационные файлы, файлы документации, модули справочной системы и т.д. Первые ОС разрабатывались как монолитные системы без какой-либо выраженной структуры и представляли собой набор функций и самостоятельных программ, каждая из которых могла беспрепятственно вызывать любую другую. Постепенно такой подход к проектированию (скорее отсутствие какого-либо подхода к проектированию) привел к возникновению ряда трудностей: во-первых, всё сложнее становилось обеспечить межмодульное взаимодействие, во-вторых, такие монолитные системы почти не способны развиваться, над ними крайне трудно работать большому коллективу программистов. Постепенно, с опытом, сложилось понятие архитектуры ОС и несколько классических архитектурных подходов. Архитектура ОС — это структурная и функциональная организация ОС на основе некоторой совокупности программных модулей. Архитектура определяет принципы действия, информационные связи и взаимодействие основных компонентов ОС. Большинство современных ОС представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Какой-либо одной единой унифицированной архитектуры ОС не существует, но известны универсальные подходы к структурированию ОС. Принципиально важными универсальными подходами к разработке архитектуры ОС являются: · Модульная организация · Функциональная избыточность · Функциональная избирательность · Параметрическая универсальность · Концепция многоуровневой иерархической вычислительной системы, по которой ОС представляется многослойной структурой · Разделение модулей на 2 группы по функциям: ядро — модули, выполняющие основные функции ОС, и модули, выполняющие вспомогательные функции ОС · Разделение модулей на 2 группы по размещению в памяти вычислительной системы: резидентные, постоянно находящиеся в оперативной памяти, и транзитивные, загружаемые в оперативную память только на время выполнения своих функций · Реализация двух режимов работы вычислительной системы: привилегированного режима (или режима ядра — Kernel mode), или режима супервизора (supervisor mode), и пользовательского режима (user mode), или режима задачи (task mode) · Ограничение функций ядра (а, следовательно, и количества модулей ядра) до минимального количества необходимых самых важных функций Классической считается архитектура ОС, основанная на концепции иерархической многоуровневой машины, привилегированном ядре и пользовательском режиме работы транзитных модулей. Модули ядра выполняют базовые функции ОС: управление процессами, памятью, устройствами ввода-вывода и т.п. Ядро является основой ОС, без которого работа не возможна. Ядром решаются внутрисистемные задачи организации вычислительного процесса в широком смысле. Особый класс функций ядра служит для обеспечения работы приложений. Приложения могут обращаться к ядру с запросами — системными вызовами — для выполнения тех или иных действий: обращение к элементам файловой системы, взаимодействие с устройствами и т.п. Интерфейсом прикладного программирования (API, Application Programming Interface) называются функции ядра, которые могут вызываться приложениями и системными утилитами, предоставляющие доступ к ресурсам компьютерной системы в удобной форме, абстрагировано от деталей их физического расположения и специфики взаимодействия с ними [ресурсами].
Классическая многоуровневая архитектура имеет ряд недостатков. Первый существенный недостаток в негибкости изменений. В случае внесения серьёзных изменений в модули уровня, влияние на смежные уровни может оказаться непредсказуемым и пагубным. Вторым существенным недостатком является трудоёмкость обеспечения безопасности при множественных межуровневых взаимодействиях. Поэтому альтернативой классическому варианту часто используют микроядерную архитектуру ОС. Содержательно микроядерная архитектура означает, что в привилегированном режиме остаётся работать только небольшая часть ОС — микроядро — защищённая от остальных частей и приложений. В его состав входят машинно-зависимые модули, а также модули, реализующие базовые механизмы ядра. Прочие модули функционируют в пользовательском режиме. Преимущества и недостатки микроядерного проектирования операционных систем являются спорными. На данный момент технология развивается в сторону дальнейшего уменьшения микроядра. Если типичное ядро первого поколения микроядерных ОС занимало порядка 300 Кбайт кода и включало до 140 интерфейсов системных вызовов, то типичное микроядро второго поколения — занимает 12 Кбайт кода и 7 интерфейсов системных вызовов[6].
|