лекции СПО
.pdfкоторо о |
выполняется д нный поток. |
Приоритет процесс |
н зн ч ется |
опер ционной системой при е о созд нии. Зн чение приоритет |
включ ется в |
||
опис тель процесс и используется при н зн чении приоритет |
поток м это о |
||
процесс . |
При н зн чении приоритет |
вновь созд нному |
процессу ОС |
учитыв ет, является этот процесс системным или прикл дным, к ков ст тус
пользов теля, з пустивше о процесс, ыло ли явное ук з ние пользов теля н присвоение процессу определенно о уровня приоритет . Поток может ыть
иницииров н не только по ком нде пользов теля, но и в результ те выполнения
системно о вызов дру им потоком. В этом случ е при н зн чении приоритет новому потоку ОС должн приним ть во вним ние зн чение п р метров системно о вызов .
Во мно их ОС предусм трив ется возможность изменения приоритетов в течение жизни поток . зменение приоритет мо ут происходить по
иници тиве с мо о поток , ко д он о р щ ется с соответствующим вызовом к
опер ционной системе, или по иници тиве пользов теля, ко д он выполняет
соответствующую ком нду. Кроме то о, ОС с м может изменять приоритеты
потоков в з висимости от ситу ции, скл дыв ющейся в системе. В последнем случ е приоритеты н зыв ются дин мическими в отличие от неизменяемых,
фиксиров нных, приоритетов.
От то о, к кие приоритеты н зн чены поток м, существенно з висит эффективность р оты всей вычислительной системы. В современных ОС во
из еж ние р з л нсировки системы, котор я может возникнуть при
непр вильном н зн чении приоритетов, возможности пользов телей влиять н приоритеты процессов и потоков ст р ются о р ничив ть. При этом о ычные пользов тели, к к пр вило, не имеют пр в повыш ть приоритеты своим поток м, это р зрешено дел ть (д и то в определенных предел х) только дминистр тор м. В ольшинстве же случ ев ОС присв ив ет приоритеты
поток м по умолч нию.
Существуют две р зновидности приоритетно о пл ниров ния:
ослужив ние с относительными приоритет ми и о служив ние с солютными приоритет ми.
Во оих случ ях вы ор поток н выполнение из очереди отовых осуществляется один ково: вы ир ется поток, имеющий н ивысший
приоритет. Одн ко про лем определения момент смены ктивно о поток
реш ется по-р зному. В систем х с относительными приоритет ми ктивный поток выполняется до тех пор, пок он с м не покинет процессор, перейдя в
состояние ожид ния (или же произойдет оши к , или поток з вершится). Н
рис. 4.10, пок з н р ф состояний поток в системе с относительными приоритет ми.
В систем х с солютными приоритет ми выполнение ктивно о поток
прерыв ется кроме ук з нных выше причин, еще при одном условии: если в
очереди |
отовых потоков |
появился поток, |
приоритет |
которо о |
выше |
||||
приоритет |
ктивно о поток . |
В этом случ е прерв нный поток переходит в |
|||||||
состояние отовности (рис. 4.10, ). |
|
|
|
|
|
||||
В систем х, в которых |
пл ниров ние |
осуществляется |
н |
основе |
|||||
относительных |
приоритетов, |
минимизируются |
з тр ты н |
переключения |
|||||
процессор |
с |
одной р |
оты |
н |
дру ую. С дру ой стороны, |
здесь |
мо ут |
||
возник ть ситу ции, ко д |
одн |
з д ч з ним ет процессор дол ое время. Ясно, |
что для систем р зделения времени и ре льно о времени т к я дисциплин о служив ния не подходит: интер ктивное приложение может жд ть своей очереди ч с ми, пок вычислительной з д че не потре уется ввод-вывод. А вот в систем х п кетной о р отки (в том числе известной ОС OS/360)
относительные приоритеты используются широко.
Рис. 4.10. Гр фы состояний потоков в систем х с относительными и солютными приоритет ми
В систем х с солютными приоритет ми время ожид ния поток в
очередях может |
ыть сведено к минимуму, если ему н зн чить с мый высокий |
|||||
приоритет. Т кой поток |
удет вытеснять из процессор все ост льные потоки |
|||||
(кроме потоков, |
имеющих т кой же |
н ивысший |
приоритет). |
Это |
дел ет |
|
пл ниров ние н |
основе |
солютных |
приоритетов |
подходящим |
для |
систем |
упр вления о ъект ми, в которых в жн |
ыстр я ре кция н со ытие. |
|
5.10 Смешанные алгоритмы планирования
Во мно их опер ционных систем х л оритмы пл ниров ния построены
с использов нием к к концепции кв нтов ния, т к и приоритетов. Н пример, в
основе пл ниров ния лежит кв нтов ние, |
но величин кв нт и/или порядок |
|||
вы ор |
поток из очереди отовых определяется |
приоритет ми |
потоков. |
|
менно |
т к ре лизов но пл ниров ние в |
системе |
Windows NT, в |
которой |
кв нтов ние |
сочет ется с дин мическими |
солютными приоритет ми. Н |
|
выполнение |
вы ир ется отовый |
поток с |
н ивысшим приоритетом. Ему |
выделяется |
кв нт времени. Если |
во время |
выполнения в очереди отовых |
появляется поток с олее высоким приоритетом, то он вытесняет выполняемый
поток. Вытесненный поток возвр щ ется |
в очередь |
отовых, |
причем |
он |
|||
ст новится впереди всех ост льных потоков имеющих т кой же приоритет. |
|
||||||
Для ре лиз ции |
л оритм |
пл ниров ния |
ОС |
должн |
получ ть |
||
упр вление всякий р з, |
ко д в системе |
происходит со ытие, |
тре ующее |
||||
перер спределения процессорно о |
времени. |
К т ким |
со ытиям |
мо ут |
ыть |
отнесены следующие:
Прерывание от таймера, си н лизирующее, что время, отведенное
ктивной з д че н |
выполнение, з кончилось. Пл нировщик переводит з д чу в |
||||
состояние |
отовности и выполняет перепл ниров ние. |
|
|
||
Активная задача выполнила системный вызов, связанный с запросом на |
|||||
ввод-вывод или на |
доступ |
к ресурсу, который в н стоящий |
момент з нят |
||
(н пример, |
ф йл |
д нных). |
Пл нировщик переводит |
з д чу |
в состояние |
ожид ния и выполняет перепл ниров ние. |
|
|
|||
Активная |
задача |
выполнила системный |
вызов, |
связанный с |
освобождением ресурса. Пл нировщик проверяет, не ожид ет ли этот ресурс к к я-ли о з д ч . Если д , то эт з д ч переводится из состояния ожид ния в
состояние отовности. При этом, возможно, что з д ч , котор я получил
ресурс, имеет олее высокий приоритет, чем текущ я ктивн я з д ч . После
перепл ниров ния |
олее приоритетн я з д ч |
получ ет доступ к процессору, |
вытесняя текущую з д чу. |
|
|
Внешнее |
(аппаратное) прерывание, |
которое си н лизирует о |
з вершении периферийным устройством опер ции ввод -вывод , переводит соответствующую з д чу в очередь отовых, и выполняется пл ниров ние.
Внутреннее прерывание сигнализирует об ошибке, котор я произошл в результ те выполнения ктивной з д чи. Пл нировщик сним ет з д чу и выполняет перепл ниров ние.
5.11 Планирование в системах реального времени |
|
|||||||
В |
систем х |
ре льно о |
времени, |
в |
которых л вным критерием |
|||
эффективности |
является |
о еспечение |
временных |
х р ктеристик |
||||
вычислительно о процесс , |
пл ниров ние имеет |
осо ое |
зн чение. Лю я |
|||||
систем |
ре льно о |
времени |
должн ре |
иров ть |
н си н лы упр вляемо о |
|||
о ъект |
в течение з д нных |
временных |
о р ничений. |
Нео ходимость |
тщ тельно о пл ниров ния р от о ле ч ется тем, что в систем х ре льно о времени весь н ор выполняемых з д ч известен з р нее. Кроме то о, ч сто в
системе имеется информ ция о времен х выполнения з д ч, момент х ктивиз ции, предельных допустимых срок х ожид ния ответ и т. д. Эти
д нные мо ут ыть использов ны пл нировщиком для созд ния ст тическо о
р спис ния или |
для |
построения декв тно о л оритм дин мическо о |
пл ниров ния. |
|
|
При р зр |
отке |
л оритмов пл ниров ния для систем ре льно о времени |
нео ходимо учитыв ть, к кие последствия в этих систем х возник ют при несо людении временных о р ничений. Если эти последствия к т строфичны,
к к, н пример, |
для системы |
упр вления полет ми или |
томной |
электрост нцией, |
то опер ционн я |
систем ре льно о времени, н |
основе |
которой строится упр вление о ъектом, н зыв ется жесткой (hard). Если же последствия н рушения временных о р ничений не столь серьезны, то есть ср внимы с той пользой, которую приносит систем упр вления о ъектом, то систем является мя кой (soft) системой ре льно о времени. Примером мя кой системы ре льно о времени является систем резервиров ния илетов. Если из-
з временных н рушений опер тору не уд ется з резервиров ть илет, это не очень стр шно — можно просто посл ть з прос н резервиров ние з ново.
|
5.12 Выводы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Мультипро р ммиров ние, или мно оз д чность (multitasking), — это |
|||||||||||||||||
спосо |
ор |
низ ции |
вычислительно о |
процесс , |
при |
котором |
н |
одном |
||||||||||
процессоре попеременно выполняются ср зу несколько про р мм. |
|
|
|
|||||||||||||||
|
Мультипро р ммиров ние применяется для повышения эффективности |
|||||||||||||||||
вычислительной системы, котор я может поним ться к к: |
|
|
|
|
|
|||||||||||||
|
о щ я пропускн я спосо ность вычислительной системы; |
|
|
|
|
|||||||||||||
|
удо ство р |
оты пользов телей, н пример возможность интер ктивной |
||||||||||||||||
р |
оты для нескольких пользов телей или возможность одновременной р |
оты |
||||||||||||||||
одно о пользов теля с несколькими приложениями н |
одной м шине; |
|
|
|||||||||||||||
|
ре ктивность системы |
— то есть спосо ность |
системы выдержив ть |
|||||||||||||||
з р нее |
з д нные |
(возможно,, |
очень короткие) |
интерв лы |
времени между |
|||||||||||||
з пуском про р ммы и получением результ т . |
|
|
|
|
|
|
|
|
||||||||||
|
В з висимости от вы р нно о критерия эффективности ОС делятся н |
|||||||||||||||||
системы |
п кетной |
о р отки, |
системы |
р зделения |
времени |
и |
системы |
|||||||||||
ре льно о времени. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Мультипроцессорн я |
о р |
отк |
|
— |
это |
спосо |
ор |
низ ции |
|||||||||
вычислительно о |
процесс |
в систем х |
с |
несколькими |
процессор ми, |
при |
||||||||||||
котором |
несколько |
з д ч |
(процессов, |
потоков) |
мо ут |
одновременно |
||||||||||||
выполняться н р зных процессор х системы. |
|
|
|
|
|
|
|
|
||||||||||
|
Основной з д чей мультипро р ммной опер ционной системы является |
|||||||||||||||||
р спределение ресурсов между процесс ми и поток ми — двумя |
зовыми |
|||||||||||||||||
единиц ми р |
оты ОС. |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
В опер ционных систем х, в которых существуют к к процессы, т к и |
|||||||||||||||||
потоки, |
процесс |
р ссм трив ется |
опер ционной |
системой |
к к |
з явк |
н |
потре ление всех видов ресурсов, кроме одно о — процессорно о времени.
Процессорное время р спределяется ОС между дру ими единиц ми р оты — поток ми, предст вляющими со ой последов тельности ком нд.
|
Потоки |
|
возникли |
в |
опер ционных |
|
систем х |
к к |
средство |
|||||||||||||
р сп р ллелив ния вычислений, о ле ч ющее р |
оту про р ммист . В ОС, |
не |
||||||||||||||||||||
поддержив ющей |
потоков, |
процесс |
все д |
состоит |
из |
одно о |
поток , |
|
||||||||||||||
про р ммисту |
приходится |
с мостоятельно |
реш ть |
з д чу |
синхрониз ции |
|||||||||||||||||
нескольких п р ллельных ветвей про р ммы. |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
Опер ционн я |
систем |
для |
ре лиз ции |
мультипро р ммиров ния |
|||||||||||||||||
выполняет |
пл ниров ние |
и |
диспетчериз цию |
потоков (в ОС, не |
||||||||||||||||||
поддержив ющих потоков, — диспетчериз цию |
процессов). Пл ниров ние |
|||||||||||||||||||||
включ ет определение момент |
времени для смены текуще о поток , |
т кже |
||||||||||||||||||||
вы ор |
ново о |
поток |
|
для |
выполнения. |
Диспетчериз ция |
з ключ ется |
в |
||||||||||||||
ре лиз ции |
н йденно о |
в |
результ те |
пл ниров ния |
|
решения, |
|
то |
есть |
в |
||||||||||||
переключении процессор |
с одно о поток |
н |
дру ой. |
|
|
|
|
|
|
|
|
|||||||||||
|
Пл ниров ние |
может |
выполняться |
дин мически, |
ко д |
|
решения |
|||||||||||||||
приним ются во время р |
оты системы н |
основе |
н лиз |
текущей ситу ции, |
||||||||||||||||||
или ст тически, если потоки з пуск ются н |
|
выполнение н |
основ нии з р нее |
|||||||||||||||||||
р зр |
от нно о р спис ния. Первый спосо |
х р ктерен для универс льных ОС, |
||||||||||||||||||||
второй — для специ лизиров нных ОС, н пример ОС ре льно о времени. |
|
|||||||||||||||||||||
|
Дин мический |
пл нировщик |
ОС |
может |
ре лизовыв ть |
|
р зличные |
|||||||||||||||
л оритмы пл ниров ния, которые делятся |
н |
т кие |
|
крупные |
кл ссы, к к |
|||||||||||||||||
вытесняющие |
и |
невытесняющие |
л оритмы, |
|
л оритмы |
кв нтов ния |
и |
|||||||||||||||
приоритетные |
л оритмы. |
спользуемый |
л оритм пл ниров ния з висит от |
|||||||||||||||||||
н зн чения ОС. Применяются т кже смеш нные |
л оритмы, |
о ъединяющие |
||||||||||||||||||||
достоинств |
нескольких кл ссов. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
При применении вытесняющих л оритмов пл ниров ния ОС получ ет |
|||||||||||||||||||||
полный контроль н д вычислительным процессом, |
|
при |
применении |
|||||||||||||||||||
невытесняющих |
л оритмов |
решения |
|
приним ются |
|
децентр лизов нно: |
||||||||||||||||
ктивный поток определяет момент смены потоков, |
|
ОС вы ир ет новый |
||||||||||||||||||||
поток для выполнения. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 Мультипрограммирование на основе прерываний
6.1 Назначение и типы прерываний
Прерыв ния являются основной движущей силой лю ой опер ционной системы. Отключите систему прерыв ний — и «жизнь» в опер ционной
системе немедленно ост новится. Периодические прерыв ния от т ймер
вызыв ют |
смену |
процессов |
в мультипро р ммной |
ОС, |
прерыв ния от |
||
устройств |
ввод -вывод |
упр вляют |
поток ми |
д нных, |
которыми |
||
вычислительн я систем о менив ется с внешним миром. |
|
|
|||||
К к верно |
ыло з мечено: «Прерыв ния н зв ны т к весьм уд чно, |
||||||
поскольку они прерыв ют норм льную р |
оту системы». Дру ими слов ми, |
||||||
систем прерыв ний переводит процессор |
н выполнение |
поток |
ком нд, |
||||
отлично о от то о, который выполнялся до сих пор, с последующим возвр том |
к исходному коду. з ск з нно о можно сдел ть вывод о том, что |
мех низм |
|||||
прерыв ний очень похож н мех низм выполнения процедур. Это |
н с мом |
|||||
деле т к, хотя между этими |
мех низм ми |
имеется в жное |
отличие. |
|||
Переключение |
по |
прерыв нию отлич ется |
от |
переключения, |
которое |
|
происходит |
по |
ком нде |
езусловно о |
или |
условно о |
переход , |
предусмотренной про р ммистом в потоке ком нд приложения. Переход по
ком нде происходит в з р нее определенных |
про р ммистом точк х |
про р ммы в з висимости от исходных д нных, о р |
тыв емых про р ммой. |
Прерыв ние же происходит в произвольной точке поток ком нд про р ммы,
которую про р ммист не может про нозиров ть. Прерыв ние возник ет ли о в з висимости от внешних по отношению к процессу выполнения про р ммы со ытий, ли о при появлении непредвиденных в рийных ситу ций в процессе выполнения д нной про р ммы. Сходство же прерыв ний с процедур ми состоит в том, что в о оих случ ях выполняется некотор я подпро р мм ,
о р тыв ющ я специ льную ситу цию, з тем продолж ется выполнение основной ветви про р ммы.
В з висимости от источник прерыв ния делятся н три ольших кл сс :
внешние;
внутренние;
про р ммные.
Внешние прерыв ния |
мо ут |
возник ть |
в |
результ те |
действий |
|||
пользов теля или опер тор з |
термин лом, или же в результ те поступления |
|||||||
си н лов от |
пп р тных устройств — си н лов з вершения опер ций ввод - |
|||||||
вывод , |
выр |
тыв емых |
контроллер ми внешних |
устройств компьютер , |
||||
т кими к к принтер или н копитель н |
жестких диск х, или же си н лов от |
|||||||
д тчиков |
упр вляемых |
компьютером |
технических |
о ъектов. |
Внешние |
|||
прерыв ния н зыв ют т кже |
пп р тными, отр ж я тот ф кт, что прерыв ние |
|||||||
возник ет вследствие под чи некоторой |
пп р турой (н пример, контроллером |
принтер ) электрическо о си н л , который перед ется (возможно, проходя
через дру ие локи компьютер , н пример контроллер прерыв ний) н
специ льный вход прерыв ния процессор . Д нный кл сс прерыв ний является синхронным по отношению к потоку инструкций прерыв емой про р ммы.
Апп р тур процессор |
р |
от ет т к, |
что синхронные прерыв ния возник ют |
|
между выполнением двух |
соседних |
инструкций, при этом систем после |
||
о р отки прерыв ния |
продолж ет |
выполнение процесс , уже |
н чин я со |
|
следующей инструкции. |
|
|
|
|
Внутренние прерыв ния, н зыв емые т кже исключениями (exeption), |
||||
происходят синхронно |
выполнению |
про р ммы при появлении |
в рийной |
ситу ции в ходе исполнения некоторой инструкции про р ммы. Пример ми исключений являются деление н нуль, оши ки з щиты п мяти, о р щения по
несуществующему |
дресу, попытк |
выполнить |
привиле иров нную |
инструкцию в пользов тельском режиме |
и т. п. |
сключения возник ют |
непосредственно в ходе выполнения т ктов ком нды («внутри» выполнения).
Про р ммные прерыв ния отлич ются от предыдущих двух кл ссов тем,
что они по своей сути не являются «истинными» прерыв ниями. Про р ммное прерыв ние возник ет при выполнении осо ой ком нды процессор ,
выполнение которой имитирует прерыв ние, то есть переход н новую последов тельность инструкций.
Про р ммное прерыв ние ре лизует один из спосо ов переход н подпро р мму с помощью специ льной инструкции процессор , т кой к к INT
в процессор х Intel Pentium, trap в процессор х Motorola, syscall в процессор х
MIPS или Ticc в процессор х SPARC. При выполнении ком нды про р ммно о
прерыв ния процессор отр тыв ет ту же последов тельность действий, что и при возникновении внешне о или внутренне о прерыв ния, но только
происходит это в предск зуемой точке про р ммы — т м, де про р ммист поместил д нную ком нду.
Пр ктически все современные процессоры имеют в системе ком нд инструкции про р ммных прерыв ний. Одной из причин появления
инструкций про р ммных прерыв ний в системе ком нд процессоров является
то, что их использов ние ч сто приводит к олее комп ктному коду про р мм
по ср внению с использов нием ст нд ртных ком нд выполнения процедур.
Это о ъясняется тем, что р зр |
отчики процессор |
о ычно резервируют для |
||||||||
о р |
отки прерыв ний |
не ольшое число |
возможных подпро р мм, т к |
что |
||||||
длин |
опер нд в ком нде про р ммно о прерыв ния, который ук зыв ет н |
|||||||||
нужную подпро р мму, меньше, |
чем в ком нде переход |
н |
подпро р мму. |
|||||||
Н пример, в |
процессоре х86 предусмотрен возможность |
применения |
256 |
|||||||
про р мм о р отки прерыв ний, поэтому в инструкции INT опер нд имеет |
||||||||||
длину в один |
йт ( |
инструкция INT 3, котор я предн зн чен |
для вызов |
|||||||
отл дчик , вся имеет длину один |
йт). Зн чение опер нд |
ком нды INT просто |
||||||||
является индексом в т лице |
из 256 |
дресов |
подпро р мм |
о р |
отки |
|||||
прерыв ний, один из которых и используется для переход |
по ком нде INT. |
|||||||||
При использов нии ком нды CALL потре ов лся ы уже не одно |
йтовый, |
|||||||||
двух- |
или |
четырех |
йтовый |
опер нд. |
Дру ой |
причиной |
применения |
про р ммных прерыв ний вместо о ычных инструкций вызов подпро р мм является возможность смены пользов тельско о режим н привиле иров нный