Понятие потока. Состояния потоков.

Поток – единица выполнения. Это сущность внутри процесса, подлежащая планированию. Это отдельный счётчик команд. Поток отображает одну из возможно многих подзадач процесса.

Поток может находится в одном из трех основных состояния:

· Выполнение - активное

· Ожидание - пассивное, заблокирован по внутренним причинам

· Готовность - пассивное, заблокирован в связи с внешними обстоятельствами. Только при мультипрограммировании. Например, процессор занят другим потоком.

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

Рассмотрим типичный граф состояния потока. Только что созданный поток находится в состоянии готовности, он готов к выполнению и. стоит в очереди к процессору. Когда в результате планирования подсистема управления потоками принимает решение об активизации данного потока, он переходит в состояние выполнения и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ожидания какого-нибудь события, либо будет принудительно «вытеснен» из процессора, например вследствие исчерпания отведенного данному потоку кванта процессорного времени. В последнем случае поток возвращается в состояние готовности. В это же состояние поток переходит из состояния ожидания, после того как ожидаемое событие произойдет.