Sim.
O kernel lançará todos os recursos alocados por um programa na finalização do programa.
Isso é feito depois que a função do_exit()
definida em kernel/exit.c
tenha terminado sua execução; a execução da função do_exit()
pode ser desencadeada por vários eventos, mais comumente por um% syscall exit()
explícito chamado pelo programa durante sua computação regular ou por um% syscall exit()
implícito chamado pelo programa na sua finalização (como o compilador C coloca um exit()
syscall após o retorno de main()
). Outras razões incluem a recepção de um sinal ou exceção não manipulável / não ignorável.
A função do_exit()
realiza uma série de tarefas. Depois de terminar sua execução, os recursos alocados do programa são liberados pelo kernel e retornados ao sistema para outros usos.