Asembler x86/Zaawansowana architektura: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Doles (dyskusja | edycje)
Nie podano opisu zmian
Doles (dyskusja | edycje)
Linia 52:
Samą translację podzielono na dwa etapy w celu oszczędzenia pamięci RAM. Najpierw jest translacja z użyciem Katalogu Stron, następnie przy użyciu Tablicy Stron. Każdy uruchomiony proces ma przydzielony odpowiedni wpis w Katalogu ale nie oznacza to że każdy proces musi go mieć od razu. Dany proces może zgłosić żądanie do systemu operacyjnego o przeprowadzenie tej operacji. Zjawosko to nazywa się ''' stronicowaniem na żądanie'''. Przedstwię teraz translację adresu liniowego.
W rejestrze CR3 umieszczony jest surowy, fizyczny adres Katalogu Stron (Page Directory). W Katalogu Stron znajduje się adres liniowy właściwej Tablicy Stron dla danego procesu. Z kolei Tablica Stron przechowuje informację o adresie fizycznym początku danej ramki strony. Ostatnie pole zwane Przesunięciem (Offset) determinuje jak o ile należy się przemieścić wewnątrz strony ( innymi słowy ile należy się przemieścić od adresu ramki strony). Ponieważ to pole ma 12 bitów zatem pojedyńcza strona może mieć rozmiar właśnie 4 KB.
Zarówno pola Katalogu Stron jak i Tablicy Stron mają po 10 bitów, więc obie te lokacje mogą mieć maksymalnie 1024 pól. W ten sposób Katalog Stron może zaadresować tyle komórek pamięci:
 
:<MATHmath>{ 1024 x\times 1024 x\times 4096 = 2^({10)} x\times 2^({10)} x\times 2^({22)} = 2^{(10 + 10 + 22)} = 2^{32} = 4\quad mld coś tam}</MATHmath> komórek pamięci.
 
{{TODO|Kategorycznie poprawić ten szablon}}
Zatem dokładnie tyle ile mogą mieć pamięci RAM komputery z serii 80386 i nowsze ( 4 GB).
Poszczególne wejścia z Katalogu Stron i Tablicy Stron mają taką samą strukturę. Każe pole ma ma poniższe swoje własne "pole":