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).