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

лекции СПО

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

Т к,

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

ор

низов н к к

симметричным о р зом, т к

и

симметричным. Одн ко

симметричн я

рхитектур непременно влечет

з

со ой и симметричный

спосо ор низ ции вычислений.

 

 

5.3 Понятия «процесс» и «поток»

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

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

ольшинстве опер ционных систем определены дв

тип

единиц р

оты. Более

крупн я

единиц р

оты, о ычно носящ я н зв ние процесс ,

или з д чи,

тре ует

для свое о

выполнения нескольких

олее

мелких

р от, для

оозн чения которых используют термины «поток», или «нить».

тк, в чем же состоят принципи льные отличия в понятиях «процесс»

и «поток»?

Очевидно, что лю я р от вычислительной системы з ключ ется в

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

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

оформляется в виде исполняемо о модуля. Что ы этот про р ммный код мо

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

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

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

получения д нных по подключенному к этому порту модему; и т. д. В ходе выполнения про р мме может т кже пон до иться доступ к информ ционным

ресурс м, н пример ф йл м, порт м TCP/UPD, сем фор м.

,

конечно же,

невозможно выполнение про р ммы

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

времени, то есть времени, в течение

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

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

д нной про р ммы.

 

 

 

В опер ционных систем х, де

существуют и процессы, и потоки,

процесс р ссм трив ется опер ционной системой к к з явк

н

потре ление

всех видов ресурсов, кроме одно о — процессорно о времени. Этот последний в жнейший ресурс р спределяется опер ционной системой между дру ими

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

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

ком нд.

 

В простейшем случ е процесс состоит из одно о поток , и именно т ким

о

р зом тр ктов лось понятие «процесс» до середины 80-х одов (н пример, в

р

нних версиях UNIX) и в т ком же виде оно сохр нилось в некоторых

современных ОС. В т ких систем х понятие «поток» полностью по лощ ется

понятием «процесс», то есть ост ется только одн единиц р оты и

потре ления ресурсов — процесс. Мультипро р ммиров ние осуществляется в

т ких ОС н

уровне процессов.

 

 

 

 

 

Для то о что ы процессы не мо ли вмеш ться в р спределение ресурсов,

т кже не мо ли повредить коды и д нные дру

дру

, в жнейшей з д чей ОС

является

изоляция одно о процесс от

дру о о.

Для это о опер ционн я

систем

о еспечив ет к ждый

процесс

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

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

к

ком нд м и д нным дру о о процесс .

 

 

 

 

При

нео ходимости

вз имодействия

процессы о р щ ются

к

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

 

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

про лемы при ор низ ции п р ллельных вычислений в р мк х процесс . А

т к я

нео ходимость

может

возник ть.

Действительно,

при

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

отдельный процесс нико д

не

может ыть

выполнен

ыстрее, чем

в

однопро р ммном

режиме (всякое р зделение

ресурсов

только з медляет

р оту одно о из

уч стников

з

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

н

ожид ние осво ождения ресурс ). Одн ко приложение, выполняемое в р мк х

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

который

в

принципе мо

ы

позволить ускорить е о решение. Если, н пример,

в

про р мме предусмотрено о р щение к внешнему устройству, то н

время этой

опер ции можно не

локиров ть выполнение все о процесс ,

продолжить

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

рот в р мк х одно о интер ктивно о приложения повыш ет эффективность

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

иметь возможность

совмещ ть

н ор

ново о

текст

с т кими

продолжительными по

времени

опер циями, к к

переформ тиров ние

зн чительной ч сти текст , печ ть документ

или е о сохр нение н

лок льном

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

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

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

вычислений. Конечно, з д ч р сп р ллелив ния вычислений в р мк х одно о

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

ыть решен и тр диционными спосо ми.

Во-первых,

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

взять н се я сложную

з д чу ор низ ции п р ллелизм , выделив в

приложении некоторую

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

иной ветви вычислений. При этом про р мм

получ ется ло ически весьм

з пут нной, с мно очисленными перед ч ми

упр вления, что существенно

з трудняет ее отл дку и модифик цию.

 

Во-вторых, решением является созд ние для одно о приложения

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

использов ние для созд ния процессов ст нд ртных средств ОС не позволяет учесть тот ф кт, что эти процессы реш ют единую з д чу, зн чит, имеют

мно о о ще о между со ой — они мо ут р от ть с

одними и теми же

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

н деляться одними и

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

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

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

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

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

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

не по н зн чению, выполняя не только

есполезную,

но и вредную р оту,

з трудняющую

о мен д нными между

р зличными

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

Кроме то о, н

созд ние к ждо о процесс

ОС тр тит определенные системные

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

процессу

выделяются со ственное

вирту льное

дресное простр нство,

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

з

все о вышеизложенно о,

следует, что

в опер ционной системе

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

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

одно о и то о же приложения.

Для этих целей современные ОС предл ют

мех низм мно опоточной о р

отки (multithreading). При этом вводится нов я

единиц р оты — поток выполнения, понятие «процесс» в зн чительной

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

Созд ние потоков тре ует от ОС меньших н кл дных р сходов, чем процессов. В отличие от процессов, которые прин длеж т р зным, воо ще

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

системе.

Все

потоки одно о

процесс используют о щие ф йлы,

т ймеры,

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

дресное

простр нство.

Это озн ч ет,

что они р зделяют одни

и те же ло льные

переменные.

Поскольку к ждый поток может иметь доступ к

лю ому

вирту льному

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

поток . Между поток ми одно о процесс

нет полной з щиты, потому что, во-

первых,

это

невозможно,

во-вторых,

не нужно.

Что ы ор

низов ть

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

прежнему хорошо з щищены дру от дру .

т к, мультипро р ммиров ние олее эффективно н уровне потоков,

не процессов. К ждый поток имеет со ственный счетчик ком нд и стек. З д ч ,

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

выполнен ыстрее з счет псевдоп р ллельно о (или п р ллельно о в

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

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

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

р оче о лист

и одновременно продолж ть з полнять

т

лицу. Осо енно

эффективно

можно

использов ть мно опоточность

для

выполнения

р спределенных

приложений,

н пример

мно опоточный

сервер может

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

 

 

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

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

счет п р ллельных вычислений, но и с целью

созд ния

олее

чит

ельных,

ло ичных

про р мм. Введение

нескольких

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

«пис тель-чит тель» один поток выполняет з пись в

уфер, дру ой считыв ет

з писи из не о. Поскольку они р зделяют о щий

уфер, не стоит их дел ть

отдельными процесс ми. Дру ой пример использов ния потоков — упр вление си н л ми, т кими к к прерыв ние с кл ви туры (del или break). Вместо

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

ожид ния поступления си н лов. Т ким о р зом, использов ние потоков может сокр тить нео ходимость в прерыв ниях пользов тельско о уровня. В этих

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

ясность

про р ммы.

 

 

Н и ольший эффект от введения мно опоточной о р

отки дости ется

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

в том

числе и

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

5.4 Операции над процессами

Подсистем

Упр вление процессом выполняет опер ции н д

процесс ми:

 

1. Созд ние:

 

-созд ние опис теля процесс ;

-включение е о в очередь;

-выделение процессу н ч льных ресурсов.

2. Уничтожение (уд ление е о из системы. Ресурсы возвр щ ются системе, имя процесс уд ляется из списк , лок упр вления процессом осво ожд ется);

3.З пуск;

4.Блокировк .

5.Приост новк .

6.Возо новление,

7.зменение приоритет процесс (р от с очередями).

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

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

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

(приоритет и пр в

доступ ) и

т. п. Пример ми опис телей процесс

являются

лок упр вления з д чей (ТСВ

— Task Control Block) в OS/360, упр вляющий

лок процесс

(РСВ — Process

Control Block) в OS/2, дескриптор процесс

в UNIX, о ъект-процесс (object-

process) в Windows NT.

 

 

 

 

 

 

 

 

 

 

 

 

Созд ние опис теля процесс зн менует со ой появление в системе еще

одно о претендент н

вычислительные ресурсы. Н чин я с это о момент

при

р спределении ресурсов ОС должн

приним ть во

вним ние

потре ности

ново о процесс .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Созд ние

процесс

включ ет

з

рузку

кодов

и

д нных

исполняемой

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

 

 

 

 

При

упр влении процесс ми

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

использует дв

основных тип

информ ционных структур:

дескриптор процесс

 

и контекст

процесс .

Дескриптор

процесс

содержит

т кую информ цию

о процессе,

котор я

нео ходим

ядру в течение

все о

жизненно о

цикл

процесс

нез висимо

от

то о,

н ходится

он

в

ктивном или п ссивном

состоянии,

н ходится

о р з

процесс

в опер тивной

п мяти или

вы ружен н

диск.

(О р зом процесс

н зыв ется совокупность е о кодов и д нных.)

 

 

 

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

т лицу процессов. П мять для т

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

о л сти ядр . Н

 

основ нии информ ции, содерж щейся в т

лице процессов,

опер ционн я

систем

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

пл ниров ние

и

синхрониз цию

процессов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Дескриптор содержит следующую информ цию:

состояние процесс ;

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

процесс н зыв ется совокупность е о кодов и д нных);

 

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

зн чении — ло льном приоритете;

 

идентифик тор пользов теля, созд вше о процесс;

 

информ ция о родственных процесс х;

 

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

 

уник льный идентифик тор процесс ;

 

о л сть сохр нения ре истров;

 

ук з тели выд нных процессу ресурсов.

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

процесс с прерв нно о мест :

 

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

 

коды оши ок выполняемых процессором системных вызовов;

 

информ цию о о всех открытых д нным процессом ф йл х и

нез вершенных опер циях ввод -вывод ;

 

режим р оты процессор .

5.5 Планирование и диспетчеризация потоков

Н протяжении существов ния процесс выполнение е о потоков может

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

процессу в целом.)

 

 

 

Переход от выполнения одно о поток

к дру ому осуществляется в

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

от по определению то о,

в

к кой момент нео ходимо прерв ть выполнение текуще о

ктивно о поток

и

к кому потоку предост вить возможность

выполняться, н зыв ется

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

основе информ ции,

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

н копленное время выполнения, интенсивность о р щений к вводу-выводу и дру ие ф кторы. ОС пл нирует выполнение потоков нез висимо от то о,

прин длеж т ли они одному или р зным процесс м. Т к, н пример, после

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

Пл ниров ние потоков, по существу, включ ет в се я решение двух

з д ч:

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

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

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

по-своему реш ющих к ждую из

приведенных выше з д ч. Ал оритмы

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

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

к чество мультипро р ммиров ния.

Н пример,

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

т кой л оритм

пл ниров ния, при

котором

р нтируется, что ни один

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

удет з ним ть процессор дольше определенно о времени, в

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

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

з д ч,

в

третьем случ е

— преимущественное

пр во з нять

процессор

получ ют потоки интер ктивных приложений.

менно осо енности ре лиз ции

пл ниров ния

потоков

в

н и ольшей

степени

определяют

специфику

опер ционной

системы,

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

ли он

системой п кетной

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

 

В

ольшинстве

опер ционных систем

универс льно о

н зн чения

пл ниров ние

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

дин мически

(on-line), то есть решения

приним ются во время р оты системы н

основе

н лиз

текущей ситу ции.

ОС р

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

случ йные

моменты

времени

и

т кже

непредск зуемо з верш ются.

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

и ко приспос

лив ться к изменяющейся

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

Дру ой тип пл ниров ния — ст тический — может ыть использов н в специ лизиров нных систем х, в которых весь н ор одновременно выполняемых з д ч определен з р нее, н пример в систем х ре льно о времени. Пл нировщик н зыв ется ст тическим (или предв рительным

пл нировщиком), если он приним ет решения о пл ниров нии не во время

р оты системы,

з р нее (off-line). Соотношение между дин мическим и

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

н ло ично соотношению между диспетчером

железной доро и,

который

пропуск ет

поезд

стро о

по

предв рительно

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

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

доро ,

не

осн щенном

светофор ми,

который

реш ет,

к кую

м шину

ост новить,

к кую пропустить, в з висимости от ситу ции н

перекрестке.

 

Результ том

р оты

ст тическо о

пл нировщик

является

т лиц ,

н зыв ем я

р спис нием,

в

которой ук зыв ется, к кому

потоку/процессу,

ко д

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

ыть предост влен процессор. Для построения

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

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

После то о к к

р спис ние

отово, оно

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

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

При этом

н кл дные р сходы ОС н

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

меньшими, чем при дин мическом

пл ниров нии,

и сводятся

лишь к

диспетчериз ции потоков/процессов.

 

 

 

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

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

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

д нно о поток . Контекст отр ж ет, во-первых, состояние

пп р туры

компьютер в момент прерыв ния поток : зн чение счетчик

ком нд,