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

лекции СПО

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

которо о

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

Приоритет процесс

н зн ч ется

опер ционной системой при е о созд нии. Зн чение приоритет

включ ется в

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

поток м это о

процесс .

При н зн чении приоритет

вновь созд нному

процессу ОС

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

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

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

системно о вызов дру им потоком. В этом случ е при н зн чении приоритет новому потоку ОС должн приним ть во вним ние зн чение п р метров системно о вызов .

Во мно их ОС предусм трив ется возможность изменения приоритетов в течение жизни поток . зменение приоритет мо ут происходить по

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

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

соответствующую ком нду. Кроме то о, ОС с м может изменять приоритеты

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

фиксиров нных, приоритетов.

От то о, к кие приоритеты н зн чены поток м, существенно з висит эффективность р оты всей вычислительной системы. В современных ОС во

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

непр вильном н зн чении приоритетов, возможности пользов телей влиять н приоритеты процессов и потоков ст р ются о р ничив ть. При этом о ычные пользов тели, к к пр вило, не имеют пр в повыш ть приоритеты своим поток м, это р зрешено дел ть (д и то в определенных предел х) только дминистр тор м. В ольшинстве же случ ев ОС присв ив ет приоритеты

поток м по умолч нию.

Существуют две р зновидности приоритетно о пл ниров ния:

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

Во оих случ ях вы ор поток н выполнение из очереди отовых осуществляется один ково: вы ир ется поток, имеющий н ивысший

приоритет. Одн ко про лем определения момент смены ктивно о поток

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

состояние ожид ния (или же произойдет оши к , или поток з вершится). Н

рис. 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 потре ов лся ы уже не одно

йтовый,

двух-

или

четырех

йтовый

опер нд.

Дру ой

причиной

применения

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