Rien n'est jamais si simple ... plus
pages de mémoire sont allouées paresseusement. Un processus peut malloc() une grande quantité de mémoire et ne jamais l'utiliser. Donc, sur votre système 500MB_RAM + 500MB_SWAP, je pourrais - au moins en théorie - allouer 2 Go de mémoire sur le tas et les choses tourneront joyeusement jusqu'à ce que j'essaie d'utiliser trop de cette mémoire. (À ce stade, tout processus ne peut pas acquérir plus de pages de mémoire, mais ce n'est pas toujours le cas.)
Les processus individuels peuvent être limités à 4 gig comme limitation d'adresse matérielle sur les systèmes 32 bits. Même lorsque vous avez plus de 4 Go de RAM sur la machine et que vous utilisez cette atrocité segmentée de 36 bits de l'enfer, les processus individuels sont encore limités à seulement 4 concerts. Certains de ces 4 concerts doivent opter pour des bibliothèques partagées et du code de programme. Donc, jusqu'à 2 ou 3 Go de pile + tas comme une limitation d'adressage.
Vous pouvez insérer des fichiers dans mmap, vous donnant effectivement plus de mémoire. Il agit essentiellement comme un échange supplémentaire. C'est à dire. Plutôt que de charger les données du code binaire d'un programme dans la mémoire et de l'échanger ensuite vers le fichier d'échange, le fichier est simplement monnayé. Au besoin, les pages sont transférées dans la RAM directement à partir du fichier.
Vous pouvez obtenir des informations intéressantes avec des données fragmentées et des fichiers fragmentés. J'ai vu X-windows revendiquer une énorme utilisation de la mémoire alors qu'en fait, il n'utilisait qu'un tout petit peu.
BTW: "gratuit" pourrait vous aider. Comme pourrait "cat/proc/meminfo" ou les lignes Vm dans /proc/$ PID/statut. (Surtout VmData et VmStk.) Ou peut-être la mémoire "ps jusqu'à $ PID"
La question a été posée si le système d'exploitation et les processus pouvaient utiliser une certaine quantité de mémoire. Je pense que cette réponse est quelque peu trompeuse, car elle répond à une question différente, à savoir si "un processus particulier" peut utiliser une certaine quantité de mémoire. – vstrien
@vstrien, FINE, j'ai résolu ma question pour ceux qui ne comprennent pas * entièrement * le mot "* entièrement *" –