la compréhension pmap de sortie

J'essayais de voir la carte mémoire d'un processus sous Linux x86-64) à l'aide de pmap -x de commande. Je suis confus en regardant la sortie de la pmap. En particulier pour les entrées de mappage des bibliothèques dynamiques. Il y a plusieurs entrées pour eux (en fait 4 pour la plupart tous d'entre eux, certains ayant 3 entrées). Voici un exemple

  Address           Kbytes   RSS   Dirty Mode   Mapping

00000036ca200000      88      64       0 r-x--  libpthread-2.5.so
00000036ca216000    2044       0       0 -----  libpthread-2.5.so
00000036ca415000       4       4       4 r----  libpthread-2.5.so
00000036ca416000       4       4       4 rw---  libpthread-2.5.so

La deuxième rangée pour chaque bibliothèque a toujours une taille de 2 mo alors qu'il n'a pas de page de l'autorisation. Dans toutes les bibliothèques il semble que ses flux RSS est TOUJOURS à zéro. Deux dernières lignes ont la même taille (ce qui est la base de la taille de page) et même des autorisations (une poignée bibliothèques n'ont pas de rw mapping).

Quelqu'un a une explication pour cela? Je suis une sorte de sentiment que peut-être le mapping avec la protection en lecture seule est effectué par le loader pour lire les métadonnées de la bibliothèque tandis que la partie avec le fichier exécutable de l'autorisation en fait le code de la bibliothèque. J'ai peut-être mal.

Mais je n'ai aucune idée à ce sujet sur la ligne du milieu. Pas de permission et aucune usages? Quelqu'un a des paroles de sagesse ici?

J'ai aussi vu quelques pages rapporté que le mémoire anonyme et ne pas avoir de mode ensemble de bits. Que faire de ces représenter?

InformationsquelleAutor Arka | 2012-03-22