Asembler x86/Zaawansowana architektura: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Nie podano opisu zmian |
|||
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:
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":
|