2010-11-26 5 views

Répondre

5

pas

en 32 bits Linux, tous les processus voient un espace continu de 4 Go. la plupart ne sont pas mappés sur la vraie RAM, mais sont mappés sur l'utilisation.

en 64 bits c'est similaire mais beaucoup plus grand.

+0

16TB pour 64 bits, si je ne me trompe pas. –

+0

Linux n'a pas d'espace noyau séparé (supérieur 1 ou 2Go) comme Windows? –

+0

@ LưuVĩnhPhúc oui, mais cela est mappé sur le même espace continu de 4 Go chaque processus voit. IOW: chaque processus voit un espace linéaire de 4 Go, dont une partie est réservée au noyau, et le reste est généralement libre pour ce qu'il veut. Les bibliothèques standard créent le tas sur cet espace, il n'y a donc pas besoin de "taille de tas par défaut", tout est utilisable. Initialement, il n'est pas soutenu par de la vraie RAM, mais dès que le processus touche une nouvelle adresse, le système d'exploitation est averti et mappe une page RAM là-bas. – Javier

5

ulimit -s n'est pas la "taille de pile par défaut". C'est la limite de taille de la pile. Vous pouvez également définir toutes sortes d'autres limites avec la commande ulimit, et pour chacun il y a à la fois une limite «soft» (que l'application peut remplacer si elle le souhaite) et une limite «hard» (imposée par le système d'exploitation). désactivé une fois qu'il est réglé, sauf si vous avez la racine).

+0

Édité mon message. –

1

Je ne connais aucune distribution qui définit une limite de tas par défaut. Vous pouvez vérifier en utilisant "ulimit -a", et vous ou votre administrateur sys pouvez en définir un dans /etc/security/{limits.conf,limits.d} donc vous voudrez peut-être vérifier s'il y en a un.

0

Il n'y a pas de limite, votre application peut allouer 3G vm (mémoire virtuelle) sur une machine 32 bits, mais cela ne signifie pas que l'application dispose d'une mémoire physique 3G, dépend de la politique OOM de votre noyau par le gestionnaire MOO (out-of-memory) du noyau en fonction de la rapidité/de l'utilisation de ces mémoires.

Questions connexes