[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