2010-05-09 4 views
0

Si je vois la sortie de cat/proc // smaps, je trouve qu'il y a des régions de mémoire avec lesquelles aucune autorisation de lecture/écriture/exécution n'a été associée. De plus, ces régions sont mappées sur le numéro d'inode 0.Les régions de mémoire affichées dans la sortie SMAPS sans autorisation

Je voulais savoir comment une région se retrouve dans un tel état? Est-ce une sorte de fuite de mémoire?

Ces régions peuvent-elles être réutilisées par le processus?

Répondre

0

Ils ne sont pas des fuites. Ils sont créés en appelant le mmap() avec les drapeaux MAP_ANONYMOUS et PROT_NONE. Le processus peut toujours utiliser cet espace d'adressage virtuel: il peut démapper les régions avec munmap() ou modifier les protections avec mprotect().

De telles régions sont généralement utilisées pour configurer pages de garde, qui sont destinées à déclencher un signal lorsqu'une structure de données croissante croît au-delà de sa limite actuelle.

+0

Merci. Juste une chose, pouvez-vous indiquer une source (livre/ebook/site web) où je peux apprendre des choses spécifiques? Ma devise principale est de ne pas vous énerver encore et encore et apprendre par moi-même. – vaibhav3002