Подскажите, пожалуйста, где можно почитать о работе нитей (pthread) на многопроцессорных системах работающих под разные ОС (Linux, FreeBSD, Solaris).
Главный вопрос который интересует, будут ли две нити работать на двух разных процессорах параллельно?
Единой точки "почитать" про все системы сразу я ингде не встречал.
Собственно, под Linux всё зависит от используемой библиотеки pthreads
(на наиболее распространённой ныне NPTL - будет использоваться несколько
процессоров), под BSD ситуация (как я слышал) аналогичная. В Solaris
никогда в системе не было штатной библиотеки pthreads с кооперативным
планированием исполнения потоков - то при отсутствии блокировок и
наличии двух процессоров две "нити" практически наверняка будут работать
на разных процессорах, независимо от версии системы.
>под BSD ситуация (как я слышал) аналогичная.Уточню этот момент.
При использовании libpthread, libthr обе доступны для FreeBSD >= 5.0 - будут задействованы оба процессора. При использовании устаревшей libc_r (наследие 4.x) - не будут. В ней реализованы user-space потоки.