Przejdź do zawartości

Deskryptor segmentu

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez Szary (dyskusja | edycje) o 20:40, 18 sty 2005. Może się ona znacząco różnić od aktualnej wersji.

Deskryptor (ang. Descriptor) 64 bitowa struktura definiująca określony segment w pamięci. W procesorach o architekturze IA-32 dostępnych jest kilka rodzajów deskryptorów.

Deskryptor Segmentu

Podstawowym typem deskryptora w architekturze IA-32 jest Deskryptor segmentu (Segment Descriptor) umieszczony jest on w Lokalnej lub Globalnej Tablicy Deskryptorów (Global Descriptor Table - GDT, Local Descriptor Table - LDT). Przez GDT lub LDT prowadzą wszystkie odwołania do pamięci. Deskryptor segmentu określa jednoznacznie segment, jego polożenie w pamieci, rozmiar, typ, prawa dostępu do segmentu oraz inne dane potrzebne przy dostępie do segmentu w trybie chronionym pracy procesora. Z każdym deskryptorem segmentu jest związany jego selektor (a właściwie możliwych jest kilka selektorów różniacych sie prawami uprzywilejowania selektora, a mające taki sam indeks deskryptora oraz wskaznik na rodzaj tablicy GDT lub LDT).

Poniższy rysunek przedstawia budowe deskryptora segmentu:

Opis pól deskryptora:
G - ziarnistość (Granularity) określa jaka jest jednostka liczenia rozmiaru segmentu (0 - ziarnistość 1B, 1 - ziarnistość 4kB),
D/B - domyślny rozmiar operacji (0 - segmnet 16 bitowy, 1 - segmnet 32 bitowy),
AVL - Dostępność segmentu dla oprogramowania systemowego,
Limit Segmentu - określa rozmiar calego segmentu, zależny od ustawienia znacznika G, jesli G = 1, maksymalny rozmiar segmentu to 1MB, przy G = 1, rozmiar maksymalny wynosci 4GB,
P - obecność segmentu,
DPL - poziom uprzywilejowania segmentu (Descriptor Privilege Level),
S - typ deskryptora (0 - systmowy, 1 - kodu lub danych),
Typ - typ segmentu,
Baza, Adres Bazowy - adres bazowy (poczatkowy) segmentu.

Deskryptor Bramy

Zobacz tez:
Procestor Intel 386
Architekruta IA-32
Tryb chroniony pracy procesora
Przerwania w trybie chronionym