Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции СПО

.pdf
Скачиваний:
30
Добавлен:
03.06.2015
Размер:
2.4 Mб
Скачать

прямо уч ствуют в ор

низ ции вычислительных

процессов:

средств

поддержки привиле иров нно о режим ,

систему

прерыв ний,

средств

переключения контекстов процессов, средств

з щиты о л стей п мяти и т. п.

Машинно-зависимые

компоненты

ОС. Этот слой

о р зуют

про р ммные модули, в которых отр ж ется специфик

пп р тной пл тформы

компьютер . В иде ле этот слой полностью экр нирует вышележ щие слои

ядр

от осо енностей

пп р туры. Это позволяет р зр

тыв ть вышележ щие

слои

н

основе

м шинно-нез висимых

модулей, существующих в

единственном экземпляре для всех

типов

пп р тных пл тформ,

поддержив емых д нной ОС. Примером экр нирующе о слоя может служить слой HAL опер ционной системы Windows NT.

Базовые механизмы ядра. Этот слой выполняет н и олее примитивные опер ции ядр , т кие к к про р ммное переключение контекстов процессов,

диспетчериз цию прерыв ний, перемещение стр ниц из п мяти н диск и

о р тно и т. п. Модули д нно о слоя не приним ют решений о р спределении

ресурсов — они только отр тыв ют принятые «н верху» решения, что и д ет

повод н зыв ть их исполнительными мех низм ми для модулей верхних слоев.

Н пример, решение о том, что в д нный момент нужно прерв ть выполнение

текуще о

процесс А

и

 

н ч ть

выполнение

процесс

В,

приним ется

менеджером процессов н

вышележ щем слое,

слою

зовых мех низмов

перед ется только директив

о том, что нужно выполнить переключение с

контекст

текуще о процесс

 

н контекст процесс

В.

 

 

 

 

Менеджеры ресурсов. Этот слой состоит из мощных функцион льных

модулей,

ре лизующих

стр те ические

з д чи

по

упр влению

основными

ресурс ми

вычислительной

системы.

О ычно

н

д нном слое

р от ют

менеджеры (н зыв емые

т кже

диспетчер ми)

процессов,

ввод -вывод ,

ф йловой системы и опер тивной п мяти. Р з иение н

менеджеры может ыть

и несколько иным, н пример менеджер ф йловой системы ино д

о ъединяют с

менеджером ввод -вывод , функции упр вления доступом пользов телей к системе в целом и ее отдельным о ъект м поруч ют отдельному менеджеру

езоп сности. К ждый из менеджеров ведет учет сво одных и используемых ресурсов определенно о тип и пл нирует их р спределение в соответствии с з прос ми приложений. Н пример, менеджер вирту льной п мяти упр вляет

перемещением стр ниц из опер тивной п мяти н диск и о р тно. Менеджер

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

п р метры, н основ нии которых он время от времени приним ет решения о том, к кие стр ницы нео ходимо вы рузить и к кие — з рузить. Для

исполнения принятых решений менеджер о р щ ется к нижележ щему слою

зовых мех низмов с з прос ми о з рузке (вы рузке) конкретных стр ниц.

Внутри слоя менеджеров существуют тесные вз имные связи, отр ж ющие тот ф кт, что для выполнения процессу нужен доступ одновременно к нескольким ресурс м — процессору, о л сти п мяти, возможно, к определенному ф йлу

или устройству ввод -вывод . Н пример, при созд нии процесс менеджер процессов о р щ ется к менеджеру п мяти, который должен выделить

процессу определенную о л сть п мяти для е о кодов и д нных.

Интерфейс системных вызовов. Этот слой является с мым верхним

слоем ядр и вз имодействует непосредственно с приложениями и системными утилит ми, о р зуя прикл дной про р ммный интерфейс опер ционной системы. Функции API, о служив ющие системные вызовы, предост вляют доступ к ресурс м системы в удо ной и комп ктной форме, ез ук з ния

дет лей их физическо о р сположения. Н пример, в опер ционной системе

UNIX с помощью системно о вызов fd = open("/doc/a.txt",

0_RDONLY)

приложение открыв ет ф йл a.txt, хр нящийся в к т ло е /doc,

с помощью

системно о вызов read(fd, buffer, count) чит ет из это о ф йл в о л сть свое о

дресно о простр нств , имеющую имя buffer, некоторое количество йт. Для

осуществления

т ких комплексных

действий системные вызовы о ычно

о р щ ются з

помощью к функциям

слоя менеджеров ресурсов, причем для

выполнения одно о системно о вызов

может пон до иться несколько т ких

о р щений.

 

 

Рис. 3.8. Мно ослойн я структур ядр ОС Приведенное р з иение ядр ОС н слои является дост точно условным.

В ре льной системе количество слоев и р спределение функций между ними

может ыть и иным. В систем х, предн зн ченных для пп р тных пл тформ

одно о тип , н пример ОС NetWare, слой м шинно-з висимых модулей о ычно

не выделяется, слив ясь со слоем

зовых мех низмов и, ч стично,

со слоем

менеджеров ресурсов. Не все д

оформляются в отдельный слой

зовые

мех низмы — в этом случ е менеджеры ресурсов не только пл нируют

использов ние ресурсов, но и с мостоятельно ре лизуют свои пл ны.

Возможн и противоположн я к ртин , ко д ядро состоит из ольше о количеств слоев. Н пример, менеджеры ресурсов, сост вляя определенный

слой ядр , в свою очередь, мо ут о л д ть мно ослойной структурой. Прежде

все о это

относится

к менеджеру ввод -вывод , нижний слой которо о

сост вляют др йверы устройств, н пример др йвер жестко о диск

или др йвер

сетево о

д птер ,

верхние слои — др йверы ф йловых систем или

протоколов сетевых

служ , имеющие дело с ло ической

ор низ цией

информ ции.

 

 

Спосо вз имодействия слоев в ре льной ОС т кже может отклоняться от опис нной выше схемы. Для ускорения р оты ядр в некоторых случ ях

происходит непосредственное о р щение с верхне о слоя к функциям нижних слоев, минуя промежуточные. Типичным примером т ко о «непр вильно о»

вз имодействия является н ч льн я ст дия о р

отки системно о вызов . Н

мно их пп р тных

пл тформ х для

ре лиз ции

системно о

вызов

используется

инструкция про р ммно о

прерыв ния.

Этим приложение

ф ктически

вызыв ет

модуль первичной

о р

отки прерыв ний,

который

н ходится в слое зовых мех низмов, уже этот модуль вызыв ет нужную

функцию из слоя системных вызовов. С ми функции системных вызовов т кже

ино д

н руш ют

су ордин цию

иер рхических

слоев,

о р щ ясь

прямо к

зовым мех низм м ядр .

 

 

 

 

 

 

 

Вы ор количеств

слоев

ядр

является

ответственным

и

сложным

делом: увеличение числ

слоев ведет к некоторому з медлению р

оты ядр з

счет дополнительных н кл дных р сходов н

межслойное вз имодействие,

уменьшение числ

слоев ухудш ет

р сширяемость и

ло ичность

системы.

О ычно

опер ционные

системы,

прошедшие

дол ий

путь эволюционно о

р звития, н пример мно ие версии

UNIX, имеют неупорядоченное ядро с

не ольшим числом четко выделенных слоев,

 

у ср внительно «молодых»

опер ционных систем, т ких к к Windows NT, ядро р зделено н

ольшее

число слоев и их вз имодействие форм лизов но в

ор здо ольшей степени.

4.4 Типовые средства аппаратной поддержки ОС

Четкой

р ницы между

про р ммной

и

пп р тной ре лиз цией

функций ОС не существует — решение о том, к кие функции

ОС

удут

выполняться про р ммно,

к кие пп р тно,

приним ется

р зр

отчик ми

пп р тно о

и

про р ммно о

о еспечения

компьютер .

Тем

не

менее

пр ктически

все

современные

пп р тные пл тформы

имеют

некоторый

типичный н

ор

средств

пп р тной поддержки

ОС,

в

который

входят

следующие компоненты:

средств поддержки привиле иров нно о режим ;

средств тр нсляции дресов;

средств переключения процессов;

систем прерыв ний;

системный т ймер;

средств з щиты о л стей п мяти.

Средств

поддержки привиле иров нно о режим

о ычно основ ны н

системном ре истре процессор ,

ч сто

н зыв емом

«словом

состояния»

м шины или

процессор . Этот

ре истр

содержит

некоторые

призн ки,

определяющие режимы р оты процессор , в том числе и призн к текуще о

режим

привиле ий. Смен режим

привиле ий выполняется з счет изменения

слов

состояния

м шины

в

результ те прерыв ния или выполнения

привиле иров нной

ком нды.

Число р д ций привиле иров нности может

ыть р зным у р зных типов процессоров, н и олее ч сто используются дв уровня (ядро-пользов тель) или четыре (н пример, ядросупервизор-

выполнениепользов тель у пл тформы VAX или 0-1-2-3 у процессоров Intel x86/Pentium). В о яз нности средств поддержки привиле иров нно о режим

входит выполнение проверки допустимости выполнения

ктивной про р ммой

инструкций процессор

при текущем уровне привиле иров нности.

 

Средств

тр нсляции

дресов

выполняют

опер ции

прео р зов ния

вирту льных

 

дресов,

 

которые

содерж тся

в код х

процесс ,

в дрес

физической п мяти. Т

лицы, предн зн ченные

при

тр нсляции

дресов,

о ычно имеют

ольшой о ъем, поэтому для их хр нения используются о л сти

опер тивной п мяти,

 

пп р тур

процессор

содержит только ук з тели н

эти о л сти. Средств

тр нсляции дресов используют д нные ук з тели для

доступ к

элемент м

т

лиц

и

пп р тно о

выполнения

л оритм

прео р зов ния

дрес ,

что зн чительно ускоряет процедуру тр нсляции по

ср внению с ее чисто про р ммной ре лиз цией.

 

 

 

 

Средств

переключения

процессов

предн зн чены

для

ыстро о

сохр нения

контекст

 

приост н влив емо о

процесс

и

восст новления

контекст процесс , который ст новится ктивным. Содержимое контекст

о ычно включ ет содержимое всех ре истров о ще о н зн чения процессор ,

ре истр фл ов опер ций (то есть фл ов нуля, перенос , переполнения и т. п.),

т кже тех системных ре истров и ук з телей, которые связ ны с отдельным

процессом,

не опер ционной системой, н пример ук з теля н

т лицу

тр нсляции

дресов процесс . Для хр нения

контекстов

приост новленных

процессов

о ычно

используются

о л сти

опер тивной

п мяти,

которые

поддержив ются ук з телями процессор .

 

 

 

 

Переключение

контекст выполняется

по определенным

ком нд м

процессор ,

н пример по ком нде переход

н

новую з д чу. Т к я ком нд

вызыв ет

втом тическую з рузку

д нных

из сохр ненно о контекст в

ре истры процессор , после че о процесс продолж ется с прерв нно о р нее мест .

Систем прерыв ний позволяет компьютеру ре

иров ть н

внешние

со ытия, синхронизиров ть выполнение процессов и р

оту устройств ввод -

вывод , ыстро переходить с одной про р ммы н

дру ую.

Мех низм

прерыв ний нужен для то о, что ы оповестить процессор о возникновении в вычислительной системе некоторо о непредск зуемо о со ытия или со ытия,

которое не синхронизиров но с циклом р

оты процессор . Пример ми т ких

со ытий мо ут служить

з вершение

опер ции

ввод -вывод

внешним

устройством (н пример,

з пись

лок

д нных

контроллером

диск ),

некорректное з вершение

рифметической опер ции (н пример, переполнение

ре истр ), истечение интерв л строномическо о времени. При возникновении

условий прерыв ния е о источник (контроллер внешне о устройств , т ймер,

рифметический

лок

процессор

и

т. п.)

выст вляет определенный

электрический си н л.

Этот

си н л

прерыв ет

выполнение

процессором

последов тельности ком нд,

з д в емой

исполняемым кодом, и вызыв ет

втом тический

переход

н

з р нее определенную процедуру,

н зыв емую

процедурой о р

отки прерыв ний. В

ольшинстве моделей

процессоров

отр тыв емый

пп р турой переход н

процедуру о р отки прерыв ний

сопровожд ется з меной слов состояния м шины (или д же все о контекст

процесс ), что позволяет одновременно с переходом по нужному

дресу

выполнить переход в привиле иров нный режим. После з вершения о р

отки

прерыв ния о ычно происходит возвр т к исполнению прерв нно о код .

 

Прерыв ния и р ют в жнейшую роль в р оте лю ой опер ционной системы, являясь ее движущей силой. Действительно, ольш я ч сть действий

ОС инициируется прерыв ниями р злично о тип . Д же системные вызовы от

приложений выполняются н мно их пп р тных пл тформ х с помощью

специ льной инструкции прерыв ния, вызыв ющей переход к выполнению

соответствующих процедур ядр (н пример, инструкция int в процессор х Intel

или SVC в мэйнфрейм х IBM).

Системный т ймер, ч сто ре лизуемый в виде ыстродействующе о

ре истр -счетчик , нео ходим опер ционной системе для выдержки интерв лов

времени. Для это о в ре истр т ймер про р ммно з руж ется зн чение

тре уемо о интерв л в условных единиц х, из которо о з тем втом тически с

определенной

ч стотой

н чин ет вычит ться по единице. Ч стот

«тиков»

т ймер , к к

пр вило,

тесно связ н

с ч стотой

т ктово о

енер тор

процессор . (Не следует пут ть т ймер

ни с т ктовым

енер тором, который

выр тыв ет си н лы, синхронизирующие все опер ции в компьютере, ни с

системными ч с ми — р от ющей н т реях электронной схеме, — которые

ведут нез висимый отсчет времени и к ленд рной д ты.) При достижении

нулево о зн чения счетчик т ймер инициирует прерыв ние, которое

о р тыв ется процедурой опер ционной системы. Прерыв ния от системно о

т ймер используются ОС

в первую

очередь для слежения

з

тем, к к

отдельные

процессы

р сходуют

время процессор . Н пример, в

системе

р зделения

времени

при

о р

отке

очередно о прерыв ния

от

т ймер

пл нировщик процессов может принудительно перед ть упр вление дру ому процессу, если д нный процесс исчерп л выделенный ему кв нт времени.

Средств з щиты о л стей п мяти о еспечив ют н пп р тном уровне проверку возможности про р ммно о код осуществлять с д нными

определенной

о л сти

п мяти

т кие

опер ции,

к к чтение,

з пись или

выполнение

(при перед ч х

упр вления).

Если

пп р тур

компьютер

поддержив ет

мех низм

тр нсляции

дресов,

то средств з щиты о л стей

п мяти встр ив ются в этот мех низм. Функции пп р туры по з щите п мяти о ычно состоят в ср внении уровней привиле ий текуще о код процессор и се мент п мяти, к которому производится о р щение.

4.5 Микроядерная архитектура

 

4.5.1 Концепция

 

Микроядерн я рхитектур является льтерн тивой

кл ссическому

спосо у построения опер ционной системы. Под кл ссической

рхитектурой в

д нном случ е поним ется р ссмотренн я выше структурн я ор

низ ция ОС, в

соответствии с которой все основные функции опер ционной системы,

сост вляющие мно ослойное ядро, выполняются в привиле иров нном режиме.

При этом некоторые вспомо тельные функции ОС оформляются в виде

приложений и выполняются в пользов тельском режиме н ряду с о ычными

пользов тельскими

про р мм ми

(ст новясь

системными утилит ми или

о р

тыв ющими

про р мм ми).

К ждое

приложение пользов тельско о

режим

р от ет в со ственном дресном простр нстве и з щищено тем с мым

от к ко о-ли о вмеш тельств дру их приложений. Код ядр , выполняемый в

привиле иров нном режиме, имеет доступ к о л стям п мяти всех приложений,

но с м полностью от них

з щищен.

Приложения

о р щ ются к ядру

с

з прос ми н

выполнение системных функций.

 

 

Суть

микроядерной

рхитектуры состоит

в следующем.

В

привиле иров нном режиме ост ется р

от ть только очень не ольш я ч сть

ОС, н зыв ем я микроядром (рис. 3.10). Микроядро з щищено от ост льных

ч стей ОС

и

приложений. В сост в

микроядр о ычно входят

м шинно-

з висимые

модули,

т кже модули,

выполняющие зовые (но

не все!)

функции ядр

по упр влению процесс ми, о р отке прерыв ний, упр влению

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

Рис. 3.10. Перенос основно о о ъем функций ядр в пользов тельское простр нство

Все ост льные

олее высокоуровневые функции ядр оформляются в

виде приложений,

р

от ющих

в пользов тельском режиме. Однозн чно о

решения о том,

к кие из

системных функций

нужно

ост вить

в

привиле иров нном

режиме,

к кие перенести в

пользов

тельский,

не

существует. В о щем случ е мно ие менеджеры ресурсов, являющиеся

неотъемлемыми

ч стями о ычно о ядр — ф йлов я

систем , подсистемы

упр вления вирту льной п мятью и процесс ми, менеджер

езоп сности и т. п.,

— ст новятся «периферийными» модулями, р

от ющими в пользов тельском

режиме.

 

 

 

 

 

Р от ющие в пользов тельском режиме менеджеры ресурсов имеют

принципи льные

отличия от тр диционных

утилит

и

о р

тыв ющих

про р мм опер ционной системы, хотя при микроядерной

рхитектуре все эти

про р ммные компоненты т кже оформлены в виде приложений.

Утилиты и

о р тыв ющие

про р ммы вызыв ются в

основном пользов телями.

Ситу ции,

ко д

одному приложению тре уется выполнение функции

(процедуры)

дру о о приложения, возник ют

кр йне редко. Поэтому в

опер ционных систем х с кл ссической рхитектурой отсутствует мех низм, с

помощью которо о одно приложение мо ло

ы вызв ть функции дру о о.

Совсем

дру

я ситу ция

возник ет,

ко д

в

форме

приложения

оформляется

ч сть

опер ционной системы.

По

определению, основным

н зн чением т ко о

приложения

является

о служив ние з просов дру их

приложений, н пример созд ние процесс ,

выделение п мяти, проверк пр в

доступ к ресурсу и т. д.

менно поэтому менеджеры ресурсов, вынесенные в

пользов тельский режим,

н зыв ются сервер ми

ОС,

то есть

модулями,

основным н зн чением которых является о служив ние з просов лок льных

приложений и дру их модулей ОС. Очевидно, что для

ре лиз ции

микроядерной

рхитектуры нео ходимым условием является

н личие в

опер ционной

системе удо но о и эффективно о спосо

вызов

процедур

одно о процесс

из дру о о. Поддержк т ко о мех низм

и является одной из

л вных з д ч микроядр .

Схем тично мех низм о р щения к функциям ОС, оформленным в виде

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

соо щение. Непосредственн я перед ч соо щений между приложениями невозможн , т к к к их дресные простр нств изолиров ны дру от дру .

Микроядро, выполняющееся в привиле иров нном режиме, имеет доступ к

дресным

простр нств м к ждо о

из этих приложений и поэтому может

р от ть

в к честве посредник .

Микроядро сн ч л перед ет соо щение,

содерж щее имя и п р метры вызыв емой процедуры нужному серверу, з тем сервер выполняет з прошенную опер цию, после че о ядро возвр щ ет результ ты клиенту с помощью дру о о соо щения. Т ким о р зом, р от