next up previous contents
Next: Opis Up: Alokator p³ytowy Previous: Problem   Spis rzeczy

Rozwi±zanie

Dlatego w³a¶nie j±dro do alokacji pamiêci dla swoich potrzeb u¿ywa Alokatora p³ytowego (ang. Slab Allocator). Algorytm ten orginalnie zastosowany by³ dla systemu Sun Microsystems Solaris 2.4.

Idea polega na tym, by stworzyæ pewn± ilo¶æ pamiêci podrêcznych (ang. cache; oczywi¶cie nie ma to nic wspólnego z pamiêci± podrêczn± procesora!), ka¿da przechowuj±ca obiekty o ustalonym rozmiarze. Ka¿da pamiêæ podrêczna mo¿e przechowywaæ wiele p³yt (ang. slab) o ustalonym rozmiarze, a ka¿da p³yta z kolei przechowuje w sobie wiele obiektów. Schematycznie wygl±da to tak:

\includegraphics{pic/figSlab0.eps}
Hierarchia elementów alokatora p³ytowego.

Zaalokowanie nowego obiektu polega na wziêciu obiektu z jakiej¶ p³yty, wzglêdnie utworzeniu nowej. Zwolnienie obiektu natomiast ogranicza siê do odnotowania, ¿e mo¿e on zostaæ ponownie u¿yty, natomiast nawet puste p³yty nie s± zwalniane dopóki nie zajdzie taka konieczno¶æ.



Adam Koprowski 2001-12-18