C: параллельные процессы

Модератор: Модераторы разделов

drifterlom
Сообщения: 34

C: параллельные процессы

Сообщение drifterlom »

еще вопрос ничего не знающего о Си
подскажите как процессор обрабатывает распаралеленные процессы, например когда программа родитель создает чаилда или когда в процессе существует несколько потоков. Эти коды обрабатываются по очереди от каждого по команде или как процессору заблагорассудится и как проще всего их синхронизировать, чтобы один процесс остановился на строчке и ждал пока другой дойдет до своей строчки
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

Re: C: параллельные процессы

Сообщение nesk »

drifterlom писал(а):
29.09.2009 20:27
Эти коды обрабатываются по очереди от каждого по команде или как процессору заблагорассудится и как проще всего их синхронизировать, чтобы один процесс остановился на строчке и ждал пока другой дойдет до своей строчки

Все выполнятся в произвольной последовательности (как заблагорассудится).
синхронизироваться можно с помощью семафоров или мьютексов, кроме того некоторые средства взаимодействия процессов содержат встроенный механизм синхронизации, и есть средства синхронизации при доступе к файлам (блокировки на файлы)
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
drifterlom
Сообщения: 34

Re: C: параллельные процессы

Сообщение drifterlom »

спасибо
Спасибо сказали:
drifterlom
Сообщения: 34

Re: C: параллельные процессы

Сообщение drifterlom »

по поводу встроенных способов синхронизации, я правильно понимаю, что ести я вызываю из одного процесса msgrcv а в очереди ничего нет, процесс ждет пока другой не закинет в очередь данные с помощью msgsnd?
Спасибо сказали: