Ядро и вспомогательные модули ОС. Ядро и вспомогательные модули ОС
Ядро и вспомогательные модули ОС
Привилегированный режим
Многослойная структура ОС, ядра ОС
Аппаратная зависимость и переносимость ОС
7. Архитектура операционной системы
Любая сложная система должна иметь понятную и рациональную структуру, т.е. разделяться на части – модули, каждый из которых должен иметь законченное функциональное назначение с четко оговоренными правилами взаимодействия. Такая структура существенно упрощает работу по модификации и развитию системы. Напротив, сложную систему без хорошей структуры чаще проще разработать заново, чем модернизировать.
Обычно в состав операционной системы входит:
а) исполняемые и объектные модули стандартных для данной операционной системы форматов;
б) библиотеки разных типов;
в) модули исходного текста программ;
г) программные модули специального формата (например, загрузчик ОС, драйверы ввода – вывода);
д) конфигурационные формулы;
е) файлы документации;
ж) модули справочной системы и т.д.
Большинство современных операционных систем представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Какой – либо единой архитектуры операционных систем не существует, но существуют универсальные подходы к структурированию ОС.
Ядро и вспомогательные модули ОС
Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на 2 группы:
1) ядро – модули, выполняющие основные функции ОС;
2) модули, выполняющие вспомогательные функции ОС.
Модули ядра выполняют такие базовые функции ОС, как
- управление процессами;
- управление памятью;
- управление устройствами ввода – вывода и т.п.
Ядро составляет сердцевину операционной системы, без него ОС является полностью неработоспособной и не сможет выполнить ни одну из своих функций.
В состав ядра входят функции, решающие внутрисистемные задачи организации ВП:
Например: – переключение контекстов,
– загрузка/выгрузка страниц,
– обработка прерываний.
(Эти функции недоступны для приложений).
– создание прикладной программной среды.
Приложения могут обращаться к ядру с запросами – системными вызовами – для выполнения тех или иных действий, например, для открытия и чтения файла, вывода графической информации на дисплей, получения системного времени и т.д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования – API.
Скорость выполнения функций ядра определяет производительность системы в целом. Для обеспечения высокой скорости работы операционной системы все модули ядра или их большая часть постоянно находятся в ОП, т.е. являются резидентными.
Крах ядра равносилен краху всей системы.
Обычно ядро оформляется в виде программного модуля некоторого специального формата, отличающегося от формата пользовательских приложений.
Остальные модули ОС выполняют весьма полезные, но менее обязательные функции.
Вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек процедур. Поскольку некоторые компоненты ОС оформлены как обычные приложения, т.е. в виде исполняемых модулей стандартного для данной ОС формата, то часто бывает сложно провести грань между операционной системой и приложением.
Вспомогательные модули ОС обычно подразделяются на следующие группы:
· утилиты – программы, решающие отдельные задачи управления и сопровождения компьютерной системы. Например, программа сжатия дисков, архивирование данных на МЛ;
· системные обрабатывающие программы – текстовые или графические редакторы компиляторы, компоновщики, отладчики;
· программы предоставления пользователю дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор, игры и пр.
· библиотеки процедур различного назначения, упрощающие разработку приложений. Например, библиотека математических функций, функций ввода – вывода и т.д.
Как и обычные приложения, для выполнения своих задач вспомогательные модули ОС обращаются к функциям ядра посредством системных вызовов.
Разделение операционной системы на ядро и модули – приложения обеспечивает легкую расширяемость ОС.
Привилегированный режим
Важным свойством архитектуры ОС, основанной на ядре, является возможность защиты кодов и данных операционной системы за счет выполнения функции ядра в привилегированном режиме.
Для надежного управления кодом выполнения приложений операционная система должна иметь по отношению к приложениям определенные привилегии. Иначе некорректно работающее приложение может вмешаться в работу операционной системы и разрушить часть ее кодов.
Обеспечить привилегии операционной системе невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы – пользовательский режим (user mode) и привилегированный режим, который называют режимом ядра (kernel mode) или режимом супервизора (supervisor mode).
Т.к. ядро выполняет все основные функции ОС, то именно ядро становится той частью ОС, которая работает в привилегированном режиме.
Иногда это свойство служит основным понятием ядра.
Повышение устойчивости операционной системы, обеспечиваемое переходом в привилегированный режим, достигается за счет некоторого замедления выполнения системных вызовов. Системный вызов привилегированного ядра инициирует переключение процессора из пользовательского режима в привилегированный, а при возврате к приложению – переключение из привилегированного режима в пользовательский.
Архитектура ОС, основанная на привилегированном ядре и приложениях пользовательского режима, стала классической. Ее используют многие популярные операционные системы (UNIX, IBM,OS/390,OS/2, с определенными модификациями Windows NT).
ОС MS DOS состояла из двух модулей IO.SYS и MS DOS.SYS, составлявших ядро этой системы, к которым с системными вызовами обращались command.com, системные утилиты и приложения:
Некорректно написанные приложения вполне могли разрушить основные модули MS DOS, что иногда и происходило. Но область использования MS DOS не предъявляла высоких требований к надежности ОС.