Информационно-аналитический портал
Высокопроизводительные
вычисления на WINDOWS-кластерах
   

 
 
  Главная
  Новости
  Как создать Windows-кластер
  Компьютеры
  Технологии
  Message Passing Interface (MPI)  
  OpenMP  
  Windows Threads  
  Treading Building Blocks  
  MC#  
  Параллельное программирование
  Библиотеки, пакеты, приложения
  Метакомпьютинг, GRID
  Обучение
  Исследования
 
  
Логин:    
Пароль:    
Запомнить:
 Забыли пароль? Регистрация 
  
 
Microsoft HPC RussiaТехнологииWindows Threads
 

Windows Threads

Основные понятия

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

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

Под параллельной программой в рамках технологии многопоточного программирования Windows threads будем рассматривать программу, при исполнении которой в определенные моменты выполняется более одного вычислительного потока.

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

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

<< вернуться  |   Документ от: 26.10.2007 15:50
 

Новости

26.12.2007
25.12.2007
24.12.2007
17.12.2007
17.12.2007
 

   

© ННГУ, Центр компетенции в области высокопроизводительных вычислений на основе технологий Майкрософт, 2007