Beskrivningstabeller

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 7 november 2018; kontroller kräver 4 redigeringar .

Deskriptortabeller  är tjänstedatastrukturer som innehåller segmentdeskriptorer .

Det finns tre typer av deskriptortabeller i x86-arkitekturen :

Global deskriptortabell

Eftersom en deskriptor upptar 8 byte, och gränsen i GDTR-registret  är två byte och lagrar storleken på tabellen minus en (maxvärdet för gränsen är 65535), och 8192 x 8 = 65536.

LDT- och uppgiftssegmentbeskrivningar ( TSS ) finns bara här.

En egenskap hos GDT är att den inte tillåter åtkomst till den första (med en nollförskjutning i förhållande till början av tabellen) deskriptorn . Åtkomst till den ger ett #GP- undantag , vilket förhindrar minnesåtkomst med hjälp av ett olastat segmentregister.

Lokal deskriptortabell

Till skillnad från GDT kan det finnas många LDT (beroende på antalet uppgifter (trådar), men inte nödvändigtvis). Varje uppgift kan ha sin egen. Platsen för den aktuella uppgiftstabellen indikeras av LDTR- registret .

Storleken och platsen för LDT i linjärt minne bestäms av LDT- deskriptorn för GDT (men detta betyder inte att storleken på LDT kan vara större än 65536 byte ).

Den första LDT- deskriptorn (#0) kan användas.

Avbrottsbeskrivningstabell

Avbrottstabellen är global. Platsen i det fysiska minnet bestäms av IDTR-registret .

När ett avbrott inträffar (externt, hårdvara eller orsakat av Int- instruktionen ):

Se även

Länkar