Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Реферат - Потоки / Документ Microsoft Word.doc
Скачиваний:
20
Добавлен:
02.05.2014
Размер:
83.97 Кб
Скачать

Процессы и потоки

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

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

О процессах и потоках

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

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

Функции процесса

Функции

Описание

CreateProcess

Создает новый процесс и его первичный (главный) поток. 

ExitProcess

Завершает процесс и все его потоки. 

GetStartupInfo

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

OpenProcess

Открывает существующий объект процесса. 

TerminateProcess

Завершает работу заданного процесса и все его потоки.

Функции потока

Нижеследующие функции используются с потоками.

Функции

Описание

CreateThread

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

ExitThread

Завершает работу потока. 

SuspendThread

Приостанавливает выполнение заданного потока. 

TerminateThread

Завершает работу потока. 

CreateProcess(NULL,

"child", // командная строка

NULL, // атрибуты защиты процесса

NULL, // атрибуты защиты первичного потока

TRUE, // дескрипторы наследуемые