Nella ricerca della risposta, ho inviato la stessa domanda su Quora e Robert Love rispose:
Sto assumendo si sta chiedendo questo dal punto di vista dell'utente di un sistema, o forse qualcuno che costruisce un kernel per un particolare prodotto . Come sviluppatore del kernel, non ti interessa quale sia l'allocatore "slab" in uso; l'API è la stessa.
primo luogo, "lastra" è diventato un nome generico che si riferisce ad una strategia di allocazione memoria impiegando una cache oggetto, consentendo efficiente allocazione e deallocazione di oggetti del kernel. È stato documentato per la prima volta dall'ingegnere di Sun Jeff Bonwick 1 e implementato nel kernel Solaris 2.4 .
Linux attualmente offre tre opzioni per il suo allocatore "slab":
Slab è l'originale, basato su carta seminale di Bonwick e disponibile dal kernel Linux versione 2.2. Si tratta di un'implementazione fedele della proposta di Bonwick , aumentata dalle modifiche multiprocessore descritte nel documento di follow-up di Bonwick [2].
Slub è l'allocatore di memoria di sostituzione di nuova generazione, che ha il valore predefinito nel kernel Linux dal 2.6.23 nel kernel di Linux . Continua a impiegare il modello di base "lastra", ma corregge diverse carenze nel progetto di Slab, in particolare nei sistemi con un numero elevato di processori . Slub è più semplice di Slab.
SLOB (Simple List Of Blocks) è un allocatore di memoria ottimizzato per i sistemi integrati con una quantità di memoria molto ridotta dell'ordine di megabyte. Lo standard applica un algoritmo di primo adattamento molto semplice in un elenco di blocchi, non a differenza del vecchio allocatore di heap in stile R. K &. Eliminando quasi tutto lo dall'alloggiamento di memoria, SLOB si adatta perfettamente ai sistemi in condizioni di estrema difficoltà di memoria, ma non offre nessuno dei vantaggi descritto in 1 e può soffrire di frammentazione patologica.
Che cosa dovresti usare? Slub, a meno che non si stia creando un kernel per un dispositivo incorporato con memoria limitata. In tal caso, farei il punto di riferimento Slub rispetto a SLOB e vediamo cosa funziona meglio per il tuo carico di lavoro. Non c'è motivo di usare Slab; sarà probabilmente rimosso dalle future versioni del kernel Linux .
http://lwn.net/Articles/229984/ nel caso in cui non l'abbia visto che –
Grazie :) Ma ho letto quell'articolo.Ha dato un'idea di Slub ma alla mia domanda non è stata data una risposta completa. Ho ottenuto la risposta per questo su Quora. Ho pubblicato il link in basso. – Siddharth