еще вопрос ничего не знающего о Си
подскажите как процессор обрабатывает распаралеленные процессы, например когда программа родитель создает чаилда или когда в процессе существует несколько потоков. Эти коды обрабатываются по очереди от каждого по команде или как процессору заблагорассудится и как проще всего их синхронизировать, чтобы один процесс остановился на строчке и ждал пока другой дойдет до своей строчки
C: параллельные процессы
Модератор: Модераторы разделов
-
- Сообщения: 2268
- Статус: Линукссаксовец
- ОС: MS Windows XP Home SP3
Re: C: параллельные процессы
drifterlom писал(а): ↑29.09.2009 20:27Эти коды обрабатываются по очереди от каждого по команде или как процессору заблагорассудится и как проще всего их синхронизировать, чтобы один процесс остановился на строчке и ждал пока другой дойдет до своей строчки
Все выполнятся в произвольной последовательности (как заблагорассудится).
синхронизироваться можно с помощью семафоров или мьютексов, кроме того некоторые средства взаимодействия процессов содержат встроенный механизм синхронизации, и есть средства синхронизации при доступе к файлам (блокировки на файлы)
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
0xDEFEC8ED
0xDEFEC8ED
-
- Сообщения: 34
Re: C: параллельные процессы
по поводу встроенных способов синхронизации, я правильно понимаю, что ести я вызываю из одного процесса msgrcv а в очереди ничего нет, процесс ждет пока другой не закинет в очередь данные с помощью msgsnd?