реклама на сайте
подробности

 
 
> POSIX pthread_* в Linux, когда появилось и как реализовано?
Johny
сообщение Nov 5 2006, 19:04
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 140
Регистрация: 18-10-05
Пользователь №: 9 792



В большинстве книг по Linux не упоминается Posix thread library - вызовы с префиксом pthread_ (типа pthread_create()). Однако я встречал упоминание, что в последних версиях Linux это реализовано. Начиная с какой версии? Это отдельная библиотека, или набор системных вызовов? В каком хедере описаны?
Как обстоят дела с многопоточностью в других uCLinux и других embedded ОСях?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Harbour
сообщение Nov 6 2006, 06:30
Сообщение #2


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



появилось в 1996 (имплементация Xavier Leroy), начиная с версии ядра 1.2.x и libc 4.x, инклюд <pthreads.h>. Это и набор системных вызовов (clone) и несколько юзер-спейс реализаций (linuxthreads/posixthreads/nptl/etc). Многопоточность имеет смысл для масштабирования, то бишь в многопроцессорных системах, к которым uclinux, насколько мне известно, не относится. При вопросах портирования можно выкрутиться юзер-спейс реализацией.
Go to the top of the page
 
+Quote Post
Olej
сообщение Jan 19 2007, 21:43
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458



Цитата(Harbour @ Nov 6 2006, 07:30) *
Многопоточность имеет смысл для масштабирования, то бишь в многопроцессорных системах, к которым uclinux, насколько мне известно, не относится. При вопросах портирования можно выкрутиться юзер-спейс реализацией.

Это в принципе неверно - многопоточность/параллельность применима к однопроцессорам не в меньшей мере, чем к много процессорам. Это - другой взгляд, и другой образ мышления, отличающийся от последовательного программирования.

Цитата(Harbour @ Nov 6 2006, 07:30) *
Это и набор системных вызовов (clone) и несколько юзер-спейс реализаций (linuxthreads/posixthreads/nptl/etc).


В этом clone и состоит беда Linux реализации.

Цитата(Johny @ Nov 7 2006, 18:35) *
В ядре 2.6 ничего в этом плане не поменялось?
У меня сейчас 2.4.17 и glibc-2.3.1 для arm. Нашел реализацию pthread. Система однопроцессорная, в принципе, наверное без разницы, как реализовано, лишь бы работало нормально. Просто использование потоков мне кажется более удобным, чем создание кучи процессов, а затем разделяемой памяти для них - в рамках одного модуля приложения.


Поменялось sad.gif. Принципиально. Начиная с 2.6 модель потоков Linux стала гораздо ближе (в своём поведении, а не сколько в виде системных вызовов) к POSIX. А до этого был совершенно уродливый конгломерат, обязанный именно clone.

Посмотрите здесь:
http://www.books.ru/shop/books/357604
или хотя бы здесь:
http://qnxclub.net/files/articles/pthread/pthread.pdf

Цитата(AlexandrY @ Jan 18 2007, 19:02) *
Процессы и потоки выдумка Linux-а.

Ага, ща-а-а-з... а до Linux была, оказывается, голая пустыня wink.gif...
Потоки присутствуют во всех UNIX-like системах начиная с 80-Х ... ну, второй половины 80-х. И стандартизованы расширением POSIX1003.b.
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jan 20 2007, 12:57
Сообщение #4


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Цитата(Olej @ Jan 19 2007, 20:43) *
Цитата(Harbour @ Nov 6 2006, 07:30) *

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

Это в принципе неверно - многопоточность/параллельность применима к однопроцессорам не в меньшей мере, чем к много процессорам. Это - другой взгляд, и другой образ мышления, отличающийся от последовательного программирования.


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

Цитата(Harbour @ Nov 6 2006, 07:30) *
Это и набор системных вызовов (clone) и несколько юзер-спейс реализаций (linuxthreads/posixthreads/nptl/etc).

Цитата
В этом clone и состоит беда Linux реализации.


Уже много лет пользую потоки в linux, начиная с ядра 2.0, никаких бед что-то не замечено.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Johny   POSIX pthread_* в Linux   Nov 5 2006, 19:04
|- - Johny   Цитата(Harbour @ Nov 6 2006, 09:30) появи...   Nov 7 2006, 17:35
||- - KirillS   Цитата(Johny @ Nov 7 2006, 19:35) Цитата(...   Nov 10 2006, 16:02
- - v_shamaev   Цитата(Johny @ Nov 5 2006, 22:04) Как обс...   Nov 6 2006, 06:43
|- - AlexandrY   Процессы и потоки выдумка Linux-а. Там процессы н...   Jan 18 2007, 18:02
|- - v_shamaev   Цитата(AlexandrY @ Jan 18 2007, 18:02) Пр...   Jan 18 2007, 20:24
|- - Harbour   Цитата(AlexandrY @ Jan 18 2007, 17:02) Пр...   Jan 19 2007, 10:03
|- - Olej   Зесь уже очень верно заметили раньше: Цитата(Alexa...   Jan 22 2007, 11:55
- - Harbour   В ядре 2.6 появился TLS и соответствующая поддержк...   Nov 8 2006, 06:47
|- - Playnet   Цитата(Harbour @ Nov 8 2006, 06:47) Кстат...   Jan 18 2007, 16:20
- - nazim   ЦитатаВ большинстве книг по Linux не упоминается P...   Jan 18 2007, 23:53
|- - sff   Цитата(nazim @ Jan 18 2007, 23:53) Можно ...   Jan 19 2007, 01:11
|- - makc   Цитата(sff @ Jan 19 2007, 01:11) А точнее...   Jan 19 2007, 10:23
|- - sff   2 makc Извеняюсь, что наврал.. хоть и появились k...   Jan 19 2007, 11:28
|- - makc   Цитата(sff @ Jan 19 2007, 11:28) 2 makc И...   Jan 19 2007, 12:00
|- - v_shamaev   Цитата(makc @ Jan 19 2007, 12:00) Думаю, ...   Jan 19 2007, 12:40
|- - makc   Цитата(v_shamaev @ Jan 19 2007, 12:40) Ци...   Jan 19 2007, 12:46
||- - v_shamaev   Цитата(makc @ Jan 19 2007, 12:46) Цитата(...   Jan 19 2007, 14:56
||- - makc   Цитата(v_shamaev @ Jan 19 2007, 14:56) Хо...   Jan 19 2007, 15:04
|- - Playnet   Цитата(v_shamaev @ Jan 19 2007, 12:40) Ци...   Jan 19 2007, 19:30
- - InvisibleFed   Имеется книженция "Unix. Взаимодействие проце...   Jan 20 2007, 14:07
|- - makc   Цитата(InvisibleFed @ Jan 20 2007, 14:07)...   Jan 20 2007, 14:12
- - beer_warrior   ЦитатаЕсли программу предназначенную для работы на...   Jan 20 2007, 18:30
|- - makc   Цитата(beer_warrior @ Jan 20 2007, 18:30)...   Jan 20 2007, 18:36
|- - Harbour   Цитата(beer_warrior @ Jan 20 2007, 17:30)...   Jan 21 2007, 09:51
- - InvisibleFed   Книжку на днях постараюсь залить. Сообщу. Цитата...   Jan 21 2007, 04:52
- - InvisibleFed   ЦитатаРаботать такое приложение будет тоже медленн...   Jan 21 2007, 11:37
|- - makc   Цитата(InvisibleFed @ Jan 21 2007, 11:37)...   Jan 21 2007, 12:03
- - InvisibleFed   Я про 2.4. О тредах знает ТОЛЬКО процесс. Ядро о н...   Jan 21 2007, 14:07
|- - makc   Цитата(InvisibleFed @ Jan 21 2007, 14:07)...   Jan 21 2007, 14:25
||- - Johny   Цитата(makc @ Jan 21 2007, 18:25) Кроме т...   Jul 4 2007, 17:39
|- - Olej   Цитата(InvisibleFed @ Jan 21 2007, 12:37)...   Jan 21 2007, 21:26
- - path_finder   Кстати, раз пошла такая пьянка, может подскажет кт...   Jan 21 2007, 23:35
|- - Olej   Цитата(path_finder @ Jan 22 2007, 00:35) ...   Jan 22 2007, 01:06
- - Harbour   Здесь путаницу вносит видимо несколько реализаций ...   Jan 22 2007, 09:38
- - InvisibleFed   ЦитатаИз POSIX определения уже понятно, что именн...   Jan 22 2007, 10:53
|- - Olej   Цитата(InvisibleFed @ Jan 22 2007, 11:53)...   Jan 22 2007, 11:15
|- - Harbour   Цитата(InvisibleFed @ Jan 22 2007, 09:53)...   Jan 23 2007, 10:02
- - InvisibleFed   ЦитатаВ нормальной реализации потоков (я не знаю, ...   Jan 23 2007, 05:17
|- - Olej   Цитата(InvisibleFed @ Jan 23 2007, 06:17)...   Jan 23 2007, 11:36
- - InvisibleFed   Цитатаэтой книжке в прошлую пятницу 10 лет исполни...   Jan 23 2007, 13:34
- - Johny   Не стал открывать новую тему. Возникла такая про...   Oct 24 2007, 16:08
- - Olej   Цитата(Johny @ Oct 24 2007, 19:08) я испо...   Oct 24 2007, 16:24
- - Johny   Цитата(Olej @ Oct 24 2007, 19:24) ... я н...   Oct 30 2007, 06:08
- - Olej   Цитата(Johny @ Oct 30 2007, 09:08) pthrea...   Oct 31 2007, 13:50
- - Johny   Цитата(Olej @ Oct 31 2007, 16:50) P.S. к...   Nov 2 2007, 08:59


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 14:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01504 секунд с 7
ELECTRONIX ©2004-2016