2010-08-20 2 views
1

Comme le titre l'indique, comment puis-je trouver un bloc libre à allouer à l'adresse virtuelle la plus élevée en utilisant uniquement l'API POSIX?Trouver la mémoire virtuelle gratuite la plus élevée avec l'API POSIX

+0

Le but ultime de la mémoire virtuelle est que peu importe l'adresse que vous obtenez - qu'essayez-vous de faire? –

+0

Je voudrais utiliser la plage d'adresses qui est la moins susceptible d'être utilisée par la plupart des utilisateurs de mémoire virtuelle (allocateurs de mémoire dynamique et le chargeur dynamique du système d'exploitation, par exemple). Figuré c'est plus susceptible d'être l'adresse higesh, donc la question. – moatPylon

Répondre

1

Je voudrais effectuer une recherche binaire: en utilisant mmap avec MAP_FIXED, vérifiez si une page peut être mappée. Avant de tester une page, essayez msync pour vérifier si la page est déjà mappée.

+0

Utile, mais ce n'est pas efficace pour les recherches répétées. – moatPylon

Questions connexes