Status de um encadeamento versus status de um processo

4

Todos os threads de um processo específico compartilham o mesmo status (D, R, S, ...) ou podem haver diferenças entre esses threads?

Se sim, onde, em /proc , encontro informações sobre o status de um determinado segmento? Estou lendo o status do processo dos arquivos /proc/<PID>/status no momento.

    
por Simon Fromme 19.05.2016 / 12:01

2 respostas

3

Diferentes segmentos podem estar em um estado de agendador diferente ao mesmo tempo. De fato, se eles estão todos no mesmo estado, isso é uma coincidência (exceto para o parado (Z), porque isso afeta todo o processo).

O subdiretório /proc/PID/task contém um subdiretório por encadeamento do processo. Os arquivos nesse diretório são basicamente os mesmos do diretório por processo. Algumas das informações são apenas duplicadas (por exemplo, informações relacionadas à memória, ambiente, privilégios, etc.). Informações específicas de um segmento, como o estado do agendador (executando / dormindo / IO /…), podem ser diferentes.

    
por 20.05.2016 / 10:27
1

Você pode usar o comando ps para descobrir o status de todos os encadeamentos de um processo:

ps H -p 27901

Isso mostrará todos os encadeamentos relacionados ao processo 27901 e seu status.

    
por 19.05.2016 / 12:21