Slajd PPT
1. Oblicz rozmiar minimalnego bloku, w którym mieści się żądanie
( jeśli jest zbyt duże to wyjdź z błędem )
2. Sprawdż czy w tablicy sizes[] jest strona(y) z wolnymi blokami.
A ) Jeśli są - sprawdź czy na stronie rzeczywiście są wolne bloki.
a) Jeśli nie ma - wyjdź z błędem.
Zaalokuj odpowidnią ilość stron z przestrzeni dostępnej dotychczas
dla programów użytkownika ( funkcją __get_free_pages )
a ) Jeśli się to udało - idź do 3.
b ) Jeśli się to nie udało ( brak wolnych stron w pamięci ):
Sprawdź czy tablicy KMALLOC_CACHE[] znajduje się odpowiednia
- a - Jeśli tak - usuń stronę z KMALLOC_CACHE[] i idź do 3.
- b - Jeśli nie - wyjdź z błędem
Algorytm kmalloc ( część 1 )
Poszukiwanie strony z wolnymi blokami
Parametry: size - rozmiar żądanego bloku, priority - rodzaj przydziału (parametr analogiczny do priority w __get_free_pages)