лекции СПО
.pdfсердцевину опер ционной системы, |
ез не о ОС |
является полностью |
|||||
нер |
отоспосо ной и не сможет выполнить ни одну из своих функций. |
||||||
|
В |
сост в |
ядр |
входят |
функции, |
реш ющие внутрисистемные з д чи |
|
ор |
низ ции вычислительно о процесс , |
т кие к к переключение контекстов, |
|||||
з рузк /вы рузк ст ниц, о р |
отк прерыв ний. Эти функции недоступны для |
||||||
приложений. Дру ой кл сс функций ядр |
служит для поддержки приложений, |
||||||
созд в я |
для |
них |
т к н зыв емую |
прикл дную |
про р ммную среду. |
Приложения мо ут о р щ ться к ядру с з прос ми — системными вызов ми — для выполнения тех или иных действий, н пример для открытия и чтения
ф йл , вывод |
р фической информ ции н |
дисплей, получения системно о |
|
времени и т. д. |
Функции ядр , которые мо ут вызыв ться |
приложениями, |
|
о р зуют интерфейс прикл дно о про р ммиров ния — API. |
|
||
Функции, |
выполняемые модулями |
ядр , являются |
н и олее ч сто |
используемыми функциями опер ционной системы, поэтому скорость их
выполнения определяет производительность |
всей системы |
в |
целом. Для |
|
о еспечения высокой скорости р |
оты ОС все модули ядр |
или |
ольш я их |
|
ч сть постоянно н ходятся в |
опер тивной |
п мяти, то |
есть являются |
|
резидентными. |
|
|
|
|
Ядро является движущей |
силой всех |
вычислительных |
процессов в |
компьютерной системе, и кр х ядр р вносилен кр ху всей системы. Поэтому
р зр отчики опер ционной системы уделяют осо ое вним ние н дежности
кодов ядр , в результ те процесс их отл дки может р стя ив ться н мно ие
месяцы.
О ычно ядро оформляется в виде про р ммно о модуля некоторо о
специ льно о форм т , |
отлич юще ося от |
форм т пользов тельских |
приложений. |
|
|
Ост льные модули |
ОС выполняют |
весьм полезные, но менее |
о яз тельные функции. Н пример, к т ким вспомо тельным модулям мо ут ыть отнесены про р ммы рхивиров ния д нных н м нитной ленте,
дефр мент ции диск , текстово о ред ктор . Вспомо тельные модули ОС
оформляются ли о в виде приложений, ли о в виде и лиотек процедур.
Поскольку некоторые компоненты ОС оформлены к к о ычные
приложения, то есть в виде исполняемых модулей ст нд ртно о для д нной ОС форм т , то ч сто ыв ет очень сложно провести четкую р нь между
опер ционной системой и приложениями (рис. 3.1).
Решение о том, является ли к к я-ли о про р мм ч стью ОС или! нет,
приним ет производитель ОС. Среди мно их ф кторов, спосо ных повлиять н это решение, нем лов жными являются перспективы то о, удет ли про р мм
иметь м ссовый спрос у потенци льных пользов телей д нной ОС.
Некотор я |
про р мм может существов ть определенное время к к |
|
пользов тельское приложение, |
потом ст ть ч стью ОС, или н о орот. Ярким |
|
примером т ко о |
изменения |
ст тус про р ммы является Web- р узер |
комп нии Microsoft, который сн ч л пост влялся к к отдельное приложение,
з тем ст л ч стью опер ционных систем Windows NT 4.0 и Windows 95/98,
се одня |
существует ольш я вероятность то о, что по решению суд этот |
р узер |
снов превр тится в с мостоятельное приложение. |
Рис. 3.1. Нечеткость р ницы между ОС и приложениями
|
Вспомо |
тельные модули ОС о ычно подр зделяются н |
следующие |
|||||
руппы: |
|
|
|
|
|
|
|
|
|
утилиты — |
про р ммы, реш ющие |
отдельные з д чи |
упр вления |
и |
|||
сопровождения |
компьютерной |
системы, |
т кие, |
н пример, |
к к |
про р ммы |
||
сж тия дисков, |
рхивиров ния д нных н м |
нитную ленту; |
|
|
|
|||
|
системные о р тыв ющие |
про р ммы — текстовые или |
р фические |
|||||
ред кторы, компиляторы, компоновщики, отл дчики; |
|
|
|
|||||
|
про р ммы |
предост вления |
пользов телю |
дополнительных |
услу |
— |
специ льный в ри нт пользов тельско о интерфейс , к лькулятор и д же и ры;
|
и лиотеки |
процедур р злично о н зн чения, упрощ ющие р зр |
отку |
|||||
приложений, н пример |
и лиотек |
м тем тических функций, |
функций ввод - |
|||||
вывод и т. д. |
|
|
|
|
|
|
|
|
|
К к и о ычные |
приложения, для выполнения своих |
з д ч утилиты, |
|||||
о р |
тыв ющие про р ммы и и лиотеки ОС, |
о р щ ются к функциям ядр |
||||||
посредством системных вызовов (рис. 3.2). |
|
|
|
|
||||
|
Р зделение опер ционной |
системы |
н |
ядро и модули-приложения |
||||
о еспечив ет |
ле кую |
р сширяемость |
ОС. |
Что ы до |
вить |
новую |
высокоуровневую функцию, дост точно р зр от ть новое приложение, и при
этом не тре уется модифициров ть ответственные функции, о р зующие ядро системы. Одн ко внесение изменений в функции ядр может ок з ться ор здо сложнее, и сложность эт з висит от структурной ор низ ции с мо о ядр . В
некоторых случ ях к ждое испр вление ядр может потре ов ть е о полной перекомпиляции.
Рис. 3.2. Вз имодействие между ядром и вспомо тельными модулями ОС
Модули |
ОС, оформленные в виде утилит, системных о р тыв ющих |
про р мм и и |
лиотек, о ычно з руж ются в опер тивную п мять только н |
время выполнения своих функций, то есть являются тр нзитными. Постоянно в
опер тивной |
п мяти |
р спол |
ются только с мые нео ходимые коды |
ОС, |
|||
сост вляющие ее ядро. Т к я ор |
низ ция ОС экономит опер тивную п мять |
||||||
компьютер . |
|
|
|
|
|
|
|
В жным свойством рхитектуры ОС, основ нной |
н ядре, |
является |
|||||
возможность |
з щиты |
кодов |
и |
д нных опер ционной |
системы |
з |
счет |
выполнения функций ядр в привиле иров нном режиме. |
|
|
|
4.2 Ядро в привилегированном режиме
Для |
н дежно о |
упр вления |
ходом |
выполнения |
приложений |
опер ционн я |
систем |
должн иметь |
по отношению к |
приложениям |
|
определенные привиле ии. н че некорректно р |
от ющее приложение может |
вмеш ться в р оту ОС и, н пример, р зрушить ч сть ее кодов. Все усилия
р зр |
отчиков опер ционной системы ок жутся н пр сными, |
если их решения |
|||
воплощены в нез щищенные от приложений модули системы, к кими |
ы |
||||
эле нтными и эффективными эти решения ни |
ыли. Опер ционн я систем |
||||
должн |
о л д ть исключительными полномочиями т кже |
для то о, что ы |
|||
и р ть |
роль р итр |
в споре приложений |
з ресурсы |
компьютер |
в |
мультипро р ммном |
режиме. Ни одно приложение не |
должно иметь |
возможности ез ведом ОС получ ть дополнительную о л сть п мяти,
з ним ть процессор дольше р зрешенно о опер ционной системой период времени, непосредственно упр влять совместно используемыми внешними
устройств ми.
О еспечить привиле ии опер ционной системе невозможно ез
специ льных средств пп р тной поддержки. Апп р тур компьютер должн поддержив ть к к минимум дв режим р оты — пользов тельский режим
(user mode) и привиле иров нный режим, который т кже н зыв ют режимом
ядр |
(kernel |
mode), или |
режимом |
супервизор |
(supervisor |
mode). |
Подр зумев ется, что опер ционн я систем |
или некоторые ее ч сти р |
от ют |
||||
в привиле иров нном режиме, |
приложения — в пользов тельском режиме. |
|||||
|
Т к к к |
ядро выполняет все основные функции ОС, то ч ще все о |
именно ядро ст новится той ч стью ОС, котор я р от ет в привиле иров нном режиме (рис. 3.3). но д это свойство — р от в привиле иров нном режиме
— служит основным определением понятия «ядро».
Рис. 3.3. Архитектур опер ционной системы с ядром в привиле иров нном режиме
Приложения ст вятся в подчиненное положение з счет з прет выполнения в пользов тельском режиме некоторых критичных ком нд,
связ нных с переключением процессор с з д чи н з д чу, упр влением устройств ми ввод -вывод , доступом к мех низм м р спределения и з щиты п мяти. Выполнение некоторых инструкций в пользов тельском режиме
з прещ ется |
езусловно |
(очевидно, что к т ким инструкциям относится |
||
инструкция |
переход в |
привиле иров нный режим), то д |
к к дру ие |
|
з прещ ется |
выполнять |
только |
при определенных условиях. |
Н пример, |
инструкции ввод -вывод |
мо ут |
ыть з прещены приложениям при доступе к |
контроллеру жестко о диск , который хр нит д нные, о щие для ОС и всех приложений, но р зрешены при доступе к последов тельному порту, который выделен в монопольное вл дение для определенно о приложения. В жно, что условия р зрешения выполнения критичных инструкций н ходятся под полным
контролем ОС и этот контроль о еспечив ется з счет н ор инструкций,
езусловно з прещенных для пользов тельско о режим .
Ан ло ичным о р зом о еспечив ются привиле ии ОС при доступе к
п мяти. Н пример, выполнение инструкции доступ к п мяти для приложения р зреш ется, если инструкция о р щ ется к о л сти п мяти, отведенной
д нному приложению опер ционной системой, и з прещ ется при о р щении к
о л стям п мяти, з ним емым ОС или дру ими приложениями. Полный контроль ОС н д доступом к п мяти дости ется з счет то о, что инструкция
или инструкции конфи уриров ния мех низмов з щиты п мяти (н пример,
изменения ключей з щиты п мяти в мэйнфрейм х IBM или ук з теля т лицы дескрипторов п мяти в процессор х Pentium) р зреш ется выполнять только в
привиле иров нном режиме.
Очень в жно, что мех низмы з щиты п мяти используются
опер ционной системой не только для з щиты своих о л стей п мяти от приложений, но и для з щиты о л стей п мяти, выделенных ОС к кому-ли о
приложению, от ост льных приложений. Говорят, что к ждое приложение
р от ет в своем дресном простр нстве. Это свойство позволяет лок лизов ть
некорректно р |
от ющее приложение в со ственной о л сти п мяти, т к что |
|||
е о оши ки не ок зыв ют влияния н |
ост льные приложения и опер ционную |
|||
систему. |
|
|
|
|
Между количеством уровней |
привиле ий, |
ре лизуемых |
пп р тно, и |
|
количеством |
уровней привиле ий, |
поддержив |
емых ОС, |
нет прямо о |
соответствия. Т к, н зе четырех уровней, о еспечив емых процессор ми комп нии Intel, опер ционн я систем OS/2 строит трехуровневую систему привиле ий, опер ционные системы Windows NT, UNIX и некоторые дру ие
ор ничив ются двухуровневой системой.
Сдру ой стороны, если пп р тур поддержив ет хотя ы дв уровня
привиле ий, то ОС может н этой основе созд ть про р ммным спосо ом сколь у одно р звитую систему з щиты.
Эт систем может, н пример, поддержив ть несколько уровней
привиле ий, о р зующих иер рхию. Н личие нескольких уровней привиле ий
позволяет олее тонко р спределять полномочия к к между модулями
опер ционной системы, т к и между с мими приложениями. Появление внутри
опер ционной системы олее привиле иров нных и менее привиле иров нных
ч стей позволяет повысить |
устойчивость |
ОС |
к внутренним оши к м |
про р ммных кодов, т к к к |
т кие оши ки |
удут |
р спростр няться только |
внутри модулей с определенным уровнем привиле ий. Дифференци ция
привиле ий в среде прикл дных модулей позволяет строить сложные |
||
прикл дные комплексы, в которых ч сть |
олее привиле иров нных модулей |
|
может, н пример, получ ть доступ к |
д нным менее |
привиле иров нных |
модулей и упр влять их выполнением. |
|
|
Н основе двух режимов привиле ий процессор |
ОС может построить |
сложную систему индивиду льной з щиты ресурсов, примером которой
является |
типичн я |
систем з щиты ф йлов и |
к т ло ов. Т к я |
систем |
||||||||
позволяет |
з д ть для лю о о |
пользов теля определенные |
пр в |
доступ |
к |
|||||||
к ждому из ф йлов и к т ло ов. |
|
|
|
|
|
|
|
|
||||
Повышение |
устойчивости |
опер ционной |
системы, |
о еспечив емое |
||||||||
переходом ядр |
в привиле иров нный режим, дости |
ется з |
счет некоторо о |
|||||||||
з медления |
выполнения |
системных |
вызовов. |
Системный |
вызов |
|||||||
привиле иров нно о |
ядр |
инициирует |
переключение |
процессор |
из |
|||||||
пользов тельско о |
'режим |
в- привиле иров нный, |
при |
возвр те |
к |
|||||||
приложению |
— |
переключение |
из |
привиле иров нно о |
режим |
в |
пользов тельский (рис. 3.4). Во всех тип х процессоров из-з дополнительной двукр тной з держки переключения переход н процедуру со сменой режим выполняется медленнее, чем вызов процедуры ез смены режим .
Рис. 3.4. Смен режимов при выполнении системно о вызов |
к |
||
|
привиле иров нному ядру |
|
|
Архитектур |
ОС, основ нн я н |
привиле иров нном |
ядре и |
приложениях пользов тельско о режим , ст л , по существу, кл ссической. Ее
используют мно ие |
популярные опер ционные |
системы, |
в |
том |
числе |
|
мно очисленные версии UNIX, VAX VMS, IBM OS/390, OS/2, и с |
||||||
определенными модифик циями — Windows NT. |
|
|
|
|
||
В некоторых |
случ ях р зр |
отчики ОС отступ ют |
от |
это о |
||
кл ссическо о в ри нт |
рхитектуры, |
ор низуя р |
оту ядр |
и приложений в |
одном и том же режиме.
4.3 Многослойная структура ОС
Вычислительную систему, р от ющую под упр влением ОС н основе ядр , можно р ссм трив ть к к систему, состоящую из трех иер рхически
р сположенных слоев: нижний слой о р зует пп р тур , промежуточный —
ядро, утилиты, о р тыв ющие про р ммы и приложения, сост вляют
верхний слой системы (рис. 3.6). Слоистую структуру вычислительной системы
принято изо р ж ть в виде системы концентрических окружностей,
иллюстрируя тот ф кт, что к ждый слой может вз имодействов ть только со смежными слоями. Действительно, при т кой ор низ ции ОС приложения не мо ут непосредственно вз имодействов ть с пп р турой, только через слой ядр .
Рис. 3.6. Трехслойн я схем вычислительной системы
Мно ослойный подход является универс льным |
и |
эффективным |
спосо ом декомпозиции сложных систем лю о о тип , |
в |
том числе и |
про р ммных. В соответствии с этим подходом систем состоит из иер рхии
слоев. К ждый слой о служив ет вышележ щий слой, выполняя для не о
некоторый н ор функций, которые о р зуют межслойный интерфейс (рис. 3.7). Н основе функций нижележ ще о слоя следующий (вверх по иер рхии)
слой строит свои функции — олее сложные и олее мощные, которые, в свою
очередь, ок зыв ются примитив ми для созд ния еще олее мощных функций
вышележ ще о слоя. Стро ие пр вил к с ются только вз имодействия между
слоями системы, |
между |
модулями внутри слоя |
связи |
мо ут |
ыть |
||
произвольными. |
Отдельный |
модуль |
может выполнить |
свою |
р оту |
ли о |
|
с мостоятельно, |
ли о |
о р титься к |
дру ому модулю |
свое о |
слоя, |
ли о |
о р титься з помощью к нижележ щему слою через межслойный интерфейс.
Т к я ор |
низ ция системы имеет мно о достоинств. Он существенно |
|
упрощ ет р зр |
отку системы, т к к к позволяет сн ч л определить «сверху |
|
вниз» функции |
слоев и межслойные интерфейсы, |
з тем при дет льной |
ре лиз ции постепенно н р щив ть мощность функций слоев, дви ясь «снизу вверх». Кроме то о, при модерниз ции системы можно изменять модули внутри слоя ез нео ходимости производить к кие-ли о изменения в ост льных слоях,
если при этих внутренних изменениях межслойные интерфейсы ост ются в силе.
Рис. 3.7. Концепция мно ослойно о вз имодействия Поскольку ядро предст вляет со ой сложный мно офункцион льный
комплекс, то мно ослойный подход о ычно р спростр няется и н структуру ядр .
Ядро может состоять из следующих слоев:
Средства аппаратной поддержки ОС. До сих пор о опер ционной системе оворилось к к о комплексе про р мм, но, воо ще оворя, ч сть
функций ОС может выполняться и пп р тными средств ми. Поэтому ино д
можно встретить |
определение |
опер ционной |
системы |
к к |
совокупности |
||
про р ммных |
и |
пп р тных средств, что |
и |
отр жено |
н |
рис. 3.8. К |
|
опер ционной |
системе относят, |
естественно, |
не |
все пп р тные устройств |
|||
компьютер , |
только средств |
пп р тной поддержки ОС, то есть те, которые |