Тема : Поддержка библиотек мультипоточности пользователя


cyberb  09-11-2006 01:23
В freebsd внедрили по умолчанию поддержку управления пользовательскими потоками, так называемыми user threading. Что это дает

User threading Kernel threading
+ Lightweight - Heavyweight
+ User controls scheduling - Kernel controls scheduling
- Syscalls must be wrapped + No syscall wrapping required
- Cannot utilize multiple CPUs + Can utilize multiple CPUs


Управление нитями потоков от пользователя, быстрее выплняются(так как не тратиться время на системный запрос создания потока). Очевидный минус - для системы все ваши нити, это один поток, так что ни о какой мультипроцессорности не мечтайте))) Для активации необходимо перекомпилить ядро. Все действительно для Current, все что ниже проверйте. Почему написал - просто тема эта близка мне)))

http://www.freebsd.org/kse/index.html
http://www.freebsd.org/cgi/man.cgi?query=kse&apropos=0&sektion=0&manpath=FreeBSD+5.0-current&format=html
http://sysoev.ru/prog/kse.html

Smithson  15-11-2006 17:12
cyberb: Еще из минусов то, что user threading - это копрпоративная многозадачность, так что при ошибке в реализации алгоритмов получишь гибель всего процесса. Но вообще при такой развитой системе межпроцессорного взаимодествия, как в unix, не стои городить "костыли" потоков. Fork - и все хорошо.