Конспект лекций для студентов специальности 5В070200 Автоматизация и управление Алматы 2015



Pdf көрінісі
бет5/33
Дата13.03.2023
өлшемі0,92 Mb.
#73886
түріКонспект
1   2   3   4   5   6   7   8   9   ...   33
Байланысты:
PXcdfzCNmVjtZ8sMK5nLG1UywOruSq

Монолитное ядро представляет собой набор работающих в 
привилегированном режиме процедур, каждая из которых может вызвать 
каждую. Другими словами, монолитное ядро – это такая схема операционной 
системы, при которой все ее компоненты являются составными частями одной 
программы, используют общие структуры данных и взаимодействуют друг с 
другом путем непосредственного вызова процедур. Для монолитной 
операционной системы ядро совпадает со всей системой.
Во многих операционных системах с монолитным ядром сборка ядра, то 
есть его компиляция, осуществляется отдельно для каждого компьютера, на 
который устанавливается операционная система. При этом можно выбрать 
список оборудования и программных протоколов, поддержка которых будет 
включена в ядро. Так как ядро является единой программой, перекомпиляция 
– это единственный способ добавить в него новые компоненты или исключить 
неиспользуемые. Следует отметить, что присутствие в ядре лишних 
компонентов крайне нежелательно, так как ядро полностью располагается в 
оперативной памяти. Кроме того, исключение ненужных компонентов 
повышает надежность операционной системы в целом. Примером систем с 
монолитным ядром является большинство Unix-систем. 
Даже в монолитных системах можно выделить некоторую структуру: 
сервисные процедуры, соответствующие системным вызовам. Сервисные 
процедуры выполняются в привилегированном режиме, тогда как 
пользовательские программы – в непривилегированном. Для перехода с 
одного уровня привилегий на другой иногда может использоваться главная 
сервисная программа, определяющая, какой именно системный вызов был 
сделан, корректность входных данных для этого вызова и передающая 
управление соответствующей сервисной процедуре с переходом в 
привилегированный режим работы. Иногда выделяют также набор 
программных утилит, которые помогают выполнять сервисные процедуры. 
Продолжая структуризацию, можно разбить всю вычислительную 
систему на ряд более мелких уровней с хорошо определенными связями 
между ними, так чтобы объекты уровня N могли вызывать только объекты 
уровня N-1. Нижним уровнем в таких системах обычно является hardware, 
верхним уровнем – интерфейс пользователя. Чем ниже уровень, тем более 
привилегированные команды и действия может выполнять модуль, 
находящийся на этом уровне. Впервые такой подход был применен при 


10 
создании системы THE (Technishe Hogeschool Eindhoven) Дейкстрой и его 
студентами в 1968 г. Ее уровни показаны на рисунке А.1.
Слоеные 
(многоуровневые - Layered systems) системы хорошо реализуются. При 
использовании операций нижнего слоя не нужно знать, как они реализованы, 
нужно лишь понимать, что они делают. Слоеные системы хорошо 
тестируются, отлаживаются и модифицируются. При необходимости можно 
заменить лишь один слой, не трогая остальные. Но слоеные системы сложны 
для разработки: тяжело правильно определить порядок слоев и что отнести к 
конкретному слою. Слоеные системы менее эффективны, чем монолитные.
Современная тенденция в разработке операционных систем состоит в 
перенесении значительной части системного кода на уровень пользователя и 
одновременной минимизации ядра. Речь идет о подходе к построению ядра
называемом 
микроядерной 
архитектурой 
(microkernel 
architecture) 
операционной системы, когда большинство ее составляющих являются 
самостоятельными программами. В этом случае взаимодействие между ними 
обеспечивает специальный модуль ядра, называемый микроядром, которое 
работает в привилегированном режиме и обеспечивает взаимодействие между 
программами, планирование использования процессора, первичную обработку 
прерываний, операции ввода-вывода и базовое управление памятью (рисунок 
А.2). Остальные компоненты системы взаимодействуют друг с другом путем 
передачи сообщений через микроядро. 
Основное достоинство микроядерной архитектуры – высокая степень 
модульности ядра операционной системы. Это существенно упрощает 
добавление в него новых компонентов. В микроядерной операционной 
системе можно, не прерывая ее работы, загружать и выгружать новые 
драйверы, файловые системы и т. д. Существенно упрощается процесс 
отладки компонентов ядра, так как новая версия драйвера может загружаться 
без перезапуска всей операционной системы. Компоненты ядра операционной 
системы ничем принципиально не отличаются от пользовательских программ, 
поэтому для их отладки можно применять обычные средства. Микроядерная 
архитектура повышает надежность системы, поскольку ошибка на уровне 
непривилегированной программы менее опасна, чем отказ на уровне режима 
ядра. В то же время микроядерная архитектура операционной системы вносит 
дополнительные накладные расходы, связанные с передачей сообщений, что 
существенно влияет на производительность.
Все рассмотренные подходы к построению операционных систем имеют 
свои достоинства и недостатки. В большинстве случаев современные 
операционные системы используют различные комбинации этих подходов – 
смешанный подход.
При компиляции ядра можно разрешить динамическую загрузку и 
выгрузку очень многих компонентов ядра – так называемых модулей. В 
момент загрузки модуля его код загружается на уровне системы и связывается 
с остальной частью ядра. Внутри модуля могут использоваться любые 
экспортируемые ядром функции. Например, системы Linux и Windows NT 


11 
представляют собой гибридные операционные системы, поскольку в их ядрах 
тесно переплетены элементы микроядерной архитектуры и монолитного ядра. 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   33




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет