2009-05-08 7 views
1

Lorsque vous utilisez mmap pour allouer des mem anonymes, nous définissons souvent l'adresse de départ sur 0/NULL afin que mmap trouve l'adresse de départ par lui-même. Et pour obtenir l'adresse de départ, il faudra penser à tout l'espace mémoire virtuel pour trouver un trou qui pourrait mettre le mandrin de mem à allouer. Je suppose que cela est calculé en tant que utilisateur cpu au lieu de sys cpu. Si la mémoire virtuelle est fragmentée, alors le temps de trouver l'adresse de départ utilisera plus de CPU utilisateur, est-ce que ma compréhension correcteva mmap utiliser l'utilisateur cpu au lieu de sys cpu entier? (solaris)

Répondre

6

Je ne pense pas que ce soit correct. Le temps passé dans l'appel système mmap est compté comme temps système. Le temps de trouver une fenêtre suffisamment grande d'espace d'adressage et de configurer les mappages devrait cependant être trivial.

Questions connexes