Qual é o impacto de matar um processo no sistema operacional (Windows e Linux)?

1

Qual é o impacto de matar um processo no sistema operacional (Windows e Linux)?

Eu tenho um script que bifurca alguns executáveis e monitora seu progresso e mata aqueles que excedem certo limite de tempo de execução. Eu queria saber se matar processos causaria problemas no sistema operacional

    
por Mohamed Samy 13.01.2014 / 00:34

1 resposta

3

Depende de quais são esses processos e o que eles estão fazendo.

No nível mais básico, o kernel é projetado para lidar com processos em modo usuário que morrem inesperadamente (com uma ou duas exceções: por exemplo, o Linux possui código de caso especial para forçar uma falha no sistema se init terminar; provavelmente há pelo menos um processo extra-especial no Windows, mas provavelmente você não está escrevendo esses programas). Ele fecha automaticamente todos os arquivos que o processo abriu, desaloca a memória, libera bloqueios, etc. Assim, você não precisa se preocupar com a estabilidade fundamental do sistema operacional sendo interrompido.

Agora, fica mais interessante se o processo em questão grava coisas no sistema de arquivos ou se comunica com outros processos (talvez nem no mesmo computador). Os pares de comunicações receberão um EOF súbito, um TCP RST ou algo semelhante. Os arquivos persistirão, possivelmente com conteúdo inconsistente internamente, e algo pode tropeçar neles. Em última análise, é sua responsabilidade garantir que tudo else no sistema esteja preparado para lidar com o processo.

Leia sobre o projeto somente de falhas para saber como construir sistemas robustos na presença de aplicadores de limite de recursos e similares.

    
por 13.01.2014 / 03:11