Архитектура ОС. 1. Ядро и вспомогательные модули ос
Скачать 154 Kb.
|
Архитектура операционной системы 1. Ядро и вспомогательные модули ОС2. Привилегированный режим 3. Многослойная структура ОС 4. Структура ядра ОС5. Аппаратная зависимость и переносимость ОС Архитектура операционной системы Любая сложная система должна иметь понятную и рациональную структуру, т.е. разделяться на части – модули, каждый из которых должен иметь законченное функциональное назначение с четко оговоренными правилами взаимодействия. Такая структура существенно упрощает работу по модификации и развитию системы. Напротив, сложную систему без хорошей структуры чаще проще разработать заново, чем модернизировать. Обычно в состав операционной системы входит: а) исполняемые и объектные модули стандартных для данной операционной системы форматов; б) библиотеки разных типов; в) модули исходного текста программ; г) программные модули специального формата (например, загрузчик ОС, драйверы ввода – вывода); д) конфигурационные формулы; е) файлы документации; ж) модули справочной системы и т.д. Большинство современных операционных систем представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Какой – либо единой архитектуры операционных систем не существует, но существуют универсальные подходы к структурированию ОС. 1. Ядро и вспомогательные модули ОСНаиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на 2 группы: ядро – модули, выполняющие основные функции ОС; модули, выполняющие вспомогательные функции ОС. Модули ядра выполняют такие базовые функции ОС, как управление процессами; управление памятью; управление устройствами ввода – вывода и т.п. Ядро составляет сердцевину операционной системы, без него ОС является полностью неработоспособной и не сможет выполнить ни одну из своих функций. В состав ядра входят функции, решающие внутрисистемные задачи организации ВП: Например: – переключение контекстов, загрузка/выгрузка страниц, обработка прерываний. (Эти функции недоступны для приложений). создание прикладной программной среды. Приложения могут обращаться к ядру с запросами – системными вызовами – для выполнения тех или иных действий, например, для открытия и чтения файла, вывода графической информации на дисплей, получения системного времени и т.д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования – API. Скорость выполнения функций ядра определяет производительность системы в целом. Для обеспечения высокой скорости работы операционной системы все модули ядра или их большая часть постоянно находятся в ОП, т.е. являются резидентными. Крах ядра равносилен краху всей системы. Обычно ядро оформляется в виде программного модуля некоторого специального формата, отличающегося от формата пользовательских приложений. Остальные модули ОС выполняют весьма полезные, но менее обязательные функции. Вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек процедур. Поскольку некоторые компоненты ОС оформлены как обычные приложения, т.е. в виде исполняемых модулей стандартного для данной ОС формата, то часто бывает сложно провести грань между операционной системой и приложением. В спомогательные модули ОС обычно подразделяются на следующие группы: утилиты – программы, решающие отдельные задачи управления и сопровождения компьютерной системы. Например, программа сжатия дисков, архивирование данных на МЛ; системные обрабатывающие программы – текстовые или графические редакторы компиляторы, компоновщики, отладчики; программы предоставления пользователю дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор, игры и пр. библиотеки процедур различного назначения, упрощающие разработку приложений. Например, библиотека математических функций, функций ввода – вывода и т.д. Как и обычные приложения, для выполнения своих задач вспомогательные модули ОС обращаются к функциям ядра посредством системных вызовов. Р азделение операционной системы на ядро и модули – приложения обеспечивает легкую расширяемость ОС. 2. Привилегированный режим Важным свойством архитектуры ОС, основанной на ядре, является возможность защиты кодов и данных операционной системы за счет выполнения функции ядра в привилегированном режиме. Для надежного управления кодом выполнения приложений операционная система должна иметь по отношению к приложениям определенные привилегии. Иначе некорректно работающее приложение может вмешаться в работу операционной системы и разрушить часть ее кодов. Обеспечить привилегии операционной системе невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы – пользовательский режим (user mode) и привилегированный режим, который называют режимом ядра (kernel mode) или режимом супервизора (supervisor mode). Т.к. ядро выполняет все основные функции ОС, то именно ядро становится той частью ОС, которая работает в привилегированном режиме. Иногда это свойство служит основным понятием ядра. Повышение устойчивости операционной системы, обеспечиваемое переходом в привилегированный режим, достигается за счет некоторого замедления выполнения системных вызовов. Системный вызов привилегированного ядра инициирует переключение процессора из пользовательского режима в привилегированный, а при возврате к приложению – переключение из привилегированного режима в пользовательский. Архитектура ОС, основанная на привилегированном ядре и приложениях пользовательского режима, стала классической. Ее используют многие популярные операционные системы. 3. Многослойная структура ОС Вычислительную систему, работающую под управлением ОС на основе ядра, можно рассматривать как систему, состоящую из трех иерархически расположенных слоев: нижний слой образует аппаратура; промежуточный – ядро; у тилиты, обрабатывающие программы и приложения составляют верхний слой системы. Рис. 5. Структура ОС 4. Структура ядра ОС Многослойный подход является универсальным и эффективным способом декомпозиции сложных систем любого типа, в том числе и программных. Поскольку ядро представляем собой сложный много функциональный комплекс, многослойный подход обычно распространяется и на структуру ядра. Многослойная структура ядра ОС может быть представлена, например, вариантом, показанным ниже. Рис. 6. Структура ядра ОС. В данной схеме выделены следующие слои. Интерфейс системных вызовов Этот слой является самым верхним слоем ядра и взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс операционной системы. Функции API, обслуживающие системные вызовы, предоставляют доступ к ресурсам системы в удобной компактной форме, без указания деталей их физического расположения Менеджеры ресурсов Этот слой состоит из мощных функциональных модулей, реализующих стратегические задачи по управлению основными ресурсами. Обычно на данном слое работают менеджеры (диспетчеры) процессов ввода–вывода, файловой системы и оперативной памяти. Каждый из менеджеров ведет учет свободных и используемых ресурсов определенного типа и планирует их распределение в соответствии с запросами приложений. Например, менеджер виртуальной памяти управляет перемещением страниц из ОП на диск и обратно. Менеджер должен отслеживать интенсивность обращений к страницам, время пребывания их в памяти, состояния процессов, использующих данные, и многие другие параметры, на основании которых он время от времени принимает решения о том, какие страницы необходимо выгрузить, а какие – загрузить Для исполнения принятых решений менеджер обращается к нижележащему слою базовых механизмов с запросами о загрузке (выгрузке) конкретных страниц Базовые механизмы ядра Этот слой выполняет модулей наиболее примитивные операции ядра, такие как • программное переключение контекстов процессов; диспетчеризацию прерываний; перемещение страниц памяти на диск и обратно и т.п. Модули данного слоя не принимают решений о распределении ресурсов – они только отрабатывают принятые наверху решения, что и дает повод называть их исполнительными механизмами для модулей верхних слоев. Машинно–зависимые компоненты ОС Этой слой образуют программные модули, в которых отражается специфика аппаратной платформы компьютера. Средства аппаратной поддержки ОС Значительная часть функций ОС может выполняться и аппаратными средствами. Чисто программные ОС сейчас не существуют. Как правило, в современных системах всегда есть средства аппаратной поддержки ОС, которые прямо участвуют в организации вычислительных процессов. К ним относятся: система прерываний, средства поддержки привилегированного режима, средства поддержки виртуальной памяти, средства переключения контекстов процессов, средства защиты памяти и др. средства поддержки привилегированного режима; система прерываний; средства поддержки виртуальной памяти; системный таймер; средства переключения контекстов, процессов (информация о состоянии процесса в момент его приостановки); средства защиты областей памяти и т.п. Приведенное разбиение ядра ОС на слои является достаточно условным. В реальной системе количество слоев и распределение функций между ними может быть и иным. 5. Аппаратная зависимость и переносимость ОСМногие операционные системы успешно работают на различных аппаратных платформах без существенных изменений в своем составе. Во многом это объясняется тем, что, несмотря на различие в деталях, средства аппаратной поддержки ОС большинства компьютеров приобрели сегодня много типовых черт. В результате в операционной системе можно выделить достаточно компактный слой машинно–зависимых компонентов ядра и сделать остальные слои ОС общими для разных аппаратных платформ. Практически все современные аппаратные платформы имеют некоторый типичный набор средств аппаратной поддержки ОС, в который входят следующие компоненты: средства поддержки привилегированного режима; средства трансляции адресов; средства переключения процессов; система прерываний; системный таймер; средства защиты областей памяти. Средства поддержки привилегированного режима обычно основаны на системном регистре процессора, часто называемом «словом состояния» машины или процессора. Этот регистр содержит некоторые признаки, определяющие режимы работы CPU, в том числе и признак текущего режима привилегий. Смена режима привилегий выполняется за счет применения слова состояния машины в результате прерывания или выполнения привилегированной команды. Средства трансляции адресов выполняют операции преобразования виртуальных адресов, которые содержатся в кодах процесса, в адреса физической памяти. Средства переключения процессов предназначены для быстрого сохранения контекста приостанавливаемого процесса и восстановления контекста процесса, который становится активным. Содержимое контекста обычно включает содержимое всех регистров общего назначения процессора, регистра флагов операций (т.е. флагов нули, переноса, переполнения и т.п.). Переключение контекста выполняется по определенным командам процессора, например, по команде перехода на новую задачу. Система прерываний позволяет компьютеру реагировать на внешние события, синхронизировать работу устройств ввода–вывода и выполнение процессов, быстрого переходить с одной программы на другую. Механизм прерываний необходим для того, чтобы оповестить процессор о возникновении в вычислительной системе некоторого непредсказуемого события или события, не синхронизировано с циклом работы процессора. Например, завершение ввода – вывода внешним устройством, некорректное завершение арифметической операции, истечение интервала времени. При возникновении условий прерывания его источник (котроллер внешнего устройства, таймер, арифметический блок процессора и др.) выставляет определенный электрический сигнал. Этот сигнал прерывает выполнение процессором последовательности команд, задаваемой исполняемым кодом. И вызывает автоматический переход на заранее определенную процедуру, называемую процедурой обработки прерываний. Системный таймер необходим операционной системе для выдержки интервалов времени. Для этого в регистр таймера программно загружается значение требуемого интервала, у которого затем автоматически с определенной частотой начинает вычитаться по единице. При достижении нулевого значения счетчика таймер инициирует прерывание, которое обрабатывается процедурой операционной системы. Прерывания от системного таймера используются операционной системой в первую очередь для снижения за тем, как отдельные процессы расходуют время процессора. 6. Средства защиты областей памяти обеспечивают на аппаратном уровне проверку возможностей программного кода осуществлять с данными определенной области памяти такие операции, как чтение, запись или выполнение. |