Spis treści
Pamięć w systemie Linux
Dawno, dawno temu...
Pamięć?! - Co to?
Segmentacja - co i po co
Ale skąd bierzemy wolne ramki ?
Organizacja pamięci procesu
Operacje na segmentach
Algorytm widelca
Algorytm wyjścia
Algorytm egzekucji
Jak to było kiedyś ...
Jak to jest w Linuxie ..
Co się dzieje na początku ?
Na czy polega specyfika sposobu przydzielania pamięci dla jądra ?
Jednorazowe żądanie jądra nie może przekroczyć rozmiaru 2^5 = 32 stron.Możliwe rozmiary bloków dla i386 to:
W jak sposób identyfikowany jest blok ?
block_header
Co się dzieje kiedy żądanie jądra jest większe niż rozmiar strony?
page_descriptor
Jak pamiętane są wolne bloki?
size_descriptor
sizes[]
Co się dzieje kiedy w tablicy sizes[] nie ma bloku o odpowiedniej wielkości aby obsłużyć żądanie jądra?
Co się dzieje kiedy nie ma wolnej ramki?
Jak zrealizowany jest mechanizm rezerwacji stron?
Jak realizowany jest przydział pamięci dla jądra?
Jak realizowane jest zwolnienie pamięci
Informacje ogólne
Tablice stron
Implementacja operacji na pamięci
Zarządzanie ramkami
Wymiana stron z pamięci na dysk
Błędy braku i ochrony strony
Pamięć dzielona - nie mylić z IPC
Co to jest stronicowanie ?
Istotne cechy w Linuxie
Struktury danych
Najważniejsze pola strukturyvm_area_struct
I co dalej?
do_mmap()
do_mmap() -cd.
do_munmap()
Struktura dla vm_ops(vm_operation_struct)
Co to jest cache_page?
filemap_nopage()
filemap_nopage() - cd.
filemap_swapout()
filemap_sync()
shrink_mmap
Wspomaganie sprzętowe.
Rejestry i struktury systemowe
Faults, traps, interrupts, aborts, exceptions...
Literatura.
|
Autor: Paweł Białka, Rafał Bieliński, Konrad Bojar, Tomek Chudzik, Paweł Weżgowiec
|