Betriebssysteme (BS)

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

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

5.6 Segmentierter virtueller Speicher

Intel x86 Bootstrapping

Assembler - Adressierungsarten

Übung zu Betriebssystembau (Ü BS)

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

x86-assemblerprogrammierung

Hinweise 80x86-Architektur

Einführung in die technische Informatik

Wie groß ist die Page Table?

Aufgabe 1 Entwicklung einer Virtuellen Maschine

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

Tutorium Rechnerorganisation

7. Speicherverwaltung

Echtzeitbetriebssysteme

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Betriebssystembau (BSB)

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

Realisierung: virtueller Prozessor: der reale Prozessor wird periodisch dem Programm zugewiesen Im Prozessor: durch Task-Status Segment (TSS)

Echtzeit-Multitasking

moderne Prozessoren Jan Krüger

Betriebssysteme BS-V SS Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

Vorlesung "Struktur von Mikrorechnern" (CBS)

Betriebssystembau (BSB)


Was kann ein Assembler?

Aufgabe 2 - Erweiterung um PIC und Interrupts

Vorlesung "Struktur von Mikrorechnern" (SMR)

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

Teil 1: Prozessorstrukturen

Klausur zur Mikroprozessortechnik

Assembler - Variablen

2. Aufgabenblatt Musterlösung

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / Vorlesung 9, Dienstag 18.

Instruktionssatz-Architektur

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley)

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013

Die Mikroprogrammebene eines Rechners

Karlsruher Institut für Technologie

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

Die Sandy-Bridge Architektur

Neue Prozessor-Architekturen für Desktop-PC

5 Speicherverwaltung. bs-5.1 1

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Aufgabe 2 - Erweiterung um PIC und Interrupts

Paging. Einfaches Paging. Paging mit virtuellem Speicher

x86 Open Source Virtualisierungstechniken Thomas Glanzmann

Projekt für Systemprogrammierung WS 06/07

Grundlagen der Rechnerarchitektur

Bibliotheks-basierte Virtualisierung

Linux Paging, Caching und Swapping

01744 PC-Technologie Prüfungsprotokoll (Note 1,3) vom bei Dr. Lenhardt, Protokollführer Dr. Bähring

Rechnergrundlagen SS Vorlesung

Vorwort 15 Inhalt der DVD 18. Kapitel 1 Halbleitertechnik im Überblick 19. Kapitel 2 Logikschaltungen 29

Technische Informatik 2 Speichersysteme, Teil 3

1. Speicher. Typische Nutzung eines Adreßraums. Systemsoftware. Textbereich relativ klein. Sehr großer Abstand zwischen Heap und Stack

Memory Management. Peter Puschner Institut für Technische Informatik

Einführung in (Intel) 80x86 Assembler. Einführung in (Intel) 80x86 Assembler Wintersemester 2008/09 1 / 26

Multiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Tutorium Rechnerorganisation

Computer-Systeme Teil 15: Virtueller Speicher

Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Memory Management Units in High-Performance Processors

Gymnasium Marktoberdorf

Dies gibt nur eine grobe Übersicht über die verschiedenen älteren CPUs.

Technische Informatik 1

Einführung in Computersysteme

VT und Pacifica. Vortrag zum Seminar Virtuelle Maschinen und Emulatoren. Alexander Würstlein

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

1.3 Architektur von Betriebssystemen

Systeme 1. Kapitel 9.2. Interaktion von Hardware und Betriebssystem Linux-Kernel und x86 Systeme

Betriebssysteme KU - Einführungstutorium

z/architektur von IBM

Hardware-basierte Virtualisierung

Übung zu Grundlagen der Betriebssysteme. 13. Übung

Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme. Vorlesung 4: Memory. Wintersemester 2001/2002. Peter B.

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Grundlagen Rechnerarchitektur und Betriebssysteme

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

Arithmetische und Logische Einheit (ALU)

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Vorlesung Rechnerarchitektur. Einführung

Vorlesung 5: Interrupts

Was ist die Performance Ratio?

Übersicht. Virtueller Speicher CPU-Modi Virtuelle Maschinen. ISM SS Teil 4/ProtectionI

Fragenkatalog zur Klausur Computersysteme

Betriebssysteme Vorstellung

Kapitel VI. Speicherverwaltung. Speicherverwaltung

RO-Tutorien 3 / 6 / 12

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

7 Ein einfacher CISC-Prozessor

Virtualisierung. Seminarvortrag SS Niels Burkhardt

Design and Implementation of a Soft-error Resilient OSEK Real-time Operating System

Überlegungen beim Entwurf eines Betriebssystems

Hardware-basierte Virtualisierung

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3

Aufbau und Funktionsweise eines Computers

Transkript:

Betriebssysteme (BS) 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 WS 15 17. November 215 https://www4.cs.fau.de/lehre/ws15/v_bs

Überblick: Einordnung dieser VL Anwendung(en) Gerätezugriff (Treiber) Prozessverwaltung Unterbrechungssynchronisation Unterbrechungsbehandlung Interprozesskommunikation Kontrollflussabstraktion Betriebssystementwicklung Hardware dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Einordnung 6 2

Agenda Einordnung Historie Urvater: Der 886 Die 32-Bit Intel-Architektur Der Protected Mode Multitasking Weitere Merkmale Zusammenfassung dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Einordnung 6 3

Historie der Intel x86-prozessoren 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 Datenbus SMM, MMX, APIC, Dualprozessor-fähig dl Betriebssysteme (VL 6 WS 15) 6 IA-32 6 4

Historie der Intel x86-prozessoren (Forts.) 1995: Pentium Pro P6-Architektur 36-Bit Adressbus (PAE) Level 2 Cache ön chip", RISC-artige Mikroinstruktionen 1997: Pentium II Pentium Pro + MMX Level 2 Cache wieder extern, dafür bessere 16-Bit Performance 1999: Pentium III SSE, Pentium M (23) 2: P4 Netburst-Architektur SSE2, optimiert für hohe Taktzahlen (angedacht bis zu 1 GHz) 24: P4 Prescott Erweiterte Netburst Architektur Hyperthreading, Vanderpool, EM64T, 31-stufige Pipeline! dl Betriebssysteme (VL 6 WS 15) 6 IA-32 6 5

Historie 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 15) 6 IA-32 6 6

Agenda Einordnung Historie Urvater: Der 886 Programmiermodell Speichermodell Die 32-Bit Intel-Architektur Der Protected Mode Multitasking Weitere Merkmale Zusammenfassung dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Urvater: Der 886 6 7

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 15) 6 IA-32 Urvater: Der 886 6 8

886: Registersatz Befehls- und Stapelzeiger 15 IP SP Flag Register 15 FLAG Vielzweckregister 15 AH AL BH BL CH CL DH DL SI DI BP Segmentregister 15 CS SS DS ES Stack Data Extra dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Urvater: Der 886 6 9

886: Registersatz Befehls- und Stapelzeiger 15 IP SP Vielzweckregister 15 AH AL BH BL CH CL DH DL SI DI BP AX: Flag Accumulator Register Register arithmetisch-logische 15 Operationen I/O FLAG kürzester Maschinencode BX: Base Address Register CX: Count Register für LOOP Segmentregister Befehl für String 15 Operationen mit REP für Bit Shift und CS Rotate SS Stack DX: Data Register DS 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 15) 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: 15 Segmentselektor 15 + Offset 19 physikalische Adresse die 16 Bit Konkurrenz konnte i.d.r. nur 64KB adressieren dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Urvater: Der 886 6 11

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: 64K ought to be enough for anybody 15 + Offset 15 Segmentselektor angeblich ein Zitat von Bill Gates, 1981 19 physikalische Adresse die 16 Bit Konkurrenz konnte i.d.r. nur 64KB adressieren dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Urvater: Der 886 6 12

886: Speichermodelle Programme können Adressen unterschiedlich bilden. Das Ergebnis waren unterschiedliche Speichermodelle: Tiny -, Daten- und Stacksegment sind identisch: 64K insgesamt Small Trennung des s von Daten und Stack: 64K + 64K Medium 32(2) Bit Zeiger für, Daten- und Stapelseg. aber fest (64K) Compact Festes Segment (64K), 32(2) Bit Zeiger für Daten und Stack Large far Zeiger für alles: 1MB komplett nutzbar Huge wie Large, aber mit normalisierten Zeigern dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Urvater: Der 886 6 13

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 15) 6 IA-32 Urvater: Der 886 6 14

Agenda Einordnung Historie Urvater: Der 886 Die 32-Bit Intel-Architektur Erweiterungen Relikte: Das A2-Gate Der Protected Mode Multitasking Weitere Merkmale Zusammenfassung dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Die 32-Bit Intel-Architektur 6 15

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, Daten- und Adressbus ab Pentium Pro: 64 Bit Daten und 36 Bit Adressbus zusätzliche Register komplexe Schutz- und Multitaskingunterstü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 15) 6 IA-32 Die 32-Bit Intel-Architektur 6 16

8386: Registersatz (Erweiterungen) erweiterte Register heißen aus Kompatibilitätsgründen E... EIP ESP Befehls- und Stapelzeiger 31 1615 IP SP EFLAG Flag Register 31 1615 FLAG EAX EBX ECX EDX ESI EDI EBP Vielzweckregister 31 1615 AH AL BH BL CH CL DH DL SI DI BP Segmentregister 15 CS SS DS ES FS GS Stack Data Extra Extra Extra Erweiterung zum 886 dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Die 32-Bit Intel-Architektur 6 17

8386: Registersatz (neue Register) TR LDTR IDTR GDTR CR3 CR2 CR1 CR Speicherverwaltungsregister 15 31 19 TSS-Sel. LDT-Sel. Steuerregister 31 1615 TSS-Basisadresse LDT-Basisadresse IDT-Basisadresse GDT-Basisadresse TSS-Limit LDT-Limit IDT-Limit GDT-Limit Debugregister 31 1615 Erläuterungen folgen... TR7 TR6 Testregister 31 1615 dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Die 32-Bit Intel-Architektur 6 18

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 15) 6 IA-32 Die 32-Bit Intel-Architektur 6 19

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 15) 6 IA-32 Die 32-Bit Intel-Architektur 6 2

Agenda Einordnung Historie Urvater: Der 886 Die 32-Bit Intel-Architektur Der Protected Mode Segmente MMU Schutz Multitasking Weitere Merkmale Zusammenfassung dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Der Protected Mode 6 21

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 15) 6 IA-32 Der Protected Mode 6 22

IA-32: Protected Mode Segmente Segment Register SS GS FS ES DS CS Selektor Tabelle SS GS FS ES DS CS Flags Limit Startadresse Segmentdeskriptoren + effektive Adresse + x Segmentgrenze lineare Adresse Startadresse des Segments Basis-Register Index-Register Scale 1, 2, 4 oder 8 Displacement (im Befehl) Limit linearer Adressraum Operand selektiertes Segment dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Der Protected Mode 6 23

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 Lineare Adresse des Page-Faults reserviert reserviert 12 11 reserviert TS EM MP PE Paging: 1=aktiv Protection Enable: 1=aktiv dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Der Protected Mode 6 24

IA-32: Seitenbasierte MMU (2) 31 22 21 Directory Page 1211 Offset Virtual Adress CR3 31 1211 PD Basis Eintrag 123...... Eintrag 2 Eintrag 1 Eintrag Page Directory page 123.................. page page 247.................. page 124 page 371.................. page 248... page 148575.................. page 147552 Page Tables... Page-Frame 4KiB (, Daten) Page-Frame 4KiB (, Daten) Page-Frame 4KiB (, Daten)...... Page-Frame 4KiB (, Daten) Page Frames (phys. Adr.) dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Der Protected Mode 6 25

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 Daten: 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 15) 6 IA-32 Der Protected Mode 6 26

Schutz 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 Datenzugriffen keine unberechtigten Operationen, z.b. I/O Port Zugriffe Voraussetzungen: und Daten... werden hinsichtlich der Vertrauenswürdigkeit kategorisiert bekommen einen Besitzer (siehe "Multitasking") dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Der Protected Mode 6 27

Schutzringe und Gates Durch einen 2 Bit Eintrag im Segmentdeskriptor wird Daten jedes Segment einer Privileg-Ebene zugeordnet Daten Daten 3 2 1 Daten Daten Daten dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Der Protected Mode 6 28

Schutzringe und Gates Privileg-Ebene 3 ist die niedrigste und für Anwendungen gedacht. Daten 3 2 1 Anwendungen Kundenspezifische BS-Erweiterungen Systemdienste Daten Kern Daten Privileg-Ebene ist die höchste und dem Betriebssystemkern vorbehalten. Daten Daten dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Der Protected Mode 6 29

Schutzringe und Gates Daten Zugriff auf Daten eines inneren Rings ist verboten Daten Daten eines inneren Rings kann nur durch Gates aufgerufen werden 3 2 1 Zugriff auf Daten eines äußeren Rings erlaubt Daten der Aufruf von eines äußeren Rings ist verboten! Daten Zugriffe auf Segmente der selben Ebene sind erlaubt dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Der Protected Mode 6 3

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 SS TYPE GG D/B Segment Base 15... Segment Limit 15... AVL Limit 19... 16 Segment Base 23... 16 +6 +4 +2 TYPE Data: ED - Expansion Direction W - Writable A - Accessed TYPE : C - Conforming R - Readable A - Accessed P - Present Bit DPL - Descriptor Privilege Level S - System Segment G - Granularity D/B - 16/32 Bit Seg. AVL - Available for OS dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Der Protected Mode 6 31

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 15) 6 IA-32 Der Protected Mode 6 32

Agenda Einordnung Historie Urvater: Der 886 Die 32-Bit Intel-Architektur Der Protected Mode Multitasking Weitere Merkmale Zusammenfassung dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Multitasking 6 33

Multitasking 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) Globale Daten Segmente (Deskriptoren in der GDT) Daten Daten Segmente aus der 3 2 1 LDT von Task A Daten Daten Task A Daten Task C Task B dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Multitasking 6 34

Lokale Segmentdeskriptortabellen... sind nötig, wenn der Segmentselektor (z.b. aus einem Segmentregister) sich auf die LDT bezieht: 15 Index 3 2 1 TI RPL TI = : GDT TI = 1: LDT... werden mit Hilfe des LDTR gefunden, das bei jedem Taskwechsel ausgetauscht wird: TR LDTR IDTR GDTR Speicherverwaltungsregister 15 31 19 TSS-Sel. LDT-Sel. TSS-Basisadresse LDT-Basisadresse IDT-Basisadresse GDT-Basisadresse TSS-Limit LDT-Limit IDT-Limit GDT-Limit dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Multitasking 6 35

Der Task-Zustand: TSS Segmente das Task-Register TR verweist auf eine Datenstruktur, 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 DS SS CS ES EDI ESI EBP ESP EBX EDX ECX EAX EFLAGS EIP CR3 (PDBR) SS2 ESP2 ESP1 ESP SS1 SS Prev. Task Link dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Multitasking 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 TSS 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 TSS gesetzt. Wenn dies der Fall ist, springt IRET zum vorherigen Task zurück. dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Multitasking 6 37

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: Ports mit größeren Nummern dürfen nicht angesprochen werden den Abschluss bildet immer ein Byte mit xff TSS Port 151 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 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 1 1 1 1 1 1 1 1 1 1 1 1 Port I/O Map Base Address... T LDT Segment Sel. GS eine '1' verhindert den Portzugriff dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Multitasking 6 38

Agenda Einordnung Historie Urvater: Der 886 Die 32-Bit Intel-Architektur Der Protected Mode Multitasking Weitere Merkmale Zusammenfassung dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Weitere Merkmale 6 39

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 15) 6 IA-32 Weitere Merkmale 6 4

Agenda Einordnung Historie Urvater: Der 886 Die 32-Bit Intel-Architektur Der Protected Mode Multitasking Weitere Merkmale Zusammenfassung dl Betriebssysteme (VL 6 WS 15) 6 IA-32 Zusammenfassung 6 41

Zusammenfassung die IA-32 Architektur ist ausgesprochen komplex segmentbasierter und seitenbasierter Speicherschutz Hardwareunterstützung für Multitasking 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 15) 6 IA-32 Zusammenfassung 6 42

Zusammenfassung 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 Multitasking 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 sind kaum portierbar MMU muss benutzt 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 15) 6 IA-32 Zusammenfassung 6 42