Vais encore faire mon picky mais,

- chaque thread a un stack different au sein d'un meme process. (sinon, l'execution
parallele serait un casse tete pour s'y retrouver dans le stack).
- sous linux, un thread EST un process partagant leur heap.

Les registres sont sauvegardes de la meme maniere lors du context
swithcing d'un process ou d'un thread.

donc, thread plus lege que process, oui, mais cela depends bcp de l'OS, linux
est un mauvais exemple pour cela.

fork n'est pas exactement un appel systeme: c'est une couche autour de _clone() qui est
l'appel system. De plus, il n'y a pas d'autres moyen de creer des nouveau process. Le 
kernel
quand il demarre appel la version kernel de _clone() pour creer le process init qui 
lui meme
va forker tout les nouveaux process qui se lanceront.

JeF

On Fri, Feb 08, 2002 at 12:53:08AM +0100, Benjamin Michotte wrote:
> salut,
> 
> On Thu, Feb 07, 2002 at 09:14:39PM, Alain Barthélemy wrote:
> > Bonjour,
> > 
> > Qu'appelle-t-on un fork? J'ai cru comprendre que cela correspondait au 
> > dédoublement d'un programme dont chaque partie fonctionne de façon 
> > indépendante (on ouvre deux konqueror ou deux Quanta par exemple).
> Un fork est un appel système qui consiste a " dédoubler " un programme,
> pour par exemple lui permettre de faire deux (ou plus) tâches en meme
> temps.
> Faire un fork est une opération relativement lourde pour le systeme car
> a chaque fork, l'os doit donner au sous-processus une stack, un heap et
> une partie de mémoire pour les data + la sauvegarde des registres (pour
> un obscure jeu avec les timeslices, ...) Apache, dans ses versions 1.x 
> actuelles fonctionne avec des fork. Cad qu'à chaque client qui se 
> connecte sur ton serveur http, Apache se dédouble (il "meurt" quand meme 
> apres hein ;p). Les versions 2.x et suivantes utiliseront des threads.
> 
> Un thread est un espece de fork _sauf_ que l'os ne lui donne qu'une
> stack et la sauvegarde des registres. Il garde les meme data que son
> pere (le programme qui lance le thread). 
> 
> En gros, cela signifie que le thread est un peu équivalent au fork mais
> que le thread est beaucoup plus léger que le fork (on appelle d'ailleurs
> les threads des /lightweight process/ ).
> 
> Vala vala.
> 
> > Merci 
> > Alain
> ---end quoted text---
> 
> binny
> 
> -- 
> 
> Le but du mathématicien est de comprendre le sens de ce qu'il dit.
>           -- Unknown
> 
> °v°  Benjamin Michotte        <[EMAIL PROTECTED]>
> _o_  web      : http://www.baby-linux.net
> _______________________________________________
> Linux Mailing List
> Archives: http://unixtech.be/mailman/listinfo/linux
> 

-- 
-> Jean-Francois Dive
--> [EMAIL PROTECTED]

Répondre à