Verwenden Solaris 10 und 11 immer noch Slab-Zuweisung für ihren Kernel-Speicherallokator?

Verwenden Solaris 10 und 11 immer noch Slab-Zuweisung für ihren Kernel-Speicherallokator?

Wenn nicht, was verwenden sie? Bitte geben Sie eine Quelle an.

Antwort1

Ein Teil des OpenSolaris 10-Quellcodes ist öffentlich verfügbar und kmemverwendet in dieser Version einen Slab-Allocator. Siehekmem.c, die Kommentare beschreiben den Allocator ziemlich detailliert.

(IllumosVerwendetder gleiche Allokator.)

Mit Blick auf dieDebuggen mit dem Kernel-SpeicherallokatorSeiten aus demHandbuch zum Oracle Solaris Modular Debuggerfür Solaris 11 (Express) gibt es keinen Grund zu der Annahme, dass sich der Allocator in dieser Version wesentlich geändert hat.

Antwort2

Solaris 10 und älter verwenden auf jeden Fall diePLATTEAllokator.

Es wird noch immer von OpenSolaris-Versionen, auf OpenIndiana/SmartOS/usw. Illumos basierenden Betriebssystemen und (aktuell) Solaris 11, d. h. auf SunOS 5.11 basierenden Betriebssystemen verwendet.

VM2, ein unveröffentlichtes Projekt, könnte es möglicherweise in einer zukünftigen Version von Solaris 11 ersetzen (oder auch nicht).

Wenn Sie überprüfen möchten, ob Slab in Ihrer Solaris-Version noch verwendet wird, können Sie diesen Befehl verwenden:

echo ::kmem-slabs | mdb -k

verwandte Informationen