Поток исполнения

Материал из ЭНЭ
Перейти к: навигация, поиск

Поток исполнения или поток управления, также нить или тред (англ. (execution) thread): наименьшая единица обработки машинного кода процесса операционной системой.

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

Машинный код любого процесса фактически обрабатывается хотя в одном потоке исполнения, даже если данная ОС такой сущности явно не поддерживает. Множественные потоки, относящиеся к одному и тому же процессу, состязаются между собой за ресурсы, выделяемые операционной системой на обслуживание процесса (квант времени, рабочая память).

Особенности обработки машинного кода в потоках исполнения, и в первую очередь, работа с памятью, формализуются в моделях потоков (thread models), которые могут воплощаться в тех или иных операционных системах.

Некоторые распространённые модели потоков и одноименные среды управления ими: POSIX Threads в ОС семейства UNIX.

Поскольку машинный код программ преимущественно формируется из исходных модулей на языках высокого уровня, то, как правило, каждый поток исполнения в начале его обработки снабжается собственным участком стэковой памяти, для обеспечения работы локальных переменных в более чем одном потоке

Поток–stream и поток–thread

В русскоязычной терминологии следует различать «поток команд», соответствующий английскому слову stream и означающий временну́ю последовательность обработки машинных команд, рассматриваемую на уровне работы оборудования, и «поток исполнения», соответствующий английскому слову thread и означающий независимо осуществляемый проход по машинному коду программы, рассматриваемый на уровне многозадачной операционной системы.

Параллельные вычисления

В архитектурах и моделях параллельных вычислений исполнение программы в несколько потоков на одной машине, обеспеченное средствами ОС, формально соответствует модели МКОД, независимо от количества исполняющего оборудования (процессоров, ядер и под.). Это позволяет производить проектирование и разработку параллельных программ и алгоритмов по модели с общей памятью на последовательных (не-параллельных) ЭВМ.

Ю.Т.