|
|
  |
POSIX pthread_* в Linux, когда появилось и как реализовано? |
|
|
|
Jan 19 2007, 12:40
|

Местный
  
Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259

|
Цитата(makc @ Jan 19 2007, 12:00)  Думаю, что всем будет полезна эта книга в электронном варианте. Забрать ее можно здесь - http://nukeuploads.com/download/1169196826...LKD2Ed.rar.htmlПустая страница открывается по ссылке. Как хоть называется эта книга?
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Jan 19 2007, 12:46
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(v_shamaev @ Jan 19 2007, 12:40)  Цитата(makc @ Jan 19 2007, 12:00)  Думаю, что всем будет полезна эта книга в электронном варианте. Забрать ее можно здесь - http://nukeuploads.com/download/1169196826...LKD2Ed.rar.htmlПустая страница открывается по ссылке. Как хоть называется эта книга? Да, действительно. Это тем более странно, что после заливки я проверил - файл был доступен. Книга называется Linux Kernel Development Second Edition By Robert Lovе Залил ее еще раз, на другой файлообменник - http://www.rapidshare.ru/148214
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Jan 19 2007, 14:56
|

Местный
  
Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259

|
Цитата(makc @ Jan 19 2007, 12:46)  Цитата(v_shamaev @ Jan 19 2007, 12:40)  Цитата(makc @ Jan 19 2007, 12:00)  Думаю, что всем будет полезна эта книга в электронном варианте. Забрать ее можно здесь - http://nukeuploads.com/download/1169196826...LKD2Ed.rar.htmlПустая страница открывается по ссылке. Как хоть называется эта книга? Да, действительно. Это тем более странно, что после заливки я проверил - файл был доступен. Книга называется Linux Kernel Development Second Edition By Robert Lovе Залил ее еще раз, на другой файлообменник - http://www.rapidshare.ru/148214Хорошая книга, хорошо написана. Есть в продаже русский перевод - "Роберт Лав. Разработка ядра Linux. Второе издание" ББК 32.973.26-018.2.75 Не со всеми утверждениями (или, точнее, акцентами) я согласен, как раз по поводу потоков.
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Jan 19 2007, 15:04
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(v_shamaev @ Jan 19 2007, 14:56)  Хорошая книга, хорошо написана. Есть в продаже русский перевод - "Роберт Лав. Разработка ядра Linux. Второе издание" Да, есть такая книга. Я себе прикупил. В принципе, читать можно. Есть, правда, проблемы перевода, но куда же без них.  Цитата Не со всеми утверждениями (или, точнее, акцентами) я согласен, как раз по поводу потоков. С чем именно Вы не согласны?
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Jan 19 2007, 19:30
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 10-05-06
Пользователь №: 16 930

|
Цитата(v_shamaev @ Jan 19 2007, 12:40)  Цитата(makc @ Jan 19 2007, 12:00)  Думаю, что всем будет полезна эта книга в электронном варианте. Забрать ее можно здесь - http://nukeuploads.com/download/1169196826...LKD2Ed.rar.htmlПустая страница открывается по ссылке. Как хоть называется эта книга? у меня скачалось. Могу на ifolder залить хттп://ifolder.ru/910949
Сообщение отредактировал Playnet - Jan 19 2007, 20:02
|
|
|
|
|
Jan 19 2007, 21:43
|
Местный
  
Группа: Свой
Сообщений: 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. Система однопроцессорная, в принципе, наверное без разницы, как реализовано, лишь бы работало нормально. Просто использование потоков мне кажется более удобным, чем создание кучи процессов, а затем разделяемой памяти для них - в рамках одного модуля приложения. Поменялось  . Принципиально. Начиная с 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 была, оказывается, голая пустыня  ... Потоки присутствуют во всех UNIX-like системах начиная с 80-Х ... ну, второй половины 80-х. И стандартизованы расширением POSIX1003.b.
|
|
|
|
|
Jan 20 2007, 12:57
|

Местами Гуру
    
Группа: 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, никаких бед что-то не замечено.
|
|
|
|
|
Jan 20 2007, 18:30
|

Профессионал
    
Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380

|
Цитата Если программу предназначенную для работы на 1 cpu, программист пишет с использованием тредов, то ему еще долго шагать по пути к мастерству. Стоп-стоп. Вы хотите сказать, что трэды это только для мультипроцессорных систем?
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
|
Jan 20 2007, 18:36
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(beer_warrior @ Jan 20 2007, 18:30)  Цитата Если программу предназначенную для работы на 1 cpu, программист пишет с использованием тредов, то ему еще долго шагать по пути к мастерству. Стоп-стоп. Вы хотите сказать, что трэды это только для мультипроцессорных систем? Нет, конечно. Но прирост производительности от использования тредов может быть достигнут только на многопроцессорных системах и тех, которые могут выполнять больше одного независимого потока команд.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Jan 21 2007, 04:52
|
Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469

|
Книжку на днях постараюсь залить. Сообщу. Цитата Но прирост производительности от использования тредов может быть достигнут только на многопроцессорных системах и тех, которые могут выполнять больше одного независимого потока команд. Спорное утверждение. Пока один поток ожидает завершение операции ввода-вывода, второй может использовать процессор. Конечно, потоки это лиш уровень абстракции, но организовать подобное БЕЗ потоков - еще тот гемор и, видимо, не всегда возможно. Общую производительность таким образом, конечно, не повысишь (процессор все-таки один), но так называемую "ощущаемую" - вполне.
|
|
|
|
|
Jan 21 2007, 09:51
|

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

|
Цитата(beer_warrior @ Jan 20 2007, 17:30)  Цитата Если программу предназначенную для работы на 1 cpu, программист пишет с использованием тредов, то ему еще долго шагать по пути к мастерству. Стоп-стоп. Вы хотите сказать, что трэды это только для мультипроцессорных систем? Нет конечно  Имелось ввиду приложение по теме, т.е. в uclinux, где SMP нет в природе а лишний гемор и потеря времени при написании тредовой app обеспечен. Работать такое приложение будет тоже медленнее - кроме тормозов при переключение контекста имеем дополнительные потери на счедулинг каждой треды и на организацию блокировок данных внтури одной и той же программы. И последнее - неизвестно насколько эффективна реализована поддержка тредов в изначально ембеддерской однопроцессорной системе, где их активное использование, собственно, не предусмотрено. С нормальным linux'ом на обычном современном железе разница заметна только для маньяков скорости
|
|
|
|
|
Jan 21 2007, 11:37
|
Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469

|
Цитата Работать такое приложение будет тоже медленнее - кроме тормозов при переключение контекста имеем дополнительные потери на счедулинг каждой треды и на организацию блокировок данных внтури одной и той же программы. И последнее - неизвестно насколько эффективна реализована поддержка тредов в изначально ембеддерской однопроцессорной системе, где их активное использование, собственно, не предусмотрено. С нормальным linux'ом на обычном современном железе разница заметна только для маньяков скорости. Там где можно использовать треды, а не процессы - нужно использовать треды. Переключение тредов происходит гораздо быстрее. Что касается шедулинга, то на системном уровне его нет как такового (тред не является объектом ядра linux, насколько мне известно), управление на пользовательском уровне связано скорее с опытом. А по производительности - я уже свое мнение высказал.
Сообщение отредактировал InvisibleFed - Jan 21 2007, 11:39
|
|
|
|
|
Jan 21 2007, 12:03
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(InvisibleFed @ Jan 21 2007, 11:37)  Там где можно использовать треды, а не процессы - нужно использовать треды. Переключение тредов происходит гораздо быстрее. Что касается шедулинга, то на системном уровне его нет как такового (тред не является объектом ядра linux, насколько мне известно), управление на пользовательском уровне связано скорее с опытом. А по производительности - я уже свое мнение высказал. Вы прокакое ядро говорите? Если про 2.6, то чуть раньше мы тут уже выяснили, что в нем треды реализуются через процессы с разделяемым адресным пространством (и другими данными). Т.е. являются объектами шедулинга и, соотвественно, объектами ядра.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|