The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"rfork и синхронизация процессов"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"rfork и синхронизация процессов"  
Сообщение от Andrew email(??) on 22-Янв-07, 14:57 
Приветствую всех.

Подскажите, пожалуйста, что можно использовать для синхронизации процессов созданных при помощи rfork() во FreeBSD?
Нужны такие средства синхронизации как mutex, cond var, rwlocks.

Спасибо.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "rfork и синхронизация процессов"  
Сообщение от BigHo on 22-Янв-07, 15:23 
>Приветствую всех.
>
>Подскажите, пожалуйста, что можно использовать для синхронизации процессов созданных при помощи rfork()
>во FreeBSD?
>Нужны такие средства синхронизации как mutex, cond var, rwlocks.


наверное также, как и при работе с потоками. Посмотри rfork_thread(3).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "rfork и синхронизация процессов"  
Сообщение от Andrew email(??) on 22-Янв-07, 15:30 
>>Приветствую всех.
>>
>>Подскажите, пожалуйста, что можно использовать для синхронизации процессов созданных при помощи rfork()
>>во FreeBSD?
>>Нужны такие средства синхронизации как mutex, cond var, rwlocks.
>
>
>наверное также, как и при работе с потоками. Посмотри rfork_thread(3).

rfork_thread() это создание процесса, надстройка над rfork().
функции для работы с потоками pthread_*() не работают.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "rfork и синхронизация процессов"  
Сообщение от BigHo on 22-Янв-07, 16:30 
>rfork_thread() это создание процесса, надстройка над rfork().

так оно и есть. Только если будешь использовать чистый rfork с флагом RFMEM, то рискуешь загубить стек.

>функции для работы с потоками pthread_*() не работают.

Вообще то должны. Ты проверял ?

Хотя если ты имел в виду не rfork, а скорее некоторую версию, приближенную к fork, то посмотри в сторону mmap и её опцию MAP_HASSEMAPHORE.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "rfork и синхронизация процессов"  
Сообщение от Andrew email(??) on 22-Янв-07, 20:58 
>>rfork_thread() это создание процесса, надстройка над rfork().
>
>так оно и есть. Только если будешь использовать чистый rfork с флагом
>RFMEM, то рискуешь загубить стек.

я использую rfork_thread().
в доке написано, что rfork(RFMEM) вообще нереально самому реализовать.

>
>>функции для работы с потоками pthread_*() не работают.
>
>Вообще то должны. Ты проверял ?

Да, проверял с разными либами - не пашет.
Либо просто не работает, либо страшно глючит (через раз), либо падает.

>Хотя если ты имел в виду не rfork, а скорее некоторую версию,
>приближенную к fork, то посмотри в сторону mmap и её опцию
>MAP_HASSEMAPHORE.

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "rfork и синхронизация процессов"  
Сообщение от BigHo on 22-Янв-07, 21:27 
>Не хочу сам все писать, хочу уже готовые решения найти. Велик в
>такой ситуации изобретать не нужно.

Чем тогда не понравились /usr/ports/devel/linuxthreads и /usr/ports/devel/ngpt ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "rfork и синхронизация процессов"  
Сообщение от Andrew email(??) on 24-Янв-07, 02:17 
>>Не хочу сам все писать, хочу уже готовые решения найти. Велик в
>>такой ситуации изобретать не нужно.
>
>Чем тогда не понравились /usr/ports/devel/linuxthreads и /usr/ports/devel/ngpt ?

Спасибо. Посмотрел.
В принципе вполне юзабильно, только сравнив скорость получилось что собственные mutex, condvar работают быстрее чем из linuxthreads - это обидно :(

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "rfork и синхронизация процессов"  
Сообщение от BigHo on 24-Янв-07, 11:43 
>Спасибо. Посмотрел.
>В принципе вполне юзабильно, только сравнив скорость получилось что собственные mutex, condvar
>работают быстрее чем из linuxthreads - это обидно :(

В linuxthreads требование к скорости не является принципиальным. Во главу угла ставится совместимость. Так же как и обычные pthread* функции пытаясь соответствовать POSIX, сильно распухли кодом, и как следствие - понижение производительности. Думаю, если выполнить все требования для соответствия POSIX, скорость работы заметно поубавится :)

P.S. Не совсем понимаю необходимость использования rfork, если есть нормальные потоки.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "rfork и синхронизация процессов"  
Сообщение от Andrew email(??) on 24-Янв-07, 16:23 
>>Спасибо. Посмотрел.
>>В принципе вполне юзабильно, только сравнив скорость получилось что собственные mutex, condvar
>>работают быстрее чем из linuxthreads - это обидно :(
>
>В linuxthreads требование к скорости не является принципиальным. Во главу угла ставится
>совместимость. Так же как и обычные pthread* функции пытаясь соответствовать POSIX,
>сильно распухли кодом, и как следствие - понижение производительности. Думаю, если
>выполнить все требования для соответствия POSIX, скорость работы заметно поубавится :)
>
>
>P.S. Не совсем понимаю необходимость использования rfork, если есть нормальные потоки.

Необходимость работы на SMP системах.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "rfork и синхронизация процессов"  
Сообщение от BigHo on 24-Янв-07, 18:50 
>Необходимость работы на SMP системах.

Линковка с -lthr настолько плоха ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру