информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медSpanning Tree Protocol: недокументированное применениеАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
в линуксе вообще есть такое понятие как нити? 19.04.03 03:15  Число просмотров: 1200
Автор: 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-2025 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach