Qual é o propósito das abstrações, sessão, líder de sessão e grupos de processos?

3

Eu entendo do artigo do Informit que as sessões e os grupos de processos são usados para encerrar processos descendentes ao sair e enviar sinais para processos relacionados com o controle de tarefas.

Eu acredito que esta informação pode ser extraída a qualquer momento usando o PPID de cada processo. Esses conceitos existem apenas para ter uma estrutura de dados que permita obter descendentes de um processo rapidamente?

Os grupos de sessão e processo são empregados em outras coisas além de controle de tarefas e término de descendentes? eles armazenam alguma informação contextual?

Quaisquer boas referências serão úteis.

    
por rag 13.07.2013 / 01:21

1 resposta

3

Os grupos de processos existem principalmente para determinar quais processos iniciam a partir de um terminal pode acessar esse terminal. Somente processos no grupo de processos em primeiro plano podem ler ou gravar em seu terminal de controle; Os processos em segundo plano são interrompidos por um sinal SIGTTIN ou SIGTTOU .

Você pode enviar um sinal atomicamente para todos os processos em um grupo de processos, passando um argumento PID negativo para kill . Isso também acontece quando um sinal é gerado pelo driver do terminal em resposta a um caractere especial (por exemplo, SIGINT para Ctrl + C ).

As sessões rastreiam quais grupos de processos estão anexados a um terminal. Somente processos em execução na mesma sessão que o processo de controle são os processos de primeiro plano ou plano de fundo.

Não é possível determinar grupos de processos ou sessões do PPID. Você não teria como saber se o pai de um processo está no mesmo grupo de processos ou diferente, e também nas sessões.

    
por 14.07.2013 / 02:51