LINUX.ORG.RU

doc на процессы в Линукс


0

0

Подскажите доку или книжку, в которой детельно описана реализация процессов в Линукс. Интересуеют ответы на вопросы: что такое лидер группы процессов, лидер группы потоков, список дочерных процессов, список трассируемых дочерних процессов, описания sys_call, кторые завязаны на межпроцессное взаимодействие.


Advanced Programming in the UNIX Environment: Second Edition
By W. Richard Stevens, Stephen A. Rago
Publisher: Addison Wesley Professional
Pub Date: June 17, 2005
ISBN: 0201433079
Pages: 960

На русском перевод вышел также

x905 ★★★★★
()
Ответ на: комментарий от x905

Стивенс это теория, как он себе представляет unix системы. Хотя у него хорошие книжки по процессам и по сети.

Меня интересует именно реализация в ядре Линукса. Код ядра тяжело читать.

Ещё мнен бы хотелось получить вменяемое объяснение, почему состояние процесса содержится в поле ->state и ->exit_state, мне совершенно не очивидна необходимость в этом.

yantux
() автор топика
Ответ на: комментарий от x905

> Наверно нужно что-то про ядро прочесть:
> http://www.oreilly.com/catalog/9780596100797/
> http://www.oreilly.com/catalog/understandlk/

не скажу за процессы, но если брать 2.6.18 и LDD3/ULK3/etc то во многих местах они прямо скажем отстали от прогресса. например, что касается того-же VFS. да и подсистема управления процессами там описана весьма так себе :-/

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

еще можно посоветовать :
Введение в ядро линукс
Авторы - Daniel P. Bovet, Marco Cesati
там ищи раздел про процессы и треды

kto_tama ★★★★★
()
Ответ на: комментарий от kto_tama

оттуда-же :

Two additional states of the process can be stored both in the state field and in the exit_state field of the process descriptor; as the field name suggests, a process reaches one of these two states only when its execution is terminated:

If the exit_signal process descriptor field is equal to -1 and the process is not being traced, it sets the exit_state field of the process descriptor to EXIT_DEAD, and invokes release_task( ) to reclaim the memory of the remaining process data structures and to decrease the usage counter of the process descriptor (see the following section). The usage counter becomes equal to 1 (see step 3f in the copy_process( ) function), so that the process descriptor itself is not released right away.


Otherwise, if the exit_signal process descriptor field is not equal to -1 or the process is being traced, it sets the exit_state field to EXIT_ZOMBIE. We'll see what happens to zombie processes in the following section.

kto_tama ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.