Next: Zarządzanie nieciągłymi obszarami pamięci
Up: Alokator płytowy
Previous: Struktury danych
  Spis rzeczy
Ze względu na dużą ilość szczegółów tym razem pominę głębszą anlizę budowy
funkcji. Ich tekst, choć długi, jest na szczęście dość porządnie napisany, a
przy tym w miarę autonomiczny co upraszcza analizę - chętnych zachęcam do lektury pliku
mm/slab.c, która mam nadzieję, że po przeczytaniu tego dokumentu
będzie znacznie ułatwiona. Tutaj przytoczę jedynie najistotniejsze funkcje:
- void* kmalloc (size_t size, int flags)
Podstawowy sposób przydziału pamięci w jądrze - przydziela obszar pamięci o
rozmiarze size. Znaczenie parametru flags tak jak przy
wywołaniu __get_free_pages.
- void kfree (const void *objp)
Zwolnienie pamięci przydzielonej uprzednio przez wywołanie kmalloc.
- void* kmem_cache_alloc (kmem_cache_t *cachep, int flags)
Przydział obiektu z danej pamięci podręcznej.
- kmem_cache_estimate
Oblicza ilość obiektów jaka zmieści się w płycie oraz wolną przestrzeń
w płycie (wykorzystywaną na kolorowanie).
- kmem_cache_create
Utworzenie nowej pamięci podręcznej szczególnej na nowy typ obiektów.
- kmem_slab_destroy
Usunięcie wszystkich obiektów w płycie i samej płyty.
- kmem_cache_shrink
Zwolnienie tak dużej ilości płyt jak to możliwe z pewnej pamięci podręcznej.
- kmem_cache_grow
Utworzenie jednej nowej płyty w pamięci podręcznej.
- kmem_cache_reap
Odzyskanie nieużywanej pamięci z pamięci podręcznych. Wołane przez
do_try_to_free_pages używane przez kswapd.
Next: Zarządzanie nieciągłymi obszarami pamięci
Up: Alokator płytowy
Previous: Struktury danych
  Spis rzeczy
Adam Koprowski
2001-12-18