Tablica Deskryptorów w Architekturze Komputerów x86
Tablica deskryptorów jest kluczowym elementem w trybie chronionym procesora x86. Znajduje się w dedykowanym segmencie i zawiera deskryptory wszystkich segmentów w pamięci operacyjnej. W systemach wielozadaniowych wyróżniamy trzy główne typy tablic:
- Globalna Tablica Deskryptorów (GDT)
- Tablica Przerwań (IDT)
- Lokalna Tablica Deskryptorów (LDT)
Tablice lokalne są przypisane do poszczególnych procesów, podczas gdy nowoczesne systemy operacyjne rzadko korzystają z segmentacji. Typowa tablica deskryptorów ma rozmiar 64 kB i może pomieścić 8192 wpisy (213 8-bajtowych).
Maksymalny Rozmiar Pamięci Wirtualnej
Rozmiar tablicy deskryptorów wpływa na maksymalny rozmiar pamięci wirtualnej, który może być zaadresowany przez pojedynczy proces:
- Dla procesorów 80386, 80486 i Pentium: 64 TB (246 B)
- Dla procesora 80286: 1 GB (230 B)
W przypadku 80386, obliczenia uwzględniają jeden bit dla tablicy GDT/LDT, 13 bitów dla numeru segmentu oraz 32 bity dla wielkości segmentu przy granulacji 4 kB. Natomiast w procesorze 80286, 16 bitów definiuje wielkość segmentu.
Rejestry Powiązane z Tablicami Deskryptorów
Tablice LDT i GDT są powiązane z następującymi rejestrami:
- GDTR – 48-bitowy rejestr zawierający adres (32 bity) oraz rozmiar tablicy GDT (16 bitów). Musi być zainicjalizowany przy przełączaniu procesora w tryb chroniony.
- LDTR – 16-bitowy rejestr przechowujący selektor segmentu z tablicą LDT.
Tablica IDT ma podobną strukturę do GDT, jednak zawiera deskryptory segmentów dla procedur obsługi przerwań.
Przypisy
Bibliografia
Kategoria: Architektura komputerów