TAFEL-Speicher-management
Ich bin verwirrt, als die Strukturierung der PLATTE Speicher-management-Mechanismus.
Ich erhalten, dass es mehrere 'caches', die spezifisch auf die am häufigsten genutzten Daten-Objekte, aber warum tut jeder cache enthält mehrere 'Platten'?
Was unterscheidet jede Platte in einem cache? Warum nicht einfach den cache mit den Daten gefüllt Objekte selbst? Warum braucht es diese zusätzliche Schicht?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der slab allocator ist eine Abstraktionsschicht, die es Ihnen erleichtern die Zuteilung von zahlreichen Objekten des gleichen Typs.
Die Schnittstelle bietet die Funktion
Diese Funktion erstellt eine neue slab-allocator, der wird in der Lage sein, für die Zuweisung von
size
-Byte lange Gegenstände. Wenn die Einrichtung erfolgreich ist, bekommen Sie Ihre Zeiger auf den zugehörigenstruct kmem_cache
. Diese Strukturen enthält Informationen über die Platten, die es verwaltet.Als es ist implizit auf die Wikipedia-Beschreibung, der Zweck solch eine zusätzliche Schicht ist die Vermeidung der Fragmentierung des Speichers Probleme, die passieren könnte, wenn die Speicher-Zuweisung gemacht wurde, in eine einfache und intuitive Art und Weise. So zu tun, es führt den Begriff der Platte durch die folgende Datenstruktur :
So, die
kmem_cache
- Objekt enthält 3 Listen seiner Platten, gesammelt in 3 Geschmacksrichtungen :Beim anfordern eines Objekts durch den slab-allocator, wird es versuchen, bekommen Sie die gewünschten Speicherbereich innerhalb einer partial-slab, wenn es nicht, wird es bekommen, eine leere Platte.
Wenn Sie gerne sammeln, um mehr Informationen über diese, sollten Sie einen Blick auf Robert Liebe Linux-Kernel-Entwicklung
Bin ich vielleicht zu spät für diese Antwort, aber das kann anderen zu helfen, wie gut.
Wie sehe ich aus Understanding Linux Virtual Memory Manager, dass Platten haben drei große Vorteile.