Przez ramkę rozumiem obszar pamięci fizycznej, wielkości strony.
Przez stronę rozumiem
obszar pamięci wirtualnej procesu.
Oba pojęcia
są powszechnie używane w tym znaczeniu.
Przez blok będę rozumiał spójny fragment pamięci fizycznej. Pojęcie to zostało wprowadzone jedynie na potrzeby tej prezentacji.
Wydawałoby się, że w przypadku linuksa fragmentacja pamięci fizycznej nie jest problemem. Mając do dyspozycji mechanizm stronnicowania można z dowolnie rozmieszczonych ramek utworzyć spójny obszar pamięci dla procesu. Niestety są sytuacje, w których trzeba zaalokować blok większy niż jedna ramka. Transmisja DMA pomija mechanizm stronnicowanie (co nie jest dziwne - stronnicowanie jest zaimplementowane w procesorze, a istotą DMA jest pomijanie procesora przy dostępie do pamięci). Aby przesyłać na raz duże ilości danych przez DMA (np. w czasie odczytu z dysku) trzeba zarezerwować odpowiednio duży blok. Również jądro może potrzebować większych bloków. Oczywiście jądro korzysta ze stronnicowania, jednak ustawianie ramek w spójne obszary pamięci wirtualnej wymaga zmiany tablicy stron jądra, co może zająć trochę czasu.