[Kos-dev] Retour des processus...
kos-dev@enix.org
kos-dev@enix.org
Fri, 08 Mar 2002 02:09:44 +0000
> Quand tu veux exécuter le thread user, il commence
> d'abord dans une routine qui va appeler ton main et
> effectuer un exit au retour, le tout en CPL3.
C'est bien ca...
> Ton exit sera sûrement un syscall, donc en CPL0 qui
> va se charger de faire le ménage de ton thread aussi
> bien en user que kernel.
... le seul point interressant ici c'est le fait que le
exit qui est chargé de liberer les resources en CPL0 du
thread (pile, task structure, etc... ), utilise lui meme
ces resources.
En pratique les resources sont pas toute liberer des
l'appel a exit. Pour Linux/Unix cela se passe quand le
process parent appelle wait(). Le code de sortie du
process est un exemple de resource non liberée par exit.
Ces resources non liberées c'est ce qu'il reste dans un
process Zombie.
Il ya un peu le meme genre de choses avec des librairies
de thread genre pthread. Dans certain cas si les thread
qui se termine ne sont pas "joint" par pthread_join, il
y a des ressources non liberées.
-- Fabrice