Deskryptor segmentu: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Matekm (dyskusja | edycje)
m Dopracować
WP:SK popr
Linia 1:
{{Dopracować|uzupełnić źródła, poprawić błędy, rozwinąć}}
'''Deskryptor segmentu''' ([[język angielski|ang.]] ''Segment descriptor'') - struktura definiująca określony obiekt w pamięci.
 
== W [[procesor]]ach o architekturze [[x86]] ==
Struktura deskryptora jest 64-bitowa i określa segment w pamięci, dostępnych jest kilka rodzajów deskryptorów. Podstawowym typem deskryptora w architekturze [[x86]] jest deskryptor segmentu (ang. ''Segment Descriptor'') umieszczony jest on w lokalnej lub globalnej [[tablica deskryptorów|tablicy deskryptorów]] (ang. ''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 położenie w pamięci, rozmiar, typ, prawa dostępu do segmentu oraz inne dane potrzebne przy dostępie do segmentu w [[tryb chroniony|trybie chronionym]] pracy [[procesor]]a [[x86]]. Z każdym deskryptorem segmentu jest związany jego [[selektor]] (a właściwie możliwych jest kilka selektorów różniących się prawami uprzywilejowania selektora, a mające taki sam indeks deskryptora oraz wskaźnik na rodzaj tablicy GDT lub LDT).
 
Linia 8:
 
Poniższy rysunek przedstawia budowę deskryptora segmentu procesorów [[x86]]:
<div style="float:center; margin-left:10px; margin-right:1px;">[[GrafikaPlik:deskryptDeskrypt.gif]]
</div>
 
Opis pól deskryptora:
* '''G''' - ziarnistość (Granularity) określa jaka jest jednostka liczenia rozmiaru segmentu (0 - ziarnistość 1B, 1 - ziarnistość 4kB). Jeśli G = 0, maksymalny rozmiar segmentu to 1MB, przy G = 1, rozmiar maksymalny wynosi 4GB
* '''D/B''' - domyślny rozmiar operacji (0 - segment 16-bitowy, 1 - segment 32-bitowy)
* '''AVL''' - bity przeznaczone do dowolnego wykorzystania przez [[system operacyjny]]
* '''Limit Segmentu''' - określa rozmiar całego segmentu w jednostkach określonych przez flagę '''G'''
* '''P''' - czy segment jest obecny pamięci operacyjnej
* '''DPL''' - poziom uprzywilejowania segmentu (Descriptor Privilege Level)
* '''S''' - typ deskryptora (0 - systemowy 1 - kodu lub danych)
* '''Typ''' - typ segmentu: dane, stos, kod programu, bramki (przerwań i procedur, ''interrupt gate'', ''call gate'')
* '''Baza, Adres Bazowy''' - adres bazowy (początkowy) segmentu
 
== Zobacz też ==
* [[x86|architektura x86]]
* [[Intel 80386|procesor Intel 386]]
* [[przerwanie|przerwania w trybie chronionym]]
* [[tryb chroniony|tryb chroniony pracy procesora]]
 
== Linki zewnętrzne ==
* [http://download.intel.com/design/PentiumII/manuals/24319202.pdf Intel Architecture Software Developer's Manual Volume 3: System Programming]
 
[[Kategoria:Architektura komputerów]]
 
[[en:Segment descriptor]]