лекции СПО
.pdfпрямо уч ствуют в ор |
низ ции вычислительных |
процессов: |
средств |
|
поддержки привиле иров нно о режим , |
систему |
прерыв ний, |
средств |
|
переключения контекстов процессов, средств |
з щиты о л стей п мяти и т. п. |
|||
Машинно-зависимые |
компоненты |
ОС. Этот слой |
о р зуют |
|
про р ммные модули, в которых отр ж ется специфик |
пп р тной пл тформы |
компьютер . В иде ле этот слой полностью экр нирует вышележ щие слои
ядр |
от осо енностей |
пп р туры. Это позволяет р зр |
тыв ть вышележ щие |
||
слои |
н |
основе |
м шинно-нез висимых |
модулей, существующих в |
|
единственном экземпляре для всех |
типов |
пп р тных пл тформ, |
поддержив емых д нной ОС. Примером экр нирующе о слоя может служить слой 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). Клиент, которым может ыть ли о прикл дн я про р мм , ли о дру ой компонент ОС, з пр шив ет выполнение некоторой функции у соответствующе о сервер , посыл я ему
соо щение. Непосредственн я перед ч соо щений между приложениями невозможн , т к к к их дресные простр нств изолиров ны дру от дру .
Микроядро, выполняющееся в привиле иров нном режиме, имеет доступ к
дресным |
простр нств м к ждо о |
из этих приложений и поэтому может |
р от ть |
в к честве посредник . |
Микроядро сн ч л перед ет соо щение, |
содерж щее имя и п р метры вызыв емой процедуры нужному серверу, з тем сервер выполняет з прошенную опер цию, после че о ядро возвр щ ет результ ты клиенту с помощью дру о о соо щения. Т ким о р зом, р от