Старый 14.07.2006, 14:46   #1   
Форумец
 
Сообщений: 43
Регистрация: 28.02.2006
Возраст: 40

drews вне форума Не в сети
программирование Unix

привет. Есть ли здесть кто-нибудь кто программирует под unix/linux на Си?
  Ответить с цитированием
Старый 15.07.2006, 18:10   #2   
Форумец
 
Сообщений: 653
Регистрация: 04.10.2003

Satas вне форума Не в сети
программирую на С++ под Linux QT 2.3.0 (среда KDevelop)
уровень - не ахти.
тебе что то конкретно?
  Ответить с цитированием
Старый 19.07.2006, 12:05   #3   
Форумец
 
Сообщений: 43
Регистрация: 28.02.2006
Возраст: 40

drews вне форума Не в сети
Привет. У меня такой вопрос. Я сейчас разбираюсь в тем взаимодействия процессов. И вот вопрос - почему не работает такая реализация:

Выоплянется 5 процессов, значение X у каждого процесса свои
Y - общая, куда я хочу записать окончательный результат который выглядит как сумма всех X-ов


semop(sem,&g_Decrease,1);
Y=Y+X;
semop(sem,&g_Increase,1);


&g_Decrease-операция понижения
&g_Increase-операция повышения
Изначально значение семафора 1 (создается с помощью semctl)
  Ответить с цитированием
Старый 19.07.2006, 19:44   #4   
Форумец
 
Сообщений: 653
Регистрация: 04.10.2003

Satas вне форума Не в сети
Вообще не вижу смысла применять сдесь семафоры (их функционал расчитан на немного другие нужды) , хотя приведённую задачу и мождно реализовать с их помощью , но представленный код не совсем соответствует требуемому функционалу.
Подобные задачи обычно реализовывают с помощью мьютексов (mutex). Прежде чем какой либо процесс обратится к общей переменной Y , он должен заблокировать mutex , а после всех операций с Y разблокировать его. Все остальные процесы, в это время, ждут своей очереди и , при освобождении мьютекса , след. процесс повторяет вышеописанный алгоритм. И так все.
Задача довольно тривиальнная и легко реализуется в любой современной ОС. автор Т
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind