Betriebssysteme (BS) Überblick: Einordnung dieser VL. VL 6 IA-32: Das Programmiermodell der Intel-Architektur. Historie der Intel x86-prozessoren

Ähnliche Dokumente
Betriebssysteme (BS) Überblick: Einordnung dieser VL. VL 6 IA-32: Das Programmiermodell der Intel-Architektur. Historie der Intel x86-prozessoren

Betriebssysteme (BS)

Betriebssystembau (BSB)

Betriebssystembau (BSB)

Betriebssysteme (BS)

Betriebssysteme (BS)

Betriebssysteme (BS)

Betriebssystembau (BSB)

Betriebssysteme (BS) IA-32. Überblick. das Programmiermodell der Intel Architektur. Historie der Intel x86 Prozessoren. 8086: Programmiermodell

Betriebssysteme (BS)

Betriebssystembau (BSB)

Betriebssysteme (BS) IA-32. Überblick: Vorlesungen. das Programmiermodell der Intel-Architektur. Agenda. Historie der Intel x86-prozessoren

Betriebssystembau (BSB)

H. Intel x86 CPU. Höhere Informatik. Systemprogrammierung: - Betriebssystemkonzepte, Ein- & Ausgabe

Speicherverwaltung. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Assembler. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Übung zu Betriebssysteme

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Kompatibilitätsmodi: Real Mode: - Segmentregister*16+Offset => Adresse - Keine Segmentdeskriptoren, kein Paging, - ~ 1 MB Adressraum.

Der Intel 8086 Reto Gurtner 2005

Intel x86 Bootstrapping

Assembler - Adressierungsarten

Proseminar Konzepte von Betriebssystem-Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Von Christian Hubert

Zwei Möglichkeiten die TLB zu aktualisieren

5.6 Segmentierter virtueller Speicher

15. Hauptspeicher-Adressierung

Übung zu Betriebssysteme

ERA-Zentralübung Maschinenprogrammierung

Prof. Dr. Sharam Gharaei. Inhaltsverzeichnis. 1 Einleitung 1. 2 Grundlage der Realisierung 2. 3 Die Realisierung 3. Literaturverzeichnis 7

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10

x86-assemblerprogrammierung

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13.

Wie schreibt man ein Betriebssystem?

Betriebssystembau (BSB)

Maschinensprache. 2.5 x86 Speicherzugriff. Universität Mannheim

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

x86-assemblerprogrammierung

Übung zu Betriebssystembau (Ü BS)

ERA-Zentralübung Maschinenprogrammierung

i386 Interrupt-Deskriptortabelle (IDT)

Aufgabe 1 Entwicklung einer Virtuellen Maschine

Übung zu Betriebssysteme

Virtueller Speicher und Memory Management

Betriebssystembau (BSB)

Wie groß ist die Page Table?

Abbilden von virtuellen auf physikalische Adressen

7. Speicherverwaltung

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Hinweise 80x86-Architektur

Teil 1: Prozessorstrukturen

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Rechnernetze und Organisation

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

Einschub: HW-Zugriff aus dem Userspace

Echtzeitbetriebssysteme

Tutorium Rechnerorganisation

12. Sicherheit. A, B3, B2, B1, C2, C1, D sicher unsicher. Betriebssysteme, Sommer 2005, Verteilte Systeme, Universität Ulm, M.

Das Assembler-Buch. Trutz Eyke Podschun. Grundlagen und Hochsprachenoptimierung. 4., aktualisierte Auflage ADDISON-WESLEY

Teil 2: Speicherstrukturen

Das Paging: Stellen wir uns eine Zahlenmenge vor mit 12 Zahlen und zwar von 0 bis 11.

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09

Echtzeit-Multitasking

Aufgabe 2 - Erweiterung um PIC und Interrupts

Klausur Mikroprozessortechnik

Echtzeit-Multitasking

Betriebssystemtechnik

Pentium. Die Intel-Pentium CPU. AK Pentium. Packaging. Pentium Busse. RISC oder CISC?

Übung zu Betriebssystemtechnik

Mikrorechentechnik 1. Befehlssatzarchitektur. Professur für Prozessleittechnik Wintersemester 2011/2012

6. Intel IA-32 Prozessoren Aufbau und Adressierungsarten

RO-Tutorien 15 und 16

Betriebssystembau (BSB)

Wichtige Rechnerarchitekturen

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Betriebssystembau (BSB)

Einführung in die technische Informatik

moderne Prozessoren Jan Krüger


Betriebssysteme Sommersemester Betriebssysteme. 5. Kapitel. Adressumsetzung. Dr. Peter Tröger / Prof. M. Werner. Professur Betriebssysteme

Das Assembler-Buch. Trutz Eyke Podschun. Grundlagen, Einführung und Hochsprachenoptimierung

Pru fungsprotokoll. Prüfer: Dr. Lenhardt Beisitzer:? Datum der Prüfung: Dauer: 25 Minuten


2. Aufgabenblatt Musterlösung

Just-In-Time-Compiler (2)

Betriebssystembau (BSB)

Teil 1: Prozessorstrukturen

Assembler - Variablen

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1

Rechnerorganisation. IKS 2016 H.-D. Wuttke, K. Henke

Aufgabe 2 - Erweiterung um PIC und Interrupts

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Transkript:

Betriebssysteme (BS) Überblick: dieser VL VL 6 IA-32: Das Programmiermodell der Intel-Architektur Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen Nürnberg Gerätezugriff (Treiber) Anwendung(en) Hardware Prozessverwaltung Unterbrechungssynchronisation Unterbrechungsbehandlung Interprozesskommunikation Kontrollflussabstraktion Betriebssystementwicklung WS 14 11. November 214 https://www4.cs.fau.de/lehre/ws14/v_bs Agenda dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 2 der Intel x86-prozessoren Urvater: Der 886 1978: 886 der Urvater des PC Prozessors 1982: 8286 Einführung des Protected Mode segmentbasierter Speicherschutz 1985: 8386 erster IA-32 Prozessor seitenbasierter virtueller Speicher Protected Mode 1989: 8486 integrierte FPU, RISC Ansätze 1993: Pentium P5-Architektur superskalar, 64-Bit bus SMM, MMX, APIC, Dualprozessor-fähig dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 3 dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 4

der Intel x86-prozessoren (Forts.) 1995: Pentium Pro P6-Architektur 36-Bit Adressbus (PAE) Level 2 Cache "on chip", RISC-artige Mikroinstruktionen 1997: Pentium II Pentium Pro + MMX Level 2 Cache wieder extern, dafür bessere 16-Bit Performance 1999: Pentium III E, Pentium M (23) 2: P4 Netburst-Architektur E2, optimiert für hohe Taktzahlen (angedacht bis zu 1 GHz) 24: P4 Prescott Erweiterte Netburst Architektur Hyperthreading, Vanderpool, EM64T, 31-stufige Pipeline! der Intel x86-prozessoren (Forts.) 25: Core Ende der Netburst Architektur geringerer Takt, weniger Strom, aber bessere Performance! Architektur basiert auf P6-Architektur, kein Hyperthreading 26: Core 2 Dual Core, Quad Core, 64 Bit 28: Atom extrem stromsparend Architektur (wieder) CISC-lastiger, Ähnlichkeiten mit 486/Pentium 29: Core i7 Nehalem-Architektur Sandy-Bridge-Architektur (211) Haswell-Architektur (213) Hyperthreading, Octa Core, Quick Path Interconnect Power Control Unit (PCU) passt Takt der TDP an 212: Xeon Phi Larrabee-Architektur P54C Manycore (62 cores), SIMD Instruktionen dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 5 Agenda Urvater: Der 886 Programmiermodell Speichermodell dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 6 886: Programmiermodell 16-Bit Architektur, little-endian 2-Bit Adressbus, d.h. maximal 1 MiB Hauptspeicher wenige Register (jedenfalls aus heutiger Sicht) 123 Befehle kein orthogonaler Befehlssatz Befehlslängen von 1 bis 4 Byte segmentierter Speicher noch immer aktuell obwohl von 1978 noch heute von jeder IA-32 CPU unterstützt Real Mode, Virtual 886 Mode Aufwärtskompatibilität wird bei Intel groß geschrieben dl Betriebssysteme (VL 6 WS 14) 6 IA-32 Urvater: Der 886 6 7 dl Betriebssysteme (VL 6 WS 14) 6 IA-32 Urvater: Der 886 6 8

886: Registersatz Befehls- und Stapelzeiger IP SP Flag Register FLAG 886: Registersatz Befehls- und Stapelzeiger IP SP AX: Flag Accumulator Register Register arithmetisch-logische Operationen I/O FLAG kürzester Maschinencode BX: Base Address Register Vielzweckregister AH AL BH BL CH CL DH DL SI DI BP Segmentregister CS ES Stack Data Extra Vielzweckregister AH AL BH BL CH CL DH DL SI DI BP CX: Count Register für LOOP Segmentregister Befehl für String Operationen mit REP für Bit Shift und CS Rotate Stack DX: Data Register Data DX:AX sind 32 Bit für MUL/DIV Portnummer für ES IN und OUTExtra SI, DI: Index Register für Array-Zugriffe (Displacement) BP: Base Pointer Jedes Vielzweckregister erfüllt seinen speziellen Zweck dl Betriebssysteme (VL 6 WS 14) 6 IA-32 Urvater: Der 886 6 9 886: Segmentierter Speicher logische Adressen bestehen beim 886 aus Segmentselektor (i.d.r. der Inhalt eines Segmentregisters) Offset (i.d.r. aus einem Vielzweckregister oder dem Befehl) Berechnung der physikalischen Adresse: dl Betriebssysteme (VL 6 WS 14) 6 IA-32 Urvater: Der 886 6 1 886: Segmentierter Speicher logische Adressen bestehen beim 886 aus Segmentselektor (i.d.r. der Inhalt eines Segmentregisters) Offset (i.d.r. aus einem Vielzweckregister oder dem Befehl) Berechnung der physikalischen Adresse: Segmentselektor + Offset 19 physikalische Adresse 64K ought to be enough for anybody + Offset Segmentselektor angeblich ein Zitat von Bill Gates, 1981 19 physikalische Adresse die 16 Bit Konkurrenz konnte i.d.r. nur 64KB adressieren die 16 Bit Konkurrenz konnte i.d.r. nur 64KB adressieren dl Betriebssysteme (VL 6 WS 14) 6 IA-32 Urvater: Der 886 6 11 dl Betriebssysteme (VL 6 WS 14) 6 IA-32 Urvater: Der 886 6 12

886: Speichermodelle Programme können Adressen unterschiedlich bilden. Das Ergebnis waren unterschiedliche Speichermodelle: Tiny -, - und Stacksegment sind identisch: 64K insgesamt Small Trennung des s von und Stack: 64K + 64K Medium 32(2) Bit Zeiger für, - und Stapelseg. aber fest (64K) Compact Festes Segment (64K), 32(2) Bit Zeiger für und Stack Large far Zeiger für alles: 1MB komplett nutzbar Huge wie Large, aber mit normalisierten Zeigern dl Betriebssysteme (VL 6 WS 14) 6 IA-32 Urvater: Der 886 6 13 Agenda Urvater: Der 886 Erweiterungen Relikte: Das A2-Gate 886: Fazit Urvater der PC-Prozessoren bildete den Kern der ersten PCs noch heute sind IA32-Prozessoren kompatibel Segmentregister brachten Vorteile trotz 16-Bit-Architektur 1 MB Speicher Trennung von logischen Modulen im Hauptspeicher Programm- und Übersetzerentwicklung ist aber vergleichsweise schwierig verschiedene Speichermodelle nicht orthogonaler Befehlssatz dl Betriebssysteme (VL 6 WS 14) 6 IA-32 Urvater: Der 886 6 14 IA-32 die 32 Bit Intel Architektur die erste IA-32 CPU war der 8386 wobei der Begriff IA-32 erst sehr viel später eingeführt wurde 32 Bit Technologie: Register, - und Adressbus ab Pentium Pro: 64 Bit und 36 Bit Adressbus zusätzliche Register komplexe Schutz- und unterstützung Protected Mode ursprünglich schon mit dem 8286 (16-Bit) eingeführt Kompatibilität mit älteren Betriebssystemen durch den Real Mode mit älteren Anwendungen durch den Virtual 886 Mode segmentbasiertes Programmiermodell seitenbasierte MMU dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 16

8386: Registersatz (Erweiterungen) erweiterte Register heißen aus Kompatibilitätsgründen E... Befehls- und Stapelzeiger 31 16 EIP IP ESP SP Vielzweckregister 31 16 EAX AH AL EBX BH BL ECX CH CL EDX DH DL ESI SI EDI DI EBP BP Flag Register 31 16 EFLAG FLAG Segmentregister CS ES FS GS Stack Data Extra Extra Extra Erweiterung zum 886 8386: Registersatz (neue Register) Speicherverwaltungsregister 31 19 TR LDTR IDTR GDTR T-Sel. T-Basisadresse LDT-Sel. LDT-Basisadresse IDT-Basisadresse GDT-Basisadresse T-Limit LDT-Limit IDT-Limit GDT-Limit Steuerregister 31 16 CR3 CR2 CR1 CR Testregister 31 16 TR7 TR6 Debugregister 31 16 Erläuterungen folgen... dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 17 IA-32: Adressierungsarten Effektive Adressen (EA) werden nach einem einfachen Schema gebildet alle Vielzweckregister können dabei gleichwertig verwendet werden EA = Basis-Reg. + (Index-Reg. * Scale) + Displacement EAX EBX ECX EDX ESP EBP ESI EDI EAX EBX ECX EDX --- EBP ESI EDI Beispiel: MOV EAX, Feld[ESI * 4] Lesen aus Feld mit 4 Byte großen Elementen und ESI als Index EA 1 2 4 8 --- 8 Bit Wert 32 Bit Wert dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 18 Das A2-Gate... ist ein Relikt aus der Zeit der 8286 Systeme (IBM AT) beim IBM XT (886) konnte es bei der Adressberechnung zu einem Überlauf kommen. Im Maximalfall: xffef nur 2 Bit! xffff + xffff 1 1 1 1 x1ffef Segment * 16 Offset phys. Adresse MS-DOS (und andere Systeme) verwenden diesen Trick. Aus Kompatibilitätsgründen wurde im IBM AT die A2-Leitung über das A2 Gate (Register im Tastaturcontroller) maskiert. A2 muss explizit freigeschaltet werden, um Speicher > 1 MiB zu addressieren Ab dem 486 hat Intel das A2-Gate in die CPU integriert! dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 19 dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 2

Agenda Urvater: Der 886 Segmente MMU Schutz IA-32: Protected Mode Segmente ein Programm (in Ausführung) besteht aus mehreren Speichersegmenten mindestens CODE, DATEN und STACK Segmentselektoren beschreiben (indirekt) Adresse und Länge Lineare Adresse ist Segmentstartadresse + EA Segmente dürfen sich im linearen Adressraum überlappen, z.b. dürfen die Segmentstartadressen bei liegen. Dadurch wird ein flacher Adressraum nachgebildet. Lineare Adresse entspricht der physikalischen Adresse, falls die Paging Unit nicht eingeschaltet ist. dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 21 IA-32: Protected Mode Segmente Segment Register GS FS ES CS Selektor Tabelle GS FS ES Flags CS Limit Startadresse Segmentdeskriptoren + effektive Adresse + x lineare Adresse Startadresse des Segments Basis-Register Index-Register Scale 1, 2, 4 oder 8 Displacement (im Befehl) linearer Adressraum Segmentgrenze Limit Operand selektiertes Segment dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 23 dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 22 IA-32: Seitenbasierte MMU (1) Ein- und Auslagerung von Speicher (zwecks virtuellem Speicher) ist bei Segmentierung aufwändig. Daher bieten viele andere CPUs lediglich eine seitenbasierte Speicherverwaltung. ab dem 8386 kann eine Paging Unit (PU) optional hinzugeschaltet werden. die wichtigsten Verwaltungsinformationen stehen in den CRx Steuerregistern: CR3 CR2 CR1 CR 31 PG Page-Directory-Basisregister Paging: 1=aktiv Lineare Adresse des Page-Faults reserviert reserviert 12 11 reserviert TS EM MP Protection Enable: 1=aktiv dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 24 PE

IA-32: Seitenbasierte MMU (2) 31 1211 CR3 PD Basis page 123 page... Page-Frame 4KiB (, ) 31 22 21 Directory page 247 page 124 Page-Frame 4KiB (, ) Page 1211 Eintrag 123 Eintrag 2 Eintrag 1 Eintrag page 371 page 248 Page-Frame 4KiB (, ) Offset... page 148575 page 147552 Page-Frame 4KiB (, ) Virtual Adress Page Directory Page Tables Page Frames (phys. Adr.) IA-32: TLB Problem: bei aktiver Paging Unit wäre eine IA-32 CPU erheblich langsamer, wenn bei jedem Speicherzugriff das Page Directory und die Page Table gelesen werden müssten Lösung: der Translation Lookaside Buffer (TLB): vollassoziativer Cache Tag: 2 Bit Wert aus Page Directory und Page Table Index : Page Frame Adresse Größe beim 8386: 32 Einträge bei normalen Anwendungen erreicht der TLB eine Trefferrate von etwa 98% Schreiben in das CR3 Register invalidiert den TLB dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 25 Schutz dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 26 Schutzringe und Gates die wichtigste Eigenschaft des IA-32 Protected Mode ist das Schutzkonzept Ziel: fehlerhaften oder nicht vertrauenswürdigen isolieren Schutz vor Systemabstürzen Schutz vor unberechtigten zugriffen keine unberechtigten Operationen, z.b. I/O Port Zugriffe Voraussetzungen: und... Durch einen 2 Bit Eintrag im Segmentdeskriptor wird jedes Segment einer Privileg-Ebene zugeordnet 3 2 1 werden hinsichtlich der Vertrauenswürdigkeit kategorisiert bekommen einen Besitzer (siehe "") dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 27 dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 28

Schutzringe und Gates Schutzringe und Gates Privileg-Ebene 3 ist die niedrigste und für Anwendungen gedacht. 3 2 1 Anwendungen Kundenspezifische BS-Erweiterungen Systemdienste Kern Zugriff auf eines inneren Rings ist verboten 3 2 1 eines inneren Rings kann nur durch Gates aufgerufen werden Privileg-Ebene ist die höchste und dem Betriebssystemkern vorbehalten. Zugriff auf eines äußeren Rings erlaubt der Aufruf von eines äußeren Rings ist verboten! Zugriffe auf Segmente der selben Ebene sind erlaubt dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 29 Segmentdeskriptoren weitere Informationen über die Schutzanforderungen der Segmente enthalten die Deskriptoren jede Verletzung führt zum Auslösen einer Ausnahme ein Segment-Deskriptor PP Segment Base 31... 24 DPL TYPE P - Present Bit DPL - Descriptor Privilege Level S - System Segment GG D/B Segment Base... Segment Limit... AVL Limit 19... 16 Segment Base 23... 16 +6 +4 +2 G - Granularity D/B - 16/32 Bit Seg. AVL - Available for OS TYPE Data: ED - Expansion Direction W - Writable A - Accessed TYPE : C - Conforming R - Readable A - Accessed dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 31 dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 3 Beispiel: Das "flache" Speichermodell die meisten PC Betriebssysteme nutzen die Segmentierung nicht. 32 Bit Offset der logischen Adresse = lineare Adresse trotzdem müssen zwei Segmentdeskriptoren angelegt werden: ; ; Descriptor-Tabellen ; gdt: dw,,, ; NULL Deskriptor dw xffff ; 4Gb - (x1*x1 = 4Gb) dw x ; base address= dw x9a ; code read/exec dw xcf ; granularity=496, ; 386 (+5th nibble of limit) dw xffff ; 4Gb - (x1*x1 = 4Gb) dw x ; base address= dw x92 ; data read/write dw xcf ; granularity=496, ; 386 (+5th nibble of limit) dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 32

Agenda Urvater: Der 886 dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 33 Lokale Segmentdeskriptortabellen... sind nötig, wenn der Segmentselektor (z.b. aus einem Segmentregister) sich auf die LDT bezieht: Index 2 1 TI RPL... werden mit Hilfe des LDTR gefunden, das bei jedem Taskwechsel ausgetauscht wird: 3 TI = : GDT TI = 1: LDT Speicherverwaltungsregister 31 19 TR LDTR IDTR GDTR T-Sel. T-Basisadresse LDT-Sel. LDT-Basisadresse IDT-Basisadresse GDT-Basisadresse T-Limit LDT-Limit IDT-Limit GDT-Limit dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 35 neben dem Schutz vor unberechtigten "vertikalen" Zugriffen zwischen Segmenten unterschiedlicher Ebenen unterstützt IA-32 auch ein Task-Konzept ("horizontale Trennung ) die Zuordnung von Segmenten zu Tasks erfolgt über "Lokale Deskriptortabellen" (LDTs) Segmente aus der 3 2 1 LDT von Task A Task A Task C Task B Globale Segmente (Deskriptoren in der GDT) dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 34 Der Task-Zustand: T Segmente das Task-Register TR verweist auf eine struktur, die den kompletten Task- Zustand aufnimmt bei einem Task-Wechsel (siehe nächste Seite) wird der komplette Zustand gesichert und der Zustand des Ziel- Tasks geladen alles in Hardware! I/O Map Base Address T LDT Segment Sel. GS FS CS ES EDI ESI EBP ESP EBX EDX ECX EAX EFLAGS EIP CR3 (PDBR) 2 ESP2 ESP1 ESP 1 Prev. Task Link dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 36

Task-Wechsel für einen Task-Wechsel benötigt man entweder... ein Task-Gate in der GDT, einer LDT oder der IDT (Task-Wechsel bei Unterbrechungen!) oder einfach nur einen T Deskriptor in der GDT ausgelöst werden kann ein Wechsel durch... eine JMP Instruktion eine CALL Instruktion eine Unterbrechung eine IRET Instruktion Nested Tasks bei Unterbrechungen und CALLs wird das NT Flag im EFLAGS Register und der "Prev. Task Link" im T gesetzt. Wenn dies der Fall ist, springt IRET zum vorherigen Task zurück. dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 37 Agenda Urvater: Der 886 Ein-/Ausgaben im Protected Mode nicht jeder beliebige Task darf Ein-/Ausgabe durchführen! Zugriffe auf Geräte im Speicher (memory-mapped I/O) können über Speicherschutz abgefangen werden Zugriffe auf I/O Ports werden eingeschränkt: die I/O Privilege Level Bits im EFLAGS Register erlauben Einund Ausgaben auf bestimmten Schutzringen auf den anderen Ebenen regelt die I/O Permission Bitmap für jeden Task und Port der Zugriff: T Ports mit größeren Nummern dürfen nicht angesprochen werden den Abschluss bildet immer ein Byte mit xff Port 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 eine '1' verhindert 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 den Portzugriff 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Port I/O Map Base Address... T LDT Segment Sel. GS dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 38 IA-32: Was gibt es sonst noch? Physical Address Extension (PAE) ab Pentium Pro: 36-Bit Adressen (physikalisch) erweiterte Page Table Einträge weitere Page Directory Ebene System Management Mode (SMM) gibt dem BIOS Kontrolle über das System das Betriebssystem merkt davon nichts! Virtualisierung der CPU der Virtual 886 Mode 16 Bit Anwendungen oder Betriebssysteme laufen als IA-32 Task in einer geschützten Umgebung Vanderpool Technology Hardwareunterstützung für virtuelle Maschinenlösungen wie VmWare, VirtualPC oder Xen erlaubt die Ausführung von E Protected Mode in einer VM dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 39 dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 4

Agenda Urvater: Der 886 die IA-32 Architektur ist ausgesprochen komplex segmentbasierter und seitenbasierter Speicherschutz Hardwareunterstützung für Task-Aktivierung bei Unterbrechungen Schutz von I/O Ports pro Task... viele dieser Features werden von heutigen Betriebssystemen nicht genutzt typisch ist der flache Adressraum mit aktiver Paging Unit Hardware-Tasks sind kaum portierbar bemerkenswert ist auch die konsequente Kompatibilität mit älteren Prozessorversionen Stichwort "PIC" und "A2 Gate"! dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 41 dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 42 die IA-32 Was ist Architektur mit 64-Bit? ist ausgesprochen AMD64 komplex (x86-64) segmentbasierter und seitenbasierter Speicherschutz 64-Bit-Erweiterung von x86, propagiert von AMD Hardwareunterstützung für offizielle Intel-Bezeichnung: x86-64 Task-Aktivierung bei Unterbrechungen Achtung: IA-64 bezeichnet Intels (tote?) Schutz von Itanium-Architektur I/O Ports pro Task... Wesentliche Features 64-Bit-Register und -Adressen viele dieser 16 (statt Features bisherwerden 8) General-Purpose von heutigen Register Betriebssystemen Viele IA-32-Features nicht genutzt sind weggefallen! typisch ist der flache Adressraum mit aktiver Paging Unit Segmentierung (außer FS und GS Register) Hardware-Tasks MMU muss sind benutzt kaum portierbar werden Task-Modell bemerkenswert Ring-Modell ist auch (außer die -1, konsequente, 3) Kompatibilität mit älteren Virtual-X86-Modus Prozessorversionen Stichwort "PIC" und "A2 Gate"! dl Betriebssysteme (VL 6 WS 14) 6 IA-32 6 42