Przewodnik po plikach modułu "Pamięć"


Do tematu: Struktury danych


1. Wymiana pamięć-dysk, urządzenia wymiany

/linux/mm/swap.c - W pliku tym inicjalizowane są tymczasowo zmienne mówiące o tym, przy jakiej ilości stron należy zmieniać priorytety wymiany. Inicjalizacja ta nie jest ważna, bo przed  pierwszym użyciem są ponownie inicjalizowane w funkcji free_area_init w pliku page_alloc.c. Inicjalizowane są również parametry dotyczące wymiany. Są to: maksymalny wiek ramki (tzn. najmłodszy), o ile odmładzamy stronę przy odwołaniu do niej, o ile postarzamy stronę przy odwołaniu do niej.

/include/linux/swap.h - Plik ten zawiera definicję powyższych struktur i funkcji:
/linux/mm/swap_state.c - Plik ten zawiera następujące funkcje:
/linux/mm/swapfile.c - Plik ten zawiera następujące funkcje:
/linux/mm/vmscan.c - Plik zawiera definicje następująšcych funkcji:

2. Stronicowanie plików
/linux/mm/filemap.c - Plik ten zawiera następujące funkcje:
/linux/mm/mmap.c - Plik ten zawiera następujące funkcje:

3. Pamięć dzielona
/linux/ipc/shm.c - Plik ten zawiera dwie funkcje:
/include/ipc.h -
/include/shm.h - Plik ten zawiera następująšce struktury:

4. Segmentacja

5. Algorytm fork
/linux/kernel/fork.c -Plik ten zawiera następująšce funkcje:

6. Zarząšdzanie ramkami i stronicowanie
/linux/mm/memory.c - Plik zawiera funkcje wykonujšące operacje na ramkach.Najważniejsze z nich to:
/include/asm-i386/page.h - W pliku tym zdefiniowany jest rozmiar ramki (strony).Zawiera on stałe, makra odwołująšce się do elementów tablic.
/include/asm-i386/pgtable.h - Plik ten zawiera funkcje obsługująšce pamięć podręcznąš, alokujšące struktury i kontrolująšce ich poprawność.
/linux/mm/page_alloc.c - Plik ten zawiera funkcje i struktury służąšce do przechowywania wolnych ramek:
/include/linux/mm.h - Plik zawierająšcy definicje struktur:
/include/linux/swapctl.h - Plik ten zawiera funkcje służšące do postarzania i odmładzania ramek.Są to następujące funkcje:

7. Błędy braku i ochrony strony
/linux/arch/i386/mm/fault.c - Plik ten zawiera funkcję:
/linux/mm/memory.c - Plik ten zawiera następująšce funkcje:

8. Pamięć dla jądra
/linux/mm/kmalloc.c - Plik ten zawiera implementację mechanizmu przydziału pamięci dla jąšdra. Zawiera on dwie funkcje oraz definicję tablicy, na której te funkcje operujšą:

Przygotował na podstawie skomentowanych źŸródeł: Jacek Korkuć