[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [linux-team] processus et segments
Le stack est dans le segment data. Alloue de gauche a droite. La heap est
allouee de droit a gauche. Normalement.
Et la shared memory occupe les cases impaires, les jours paires des annees
bisextille.
Merci fred :-)
Pascal Bleser wrote:
> Tiens, une question expert de chez expert... ;)
> Je suis pris d'un doute, l?.
> Les processus sous UNIX, ils ont 2 ou 3 segments ?
Il n'y a pas de regle pour les systemes unix !
>
> Je sais bien qu'il y a
> - segment "text": le code
tu utilises le Code Segment (cs sur i386) si le processeur en a un
> - segment "data": les données statiques
tu utilises le Data Segment (ds sur i386) si le processeur en a un
> mais qu'en est-il du user-stack ?
Tu utilises le Stack Segment (cs sur i386) si le processeur en a un
Et cela meme si cs==ds==cs
> Il est alloué dans le segment data ou bien il a un segment propre ?
>
Je crois que les segments n'existe pas sur Alpha et donc les derniers kernel
linux
n'utiliserai plus la segmentation du i386, et donc il n'y aurait plus qu'un
seul segment !
Ce qui limiterai la mem des process a 3Go, le dernier etant reserve au
kernel !
LA stack est elle limitee a 8Mo sous linux, je sais pas pourquoi. MAis
elle est surement alloue dynamiquement.
> Et qqn sait comment Linux g?re le heap permettant l'allocation dynamique
> de mémoire ?
Dynamiquement ca veux dire quoi ? (je me pose la question)
Et je reponds (apres meditiation dans un lieu exigu ou je me trouvais seul
pour ...)
Suposons :
un process de 1Mo, il malloc 8Mo.
Il ne se passe rien, aucune page n'est alloue, rien ne bouge, pas de swap,
RIEN
sauf que le noyau note qu'il a etendu son espace de 8Mo !
Il deference un pointeur, le process regarde
a l'adresse et voi qu'il n'y a pas de page allouee ! => SEGFAULT, la le
kernel verifie
si l'adresse est en dessous de 9Mo du process et si oui alloue une page a
cette adresse,
et le process continue. Sinon le pointeur contenait du caca et le process
segfault !
Je sais pas si c'est comme ca, mais ca me parait coherent, et econome !
Des remarque ?
>
> thanks ;)
>
> --
> -o) Pascal Bleser | Instead of giving Windows
> /\\ C++/UNIX Development | the "three-finger-salute",
> _\_v ATOS Payment Systems | give it the "one-finger-
> Aachen, Germany | goodbye" {jfk/propaganda}
> <pbleser@atos-group.com>--------------<guru@linuxbe.org>
>
> ---------
> Visit the Linux Supertore Online: http://www.redcorp.com !
> If you want to be deleted from the list, send a mail to
> majordomo@rtfm.be with "unsubscribe linux-team" in the body.
--
Spineux Alain
Romani ite domus.
======================================================================
Spineux Alain E-MAIL : spineux@prm.ucl.ac.be
INSTITUT STEVIN
Catholic University of Louvain FAX : 32-10-472501
PLACE DU LEVANT 2 PHONE : 32-10-472516
B-1348 LOUVAIN-LA-NEUVE (BELGIUM)
=======================================================================
---------
Visit the Linux Supertore Online: http://www.redcorp.com !
If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.