[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.