www.wikidata.de-de.nina.az
Als Deskriptor bezeichnet man in Intel x86 Prozessoren ab 80286 eingefuhrt 1982 eine Struktur welche ein Segment oder eine Funktion im Hauptspeicher beschreibt Ein Deskriptor hat eine Grosse von 8 Byte und beinhaltet die Grosse die Position die Zugriffsberechtigungen und Verwendung eines Segments Neben Speichersegmenten gibt es auch Systemsegmente die zum Beispiel eine Betriebssystemfunktion markieren Deskriptoren kommen ausschliesslich im Protected Mode vor und dienen beim 80286 Prozessor dazu Protected Mode fahiger Software trotz der Registerbreite von 16 Bit einen Adressraum von 24 Bit und somit bis zu 16 MiB Speicherplatz zur Verfugung zu stellen Im Real Mode werden Deskriptoren nicht verwendet Dort haben die Segmente eine konstante Grosse von 64 KiB und der maximale Adressbereich ist auf 16 Bit begrenzt womit ein maximaler Speicher von nur 1 MiB Grosse adressiert werden kann Deskriptoren werden in drei Tabellen gespeichert Die GDT Global Descriptor Table kann maximal 8192 Deskriptoren aufnehmen und ist fur alle Prozesse verfugbar Die LDT Local Descriptor Table ist eine Tabelle die es fur jeden individuellen Prozess mehrfach geben kann Jeder Prozess besitzt seine eigenen LDTs Die LDT enthalt Speichersegmente die als privat markiert sind und ausschliesslich jeweils einem Prozess zur Verfugung stehen Zur gleichen Zeit ist immer nur eine einzige LDT verfugbar Bei einem Taskwechsel auf einen anderen Prozess wird auf eine LDT des anderen Prozesses umgeschaltet Die dritte Tabelle ist die IDT Interrupt Descriptor Table Sie umfasst 256 Deskriptoren wobei jeder Deskriptor die Startadresse eines Interrupts markiert Inhaltsverzeichnis 1 Segmentdeskriptoren im 16 32 Bit Protected Mode 1 1 Deskriptor Typen 1 1 1 System Deskriptoren 1 1 2 User Deskriptoren 2 Quelle WeblinkSegmentdeskriptoren im 16 32 Bit Protected Mode Bearbeiten nbsp Abkurzung Bezeichnung BedeutungBase address Basisadresse des Segments welche aus historischen Grunden in drei Bereiche aufgeteilt und insgesamt 32 Bit breit ist Der erste Teil besteht aus dem unteren Feld Bit 16 bis 31 der zweite Teil aus dem oberen Feld Bit 0 bis 7 und der dritte Teil aus Bit 24 bis 31 des oberen Feldes G Granularitat Wenn das Bit nicht gesetzt ist 0 geht die Segmentgrosse in 1 Byte Schritten von 1 Byte bis 1 MiB Wenn das Bit gesetzt ist 1 variiert die Segmentgrosse in 4 KiB Schritten von 4 KiB bis 4 GiB D B Default Operand Size Fur Codesegmente D 1 Operanden haben per Default 32 Bit D 0 Operanden haben per Default 16 Bit Die Defaultwerte konnen durch ein Operand Size Prefix fur den nachfolgenden Maschinenbefehl auf den jeweils anderen Wert geandert werden L Long 64 bit code segment Nur IA 32e Modus In der Grafik Bit 21 des oberen Feldes grau ohne Bezeichner AVL available Dieses Bit steht dem Betriebssystem zur freien Verfugung In der Grafik Bit 20 oberes Feld mit Bezeichner A Segment Limit Segmentgrosse in Bytes G 0 oder in 4 KiB Seiten G 1 Das Segment Limit ist zweigeteilt Der erste Teil besteht aus dem unteren Feld Bit 0 bis 15 der zweite Teil aus dem oberen Feld Bit 16 bis 19 Das Segment Limit ist insgesamt 20 Bit breit P Prasent P 1 Segment ist im Speicher vorhanden P 0 Segment ist zurzeit nicht vorhanden z B ausgelagert Zugriffe auf nicht prasente Segmente losen eine Ausnahme aus die vom Betriebssystem abgefangen und dazu genutzt werden kann das fehlende Segment wieder in den Speicher zu laden In der Grafik oberes Feld Bit 15DPL Descriptor Privilege Level Spezifiziert das Privilege Level die Sicherheitsstufe des Segments In der Grafik oberes Feld Bit 13 und 14 DPL kann den Wert 0 bis 3 annehmen 0 steht fur die privilegierteste Stufe Siehe Ring CPU S System User S oberes Feld Bit 12 und Type oberes Feld Bit 8 bis 11 geben zusammen den Typ des Segments an das durch diesen Deskriptor beschrieben wird s u TypeDeskriptor Typen Bearbeiten System Deskriptoren Bearbeiten S Type Art des Deskriptors0 System 0000 reserviert0001 verfugbares 16 bit Task Status Segment TSS 0010 Local Descriptor Table0011 benutztes 16 bit Task Status Segment TSS 0100 16 bit Call Gate0101 Task Gate0110 16 bit Interrupt Gate0111 16 bit Trap Gate1000 reserviert1001 verfugbares 32 bit TSS1010 reserviert1011 benutztes 32 bit TSS1100 32 bit Call Gate1101 reserviert1110 32 bit Interrupt Gate1111 32 bit Trap GateEin Call Gate Segmentdeskriptor beschreibt einen wohldefinierte Einsprungpunkt z B fur Betriebssystemfunktionen Call Gates sind im Protected Mode fur Code mit einer niedrigeren Privilegienstufe die einzige Moglichkeit Code mit einer hoheren Privilegienstufe aufzurufen In einem Task Status Segment TSS werden bei einem Taskwechsel bei Hardware Multitasking die Inhalte aller lokalen Register und weitere Statusinformationen automatisch gesichert User Deskriptoren Bearbeiten Bei gesetztem S Bit gibt das oberste Bit des Type Feldes an ob es sich um ein Code oder Datensegment handelt Die Bedeutung der ubrigen 3 Bits ist bei Code und Datensegmenten verschieden S Type Art des Deskriptors1 User 0EWA DatensegmentE Expand DownW WritableA Accessed1CRA CodesegmentC ConformingR ReadableA AccessedBedeutung der Bits E Expand down Die Segmentbasisadresse kennzeichnet das obere Ende des Segments das Limit die Entfernung der unteren Grenze zur gegebenen Basisadresse Dies ist fur Stack Segmente sinnvoll da auf der x86 Plattform der Prozessorstack von oben nach unten befullt wird W Writable in dieses Segment darf auch geschrieben werden A Accessed Wird vom Prozessor automatisch auf 1 gesetzt wenn auf das Segment zugegriffen wurde Es kann von dem Betriebssystem wieder auf 0 gesetzt werden R Readable Codesegment kann auch als Daten ausgelesen werden Schreiben in Codesegmente ist generell nicht moglich Quelle Weblink BearbeitenIntels Dokumentation fur Systemprogrammierer englisch Abgerufen von https de wikipedia org w index php title Deskriptor Prozessor amp oldid 230011027