Manipular a tabela de processos e os mapeamentos de memória é sempre a tarefa do kernel. O kernel age quando algum processo faz uma chamada de sistema. Quando um processo é encerrado, todos os recursos que ele usa, incluindo a memória, exceto a entrada na tabela de processos, são excluídos - é o que a chamada do sistema _exit faz. Em seguida, quando o processo pai chamar wait ou waitpid , parte do trabalho dessa chamada de sistema é limpar a entrada da tabela de processo. O processo pai pode decidir chamar wait sempre que quiser (se o pai for init , ele chamará wait praticamente o tempo todo).