К Т П           План занятия                                                                      1                                                                            Страницы  | 1 | | 2 | | 3 |

Краткое изложение основных положений

Определение потока

Определение потока тесно связано с последовательностью действий процессора во время исполнения программы. Исполняя программу, процессор последовательно выполняет инструкции программы, иногда осуществляя переходы в зависимости от некоторых условий.

Такая последовательность выполнения инструкций программы называется потоком управления внутри программы.

Поток управления зависит от начального состояния переменных, которые используются в программе. В общем случае различные исходные данные порождают различные потоки управления. Поток управления можно представить как нить в программе, на которую нанизаны инструкции, выполняемые микропроцессором. Поэтому часто поток управления также называется нитью (thread). В русскоязычной литературе за потоком управления закрепилось название поток.

Программа является многопоточной, если в ней может одновременно существовать несколько потоков. Сами потоки называются параллельными. Если в программе одновременно может существовать только один поток, то программа называется однопоточной.

Состояния потока

Поток описывает динамическое поведение всей программы или какой-либо функции в программе. Если программа является однопоточной, то поток можно рассматривать как пару: поток = (процессор, программа).

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

Состояния процессора:

  • не выделен для исполнения программы;
  • выделен для исполнения программы.

Состояния программы:

  • не готова к исполнению процессором;
  • готова к исполнению процессором.

Состояния потока:

  • блокирован = (не выделен, не готова)
  • готов к выполнению = (не выделен, готова)
  • выполняется = (выделен, готова)
  • новый – поток, еще не начавший свою работу
  • завершен – поток, завершивший свою работу
Особенности потоков в WinAPI

Потоком в Win API называется объект ядра (или последовательность инструкций программы), которому ОС выделяет процессорное время для выполнения приложения.
Потоку принадлежат ресурсы:

  • код исполняемой функции;
  • набор регистров процессора;
  • стек для работы приложения;
  • стек для работы операционной системы;
  • маркер доступа, который содержит информацию для системы безопасности.

Все эти ресурсы (или содержимое памяти) образуют контекст потока в Win API .
Поток имеет дескриптор и идентификатор, который уникален для потоков выполняющихся в системе. Идентификаторы потоков используются служебными программами, которые позволяют пользователям системы отслеживать работу потоков.

В ОС Windows различаются потоки двух типов:

  • системные потоки – выполняют различные сервисы операционной системы и запускаются ядром операционной системы;
  • пользовательские потоки – служат для решения задач пользователя и запускаются приложением.

В работающем приложении имеются потоки двух типов:

  • рабочие потоки (working threads) – выполняют различные фоновые задачи в приложении;
  • потоки интерфейса пользователя (user interface threads) – связаны с окнами и выполняют обработку сообщений, поступающих этим окнам.

Каждое приложение имеет, по крайней мере, один поток, который называется первичным (primary) или главным (main) потоком - поток, который исполняет функцию main или WinMain .

 

 

 


Предыдущая        В начало страницы       Следующая
1