Создание процесса, создание потока, рабочие функции потока, обмен сообщениями между процессами и потоками.

Функция CreateThread создает для процесса новый поток. Созданный поток должен определить начальный адрес кода, с которого новый поток должен исполняться. Как правило, начальный адрес - это название функции, определенной в коде программы. Эта функция получает единственный параметр и возвращает значение типа DWORD. Процесс может иметь одновременно несколько потоков, выполняющих ту же самую функцию.

 

Для взаимодействия разных процессов или потоков разных процессов используются:

 

конвейеры (pipes)

 

именованные конвейеры (named pipes)

 

очереди сообщений (message queues)

 

разделяемая память (shared memory)

 

Конвейеры - это буфер в ОЗУ, который поддерживает очередь байт (FIFO). ОС располагает двумя системными вызовами для записи и чтения. Ограничение: все процессы должны иметь общего родителя, создавшего конвейер

 

Именованные конвейеры - разновидность обычного конвейера. Системный вызов создания такого конвейера, записывает присвоенное имя в каталог.

 

Очереди сообщений - механизм похож на механизм конвейеров, но позволяет обмениваться не байтами, а сообщениями. Каждая очередь имеет уникальное имя. В Unix используются три системных вызова: msgget, msgsnd, msgrsv

 

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