Ich bin neugierig auf die Ressourcenverwendung, die mit MMAP und MAP_anonymous verbunden ist ... < /p>
Angenommen, ich nenne MMAP: < /p>
mmap(NULL, 1048576 * PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0);
< /code>
Angenommen, der Rückgabewert ist eine virtuelle Adresse für 1048576 Seiten. Wenn ich als nächstes jedes Byte in jeder Seite lesen würde, wäre der Wert 0. Während der virtuelle Adressraum notwendigerweise im Voraus zugewiesen werden muss ... Ich bin weniger klar darüber, wann RAM (oder Swap Space) verbraucht wird. Es scheint möglich, dass Seiten von RAM/Swap nur (notwendigerweise) konsumiert werden, nachdem auf jede Seite ein Wert ungleich Null geschrieben wurde. (ungleich Null?) Werte werden anschließend in den zugeordneten virtuellen Adressraum geschrieben? Gibt es einen Mechanismus (z. B. das Zurücksetzen jedes Byte in einer Seite, um Null zu sein ... und/oder Anrufe zu mProtect () , madvise () usw.), um Ressourcen zu veröffentlichen, die abgebildete Bages ... bis ein (ungleich Null) Wert erneut geschrieben ist?>
Verwalten von konsumierten RAM/Swap -Ressourcen, um den anonymen Speicher zu kartieren virtueller Adressraum zugeordnet ⇐ Linux
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Stellen Sie sicher, dass Linux-Zuordnungen den 32-Bit-Adressraum heraushalten
by Anonymous » » in Linux - 0 Replies
- 5 Views
-
Last post by Anonymous
-