Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ѕроцессы и потоки Windows




¬нутри каждого процесса могут выполн€тьс€ одна или несколько потоков, и именно поток €вл€етс€ базовой единицей выполнени€ в Windows. ¬ыполнение потоков планируетс€ системой на основе обычных факторов: наличие таких ресурсов, как CPU и физическа€ пам€ть, приоритеты, равнодоступность ресурсов и так далее. Ќачина€ с версии NT4, в Windows поддерживаетс€ симметрична€ многопроцессорна€ обработка (Symmetric Multiprocessing, SMP), позвол€юща€ распредел€ть выполнение потоков между отдельными процессорами, установленными в системе.

— точки зрени€ программиста каждому процессу принадлежат ресурсы, представленные следующими компонентами:

Х ќдна или несколько потоков.

Х ¬иртуальное адресное пространство, отличное от адресных пространств других процессов, если не считать областей пам€ти, распределенных €вным образом дл€ совместного использовани€ (разделени€) несколькими процессами. «аметьте, что раздел€емые отображенные файлы совместно используют физическую пам€ть, тогда как раздел€ющие их процессы используют различные виртуальные адресные пространства.

Х ќдин или несколько сегментов кода, включа€ код DLL.

Х ќдин или несколько сегментов данных, содержащих глобальные переменные.

Х —троки, содержащие информацию об окружении, например, информацию о текущем пути доступа к файлам.

Х  уча процесса.

Х –азличного рода ресурсы, например, дескрипторы открытых файлов и другие кучи.

ѕоток раздел€ет вместе с процессом код, глобальные переменные, строки окружени€ и другие ресурсы.  аждый поток планируетс€ независимо от других и располагает следующими элементами:

Х —тек, используемый дл€ вызова процедур, прерываний и обработчиков исключений, а также хранени€ автоматических переменных.

Х Ћокальные области хранени€ потока (Thread Local Storage, SLT) Ч массивы указателей, использу€ которые каждый поток может создавать собственную уникальную информационную среду.

Х јргумент в стеке, получаемый от создающего потока, который обычно €вл€етс€ уникальным дл€ каждого потока.

Х —труктура контекста, поддерживаема€ €дром системы и содержаща€ значени€ машинных регистров.

Ќа рис. 6.1 показан процесс с несколькими потоками. –исунок €вл€етс€ схематическим, поэтому на нем не указаны фактические адреса пам€ти и не соблюдены масштабы.

¬ данной главе показано, как работать с процессами, состо€щими из единственного потока. ќ том, как использовать несколько потоков, рассказываетс€ в главе 7.

ѕримечание

–исунок 6.1 €вл€етс€ высокоуровневым с точки зрени€ программиста представлением процесса. ¬ действительности эта картина должна быть дополнена множеством технических деталей и особенност€ми реализации. Ѕолее подробную информацию заинтересованные читатели могут найти в книге —оломона (Solomon) и –уссиновича (Russinovich) Inside Windows 2000.

ѕроцессы UNIX сопоставимы с процессами Windows, имеющими единственный поток.

–еализации UNIX недавно пополнились потоками POSIX Pthreads, которые в насто€щее врем€ используютс€ почти повсеместно. ¬ [40] потоки не обсуждаютс€; все рассмотрение основано на процессах.

Ќаверное, можно было бы даже не напоминать о том, что пон€тие потоков не €вл€етс€ новым, и их различные реализации предлагаютс€ поставщиками уже на прот€жении целого р€да лет. ќднако потоки Pthreads €вл€ютс€ самым распространенным стандартом, в то врем€ как коммерческие реализации потоков €вл€ютс€ устаревшими.

–ис. 6.1. ѕроцесс и его потоки





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-09-20; ћы поможем в написании ваших работ!; просмотров: 509 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

—вобода ничего не стоит, если она не включает в себ€ свободу ошибатьс€. © ћахатма √анди
==> читать все изречени€...

2090 - | 1843 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.009 с.