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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и 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: 1 s   Design: Vadim Derkach