информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
в линуксе вообще есть такое понятие как нити? 19.04.03 03:15  Число просмотров: 1125
Автор: alien <Андрей> Статус: Member
<"чистая" ссылка>
...
Нити, т. е. параллельно выполняемые части одной программы, в стандартной библиотеке поддержки многонитевых программ Linux реализованы просто как процессы, порожденные с указанием флага CLONE_VM, и с точки зрения ядра системы ничем не отличаются от любых других процессов. Однако в некоторых альтернативных реализациях многонитевых библиотек дело обстоит иначе.

Помимо процессов описанного выше вида бывают еще «ущербные», порождаемые с помощью функции kernel_thread для внутренних системных нужд. У них нет параметров командной строки, как правило, они не имеют открытых файлов и т. д. Поскольку, несмотря на свою ущербность, эти процессы все равно фигурируют в списке задач, в литературе иногда различают полноценные процессы, порожденные из «пространства пользователя» (userspace), и задачи, т. е. все процессы, включая внутренние процессы ядра.
...

http://www.osp.ru/pcworld/2000/06/054.htm
<beginners>
в линуксе вообще есть такое понятие как нити? 19.04.03 02:17  
Автор: vh <Дмитрий> Статус: Member
<"чистая" ссылка>
и если да, то как их программить?

спасибо
в линуксе вообще есть такое понятие как нити? 26.04.03 13:20  
Автор: L Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Ты б решил, что ты действительно хочешь узнать.

В частности "нити как в Windows" - это чего такое? По каким параметрам ты их сравнивать решил?

Если просто для самообразования (без глупых попыток сравнения), то тебе уж посоветовали. Курить для начала posix threads и man clone.
объясняю... 26.04.03 15:22  
Автор: vh <Дмитрий> Статус: Member
<"чистая" ссылка>
> Ты б решил, что ты действительно хочешь узнать.
как устроен механизм нитей на уровне ядра (и какая философия их использования)
>
> В частности "нити как в Windows" - это чего такое? По каким
> параметрам ты их сравнивать решил?
В моем понимани "нити как в Windows" это означает: есть процесс...сам по себе пустой и ничего не значащий...в каждом процессе должна быть хотя бы одна нить которая по сути есть код и стек. Все логично.
Вообщем на мой взгляд такой механизм нитей есть очень мощный инструмент для программирования (даже если не брать их реальную реализацию в ОС от MS). Т.е. понятно как и главное зачем (целесообразность) их использовать.

Хочется понять тоже самое относительно системы Юникс.

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

>
> Если просто для самообразования (без глупых попыток
> сравнения), то тебе уж посоветовали. Курить для начала
> posix threads и man clone.

в принципе Urix привел довольно много инфы и линков . так что если это серьезно посмотреть, то наверное действительно станет все на свои места...но пока мне ужасно влом :)
конечно есть :) 21.04.03 08:55  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
Если ты переводишь thread как "нить" (правилный перевод - "поток"), то есть. Если ты имеешь в виду fibers, то не знаю ;)

Внутреняя реализация потоков нас не интересует. Так ?
А use case можно увидеть:
man pthread_create
man pthread_join
man pthread_exit

Все ф-ии определяются в <pthread.h>
При линковке указываешь -lpthread
а все-таки каков механизм? 22.04.03 23:01  
Автор: vh <Дмитрий> Статус: Member
Отредактировано 22.04.03 23:17  Количество правок: 2
<"чистая" ссылка>
> Если ты переводишь thread как "нить" (правилный перевод -
> "поток"), то есть. Если ты имеешь в виду fibers, то не знаю
> ;)
>
> Внутреняя реализация потоков нас не интересует. Так ?
> А use case можно увидеть:
> man pthread_create
> man pthread_join
> man pthread_exit
>
> Все ф-ии определяются в <pthread.h>
> При линковке указываешь -lpthread

большое спасибо за наводку!

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

Вопрос ставлю так: есть ли в чистой системе юникс понятие нитей?

а ты не мог бы чтонить будь рассказать о fibers (что это такое)

санкс
inside 23.04.03 11:17  
Автор: Еugеnе Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> большое спасибо за наводку!
>
> Внутренняя реализация как раз очень интересует ( являются
> ли они частью ядра ). Ведь в принципе их можно и самому
> абстрагировать на основе процессов. только толку то...
>
> Вопрос ставлю так: есть ли в чистой системе юникс понятие
> нитей?

Тут грамотней говорить о стандартах.
Существует понятие "POSIX threads".

Посмотри тут:
http://users.actcom.co.il/~choo/lupg/tutorials/multi-thread/multi-thread.html#definition
http://www.linux.org.ru/view-message.jsp?msgid=279505&scroll=group&back=view-group.jsp%3Fgroup%3D4066%26offset%3D150
http://www.oreilly.com/catalog/pthread/
http://www.google.com
Стандарт posix (если его считать "чистым" unix :) описывает так называемые posix threads (pthreads), о них, собственно, и говорилось. 23.04.03 11:11  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
> Внутренняя реализация как раз очень интересует ( являются
> ли они частью ядра ). Ведь в принципе их можно и самому
> абстрагировать на основе процессов. только толку то...
Вообще конечно, зависит от реализации :) Но насколько я понимаю, поскольку POSIX - это набор требований, а не конкретная реализация, то достаточно иметь интерфейс на уровне системных вызовов или вызовов соответствующей библиотеки, чтобы сказать, что нити в данной операционке можно сделать POSIX-нитями. Я просто к тому, что в Linux "POSIX-нити" и "не-POSIX-нити" с точки зрения системного вызова, реально порождающего нить, по-моему, не отличаются. Если я неправ, поправьте.
еще 1 реализация 21.04.03 11:42  
Автор: Eugene Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Внутреняя реализация потоков нас не интересует. Так ?
> А use case можно увидеть:
> man pthread_create
> man pthread_join
> man pthread_exit
>
> Все ф-ии определяются в <pthread.h>
> При линковке указываешь -lpthread


NTPL
ftp://people.redhat.com/drepper/nptl/
в линуксе вообще есть такое понятие как нити? 19.04.03 03:15  
Автор: alien <Андрей> Статус: Member
<"чистая" ссылка>
...
Нити, т. е. параллельно выполняемые части одной программы, в стандартной библиотеке поддержки многонитевых программ Linux реализованы просто как процессы, порожденные с указанием флага CLONE_VM, и с точки зрения ядра системы ничем не отличаются от любых других процессов. Однако в некоторых альтернативных реализациях многонитевых библиотек дело обстоит иначе.

Помимо процессов описанного выше вида бывают еще «ущербные», порождаемые с помощью функции kernel_thread для внутренних системных нужд. У них нет параметров командной строки, как правило, они не имеют открытых файлов и т. д. Поскольку, несмотря на свою ущербность, эти процессы все равно фигурируют в списке задач, в литературе иногда различают полноценные процессы, порожденные из «пространства пользователя» (userspace), и задачи, т. е. все процессы, включая внутренние процессы ядра.
...

http://www.osp.ru/pcworld/2000/06/054.htm
другими словами, нитей, которые есть в Win, в юниксе нет :)... 19.04.03 07:02  
Автор: vh <Дмитрий> Статус: Member
Отредактировано 19.04.03 07:02  Количество правок: 1
<"чистая" ссылка>
Можно сказать, что ДА... 19.04.03 07:12  
Автор: alien <Андрей> Статус: Member
<"чистая" ссылка>
На самом деле функциональность нитей Windows есть и в Linux, просто все устроено немного по другому - в Windows код выполняется в рамках нити, а процесс является всего лишь контейнером нитей, а в Linux код выполняется в рамках процесса.

Если я ошибаюсь, то пусть меня поправят...
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach