64-Bit-Erweiterungen der IA32

Größe: px
Ab Seite anzeigen:

Download "64-Bit-Erweiterungen der IA32"

Transkript

1 Aktuelle Hardwaretechnologien und ihr Einfluss auf die Betriebssystementwicklung 64-Bit-Erweiterungen der IA32 Pascal Recktenwald & Jens Haupert

2 64-Bit-Erweiterungen der IA32 Überblick Geschichte der IA32 AMD64 Erweiterung Vergleich IA32 AMD64 Anpassung des Linux-Kernel Softwareportierung Benchmarks Diskussion 64-Bit-Erweiterungen der IA32 2

3 Geschichte der IA : Einführung der x86 Architektur: Intel 8086/8088 CPUs 16-Bit Register, 16-Bit externer Datenbus (8088 CPU: 8-Bit) 20-Bit Adressierung 1 MByte Adressraum Segmentierung 1982: Intel 286 CPU Protected mode Schutzmechanismen Deskriptoren: 24-Bit Basis Adresse, bis zu 16 MB Hauptspeicher adressierbar Virtuelle Speicherverwaltung auf Basis von Segment-Swapping 64-Bit-Erweiterungen der IA32 3

4 Geschichte der IA : Intel 386 Prozessor Erster 32-Bit Prozessor der x86 Architektur Umbenennung: Intel Architecture 32-bit (IA32) 32-Bit Register für Operanden und Adressierung 4 GB Hauptspeicher adressierbar Abwärtskompatibel zu älteren x86 CPUs Virtueller 8086 Modus Segmentiertes sowie flaches Speicher-Modell Paging mit fester 4 KB Seitengröße Unterstützung paralleler Stufen 64-Bit-Erweiterungen der IA32 4

5 Geschichte der IA : Intel 486 Prozessor Verbesserte Parallelausführung Erweiterung der instruction decode- und Ausführungseinheiten auf 5 Stufen mit Pipelining 8 KB on-chip First-Level-Cache Integrierte x87 floating point unit (FPU) Stromspar- und System-Management-Funktionen 1993: Intel Pentium Prozessor Zweite Ausführungs-Pipeline: superscalar Doppelter on-chip First-Level-Cache: 8 KB für Code und weitere 8 KB für Daten 64-Bit-Erweiterungen der IA32 5

6 Geschichte der IA : Intel Pentium Prozessor (Fortsetzung) Effizienterer virtueller 8086 Modus Seitengröße: sowohl 4 KB als auch 4 MB Interne Datenpfade von 128 und 256 Bits Burst-fähiger, externer 64-Bit Datenbus APIC ( advanced programmable interrupt contoller ) zur Unterstützung von Multiprozessor-Systemen Dual-Prozessor Modus zur Unterstützung von 2-Prozessor-Systemen MMX Erweiterung SIMD ( single-instruction, multiple-data ) Instruktionen Unabhängige und simultane Anwendung einer einzelnen Operation auf mehrere Datensätze 64-Bit-Erweiterungen der IA32 6

7 Geschichte der IA : Intel P6 Prozessorfamilie Intel Pentium Pro, Pentium II, Pentium III und Celeron Bis zu 64 GB Hauptspeicher adressierbar durch physical address extension (PAE) ab Pentium Pro streaming SIMD extensions (SSE) ab Pentium III : Intel Pentium 4 Prozessor Intel Pentium 4, Celeron Prozessor SSE2 und SSE3 Erweiterungen Produktion x86-kompatibler CPUs auch durch andere Hersteller: Cyrix, VIA, NEC, IBM, IDT und Transmeta, zweitgrößter Hersteller hinter Intel: AMD 64-Bit-Erweiterungen der IA32 7

8 Die AMD64 Erweiterung 2000: Einführung der IA64 durch Intel Itanium CPU Komplette Neuentwicklung 64-Bit Architektur Problem: Eingeschränkte Kompatibilität zu 32-Bit Software 2003: Weniger radikaler Ansatz von AMD: 64-Bit Erweiterung der IA32: AMD64 (früher x86-64) Volle 64-Bit Fähigkeiten bei gleichzeitiger Abwärts- Kompatibilität zu vorhandener 32-Bit Software Einsatz sowohl in Server CPUs (Opteron) als auch in Desktop- und Mobil-CPUs (Athlon 64) 64-Bit für Jedermann 64-Bit-Erweiterungen der IA32 8

9 Überblick Vergleich IA32 AMD64 Modi Register Datentypen Operatoren Virtueller Speicher Segmentierung Paging Speicherverwaltung Interrupt-Handling & Exceptions Weitere Neuerungen 64-Bit-Erweiterungen der IA32 9

10 Modi: IA32 Protected mode: Nativer Prozessor-Zustand Alle architekt. Merkmale und Instruktionen verfügbar Virtual-8086 mode: Protected mode Attribut, aktivierbar für jeden Task Real-address mode 8086 Software kann in geschützter multi-tasking Umgebung ausgeführt werden Real-address mode: Aktiv nach Start oder Reset des Systems Implementiert die Programmierumgebung der 8086 CPU Zusätzliche Erweiterungen, z.b. Fähigkeit in anderen Modus zu wechseln 64-Bit-Erweiterungen der IA32 10

11 Modi: IA32 System management mode (SMM): Transparenter Mechanismus zur Implementierung plattformspezifischer Funktionen (z.b. Power Management) Aktivierung durch extern gesetzten SMM Interrupt Pin (SMI#) oder durch vom APIC ausgelösten SM Interrupt Speichern des Basis-Kontextes des aktiven Task Prozessor wechselt zu separatem Adressraum Transparente Ausführung von SMM-spezifischem Code Nach Rückkehr aus SMM: Wiederherstellung des ursprünglichen Zustands 64-Bit-Erweiterungen der IA32 11

12 Modi: AMD64 64-Bit-Erweiterungen der IA32 12

13 Modi: AMD64 Legacy mode 3 Untermodi: Real mode Protected mode (mit und ohne Paging) Virtual 8086 mode IA32 Modi Erhält Binary Kompatibilität mit existierenden x86 16-Bit und 32-Bit Applikationen existierenden x86 16-Bit und 32-Bit Betriebssystemen Kompatibilität mit existierenden 32-Bit Prozessor Implementierungen der x86 Architektur AMD64 Prozessoren booten im legacy real mode genau wie vorhandene x86 Prozessoren 64-Bit-Erweiterungen der IA32 13

14 Modi: AMD64 Long mode 64-bit mode Aktivierung durch Systemsoftware auf Basis individueller Code-Segmente Virtueller 64-Bit Adressraum adressierbar Register-Erweiterung durch Instruktionspräfix (REX) 8 zusätzliche GPRs Verbreiterung der GPRs auf 64 Bits 8 zusätzliche 128-Bit SSE Register 64-Bit instruction pointer (RIP) Neuer Daten-Adressierungs-Modus (relativ zum RIP) 64-Bit-Erweiterungen der IA32 14

15 Modi: AMD64 Long mode Compatibility mode Aktivierung durch Systemsoftware auf Basis individueller Code-Segmente Nur die ersten 4 GB des virtuellen Adressraums nutzbar Binary Kompatibilität mit existierenden 16-Bit und 32-Bit Applikationen auf 64-Bit Betriebssystemen Auswahl zwischen 16-Bit und 32-Bit Adress- und Operandengröße durch Standard x86 Instruktionspräfix Applikationssicht: Legacy protected-mode Umgebung Betriebssystemsicht: Long-mode Mechanismen benutzen Adressübersetzung, Interrupt- und Exception- Handling und System-Datenstrukturen 64-Bit-Erweiterungen der IA32 15

16 Modi: AMD64 64-Bit-Erweiterungen der IA32 16

17 Register: IA32 x86 Register SSE GPR X87 IP XMM0 EAX FPR0 EIP XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 EBX FPR1 ECX FPR2 FLAGS EDX FPR3 EFLAGS ESI FPR4 EDI FPR5 EBP FPR6 ESP FPR7 MMX 63 0 MMX0 MMX1 MMX2 MMX3 MMX4 MMX5 MMX6 MMX7 64-Bit-Erweiterungen der IA32 17

18 Register: AMD64 x86 Register AMD64 Register SSE GPR X87 IP XMM0 RAX FPR0 RIP XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 XMM8 XMM9 XMM10 XMM11 XMM12 XMM13 XMM14 XMM15 RBX FPR1 RCX FPR2 FLAGS RDX FPR3 0 RFLAGS RSI FPR4 RDI FPR5 RBP FPR6 RSP FPR7 R8 R9 R10 R11 R12 R13 R14 R15 MMX 63 0 MMX0 MMX1 MMX2 MMX3 MMX4 MMX5 MMX6 MMX7 64-Bit-Erweiterungen der IA32 18

19 Register: AMD64 x86 Register AMD64 Register SSE GPR X87 IP XMM0 RAX FPR0 RIP XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 XMM8 XMM9 XMM10 XMM11 XMM12 XMM13 XMM14 XMM15 RBX FPR1 RCX FPR2 FLAGS RDX FPR3 0 RFLAGS RSI FPR4 RDI FPR5 RBP FPR6 RSP FPR7 R8 R9 R10 R11 R12 R13 R14 R15 MMX 63 0 MMX0 MMX1 MMX2 MMX3 MMX4 MMX5 MMX6 MMX7 64-Bit-Erweiterungen der IA32 19

20 Register: AMD64 x86 Register AMD64 Register SSE GPR X87 IP XMM0 RAX FPR0 RIP XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 XMM8 XMM9 XMM10 XMM11 XMM12 XMM13 XMM14 XMM15 RBX FPR1 RCX FPR2 FLAGS RDX FPR3 0 RFLAGS RSI FPR4 RDI FPR5 RBP FPR6 RSP FPR7 R8 R9 R10 R11 R12 R13 R14 R15 MMX 63 0 MMX0 MMX1 MMX2 MMX3 MMX4 MMX5 MMX6 MMX7 64-Bit-Erweiterungen der IA32 20

21 Register: GPRs Nur im 64-Bit Modus verfügbar 8-Bit: Low 64-Bit-Erweiterungen der IA32 21

22 Register: GPRs Nur im 64-Bit Modus verfügbar 8-Bit: Low 64-Bit-Erweiterungen der IA32 22

23 Datentypen: IA32 general purpose 64-Bit-Erweiterungen der IA32 23

24 Datentypen: AMD64 general purpose 64-Bit-Erweiterungen der IA32 24

25 Datentypen 64-bit media x87 floating point 128-bit media 64-Bit-Erweiterungen der IA32 25

26 Operatoren General-purpose Instruktionen Grundlegende x86 Integer-Instruktionen Verwendung in praktisch allen Programmen Arbeiten hauptsächlich auf Daten in den GPRs oder dem Speicher Manche Befehle ändern den sequentiellen Programmablauf durch Verzweigung zu anderen Programmteilen 64-Bit-Erweiterungen der IA32 26

27 Operatoren 64-bit media Instruktionen SIMD Befehle der MMX und 3DNow! Erweiterungen Nützlich in Multimedia Applikationen die auf Datenblöcken arbeiten Arbeiten hauptsächlich auf Daten in den 64-Bit MMX Registern Ausführung von integer und floating point Operationen auf Vektoren und skalaren Datentypen Kein Mechanismus zum floating point exception reporting 64-Bit-Erweiterungen der IA32 27

28 Operatoren 128-bit media Instruktionen Streaming SIMD Extensions (SSE und SSE2) Erfüllen den IEEE-754 Standard Nützlich für multimediale und wissenschaftliche highperformance Applikationen die auf Datenblöcken arbeiten Arbeiten hauptsächlich auf Daten in den 128-Bit XMM Registern Ausführung von Integer Operationen sowie 32-Bit single- und 64-Bit double-precision floating point Operationen auf Vektoren und skalaren Daten Dedizierter Mechanismus zum floating point exception reporting 64-Bit-Erweiterungen der IA32 28

29 Operatoren x87 floating point Instruktionen Fließkomma Instruktionen Spezielle Befehle zur Durchführung trigonometrisch- und logarithmisch-transzendenter Operationen. Benutzung in vorhanden x87 Applikationen Arbeiten auf Daten in den x87 Registern Unterstützung von single-, double- und 80-bit extendedprecision floating point Operationen auf skalaren Daten Single-precision und double-precision floating-point Operationen erfüllen den IEEE-754 Standard Dedizierter Mechanismus zum floating point exception reporting 64-Bit-Erweiterungen der IA32 29

30 Operatoren: IA32 64-Bit-Erweiterungen der IA32 30

31 Operatoren: AMD64 REX.W: operand width REX.X: index REX.R: register REX.B: base 64-Bit-Erweiterungen der IA32 31

32 Operatoren: AMD64 64-Bit-Erweiterungen der IA32 32

33 Virtueller Speicher IA32 32-Bit Basisadresse: bis 4 GB adressierbar 36-Bit PAE Adresse: bis 64 GB adressierbar CPU besitzt 36 Adressleitungen Abbildung von 32-Bit 36-Bit Adresse Adresse in Pagetable Eintrag erweitert von 20 auf 24-Bit 36-Bit PAE Adresse 24-Bit Adresse + 12-Bit Flags AMD64 64-Bit Basisadresse: max. 16 EB adressierbar AMD Hammer Architektur: Beschränkung auf 48-Bit ( 256 TB adressierbar) Aktuelle Implementierung: 43-Bit ( 8 TB adressierbar) 64-Bit-Erweiterungen der IA32 33

34 Virtueller Speicher: AMD64 Compatibility/Legacy mode Geschütztes, Multisegment Modell des virtuellen Speichers Virtueller 32-Bit Speicher als segmentierte Menge von Adressräumen für Codesegmente Stacksegmente Datensegmente Jedes Segment besitzt eigene Basisadresse und Schutzparameter Segmentierter Raum wird spezifiziert durch Hinzufügen eines Segment-Selektors zu einer Adresse Kein Unterschied zu IA32 64-Bit-Erweiterungen der IA32 34

35 Virtueller Speicher: AMD64 64-bit Mode Flache Segmentierung des virtuellen Speichers Virtueller 64-Bit Speicher als ein einziger, flacher (unsegmentierter) Adressraum Zugriff auf jede beliebige Stelle im linearen 64-Bit Adressraum durch Programmadressen Benutzung verschiedener Selektoren für Code-, Stack- und Datensegmente möglich durch Betriebssystem (Speicherschutzzwecke) Basisadresse aller Segmente ist immer 0 64-Bit-Erweiterungen der IA32 35

36 Virtueller Speicher: AMD64 64-Bit-Erweiterungen der IA32 36

37 Segmentierung Einführung der Segmentierung in die IA32 mit der 8086/8088 CPU Moderne Betriebssysteme machen keinen Gebrauch der Segmentierungsfähigkeiten der x86 Architektur Stattdessen: Segmentierung komplett in Software Deshalb: Verzicht der AMD64 Architektur auf die meisten Segmentierungsfunktionen im 64-Bit Modus Neue 64-Bit Betriebsysteme können einfacher programmiert werden Unterstützung von effizienterem Management von multitasking Umgebungen 64-Bit-Erweiterungen der IA32 37

38 Segmentierung: Register Segmentregister speichern die zum Zugriff auf Speichersegmente benutzen Selektoren 64-Bit-Erweiterungen der IA32 38

39 Paging: IA32 Einführung von Paging mit der 386 CPU Einteilung des gesamten Speichers in Rahmen (Frames) fester Größe (4 KB, 2 MB oder 4 MB) Auslagern von Frames möglich (z.b. auf Festplatte) Realer Hauptspeicher und ausgelagerte Teile bilden zusammen den virtuellen Speicher Lineare Adresse im Code wird in mehreren Stufen auf virtuelle Adresse in Speicher abgebildet IA32 2 Stufen (3 Stufen [PAE]): Page Table Page Directory (Table) (Page Directory Pointer Table [PAE]) 64-Bit-Erweiterungen der IA32 39

40 Paging: IA32 IA32 Paging ohne PAE IA32 Paging mit PAE 64-Bit-Erweiterungen der IA32 40

41 Paging: AMD64 Änderungen bei AMD64: Long & Compatibility mode Erweiterung der virtuellen Adresse auf 64-Bit 4-stufiges Hardware Paging PAE ständig aktiv Legacy Mode 100% kompatible zu IA32 PAE möglich (notwendig für NX) 64-Bit-Erweiterungen der IA32 41

42 Paging: AMD64 AMD64 Paging 64-Bit-Erweiterungen der IA32 42

43 Paging: AMD64 64-Bit-Erweiterungen der IA32 43

44 Speicherverwaltung Legacy mode 64-Bit-Erweiterungen der IA32 44

45 Speicherverwaltung Long mode 64-Bit-Erweiterungen der IA32 45

46 Interrupts & Exceptions Ereignisse Unterbrechung des aktives Programm Sicherung von Stack und Pointern Behandlung durch eine Service Routine Rückkehr zum laufenden Programm teilweise unterdrückbar durch Maskierung Synchron vorhersehbar treten direkt nach der Anweisung auf, die sie ausgelöst hat Software Interrupts und Exceptions Asynchron unvorhersehbar treten unabhängig vom laufenden Programm auf Hardware Interrupts 64-Bit-Erweiterungen der IA32 46

47 Interrupts & Exceptions Änderungen: Alle Interrupt-Handler bestehen aus 64-Bit Code und arbeiten im 64-Bit Modus Interrupt Stack Frame ist in 16-Byte Blöcken angeordnet schnelles save/restore von XMM Registern (16 Byte) Neuer Mechanismus zum Interrupt Stack Tausch: Interrupt-Stack Table (IST) Hardware Task Switch nicht mehr verfügbar 64-Bit-Erweiterungen der IA32 47

48 Weitere Neuerungen Sprungvorhersage und TLB Einsatz intelligenterer Algorithmen Speichercontroller Northbridge CPU kurze Latenzen Hypertransport schnelle Anbindung der Northbridge schnelles Interconnect bei Multiprozessor-Systemen Cache Vergrößerung auf 512 KB bester Kompromiss zwischen Ausbeute und Geschwindigkeit Cool n Quiet Reduktion des CPU-Takts und der Kernspannung im Leerlauf 64-Bit-Erweiterungen der IA32 48

49 Portierung: von IA32 zu AMD64 Anpassung des Linux-Kernel (2.4): Speichermanagement (Paging) Systemaufrufe / PDA Softwareportierung: Mögliche Problemquellen einer Portierung 32-Bit und 64-Bit Programme auf einem System 64-Bit Portierung (AMD64) 64-Bit-Erweiterungen der IA32 49

50 Linux-Kernel: Speichermanagement Paging AMD64: 4-level Page Table unterstützt z.z. 43-Bit (=8TB) Linux: nur Unterstützung für 3-level Page Table oberste Stufe wird versteckt nur 3 Stufen sind pro Prozess sichtbar nur 39-Bit (=511GB) effektiv pro Prozess nutzbar entspricht exakt dem 3-level PAE Modus auf IA32 Kernel liegt im negativen Bereich des Speichers effiziente Handhabung von sign-extended Adressen Speicheroperationen müssen auch mit 64-Bit Adressen atomar sein Einsatz der neuen 64-Bit Befehle 64-Bit-Erweiterungen der IA32 50

51 Linux-Kernel: Speichermanagement 64-Bit-Erweiterungen der IA32 51

52 Linux-Kernel: Speichermanagement 64-Bit-Erweiterungen der IA32 52

53 Linux-Kernel: Interner Aufbau Systemaufrufe (Systemcall) Kernel entry code komplett neu geschrieben Benutzung der schnellen Befehle SYSCALL und SYSRET Stack-Frame daher teilweise uninitialisiert Programpointer (RIP) und Stackpointer (RSP) werden in der PDA gespeichert; nicht mehr im Kernel-Stack neuer SWAPGS Befehl: PDA über GS Register erreichbar PDA (processor data area) Datenstruktur zur Speicherung von: RIP und RSP Zeiger auf den aktuellen Task Zeiger auf den originalen User Stack 64-Bit-Erweiterungen der IA32 53

54 Softwareportierung: Problemquellen Compiler Verschiedene Compiler erzeugen nicht zwangsläufig den selben Code. Jeder Compiler bietet verschiedene Optimierungsmöglichkeiten Einsatz der selben Version des GNU Compilers auf allen Plattformen ABI (Application Binary Interfaces) Spezifiziert folgende Punkte: Größe der grundlegenden Datentypen Ablauf der Funktionsaufrufe Objektformat Die ABI wird in der Regel vom Compiler vor dem Benutzer versteckt. 64-Bit-Erweiterungen der IA32 54

55 Softwareportierung: Problemquellen CPU Für den Benutzer direkt sichtbar: Einsatz von little- oder big endian Stackwachstum nach oben oder unten Grundeinheit ist 32-Bit oder 64-Bit Bibliotheken (hier C) Verschieden Versionen: nicht die gleiche Menge an Funktionen einige Funktionen sind Hardwareabhängig Einsatz der GNU C Library Ziel: Vereinheitlichung aller Plattformen Aber: eine kleine Anzahl an Funktionen wird immer Hardwareabhängig bleiben 64-Bit-Erweiterungen der IA32 55

56 Softwareportierung: 32- und 64-Bit Parallel Alle 64-Bit Architekturen können sowohl 32-Bit als auch 64-Bit Code nativ ausführen Ausnahme: IA64 Dies bringt folgende Schwierigkeiten: Der Kernel muss sowohl 32-Bit als auch 64-Bit Programme ausführen können 32-Bit und 64-Bit Bibliotheken mit ein und dem selben Namen müssen gleichzeitig existieren dürfen Es muss leicht möglich sein, sowohl 32-Bit als auch 64-Bit Anwendungen zu erstellen Systemaufrufe müssen zur 32-Bit Plattform kompatibel bleiben 64-Bit-Erweiterungen der IA32 56

57 Softwareportierung: 32- und 64-Bit Parallel Bibliotheken: lib und lib64 Auf einen 32-Bit System sind alle Bibliotheken im Pfad /lib (oder /usr/lib) installiert Auf gemischten System muss jede Bibliothek in zwei Versionen vorliegen libc.so.6 für 32-Bit und libc.so.6 für 64-Bit mit dem selben Namen Wie und wohin installieren? 64-Bit-Erweiterungen der IA32 57

58 Softwareportierung: 32- und 64-Bit Parallel Bibliotheken: lib und lib64 Lösungsansatz von Sparc Entwicklern alle 64-Bit Bibliotheken werden im Verzeichnis /lib64 bzw. /usr/lib64 installiert der Linker wird so konfiguriert, dass er bei 64-Bit Programmen die Bibliotheken in diesen Pfaden sucht Keine Änderungen an 32-Bit Programmen notwendig Selbst kompilierte 32-Bit Pakete (z.b. RPMs) sind ohne Änderungen auf 64-Bit Systemen lauffähig Lösungsansatz in Linux Standard Base (LSB) aufgenommen 64-Bit-Erweiterungen der IA32 58

59 Softwareportierung: 32- und 64-Bit Parallel Entwicklung für mehrere ABIs gcc kann auf einer Plattform Code für verschiedene ABIs kompilieren Gleiche Tools sowohl für 32-Bit als auch für 64-Bit Anwendungen Standardmäßig erzeugt gcc auf 64-Bit Systemen auch 64-Bit Code Mittels des Compiler-Schalters -m32 kann auch 32-Bit Code erzeugt werden Assembler und Linker besitzen ebenfalls ähnliche Schalter die gcc weiterreicht 64-Bit-Erweiterungen der IA32 59

60 Softwareportierung: 32- und 64-Bit Parallel Entwicklung für mehrere ABIs / Praxisbeispiel: $ gcc hello.c -o hello64 / gcc -m32 hello.c -o hello32 $ file./hello32./hello64./hello32: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped./hello64: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), dynamically linked (uses shared libs), not stripped $ ldd./hello32./hello64./hello32: libc.so.6 => /lib/libc.so.6 (0x ) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x )./hello64: libc.so.6 => /lib64/libc.so.6 (0x a9566b000) /lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x a ) 64-Bit-Erweiterungen der IA32 60

61 Softwareportierung: 32- und 64-Bit Parallel Personality Die Ausgabe von uname-m wird oft in Skripten genutzt um die Architektur zu ermitteln (z.b.: configure) Auf 64-Bit Systemen kann das zu Problemen führen: Möglicherweise kommt das configure Skript zu dem Schluss, dass eine cross-compilation notwendig ist. Für diesen Fall kann die Ausgabe von uname geändert werden 64-Bit-Erweiterungen der IA32 61

62 Softwareportierung: 32- und 64-Bit Parallel Personality Codebeispiel: $ uname -m x86_64 $ linux32 bash $ uname -m i Bit-Erweiterungen der IA32 62

63 Softwareportierung: 32- und 64-Bit Parallel Übersicht aller 64-Bit Architekturen: 64-Bit-Erweiterungen der IA32 63

64 Softwareportierung: 64-Bit Portierung Mehrzahl der Programme nicht ohne Änderungen 64-Bit kompatibel Vorteil von Linux: C Library gemeinsam für alle Plattformen fast alle Funktionen sind überall nutzbar nur wenige Funktionen sind plattformabhängig trotzdem Beachtung der ABI notwendig größte Problemquelle: elementare Datentypen 64-Bit-Erweiterungen der IA32 64

65 Softwareportierung: 64-Bit Portierung Datentypen (Größe und Anordnung) Größe von elementaren Datentypen variiert auf verschiedenen Systemen long: Pointer passen nicht mehr in int Variablen 64-Bit-Erweiterungen der IA32 65

66 Softwareportierung: 64-Bit Portierung Datentypen (Größe und Anordnung) double (8 byte) aligned zu 4 byte auf 32-Bit und zu 8 byte auf 64-Bit andere interne Datenanordnung auf 64-Bit Sys. Kein Einsatz von hardcodierten Größen oder Adressen Empfohlen: sizeof() und offsetof() 64-Bit-Erweiterungen der IA32 66

67 Softwareportierung: 64-Bit Portierung Datentypen (Größe und Alignment) Beispiel auf 64-Bit System: long t = 1 << a; Typ positiver ganzer Konstanten: int a [0;32[ und nicht [0;64[ da typeof(1 << a) = int zur Verschiebung um max. 64-Bit: long t = 1L << a; 64-Bit-Erweiterungen der IA32 67

68 Softwareportierung: 64-Bit Portierung Funktionsprototypen: Funktionsaufrufe ohne Prototyp haben Rückgabewert: int schlechter Code führt schnell zu segmentation faults malloc(): Rückgabewert: 32-Bit Ganzzahltyp nur die Hälfte der 64-Bit Adresse werden gespeichert memcpy(): Bei Übergabe von Adressen aus int Variablen oberer 32-Bit Teil der Adresse geht verloren 64-Bit-Erweiterungen der IA32 68

69 Softwareportierung: 64-Bit Portierung Gemeinsame Bibliotheken: IA32: Kompilierung von Bibliotheken mittels PIC (position independent code) möglich aber nicht notwendig Vorteil: Bibliothek von mehreren Anwendungen geteilt Nur eine Instanz der Library im Speicher AMD64: PIC Code jetzt zwingend vorgeschrieben Hilfreiche Makros: Allgemein 64-Bit: LP64 Speziell AMD64: x86_64 64-Bit-Erweiterungen der IA32 69

70 Softwareportierung: 64-Bit Portierung Optimierung: Funktionen der C Library werden von Anwendern oft durch eigene Versionen ersetzt Eigenlösungen meist auf einen Problemfall oder Architektur optimiert oder verwenden Assembler Erschwert die Portierung Generische Lösungen sind zu bevorzugen Dadurch Profitierung mehrere Anwendungen und Plattformen 64-Bit-Erweiterungen der IA32 70

71 Benchmarks: Windows XP RSA DivX 64-Bit-Erweiterungen der IA32 71

72 Benchmarks: Linux gzip 64-Bit-Erweiterungen der IA32 72

73 Diskussion: Aktuelle Entwicklung SSE3: 13 Befehle als Erweiterung zu SSE2 einfachere Synchronisation bessere Performance bei arithmetischen Operationen EM64T: Intel s 64-Bit Erweiterung kompatibel zu AMD64 Unterschiede bei der Interpretation überflüssiger Präfixe kein DMA Zugriff oberhalb von 4GB 64-Bit-Erweiterungen der IA32 73

74 Diskussion: Vor- und Nachteile Vorteile: 100% kompatibel zur IA32 32-Bit Software ohne Änderung einsetzbar schrittweise Migration möglich Nachteile: keine reine 64-Bit Architektur effektiv nur 43-Bit nutzbar Beibehaltung von Altlasten 64-Bit-Erweiterungen der IA32 74

75 Zusammenfassung: Architektur: AMD64 90% identisch mit IA32 Erweiterung der Register der CPU Modi des Speichermanagements 32-Bit Software / OS weiterhin lauffähig 64-Bit Software / OS empfehlenswert Keine echte 64-Bit Architektur Kompromisslösung Verdopplung der Registerbreite doppelte Leistung Software profitiert nicht automatisch 64-Bit-Erweiterungen der IA32 75

76 Literatur AMD: AMD64 Architecture Programmer's Manual, Volumes Intel: IA-32 Intel Architecture Software Developer's Manual, Volumes Daniel P. Bovet, Marco Cesati: Understanding the Linux Kernel, 2nd Edition, O'Reilly, 2002 Andreas Jaeger: Porting to 64-bit GNU/Linux Systems, Suse Linux AG, 2003 Andi Kleen: Porting Linux to x86-64, SuSE Labs, 2000 Christian Zdebel, Simon Solotko: The AMD64 Computing Platform, AMD Sunnyvale, Bit-Erweiterungen der IA32 76

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

H. Intel x86 CPU. Höhere Informatik. Systemprogrammierung: - Betriebssystemkonzepte, Ein- & Ausgabe H. Intel x86 CPU Historische Entwicklung des x86 Registersatzes. Complex Instruction Set Computer (CISC), Deskriptoren & Adressierung, Cacheausstattung. Höhere Informatik Systemprogrammierung: - Betriebssystemkonzepte,

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

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

Proseminar Konzepte von Betriebssystem-Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Von Christian Hubert Proseminar Konzepte von Betriebssystem-Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Von Christian Hubert 1.: Speicherung und Adressierung von Daten Bei der Speicheradressierung

Mehr

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

Das Assembler-Buch. Trutz Eyke Podschun. Grundlagen, Einführung und Hochsprachenoptimierung Trutz Eyke Podschun Das Assembler-Buch Grundlagen, Einführung und Hochsprachenoptimierung ^ ADDISON-WESLEY An imprint of Pearson Education Deutschland GmbH München Boston San Francisco Harlow, England

Mehr

Echtzeitbetriebssysteme

Echtzeitbetriebssysteme Speicherverwaltung (Memory Management) Aufgaben der Memory-Management-Unit ist l der Speicherschutz und l die Adressumsetzung Wird durch Hardware unterstützt l Memory Management Unit (MMU) l MMU wird vom

Mehr

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

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Grundlegende Bedeutung von Speicheradressierung: Wie sind die Daten auf Dem Speicher

Mehr

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

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13. DOSEMU Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren Matthias Felix filo@icip.de FAU 13. Juni 2007 Matthias Felix (FAU) DOSEMU 13. Juni 2007 1 / 22 Inhalt 1 Einführung

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 11 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Karlsruher Institut für Technologie

Karlsruher Institut für Technologie Karlsruher Institut für Technologie Lehrstuhl für Programmierparadigmen Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting Übungsleiter: Matthias Braun Lösung zu Übungsblatt

Mehr

Virtueller Speicher und Memory Management

Virtueller Speicher und Memory Management Virtueller Speicher und Memory Management Speicher-Paradigmen Programmierer ein großer Adressraum linear adressierbar Betriebssystem eine Menge laufender Tasks / Prozesse read-only Instruktionen read-write

Mehr

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

Prof. Dr. Sharam Gharaei. Inhaltsverzeichnis. 1 Einleitung 1. 2 Grundlage der Realisierung 2. 3 Die Realisierung 3. Literaturverzeichnis 7 Prof. Dr. Sharam Gharaei Version 1.2.0, 07.04.2017 Inhaltsverzeichnis 1 Einleitung 1 1.1 Code-bezogene Aspekte 2 1.2 Speicherungsbezogene Aspekte 2 2 Grundlage der Realisierung 2 3 Die Realisierung 3 3.1

Mehr

Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 05a 64-/32-Bit-Architekturen

Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 05a 64-/32-Bit-Architekturen Betriebssysteme I 05a 64-/32-Bit-Architekturen Prof. Dr. Dirk Müller Begriff Eine n-bit-architektur ist eine Prozessorarchitektur mit einer Wortbreite von n Bit. meist Zweierpotenzen: 8-, 16-, 32-, 64-Bit-Architekturen

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 10 am 29.06.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Intel x86 Bootstrapping

Intel x86 Bootstrapping Intel x86 Bootstrapping Meine CPU, mein Code! Andreas Galauner SigInt 2010 Democode Es gibt Democode: http://github.com/g33katwork/ SigInt10OSWorkshop git clone git://github.com/g33katwork/ SigInt10OSWorkshop.git

Mehr

Maschinensprache. 2.5 x86 Speicherzugriff. Universität Mannheim

Maschinensprache. 2.5 x86 Speicherzugriff. Universität Mannheim Maschinensprache 2.5 x86 Speicherzugriff Hauptspeicher Speicheraufbau Linearer, zusammenhängender Adressraum Kleinste adressierbare Einheit: 1 Byte Unterteilung in physikalischen, linearen und virtuellen

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen

Mehr

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) Das Programmiermodell der x86_64-architektur https://ess.cs.tu-dortmund.de/de/teaching/ws217/bsb/ Daniel Friesel, Olaf Spinczyk daniel.friesel@tu-dortmund.de https://ess.cs.tu-dortmund.de/~df

Mehr

Bibliotheks-basierte Virtualisierung

Bibliotheks-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16)

Mehr

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

Assembler. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg Assembler Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2017/2018 V. Sieh Assembler (WS16/17) 1 15 Einleitung

Mehr

Zwei Möglichkeiten die TLB zu aktualisieren

Zwei Möglichkeiten die TLB zu aktualisieren Zwei Möglichkeiten die TLB zu aktualisieren Die MMU kümmert sich um alles (Hardware-Lösung) sucht die p-entry wenn diese nicht da ist, behandelt direkt das TLB-miss zum Schluss wird die neue p-entry (virt

Mehr

i386 Interrupt-Deskriptortabelle (IDT)

i386 Interrupt-Deskriptortabelle (IDT) Agenda: IRQ-Behandlung in OO-Stubs Interrupts und Traps bei x86 Die Interrupt-Deskriptor-Tabelle (IDT) Aufbau der IDT Traps und Hardware IRQs Der Programmierbare Interruptcontroller PIC 8295A Aufbau Verwendung

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation Framework für Assignment A2 1 Übersicht Framework für Assignment A2 WH: Aufgabenstellung Klassen und Methoden Getting started Erste Instruktion aus Testdaten dekodieren 2 Aufgabenstellung Instruction-Set

Mehr

Systemaufrufe. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011

Systemaufrufe. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Systemaufrufe Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Systemaufrufe 1/17 2010-09-13 Motivation Am Beispiel

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) Das Programmiermodell der Intel IA-32 Architektur http://ess.cs.tu-.de/de/teaching/ws213/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) Das Programmiermodell der Intel IA-32 Architektur http://ess.cs.tu-dortmund.de/de/teaching/ws212/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation Pentium 1 Übersicht Motivation Architektur Instruktions-Set Adressierungsarten Geschichte Verbesserung und Erweiterungen 2 Motivation Verständnis von Prozessoren: Warum Pentium statt kleiner CPU? Pentium

Mehr

Wie schreibt man ein Betriebssystem?

Wie schreibt man ein Betriebssystem? Wie schreibt man ein Betriebssystem? Vom BIOS in den Userspace Andreas Galauner Easterhegg 2011 Democode Es gibt Democode: http://github.com/g33katwork/sigint10osworkshop git clone git://github.com/g33katwork/

Mehr

Übung zu Betriebssysteme

Übung zu Betriebssysteme Übung zu Betriebssysteme Interruptbehandlung 08. & 10. November 2017 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte

Mehr

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

Vorwort 15 Inhalt der DVD 18. Kapitel 1 Halbleitertechnik im Überblick 19. Kapitel 2 Logikschaltungen 29 Band 1 Vorwort 15 Inhalt der DVD 18 Kapitel 1 Halbleitertechnik im Überblick 19 1.1 Bipolar-Halbleiter 20 1.2 Der MOSFET 22 GUI Kapitel 2 Logikschaltungen 29 2.1 Logische Grundschaltungen 29 2.2 Sequentielle

Mehr

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

Betriebssysteme (BS) IA-32. Überblick. das Programmiermodell der Intel Architektur. Historie der Intel x86 Prozessoren. 8086: Programmiermodell Betriebssysteme (BS) alias Betriebssystembau (BSB) IA-32 das Programmiermodell der Intel Architektur Überblick Historie Basisprogrammiermodell Speicherverwaltung und Adressierung Schutz "Tasks" Zusammenfassung

Mehr

Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen

Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen J. Treibig, S. Hausmann, U. Ruede 15.09.05 / ASIM 2005 - Erlangen Gliederung 1 Einleitung Motivation Grundlagen 2 Optimierungen

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) Das Programmiermodell der Intel IA-32 Architektur Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os

Mehr

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

Speicherverwaltung. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach Speicherverwaltung Design Digitaler Systeme Prof. Dr.-Ing. Rainer Bermbach Übersicht Speicherverwaltung Virtueller Speicher Memory Management Unit Segmentierung Paging Kombination Segmentierung/ Paging

Mehr

Übung zu Betriebssystembau (Ü BS)

Übung zu Betriebssystembau (Ü BS) Übung zu Betriebssystembau (Ü BS) Interruptbehandlung in OOStuBS Wanja Hofer Lehrstuhl für Informatik IV WS 07/08 1 Agenda: IRQ-Behandlung in OOStuBS Interrupts und Traps beim x86 Die Interrupt-Deskriptor-Tabelle

Mehr

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

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009 Einführung Übungen zur Vorlesung Virtuelle Maschinen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SoSe 2009 Übungsaufgaben 1 Entwickeln

Mehr

Konzepte von Betriebssystem- Komponenten:

Konzepte von Betriebssystem- Komponenten: Konzepte von Betriebssystem- Komponenten: OS für kleine Endgeräte: Symbian OS Sven Walter Folie 1/25 S.Walter Überblick 1. Einleitung 2. Hardware Anforderungen und Architektur 3. Betriebssystem Architektur

Mehr

Freispeicherverwaltung Martin Wahl,

Freispeicherverwaltung Martin Wahl, Freispeicherverwaltung Martin Wahl, 17.11.03 Allgemeines zur Speicherverwaltung Der physikalische Speicher wird in zwei Teile unterteilt: -Teil für den Kernel -Dynamischer Speicher Die Verwaltung des dynamischen

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) 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

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) 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

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) 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

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

15. Hauptspeicher-Adressierung

15. Hauptspeicher-Adressierung 15. Hauptspeicher-Adressierung 15.1 Adressierungsmodi 15.1.1 Kompatibilitätsmodi: Real Mode: - Segmentregister*16+Offset => Adresse - Keine Segmentdeskriptoren, kein Paging, - ~ 1 MB Adressraum. 16 Bit

Mehr

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14 BS-S Betriebssysteme SS 2015 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz S: Speicherverwaltung v1.0, 2015/04/14 Betriebssysteme, SS 2015 Hans-Georg Eßer Folie S-1 Übersicht: BS Praxis und BS

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) Betriebssysteme (BS) VL 6 IA-32: Das Programmiermodell der Intel-Architektur Volkmar Sieh / Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität

Mehr

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

Das Assembler-Buch. Trutz Eyke Podschun. Grundlagen und Hochsprachenoptimierung. 4., aktualisierte Auflage ADDISON-WESLEY Trutz Eyke Podschun Das Assembler-Buch Grundlagen und Hochsprachenoptimierung 4., aktualisierte Auflage ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park,

Mehr

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner Konzepte von Betriebssystemkomponenten Referat am 24.11.2003 Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner Gliederung Adressräume Page Faults Demand Paging Copy

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) Das Programmiermodell der Intel IA-32-Architektur https://ess.cs.tu-dortmund.de/de/teaching/ws216/bsb/ Horst Schirmeier, Olaf Spinczyk horst.schirmeier@tu-dortmund.de https://ess.cs.tu-dortmund.de/~hsc

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) 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

Mehr

z/architektur von IBM

z/architektur von IBM von IBM Grundzüge einer modernen Architektur Von Matthias Fäth Gliederung Geschichtlicher Überblick Neuestes Flaggschiff Namensgebung Überblick Warum 64-Bit große Register Kompatibilität zu älteren Systemen

Mehr

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

Betriebssysteme (BS) Überblick: Einordnung dieser VL. VL 6 IA-32: Das Programmiermodell der Intel-Architektur. Historie der Intel x86-prozessoren 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

Mehr

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

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund Betriebssystembau 3. Übung Michael Engel Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund michael.engel@tu-dortmund.de http://ess.cs.uni-dortmund.de/~me/ 1 Agenda: IRQ-Behandlung

Mehr

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

Betriebssysteme (BS) Überblick: Einordnung dieser VL. VL 6 IA-32: Das Programmiermodell der Intel-Architektur. Historie der Intel x86-prozessoren Betriebssysteme (BS) Überblick: dieser VL VL 6 IA-32: Das Programmiermodell der Intel-Architektur Volkmar Sieh / Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität

Mehr

Grundlagen der Rechnerarchitektur. Einführung

Grundlagen der Rechnerarchitektur. Einführung Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Seminar Parallele Rechnerarchitekturen SS04 \ SIMD Implementierung aktueller Prozessoren 2 (Dominik Tamm) \ Inhalt. Seite 1

Seminar Parallele Rechnerarchitekturen SS04 \ SIMD Implementierung aktueller Prozessoren 2 (Dominik Tamm) \ Inhalt. Seite 1 \ Inhalt Seite 1 \ Inhalt SIMD Kurze Rekapitulation 3Dnow! (AMD) AltiVec (PowerPC) Quellen Seite 2 \ Wir erinnern uns: Nach Flynn s Taxonomie kann man jeden Computer In eine von vier Kategorien einteilen:

Mehr

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

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft Prozeß: drei häufigste Zustände Prozeß: anatomische Betrachtung jeder Prozeß verfügt über seinen eigenen Adreßraum Sourcecode enthält Anweisungen und Variablen Compiler überträgt in Assembler bzw. Binärcode

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 7 Prozesse und Threads Lothar Thiele Computer Engineering and Networks Laboratory Betriebssystem 7 2 7 3 Betriebssystem Anwendung Anwendung Anwendung Systemaufruf (syscall) Betriebssystem

Mehr

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Themen heute Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Besprechung des 9. Übungsblattes Aufgabe 2 Ist in einer Aufgabe wie hier keine explizite Wortbreite angegeben, nicht

Mehr

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2) Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Just-In-Time-Compiler

Mehr

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme Hans-Georg Eßer Hochschule München Teil 3: Zusammenhängende Speicherzuordnung 06/2009 Hans-Georg Eßer Hochschule München

Mehr

Hardware und Gerätetreiber

Hardware und Gerätetreiber Hardware und Gerätetreiber Betriebssysteme Hermann Härtig TU Dresden Übersicht Übersicht Kommunikation zwischen Hardware und CPU Interrupts I/O-Ports I/O-Speicher Busse Verwaltung von Geräten Dynamisches

Mehr

Bootvorgang des DSM-Systems Systems Plurix

Bootvorgang des DSM-Systems Systems Plurix Bootvorgang des DSM-Systems Systems Plurix Stefan Frenz Vortrag im Rahmen der Abteilungsbesprechung Voraussetzungen: CPU CPU-Modi Voraussetzungen: BIOS Rechner-Initialisierung durch das BIOS Interrupt

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell

Mehr

Rechnern netze und Organisatio on

Rechnern netze und Organisatio on Rechnernetze und Organisation Subroutines 1 Übersicht Motivation Bibliotheken Call und Return Stack Parameterübergabe Lokale Variablen Shared Libraries Interrupts und Exceptions 2 Reusability von Code

Mehr

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK)

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Schwerpunkt Linux Interrupts, Softirqs, Tasklets, Bottom Halves Interrupts: Softirqs, Tasklets, Bottom Halves 1 Thomas Engelhardt Übersicht: Klassifizierung

Mehr

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2) Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Just-In-Time-Compiler (2) 1/13 2011-09-12 Just-In-Time-Compiler

Mehr

Michael Van Canneyt Florian Klämpfl. Free Pascal

Michael Van Canneyt Florian Klämpfl. Free Pascal Michael Van Canneyt Florian Klämpfl Free Pascal Inhaltsverzeichnis Vorwort 11 I Benutzerhandbuch für Free Pascal 13 1 Einführung 14 Über den Compiler 14 Weitere Informationsquellen 15 2 Die Installation

Mehr

RO-Tutorien 17 und 18

RO-Tutorien 17 und 18 RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 12 AM 19.07.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

Mehr

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Task Wiederholung 1 System SysCalls (1) Wozu? Sicherheit Stabilität Erfordert verschiedene modes of execution: user mode privileged mode

Mehr

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache Assembler Programmierung Motivation Informatik II SS 2004 Teil 4: Assembler Programmierung Was ist ein Programm? Eine Reihe von Befehlen, die der Ausführung einer Aufgabe dient Dazu wird das Programm sequentiell

Mehr

Betriebssystemtechnik

Betriebssystemtechnik Betriebssystemtechnik Übung 2 - Den Speicher beseiten Daniel Danner Christian Dietrich Gabor Drescher May 19, 2015 Betriebssystemtechnik 1 13 Ziel dieser Übung Betriebssystemtechnik 2 13 Ziel dieser Übung

Mehr

Linux Paging, Caching und Swapping

Linux Paging, Caching und Swapping Linux Paging, Caching und Swapping Inhalte Paging Das Virtuelle Speichermodell Die Page Table im Detail Page Allocation und Page Deallocation Memory Mapping & Demand Paging Caching Die verschiedenen Caches

Mehr

x86-assemblerprogrammierung

x86-assemblerprogrammierung x86-assemblerprogrammierung von Michael Röhrs (Ergänzend zum Vortrag am 25.04.01) Einleitung Die Familie der x86-prozessoren gehört zur Klasse der CISC-Prozessoren ( Complex Instruction Set Computer ).

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Praktische Informatik

Mehr

Compute Unified Device Architecture CUDA

Compute Unified Device Architecture CUDA Compute Unified Device Architecture 06. Februar 2012 1 / 13 Gliederung 2 / 13 : Compute Unified Device Architecture entwickelt von Nvidia Corporation spezifiziert Software- und Hardwareeigenschaften Ziel:

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 21.12.2016 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Assembler - Adressierungsarten

Assembler - Adressierungsarten Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01

Mehr

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

Kompatibilitätsmodi: Real Mode: - Segmentregister*16+Offset => Adresse - Keine Segmentdeskriptoren, kein Paging, - ~ 1 MB Adressraum. 15.1.1 Kompatibilitätsmodi: Real Mode: - Segmentregister*16+Offset => Adresse - Keine Segmentdeskriptoren, kein Paging, - ~ 1 MB Adressraum. - 15. Hauptspeicher-Adressierung 15.1 Adressierungsmodi Virtual

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ Seite 1 Einführung in die Programmierung mit C Teil IV - Weiterführende Themen 16. SIMD Programmierung Was bedeutet SIMD Seite SIMD Single-Instruction, Multiple-Data, also eine Instruktion, mehrere Daten

Mehr

DOAG Konferenz 2007 in Nürnberg

DOAG Konferenz 2007 in Nürnberg DOAG Konferenz 2007 in Nürnberg Auswahl und Sizing: Die richtige Hardware (+Software) für Oracle Björn Bröhl Projektmanager Handlungsbevollmächtigter Seite 1 Inhalt Die Zielsetzung Vorgehensweise Auswahl

Mehr

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme

Mehr

Neue Prozessor-Architekturen für Desktop-PC

Neue Prozessor-Architekturen für Desktop-PC Neue Prozessor-Architekturen für Desktop-PC Bernd Däne Technische Universität Ilmenau Fakultät I/A - Institut TTI Postfach 100565, D-98684 Ilmenau Tel. 0-3677-69-1433 bdaene@theoinf.tu-ilmenau.de http://www.theoinf.tu-ilmenau.de/ra1/

Mehr

Rainbow-OS Architekturseminar Thema: Interrupt-Controller

Rainbow-OS Architekturseminar Thema: Interrupt-Controller Rainbow-OS Architekturseminar Thema: Interrupt-Controller Überblick 1. Einführung 2. Wichtige Begriffe 2.1 Interrupt Request 2.2 Interrupt Vektor 2.3 Interrupt Service Routine 3. Interrupts im Einzelnen

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

5.6 Segmentierter virtueller Speicher

5.6 Segmentierter virtueller Speicher 5.6 Segmentierter virtueller Speicher Zur Erinnerung: Virtueller Speicher ermöglicht effiziente und komfortable Nutzung des realen Speichers; Sharing ist problematisch. Segmentierung erleichtert Sharing,

Mehr

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

Betriebssysteme Sommersemester Betriebssysteme. 5. Kapitel. Adressumsetzung. Dr. Peter Tröger / Prof. M. Werner. Professur Betriebssysteme Betriebssysteme Sommersemester 2017 Betriebssysteme 5. Kapitel Adressumsetzung Dr. Peter Tröger / Prof. M. Werner Professur Betriebssysteme 5.1 Speicher schneller, teurer, kleiner Betriebssysteme Adressumsetzung

Mehr

Teil 2: Speicherstrukturen

Teil 2: Speicherstrukturen Inhalt Teil 2: Speicherstrukturen Hauptspeicher Cache Assoziativspeicher Speicherverwaltungseinheit ( Memory Management Unit ) 1 Virtueller Speicher Trennung von virtuellem Adreßraum (mit virtuellen Adressen)

Mehr

moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de

moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de Übersicht FachChinesisch SPARC - UltraSparc III/IV PowerPC - PowerPC 970(G5) X86 - Pentium4(Xeon), Itanium, (Pentium M) X86 - AthlonXP/MP,

Mehr

Instruktionen pro Takt

Instruktionen pro Takt (c) Peter Sturm, Universität Trier (u.a.) 1 Instruktionen pro Takt 500 MIPS (Dhrystone) Taktfrequenz 450 400 350 300 250 200 150 100 50 0 8086 80286 80386 80486 Pentium Pentium Pro Die-Größen: Intel Vorlesung

Mehr

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Betriebssysteme. Tutorium 2. Philipp Kirchhofer Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 4. November 2009 Philipp

Mehr

N Bit Binärzahlen. Stelle: Binär-Digit:

N Bit Binärzahlen. Stelle: Binär-Digit: N Bit Binärzahlen N Bit Binärzahlen, Beispiel 16 Bit: Stelle: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Binär-Digit: 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 Least Significant Bit (LSB) und Most Significant Bit (MSB)

Mehr

(Cache-Schreibstrategien)

(Cache-Schreibstrategien) Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. 2. Nennen Sie zwei rotierende magnetische digitale Datenspeicher. 3. Nennen Sie zwei

Mehr

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

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Intel 80x86 symmetrische Multiprozessorsysteme Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Gliederung I. Parallel Computing Einführung II.SMP Grundlagen III.Speicherzugriff

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr