1

К оглавлению

   

78. Архитектура операционных систем персонального компьютера

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

Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:

•   ядро – модули, выполняющие основные функции ОС;

•   модули, выполняющие вспомогательные функции ОС.

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

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

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

  

Вспомогательные модули ОС обычно подразделяются на следующие группы:

•   утилиты – программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков;

•   системные обрабатывающие программы – текстовые или графические редакторы, компиляторы, отладчики;

•   программы предоставления пользователю дополнительных услуг  – специальный вариант пользовательского интерфейса, калькулятор;

•   библиотека процедур  различного назначения, упрощающих разработку приложений, например, библиотека математических функций.

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

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

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

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

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

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

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

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

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

 

К оглавлению

Hosted by uCoz