Jak realizowany jest przydział pamięci dla jądra?
Algorytm działania funkcji kmalloc(size, priority)
- Znajdź odpowiednią pozycję w tablicy sizes[]
- Jeżeli brak strony na liście stron: no_bucket_page
- Zmniejsz liczbę bloków na stronie, ewentualnie przejdź do następnej stronie na liście, zamarkuj blok
- zwróć adres wolnej pamięci
- no_bucket_page: zaalokuj jedną lub więcej stron z puli wolnych stron!
- Jeśli brak wolnych stron w pamięci korzystaj z kmalloc_cache. Kiedy brak pamięci podręcznej wyjdź z błędem