The OpenNET Project / Index page

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

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

"семафоры"  
Сообщение от Niam (ok) on 25-Июл-07, 18:27 
Добрый день!
Определилась у меня проблема выбора между реализациями семафоров: POSIX или System V.
Сделав небольшой обзор документации определил, что POSIX-реализация более легковесна.
Но, есть вопрос портируемости - все(многие?) ли системы поддерживают данную реализацию для синхронимзации процессов?

И вообще на практике - какие семафоры лучше использовать?

Спасибо за подсказки =).

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

 Оглавление

  • семафоры, vic, 19:43 , 25-Июл-07, (1)  
    • семафоры, Niam, 00:09 , 26-Июл-07, (2)  
      • семафоры, BigHo, 11:33 , 26-Июл-07, (3)  
        • семафоры, Niam, 11:55 , 26-Июл-07, (4)  
        • семафоры, vic, 16:11 , 26-Июл-07, (5)  
          • семафоры, Niam, 16:21 , 26-Июл-07, (6)  
        • семафоры, anonymous, 05:08 , 27-Июл-07, (7)  

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


1. "семафоры"  
Сообщение от vic (??) on 25-Июл-07, 19:43 
>Добрый день!
>Определилась у меня проблема выбора между реализациями семафоров: POSIX или System V.
>
>Сделав небольшой обзор документации определил, что POSIX-реализация более легковесна.
>Но, есть вопрос портируемости - все(многие?) ли системы поддерживают данную реализацию для
>синхронимзации процессов?
>
>И вообще на практике - какие семафоры лучше использовать?
>
>Спасибо за подсказки =).

POSIX самое портабельное, на то оно и POSIX.
ессно исключая винду, т.к. она ваще стандарты игнорит.

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

2. "семафоры"  
Сообщение от Niam (ok) on 26-Июл-07, 00:09 

>
>POSIX самое портабельное, на то оно и POSIX.
>ессно исключая винду, т.к. она ваще стандарты игнорит.

Спасибо =). Ну Винду не в счет.Портабельное-то да, но везде ли портировано!? Ну испробую их!

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

3. "семафоры"  
Сообщение от BigHo on 26-Июл-07, 11:33 
>
>>
>>POSIX самое портабельное, на то оно и POSIX.
>>ессно исключая винду, т.к. она ваще стандарты игнорит.
>
>Спасибо =). Ну Винду не в счет.Портабельное-то да, но везде ли портировано!?
>Ну испробую их!

Самый портабельный механизм - никогда не использовать семофоры :) Вместо этого рекомендую использовать socket(PF_LOCAL, SOCK_STREAM, ...) или socketpair(PF_LOCAL, SOCK_STREAM, ...) сокеты и считывать порции данных, равные запрашиваемому счетчику потребления. Если сделать неблокируемыми сокеты, то можно будет назначать таймаут через select или poll, чего нет ни в той, ни в другой реализации семафоров.

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

4. "семафоры"  
Сообщение от Niam (ok) on 26-Июл-07, 11:55 

>Самый портабельный механизм - никогда не использовать семофоры :)

Почуму?

>Вместо этого рекомендую
>использовать socket(PF_LOCAL, SOCK_STREAM, ...) или socketpair(PF_LOCAL, SOCK_STREAM, ...) сокеты и считывать
>порции данных, равные запрашиваемому счетчику потребления. Если сделать неблокируемыми сокеты, то
>можно будет назначать таймаут через select или poll, чего нет ни
>в той, ни в другой реализации семафоров.

Мне кажется не стоит чрезмерно усложнять алгоритмы. Хотя это видимо завсит от задачи, конечно.
Но если использовать shared memory, то мне кажется - семафоры - самое оно.

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

5. "семафоры"  
Сообщение от vic (??) on 26-Июл-07, 16:11 
>[оверквотинг удален]
>>>ессно исключая винду, т.к. она ваще стандарты игнорит.
>>
>>Спасибо =). Ну Винду не в счет.Портабельное-то да, но везде ли портировано!?
>>Ну испробую их!
>
>Самый портабельный механизм - никогда не использовать семофоры :) Вместо этого рекомендую
>использовать socket(PF_LOCAL, SOCK_STREAM, ...) или socketpair(PF_LOCAL, SOCK_STREAM, ...) сокеты и считывать
>порции данных, равные запрашиваемому счетчику потребления. Если сделать неблокируемыми сокеты, то
>можно будет назначать таймаут через select или poll, чего нет ни
>в той, ни в другой реализации семафоров.

Ну и перенести вопрос портабельности с семафоров на сокеты :) Нарваться на какие-нить нюансы.. А сокеты в свою очередь будут помедленее shared memory + семафоры.

Хотя с другой стороны использование сокетов позволяет заюзать различные библиотеки более высокого уровня. А переход с локальных на сетевые сокеты позволит межпроцессное взаимодействие сделать еще и межхостовым (все распределенее и распределенее).

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

6. "семафоры"  
Сообщение от Niam (ok) on 26-Июл-07, 16:21 

>Хотя с другой стороны использование сокетов позволяет заюзать различные библиотеки более высокого
>уровня. А переход с локальных на сетевые сокеты позволит межпроцессное взаимодействие
>сделать еще и межхостовым (все распределенее и распределенее).

Можно попробовать заморочиться и написать какую-то абстракцию сообщений. Но шареная память удобна тем, что она может выступать хранилищем. А для сокитного взаиможействия нужно дописать демона, который будет работать именно этим хранилищем.

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

7. "семафоры"  
Сообщение от anonymous (??) on 27-Июл-07, 05:08 
>Самый портабельный механизм - никогда не использовать семофоры :) Вместо этого рекомендую
>использовать socket...

... и наткнуться на несовместимости в реализации сокетов, или на системный лимит на количество открытых файлов, или... (список можно продолжать)

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

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

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




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

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