[ Pobierz całość w formacie PDF ]
.in.i-węzeł odpowiadającegourządzenia blokowego oraz mapę bajtową tego urządzenia.W jednym bajciemapy pamięta się licznik odwołań do odpowiedniej ramki urządzenia.Gdyten licznik spada do zera, można zwolnić ramkę pamięci pomocniczej do dalszegowykorzystania.Przy przydzielaniu ramek urządzenia, system stara się przydzielać jepakietami.Pakiety nie muszą być spójne na dysku, ale kolejne ramki w pakieciepowinny być na dysku uporządkowane rosnąco.Dopiero po przydzieleniu całegopakietu ramek poszukiwanie wolnych ramek urządzenia rozpoczyna się od początkuurządzenia blokowego.To ma na celu zmniejszenie średniego czasu dostępu(dyskowego) do ramki pamięci pomocniczej.(Domyślna wielkość pakietu to32).Logiczne urządzenia wymiany są powiązane w listę priorytetową.Upraszczając,przy poszukiwaniu wolnej ramki pamięci pomocniczej najpierw są przeszukiwaneurządzenia o najniższym priorytecie.Przy kopiowaniu strony z pamięci głównej do pomocniczej, najpierw znajdowanajest wolna ramka na ktorymś urządzeniu wymiany, a nastepnie przy pomocyfunkcji rw_swap_page strona jest kopiowana na tę ramkę. BibliografiaDave Rusling: TheLinux Kernel rozdział 3 - przystępny opis działania mechanizmów zarządzaniapamięcią systemu Linux.L.Banachowski, K.Diks, W.Rytter: Algorytmy i struktury danych - opisdziałania drzew AVLPliki źródłowe jądra Linuxa (wersja 2.32):mm/vmscan.c:demon kswapd, algorytm wyboru strony do usunięcia, usuwanie pojedynczejstrony.mm/swapfile.c:logiczne urządzenia wymiany.mm/mmap.c:m.in.implementacja drzew AVL.mm/swap.c:inicjalizacja kluczowych parametrów dzialania systemu wymiany.mm/swap_state.c:operacje na tablicy swap_cache./include/linux/swap.h:deklaracje najważniejszych funkcji związanych z wymianą, a także definicjeniektórych operacji na tablicy swap_cache./include/linux/swapctl.h:obsługa postarzania stronAutor: Bartosz Klin
[ Pobierz całość w formacie PDF ]