- •Системное программное обеспечение. Операционные оболочки.
- •Ос и среды: назначение и основные определения
- •Функции операционных систем
- •Обслуживание компьютера.
- •Состав операционной системы
- •5. Классификация операционных систем
- •Особенности многозадачных операционных систем и операционных систем для многопроцессорных выч. Систем
- •8. Принципы построения и функционирования сетевой ос
- •9. Особенности серверных версий сетевых операционных систем
- •10. Основные принципы построения операционных систем
- •11. Архитектура «монолитное ядро»
- •13. Микроядерная архитектура
11. Архитектура «монолитное ядро»
Монолитное ядро, или, как его иногда называют в противоположность микроядру, макроядро есть тип ядра, которое включает в себя весь набор средств для взаимодействия прикладных программ с аппаратным окружением и друг с другом.
Классическое Монолитное ядро состоит из единственного загрузочного модуля, в котором реализованы все функции, возлагаемые на систему, и в частности, все сервисы, которые ядро предоставляет прикладным программам.
Принципиальной особенностью монолитного ядра является размещение всего его кода, включающего весь широкий набор его функций и данных в одном адресном пространстве и исполнение кода ядра впривилегированном режиме при невозможности его вытеснения пользовательскими процессами.
Такой способ организации определяет его плюсы:
-
взаимодействие компонентов ОС, так как они находятся в одном контексте может быть реализовано весьма просто (сравнимо с вызовом функций в обычном приложении);
-
все или большинство случаев взаимодействия прикладных программ не требует переключения между процессами, и как следствие «тяжеловесность» процессов некритична, и может быть весьма большой, что обеспечивает хорошую защищённость;
-
монолитное ядро теоретически имеет минимальные накладные расходы, необходимые для организации взаимодействия между собой различных компонентов операционной системы, поскольку отсутствует необходимость переключения контекстов.
В то же время у данной архитектуры есть и минусы:
-
неправильное функционирование одного из компонентов может нанести ущерб всей системе, что — опять-таки теоретически — делает систему с монолитным ядром менее надёжной, чем микроядерная система и требует большей тщательности в разработке компонентов ОС;
-
большой объём кода, исполняемого в невытесняемом режиме негативно влияет время отклика приложений на внешние события, что нежелательно или недопустимо в системах работающих в реальном времени;
-
значительно затруднено расширение функций ОС, так как часто требует вмешательства в ядро (частично решается переходом на модульное ядро).
В силу своей относительной простоты и невысоких накладных расходов монолитные ядра использовались в первых операционных системах, однако довольно быстро на смену монолитной архитектуре пришёл её улучшенный вариант — модульное ядро.
12 Архитектура «привилегированное ядро»
Для надежного управления ходом выполнения приложений операционная система должна иметь по отношению к приложениям определенные привилегии. Иначе некорректно работающее приложение может вмешаться в работу ОС и, например, разрушить часть ее кодов. Операционная система должна обладать исключительными полномочиями также для того, чтобы играть роль арбитра в споре приложений за ресурсы компьютера в мультипрограммном режиме.
Обеспечить привилегии операционной системе невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы — пользовательский режим (usermode) и привилегированный режим, который также называют режимом ядра (kernel mode), или режимом супервизора (supervisor mode). Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения — в пользовательском режиме.
Так как ядро выполняет все основные функции ОС, то чаще всего именно ядро становится той частью ОС, которая работает в привилегированном режиме. Иногда это свойство — работа в привилегированном режиме — служит основным определением понятия «ядро». Приложения ставятся в подчиненное положение за счет запрета выполнения в пользовательском режиме некоторых критичных команд, связанных с переключением процессора с задачи на задачу, управлением устройствами ввода-вывода, доступом к механизмам распределения и защиты памяти. Выполнение некоторых инструкций в пользовательском режиме запрещается безусловно (очевидно, что к таким инструкциям относится инструкция перехода в привилегированный режим), тогда как другие запрещается выполнять только при определенных условиях. Важно, что условия разрешения выполнения критичных инструкций находятся под полным контролем ОС и этот контроль обеспечивается за счет набора инструкций, безусловно запрещенных для пользовательского режима. Аналогичным образом обеспечиваются привилегии ОС при доступе к памяти.
Очень важно, что механизмы защиты памяти используются операционной системой не только для защиты своих областей памяти от приложений, но и для защиты областей памяти, выделенных ОС какому-либо приложению, от остальных приложений. Говорят, что каждое приложение работает в своем адресном пространстве. Это свойство позволяет локализовать некорректно работающее приложение в собственной области памяти, так что его ошибки не оказывают влияния на остальные приложения и операционную систему.
Повышение устойчивости операционной системы, обеспечиваемое переходом ядра в привилегированный режим, достигается за счет некоторого замедления выполнения системных вызовов. Системный вызов привилегированного ядра инициирует переключение процессора из пользовательского режима в привилегированный, а при возврате к приложению — переключение из привилегированного режима в пользовательский.