Todas as threads de um processo específico compartilham o mesmo status (D, R, S, ...) ou pode haver diferenças entre essas threads?
Em caso afirmativo, onde /proc
encontro informações sobre o status de um determinado tópico? Estou lendo o status do processo nos /proc/<PID>/status
arquivos no momento.
Responder1
Threads diferentes certamente podem estar em estados diferentes do agendador ao mesmo tempo. Na verdade, se estiverem todos no mesmo estado, é uma coincidência (exceto para parado (Z), porque isso afeta todo o processo).
O subdiretório contém um subdiretório por thread do processo. Os arquivos neste diretório são basicamente os mesmos do diretório por processo. Algumas das informações são simplesmente duplicadas (por exemplo, informações relacionadas à memória, ambiente, privilégios, etc.). As informações específicas de um thread, como o estado do agendador (em execução/suspenso/IO/…), podem ser diferentes./proc/PID/task
Responder2
Você pode usar ps
o comando para descobrir o status de todos os threads de um processo:
ps H -p 27901
Isso mostrará todos os threads relacionados ao processo 27901 e seus status.