Sicherheitslücken in der x86 / amd64 - Architektur

Größe: px
Ab Seite anzeigen:

Download "Sicherheitslücken in der x86 / amd64 - Architektur"

Transkript

1 Sicherheitslücken in der x86 / amd64 - Architektur Marcell Haritopoulos Matthias Paulitsch Michael Sismanovic 13. Februar 2019

2 Inhaltsverzeichnis 1 Einführung Grundinformationen Geschichtliche Entwicklung Speicherverwaltung Prozessor Modi 2 Spectre Grundinformationen Out of Order Execution Spectre Angrie Versionen und Gegenvorkehrungen 3 Meltdown Grundinformationen Vorgehensweise Unterschied zu Spectre Gegenvorkehrungen / Fixes 4 Weiterführende Literatur

3 Einführung 1 Einführung Grundinformationen Geschichtliche Entwicklung Speicherverwaltung Prozessor Modi 2 Spectre 3 Meltdown 4 Weiterführende Literatur

4 Grundinformationen

5 Grundinformationen Was ist x86? x86 ist eine ISA

6 Grundinformationen Was ist x86? x86 ist eine ISA Was ist ISA? ISA steht für (Instruction Set Architecture) z.b: POP, PUSH, ADD, JUMP...

7 Grundinformationen Was ist x86? x86 ist eine ISA Was ist ISA? ISA steht für (Instruction Set Architecture) z.b: POP, PUSH, ADD, JUMP... Woher kommt der Name x86 Die Modellnummern der ersten Intel-Prozessoren endeten fast alle mit 86 (8086, 80286, 80386, 80486, 80586)

8 Geschichte

9 Geschichte erste x86-prozessoren erschienen mit nur 16 Bits (8086 und 8088)

10 Geschichte erste x86-prozessoren erschienen mit nur 16 Bits (8086 und 8088) 1985 wurde auf 32 Bit aufgerüstet (80386)

11 Geschichte erste x86-prozessoren erschienen mit nur 16 Bits (8086 und 8088) 1985 wurde auf 32 Bit aufgerüstet (80386) 1999 wurde bekanntgegeben, dass AMD x86 auf 64 Bit aufrüsten will. Intel hingegen entschied sich dafür, eine neue Prozessorarchitektur zu entwickeln (Itanium-Architektur IA-64)

12 Virtual Memory

13 Virtual Memory Begriserklärung: Virtueller Arbeitsspeicher ermöglicht es jedem einzelnen Prozess, so zu agieren, als stünde ihm der gesamte Arbeitsspeicher allein zur Verfügung. Dadurch bekommt jedes Programm seinen eigenen Adressraum und wird von allen anderen Prozessen isoliert.

14 Virtual Memory Begriserklärung: Virtueller Arbeitsspeicher ermöglicht es jedem einzelnen Prozess, so zu agieren, als stünde ihm der gesamte Arbeitsspeicher allein zur Verfügung. Dadurch bekommt jedes Programm seinen eigenen Adressraum und wird von allen anderen Prozessen isoliert. Wieso brauchen wir Virtual Memory? Verhindert, dass Programme auf den selben physikalischen Speicher (unkontrolliert) zugreifen. Programme können sich also nicht gegenseitig beeinussen oder Daten klauen.

15 Paging

16 Paging Begriserklärung: Paging ist eine Methode zur virtuellen Adressierung. Der physische Speicher wird in 4k Page Frames aufgeteilt und in den virtuellen Speicher reingehängt. Durch gleiche Page-Gröÿen wird Fragmentierung verhindert.

17 Paging Begriserklärung: Paging ist eine Methode zur virtuellen Adressierung. Der physische Speicher wird in 4k Page Frames aufgeteilt und in den virtuellen Speicher reingehängt. Durch gleiche Page-Gröÿen wird Fragmentierung verhindert. Was ist Memory Fragmentation? Lücken in der Belegung von Speicherblöcken. Durch Allozieren und Freigeben von Speicher können nicht zusammenhängende Lücken entstehen. 5 Blöcke frei 4 Blöcke allozieren

18 Prozessor Modi

19 Prozessor Modi Real Mode: Jeder x86 Prozessor startet im Real Mode. Im Real Mode stehen weder der Erweiterter Speicher noch der Virtuelle Adressraum zur Verfügung. Der Real Mode ist sehr unsicher, deshalb wird meistens beim Starten des Betriebssystems in den Protected Mode gewechselt.

20 Prozessor Modi Real Mode: Jeder x86 Prozessor startet im Real Mode. Im Real Mode stehen weder der Erweiterter Speicher noch der Virtuelle Adressraum zur Verfügung. Der Real Mode ist sehr unsicher, deshalb wird meistens beim Starten des Betriebssystems in den Protected Mode gewechselt. Protected Mode: Der Protected Mode erlaubt das Setzen von Zugrisberechtigungen (Lesen / Schreiben / Ausführen) durch die Protection Rings. Die Protection Rings sind hierarchische Sicherheitsstufen. Es gibt 4 Ringe, angefangen mit Ring 0, der die meisten Privilegien hat und Ring 3, der die wenigsten Privilegien hat.

21 Spectre 1 Einführung 2 Spectre Grundinformationen Out of Order Execution Spectre Angrie Versionen und Gegenvorkehrungen 3 Meltdown 4 Weiterführende Literatur

22 Spectre Grundinformationen

23 Spectre Grundinformationen Entwickler informiert am: 1. Juni 2017

24 Spectre Grundinformationen Entwickler informiert am: 1. Juni 2017 Veröentlichung: 3. Jänner 2018

25 Spectre Grundinformationen Entwickler informiert am: 1. Juni 2017 Veröentlichung: 3. Jänner 2018 Google Project Zero Jann Horn Entdeckt von:

26 Spectre Grundinformationen Entwickler informiert am: 1. Juni 2017 Veröentlichung: 3. Jänner 2018 Google Project Zero Independent Jann Horn Paul Kocher Entdeckt von:

27 Spectre Grundinformationen Entwickler informiert am: 1. Juni 2017 Veröentlichung: 3. Jänner 2018 Entdeckt von: Google Project Zero Independent University of Michigan Jann Horn Paul Kocher Daniel Genkin

28 Spectre Grundinformationen Entwickler informiert am: 1. Juni 2017 Veröentlichung: 3. Jänner 2018 Entdeckt von: Google Project Zero Independent University of Michigan Rambus Security Division Jann Horn Paul Kocher Daniel Genkin Mike Hamburg

29 Spectre Grundinformationen Entwickler informiert am: 1. Juni 2017 Veröentlichung: 3. Jänner 2018 Entdeckt von: Google Project Zero Independent University of Michigan Rambus Security Division TU Graz Jann Horn Paul Kocher Daniel Genkin Mike Hamburg Moritz Lipp

30 Spectre Grundinformationen Entwickler informiert am: 1. Juni 2017 Veröentlichung: 3. Jänner 2018 Entdeckt von: Google Project Zero Independent University of Michigan Rambus Security Division TU Graz University of Adelaide Jann Horn Paul Kocher Daniel Genkin Mike Hamburg Moritz Lipp Yuval Yarom

31 Spectre Grundinformationen

32 Spectre Grundinformationen Warum heiÿt es Spectre? The name is based on the root cause, speculative execution. As it is not easy to x, it will haunt us for quite some time.

33 Spectre Grundinformationen Warum heiÿt es Spectre? The name is based on the root cause, speculative execution. As it is not easy to x, it will haunt us for quite some time. Begriserklärung: Spectre beschreibt Angrisszenarien, bei denen Prozesse Sicherheitslücken in Mikroprozessoren ausnutzen um Informationen des virtuellen Speichers auszulesen

34 Spectre Grundinformationen Warum heiÿt es Spectre? The name is based on the root cause, speculative execution. As it is not easy to x, it will haunt us for quite some time. Begriserklärung: Spectre beschreibt Angrisszenarien, bei denen Prozesse Sicherheitslücken in Mikroprozessoren ausnutzen um Informationen des virtuellen Speichers auszulesen Zusätzliche Vorraussetzung Mikroprozessor verwendet out-of-order-execution

35 Out of Order Execution

36 Out of Order Execution Begriserklärung: Bezeichnet die Möglichkeit, Maschinenbefehle in den Ausführungseinheiten eines Prozessors in einer anderen Reihenfolge auszuführen, als sie im Programmcode stehen.

37 Out of Order Execution Begriserklärung: Bezeichnet die Möglichkeit, Maschinenbefehle in den Ausführungseinheiten eines Prozessors in einer anderen Reihenfolge auszuführen, als sie im Programmcode stehen. Vorteil Stufen der Pipeline besser ausgelastet

38 Out of Order Execution Begriserklärung: Bezeichnet die Möglichkeit, Maschinenbefehle in den Ausführungseinheiten eines Prozessors in einer anderen Reihenfolge auszuführen, als sie im Programmcode stehen. Vorteil Stufen der Pipeline besser ausgelastet Problematik Nur auf von einander unabhängige Befehle anwendbar

39 Out of Order Execution bei Spectre

40 Out of Order Execution bei Spectre Ausnützen der Out of Order Execution:

41 Out of Order Execution bei Spectre Ausnützen der Out of Order Execution: Prozessausführung beeinusst

42 Out of Order Execution bei Spectre Ausnützen der Out of Order Execution: Prozessausführung beeinusst Inhalt einer Speicherzelle aus dem Adressraum ausgelesen

43 Out of Order Execution bei Spectre Ausnützen der Out of Order Execution: Prozessausführung beeinusst Inhalt einer Speicherzelle aus dem Adressraum ausgelesen Hinterlässt bemerkbare Spur im Cache

44 Speculative Execution

45 Speculative Execution Begriserklärung: Ist eine Optimierungstechnik, bei der ein Computer System eine Tätigkeit ausführt, die im weiteren Programmablauf nicht zwingend benötigt wird. Der Prozess wird beendet, bevor überhaupt bekannt ist, ob dieser nötig war, oder nicht.

46 Speculative Execution Begriserklärung: Ist eine Optimierungstechnik, bei der ein Computer System eine Tätigkeit ausführt, die im weiteren Programmablauf nicht zwingend benötigt wird. Der Prozess wird beendet, bevor überhaupt bekannt ist, ob dieser nötig war, oder nicht. Ziel: Einer Verzögerung in der Ausführung vorzubeugen

47 Speculative Execution Begriserklärung: Ist eine Optimierungstechnik, bei der ein Computer System eine Tätigkeit ausführt, die im weiteren Programmablauf nicht zwingend benötigt wird. Der Prozess wird beendet, bevor überhaupt bekannt ist, ob dieser nötig war, oder nicht. Ziel: Einer Verzögerung in der Ausführung vorzubeugen Ungebrauchte Ausführungen: Änderungen werden rückgängig gemacht und die Ergebnisse werden ignoriert

48 Spectre Angrie

49 Spectre Angrie Zitat: Speculative logic is unfaithful in how it executes, can access the victim's memory and registers, and can perform operations with measurable side eects.

50 Spectre Angrie Zitat: Speculative logic is unfaithful in how it executes, can access the victim's memory and registers, and can perform operations with measurable side eects. Konsequenzen:

51 Spectre Angrie Zitat: Speculative logic is unfaithful in how it executes, can access the victim's memory and registers, and can perform operations with measurable side eects. Konsequenzen: Spectre Angrie Nutzen Sicherheitslücken in der Implementierung der Speculative Execution aus

52 Spectre Angrie Zitat: Speculative logic is unfaithful in how it executes, can access the victim's memory and registers, and can perform operations with measurable side eects. Konsequenzen: Spectre Angrie Nutzen Sicherheitslücken in der Implementierung der Speculative Execution aus Zugri auf Speicher und Register möglich

53 Spectre Angrie

54 Spectre Angrie Zitat: Spectre attacks involve inducing a victim to speculatively perform operations that would not occur during correct program execution and which leak the victim's condential information via a side channel to the adversary

55 Spectre Angrie Zitat: Spectre attacks involve inducing a victim to speculatively perform operations that would not occur during correct program execution and which leak the victim's condential information via a side channel to the adversary Konsequenzen

56 Spectre Angrie Zitat: Spectre attacks involve inducing a victim to speculatively perform operations that would not occur during correct program execution and which leak the victim's condential information via a side channel to the adversary Konsequenzen Befehle ausgeführt,die bei einem korrekten Ablauf nicht ausgeführt werden würden

57 Spectre Angrie Zitat: Spectre attacks involve inducing a victim to speculatively perform operations that would not occur during correct program execution and which leak the victim's condential information via a side channel to the adversary Konsequenzen Befehle ausgeführt,die bei einem korrekten Ablauf nicht ausgeführt werden würden Vertrauliche Informationen über side channel übertragen

58 Spectre Angrie

59 Spectre Angrie Zitat: Speculative execution implementations violate the security assumptions underpinning numerous software security mechanisms, including operating system process separation, containerization, just-in-time (JIT) compilation, and countermeasures to cache timing and side-channel attacks.

60 Spectre Angrie Zitat: Speculative execution implementations violate the security assumptions underpinning numerous software security mechanisms, including operating system process separation, containerization, just-in-time (JIT) compilation, and countermeasures to cache timing and side-channel attacks. Konsequenzen

61 Spectre Angrie Zitat: Speculative execution implementations violate the security assumptions underpinning numerous software security mechanisms, including operating system process separation, containerization, just-in-time (JIT) compilation, and countermeasures to cache timing and side-channel attacks. Konsequenzen Mehrere Sicherheitsvorkehrungen zu Nichte gemacht

62 Spectre Angrie Zitat: Speculative execution implementations violate the security assumptions underpinning numerous software security mechanisms, including operating system process separation, containerization, just-in-time (JIT) compilation, and countermeasures to cache timing and side-channel attacks. Konsequenzen Mehrere Sicherheitsvorkehrungen zu Nichte gemacht Viele verschiedene Lücken ausnützbar

63 Spectre Versionen und Gegenvorkehrungen

64 Spectre Versionen und Gegenvorkehrungen Mehr als zehn verschiedene Versionen bekannt

65 Spectre Versionen und Gegenvorkehrungen Mehr als zehn verschiedene Versionen bekannt Einige nur durch Hardware Änderungen behebbar

66 Spectre Versionen und Gegenvorkehrungen Mehr als zehn verschiedene Versionen bekannt Einige nur durch Hardware Änderungen behebbar Mögliche Gegenvorkehrungen bewirken massive Performance Nachteile

67 Meltdown 1 Einführung 2 Spectre 3 Meltdown Grundinformationen Veröentlichung Cache Das Betriebssystem im virtuelle Adressraum Vorgehensweise Unterschied zu Spectre Gegenvorkehrungen / Fixes 4 Weiterführende Literatur

68 Meltdown - Grundinformationen Veröentlichung

69 Meltdown - Grundinformationen Veröentlichung Meltdown ist eine Sicherheitslücke, die hardwareseitige Zugrisbeschränkungen schmelzen lässt.

70 Meltdown - Grundinformationen Veröentlichung Meltdown ist eine Sicherheitslücke, die hardwareseitige Zugrisbeschränkungen schmelzen lässt. Entdeckung: 28. Juli 2017

71 Meltdown - Grundinformationen Veröentlichung Meltdown ist eine Sicherheitslücke, die hardwareseitige Zugrisbeschränkungen schmelzen lässt. Entdeckung: 28. Juli 2017 Veröentlichung: 3. Jänner 2018

72 Meltdown - Grundinformationen Veröentlichung Meltdown ist eine Sicherheitslücke, die hardwareseitige Zugrisbeschränkungen schmelzen lässt. Entdeckung: 28. Juli 2017 Veröentlichung: 3. Jänner 2018 Entdecker:

73 Meltdown - Grundinformationen Veröentlichung Meltdown ist eine Sicherheitslücke, die hardwareseitige Zugrisbeschränkungen schmelzen lässt. Entdeckung: 28. Juli 2017 Veröentlichung: 3. Jänner 2018 TU Graz Moritz Lipp Michael Schwarz Daniel Gruss Stefan Mangard Entdecker:

74 Meltdown - Grundinformationen Veröentlichung Meltdown ist eine Sicherheitslücke, die hardwareseitige Zugrisbeschränkungen schmelzen lässt. Entdeckung: 28. Juli 2017 Veröentlichung: 3. Jänner 2018 Entdecker: TU Graz Cyberus Technology GmbH Moritz Lipp Michael Schwarz Daniel Gruss Stefan Mangard Thomas Prescher Werner Haas

75 Meltdown - Grundinformationen Veröentlichung Meltdown ist eine Sicherheitslücke, die hardwareseitige Zugrisbeschränkungen schmelzen lässt. Entdeckung: 28. Juli 2017 Veröentlichung: 3. Jänner 2018 Entdecker: TU Graz Cyberus Technology GmbH G-Data Advanced Analytics Moritz Lipp Michael Schwarz Daniel Gruss Stefan Mangard Thomas Prescher Werner Haas Anders Fogh

76 Meltdown - Grundinformationen Veröentlichung Meltdown ist eine Sicherheitslücke, die hardwareseitige Zugrisbeschränkungen schmelzen lässt. Entdeckung: 28. Juli 2017 Veröentlichung: 3. Jänner 2018 Entdecker: TU Graz Cyberus Technology GmbH G-Data Advanced Analytics Google Project Zero Moritz Lipp Michael Schwarz Daniel Gruss Stefan Mangard Thomas Prescher Werner Haas Anders Fogh Jann Horn

77 Meltdown - Grundinformationen Veröentlichung Meltdown ist eine Sicherheitslücke, die hardwareseitige Zugrisbeschränkungen schmelzen lässt. Entdeckung: 28. Juli 2017 Veröentlichung: 3. Jänner 2018 Entdecker: TU Graz Cyberus Technology GmbH G-Data Advanced Analytics Google Project Zero University of Michigan Moritz Lipp Michael Schwarz Daniel Gruss Stefan Mangard Thomas Prescher Werner Haas Anders Fogh Jann Horn Daniel Genkin

78 Meltdown - Grundinformationen Veröentlichung Meltdown ist eine Sicherheitslücke, die hardwareseitige Zugrisbeschränkungen schmelzen lässt. Entdeckung: 28. Juli 2017 Veröentlichung: 3. Jänner 2018 Entdecker: TU Graz Cyberus Technology GmbH G-Data Advanced Analytics Google Project Zero University of Michigan University of Adelaide Moritz Lipp Michael Schwarz Daniel Gruss Stefan Mangard Thomas Prescher Werner Haas Anders Fogh Jann Horn Daniel Genkin Yuval Yarom

79 Meltdown - Grundinformationen Veröentlichung Meltdown ist eine Sicherheitslücke, die hardwareseitige Zugrisbeschränkungen schmelzen lässt. Entdeckung: 28. Juli 2017 Veröentlichung: 3. Jänner 2018 Entdecker: TU Graz Cyberus Technology GmbH G-Data Advanced Analytics Google Project Zero University of Michigan University of Adelaide Rambus Security Division Moritz Lipp Michael Schwarz Daniel Gruss Stefan Mangard Thomas Prescher Werner Haas Anders Fogh Jann Horn Daniel Genkin Yuval Yarom Mike Hamburg

80 Meltdown - Grundinformationen Cache

81 Meltdown - Grundinformationen Cache Zugri auf Arbeitsspeicher ist vergleichsweise teuer

82 Meltdown - Grundinformationen Cache Zugri auf Arbeitsspeicher ist vergleichsweise teuer Räumliche und zeitliche Lokalität trit auf viele Programme zu

83 Meltdown - Grundinformationen Cache Cache Zugri auf Arbeitsspeicher ist vergleichsweise teuer Räumliche und zeitliche Lokalität trit auf viele Programme zu Caches sind kleine Zwischenspeicher, die direkt im Prozessor verbaut sind. Nahegelegene Daten werden vorgeladen und abgelegt, um auf diese schneller zugreifen zu können.

84 Meltdown - Grundinformationen Cache

85 Meltdown - Grundinformationen Cache Zugri auf gecached Daten ist wesentlich schneller

86 Meltdown - Grundinformationen Cache Zugri auf gecached Daten ist wesentlich schneller Moderne CPUs haben drei bis vier Levels an Caches. Je gröÿer, desto langsamer ist der Zugri

87 Meltdown - Grundinformationen Cache Zugri auf gecached Daten ist wesentlich schneller Moderne CPUs haben drei bis vier Levels an Caches. Je gröÿer, desto langsamer ist der Zugri Abbildung: Speicherhierachie 1 1 Quelle: TU Chemnitz - Rechnerarchitektur und -systeme

88 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum

89 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Programm-Adressraum Kernel-Adressraum CR3

90 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Programm-Adressraum Kernel-Adressraum System Call CR3

91 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Programm-Adressraum Kernel-Adressraum Interrupt System Call CR3

92 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Programm-Adressraum Kernel-Adressraum Interrupt System Call CR3

93 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Programm-Adressraum Kernel-Adressraum CR3

94 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Programm-Adressraum Kernel-Adressraum Ausführung fortsetzen CR3

95 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Programm-Adressraum Kernel-Adressraum CR3

96 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Programm-Adressraum Kernel-Adressraum CR3

97 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Kernel-Adressraum Programm-Adressraum CR3

98 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Kernel-Adressraum 0xffff (bei Linux x86 64) Programm hat keinen R/W-Zugriff ab dieser Adresse Programm-Adressraum CR3

99 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Kernel-Adressraum Programm-Adressraum System Call CR3

100 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Kernel-Adressraum Interrupt Programm-Adressraum System Call CR3

101 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Kernel-Adressraum Interrupt Programm-Adressraum System Call CR3

102 Meltdown - Grundinformationen Das Betriebssystem im virtuelle Adressraum Ausführung fortsetzen Kernel-Adressraum Programm-Adressraum CR3

103 Meltdown - Vorgehensweise

104 Meltdown - Vorgehensweise 0xA5 0xBADEAFFE Kernel-Adressraum Programm-Adressraum rax rbx rcx CPU-Register BADEAFFE...

105 Meltdown - Vorgehensweise mov al, byte [rcx] 0xA5 0xBADEAFFE Kernel-Adressraum Programm-Adressraum A5 BADEAFFE... rax rbx rcx CPU-Register

106 Meltdown - Vorgehensweise mov al, byte [rcx] 0xA5 0xBADEAFFE Kernel-Adressraum Programm-Adressraum A5 BADEAFFE... rax rbx rcx CPU-Register

107 Meltdown - Vorgehensweise mov al, byte [rcx] 0xA5 Kernel-Adressraum 0xBADEAFFE A5 Reorder Buffer Programm-Adressraum BADEAFFE rax rbx rcx CPU-Register...

108 Meltdown - Vorgehensweise mov al, byte [rcx] 0xA5 Kernel-Adressraum 0xBADEAFFE A5 Reorder Buffer Programm-Adressraum A5 BADEAFFE rax rbx rcx CPU-Register...

109 Meltdown - Vorgehensweise mov al, byte [rcx] 0xA5 Kernel-Adressraum 0xBADEAFFE A5 Reorder Buffer Programm-Adressraum A5 BADEAFFE rax rbx rcx CPU-Register...

110 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC 0xA5 Kernel-Adressraum 0xBADEAFFE A5000 A5 Reorder Buffer Programm-Adressraum A5000 BADEAFFE rax rbx rcx CPU-Register...

111 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC 0xA5 Kernel-Adressraum 0xBADEAFFE A5000 A5 Reorder Buffer Programm-Adressraum A5000 BADEAFFE rax rbx rcx CPU-Register...

112 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC A5000 Reorder Buffer A5 Page FF Page FE Page FD Page FC. Page A5. Page 03 Page 02 Page 01 Page Pages à 4KiB 0xA5 Kernel-Adressraum Programm-Adressraum 0xBADEAFFE 0xBA A5000 BA BADEAFFE... rax rbx rcx CPU-Register

113 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC A5000 Reorder Buffer A5 Page FF Page FE Page FD Page FC. Page A5. Page 03 Page 02 Page 01 Page Pages à 4KiB 0xA5 Kernel-Adressraum Programm-Adressraum 0xBADEAFFE 0xBA L1-Cache A5000 BA BADEAFFE... rax rbx rcx CPU-Register

114 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC mov rbx, qword [rbx + rax] A5000 A5 Reorder Buffer Page FF Page FE Page FD Page FC. Page A5. Page 03 Page 02 Page 01 Page Pages à 4KiB 0xA5 Kernel-Adressraum Programm-Adressraum 0xBADEAFFE 0xBA L1-Cache A5000 BA BADEAFFE... rax rbx rcx CPU-Register

115 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC mov rbx, qword [rbx + rax] BA0A5000 A5000 A5 Reorder Buffer Page FF Page FE Page FD Page FC. Page A5. Page 03 Page 02 Page 01 Page Pages à 4KiB 0xA5 Kernel-Adressraum Programm-Adressraum 0xBADEAFFE 0xBA L1-Cache A5000 BA BADEAFFE... rax rbx rcx CPU-Register

116 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC mov rbx, qword [rbx + rax] BA0A5000 A5000 A5 Reorder Buffer Page A5 Page FF Page FE Page FD Page FC. Page A5. Page 03 Page 02 Page 01 Page Pages à 4KiB 0xA5 Kernel-Adressraum Programm-Adressraum 0xBADEAFFE 0xBA L1-Cache A5000 BA BADEAFFE... rax rbx rcx CPU-Register

117 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC mov rbx, qword [rbx + rax] BA0A5000 A5000 A5 Reorder Buffer Page A5 Page FF Page FE Page FD Page FC. Page A5. Page 03 Page 02 Page 01 Page Pages à 4KiB 0xA5 Kernel-Adressraum Programm-Adressraum 0xBADEAFFE 0xBA L1-Cache A5000 BA BADEAFFE... rax rbx rcx CPU-Register

118 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC mov rbx, qword [rbx + rax] BA0A5000 A5000 A5 Reorder Buffer Page A5 Page FF Page FE Page FD Page FC. Page A5. Page 03 Page 02 Page 01 Page Pages à 4KiB 0xA5 Kernel-Adressraum Programm-Adressraum 0xBADEAFFE 0xBA L1-Cache A5000 BA BADEAFFE... rax rbx rcx CPU-Register

119 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC mov rbx, qword [rbx + rax] Reorder Buffer Page A5 Page FF Page FE Page FD Page FC. Page A5. Page 03 Page 02 Page 01 Page Pages à 4KiB 0xA5 Kernel-Adressraum Programm-Adressraum 0xBADEAFFE 0xBA L1-Cache BA BADEAFFE... rax rbx rcx CPU-Register

120 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC mov rbx, qword [rbx + rax] Reorder Buffer Page A5 Page FF Page FE Page FD Page FC. Page A5. Page 03 Page 02 Page 01 Page Pages à 4KiB 0xA5 Kernel-Adressraum Programm-Adressraum 0xBADEAFFE 0xBA L1-Cache BA BADEAFFE... rax rbx rcx CPU-Register

121 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC mov rbx, qword [rbx + rax] Reorder Buffer Page A5 Page FF Page FE Page FD Page FC. Page A5. Page 03 Page 02 Page 01 Page Pages à 4KiB 0xA5 Kernel-Adressraum Programm-Adressraum 0xBADEAFFE 0xBA L1-Cache BA BADEAFFE... rax rbx rcx CPU-Register

122 Meltdown - Vorgehensweise mov al, byte [rcx] shl rax, 0xC mov rbx, qword [rbx + rax] Reorder Buffer Page A5 0xBADEAFFE ist 0xA5 Page FF Page FE Page FD Page FC. Page A5. Page 03 Page 02 Page 01 Page Pages à 4KiB 0xA5 Kernel-Adressraum Programm-Adressraum 0xBADEAFFE 0xBA L1-Cache BA BADEAFFE... rax rbx rcx CPU-Register

123 Meltdown - Unterschied zu Spectre Meltdown unterscheidet sich von Spectre in vielen Hinsichten: Meltdown Spectre

124 Meltdown - Unterschied zu Spectre Meltdown unterscheidet sich von Spectre in vielen Hinsichten: Prozessoren Meltdown Viele Intel CPUs Einige ARM CPUs Spectre Unter anderem viele Intel, AMD und ARM CPUs

125 Meltdown - Unterschied zu Spectre Meltdown unterscheidet sich von Spectre in vielen Hinsichten: Prozessoren Mechanismus Meltdown Viele Intel CPUs Einige ARM CPUs Race Condition: Berechtigungsprüfung nach spekulativer Ausführung Spectre Unter anderem viele Intel, AMD und ARM CPUs Branch Prediction

126 Meltdown - Unterschied zu Spectre Meltdown unterscheidet sich von Spectre in vielen Hinsichten: Prozessoren Mechanismus Datenzugri Meltdown Viele Intel CPUs Einige ARM CPUs Race Condition: Berechtigungsprüfung nach spekulativer Ausführung Kernel-Speicher und somit gesamter physikalischer Speicher Spectre Unter anderem viele Intel, AMD und ARM CPUs Branch Prediction Andere User-Prozesse

127 Meltdown - Gegenvorkehrungen / Fixes

128 Meltdown - Gegenvorkehrungen / Fixes Vollständige Behebung nur über Austausch von Hardware möglich (z.b. Whiskey Lake für Laptops oder Cascade Lake für Server)

129 Meltdown - Gegenvorkehrungen / Fixes Vollständige Behebung nur über Austausch von Hardware möglich (z.b. Whiskey Lake für Laptops oder Cascade Lake für Server) KPTI - Workaround: Jeder Prozess erhält zwei Page-Tabellen: Abbildung: KPTI 2 2 Quelle: Wikimedia Foundation

130 Meltdown - Gegenvorkehrungen / Fixes Vollständige Behebung nur über Austausch von Hardware möglich (z.b. Whiskey Lake für Laptops oder Cascade Lake für Server) KPTI - Workaround: Jeder Prozess erhält zwei Page-Tabellen: Nur essentieller Kernel-Code und -Daten werden im Ring 3 gemapped Abbildung: KPTI 2 2 Quelle: Wikimedia Foundation

131 Meltdown - Gegenvorkehrungen / Fixes Vollständige Behebung nur über Austausch von Hardware möglich (z.b. Whiskey Lake für Laptops oder Cascade Lake für Server) KPTI - Workaround: Jeder Prozess erhält zwei Page-Tabellen: Nur essentieller Kernel-Code und -Daten werden im Ring 3 gemapped Bei Wechsel in Ring 0 wird gesamter Kernel eingehängt Abbildung: KPTI 2 2 Quelle: Wikimedia Foundation

132 Weiterführende Literatur 1 Generell Meltdown / Spectre Webpage und Paper ( Google Project Zero Blog ( ) 2 Meltdown-spezisch Referenz-Implementation der TU Graz (Github: IAIK/meltdown) G DATA Analytics Blog ( )

133 Vielen Dank für Ihre Aufmerksamkeit

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

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

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

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle

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

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

Cache Blöcke und Offsets

Cache Blöcke und Offsets Cache Blöcke und Offsets Ein Cache Eintrag speichert in der Regel gleich mehrere im Speicher aufeinander folgende Bytes. Grund: räumliche Lokalität wird wie folgt besser ausgenutzt: Bei Cache Miss gleich

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

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset. Quiz Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur

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

Wie Sie sicher erfahren haben, wurden Anfang des

Wie Sie sicher erfahren haben, wurden Anfang des MELTDOWN UND SPECTRE Kernschmelze von Intel-CPUs So funktioniert das Auslesen von Kernel Memory von einem Anwendungsprogramm aus. Wie Sie sicher erfahren haben, wurden Anfang des Jahres von IT-Security-Forschern

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

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Grundlagen der Rechnerarchitektur. Ein und Ausgabe Grundlagen der Rechnerarchitektur Ein und Ausgabe Übersicht Grundbegriffe Hard Disks und Flash RAM Zugriff auf IO Geräte RAID Systeme SS 2012 Grundlagen der Rechnerarchitektur Ein und Ausgabe 2 Grundbegriffe

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

Instruktionssatz-Architektur

Instruktionssatz-Architektur Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile

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

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

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

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

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1 E-1 Technische Grundlagen der Informatik 2 SS 2009 Einleitung R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt Lernziel E-2 Verstehen lernen, wie ein Rechner auf der Mikroarchitektur-Ebene

Mehr

Vorlesung Rechnerarchitektur. Einführung

Vorlesung Rechnerarchitektur. Einführung Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher

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

Analyse aktueller Cache-Architekturen hinsichtlich Struktur und Effizienz. Markus Krause

Analyse aktueller Cache-Architekturen hinsichtlich Struktur und Effizienz. Markus Krause Analyse aktueller Cache-Architekturen hinsichtlich Struktur und Effizienz Markus Krause Dresden, Gliederung 1. Einführung 2. Problemstellung 3. Lösungen a) Miss Rate b) Miss Penalty c) Hit Time 4. Zusammenfassung

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

Leichtgewichtsprozesse

Leichtgewichtsprozesse Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden

Mehr

Leichtgewichtsprozesse

Leichtgewichtsprozesse Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden

Mehr

Der von Neumann Computer

Der von Neumann Computer Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$

Mehr

Klausur Betriebssysteme

Klausur Betriebssysteme Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme 5.2.2016 Die Dauer der Klausur beträgt 90 Minuten. Es sind keine Unterlagen und Hilfsmittel erlaubt. Bitte bearbeiten Sie die Aufgaben soweit wie

Mehr

Aktuelle Themen der Informatik: Virtualisierung

Aktuelle Themen der Informatik: Virtualisierung Aktuelle Themen der Informatik: Virtualisierung Sebastian Siewior 15 Mai 2006 1 / 22 1 Überblick 2 Techniken 3 Paravirtualisierung 4 Ende 2 / 22 Wieso Virtualisieren Wieso mehrere Betriebsysteme auf einer

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

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock

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

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher

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

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

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

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

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann Speicher- und Cacheverwaltung unter Linux Ralf Petring & Guido Schaumann Übersicht Virtueller Adressraum Virtuelle Speicheraufteilung Reale Speicheraufteilung Speicherverwaltung Speicherzugriff Auslagerungsstrategien

Mehr

Grundlagen Rechnerarchitektur und Betriebssysteme

Grundlagen Rechnerarchitektur und Betriebssysteme Grundlagen Rechnerarchitektur und Betriebssysteme Johannes Formann Definition Computer: Eine Funktionseinheit zur Verarbeitung von Daten, wobei als Verarbeitung die Durchführung mathematischer, umformender,

Mehr

, 2014W Übungsgruppen: Mo., Mi.,

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2014W Übungsgruppen: Mo., 12.01. Mi., 14.01.2015 Aufgabe 1: Cache-Adressierung Ein Prozessor mit einer Adresslänge von 20 Bit

Mehr

Übersicht. Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe. AVS SS Teil 12/Protection

Übersicht. Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe. AVS SS Teil 12/Protection Übersicht Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe 2 Behandelter Bereich: Virtualisierung Syscall-Schnittstelle Ports Server Apps Server Apps Betriebssystem Protokolle Betriebssystem

Mehr

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert? SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 2 2014-04-28 bis 2014-05-02 Aufgabe 1: Unterbrechungen (a) Wie unterscheiden sich synchrone

Mehr

Übung zu Betriebssystemtechnik

Übung zu Betriebssystemtechnik Übung zu Betriebssystemtechnik Nachrichtenaustausch und Copy-on-Write 11. Juni 28 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl

Mehr

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Prinzipieller Aufbau und Funktionsweise eines Prozessors Prinzipieller Aufbau und Funktionsweise eines Prozessors [Technische Informatik Eine Einführung] Univ.- Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg

Mehr

Name : Klasse : Punkte : Note :

Name : Klasse : Punkte : Note : ESI Semesterendprüfung 15.6.2009 Name : Klasse : Punkte : Note : Zeit: 12.50 bis 13.35 Die Aufgaben sind möglichst direkt auf den Blättern zu lösen (Antworten bitte in ganzen Sätzen!), bei Bedarf die Rückseite

Mehr

4. Übung - Rechnerarchitektur/Betriebssysteme

4. Übung - Rechnerarchitektur/Betriebssysteme 4. Übung - Rechnerarchitektur/Betriebssysteme 1. Aufgabe: Caching Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen a) Was ist ein Cache? Wann kommt Caching zum Einsatz? b) Welchen Vorteil

Mehr

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

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Dominik Schoenwetter Erlangen, 30. Juni 2014 Lehrstuhl für Informatik 3 (Rechnerarchitektur)

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

Mehr

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach Cache-Speicher Design Digitaler Systeme Prof. Dr.-Ing. Rainer Bermbach Übersicht Cache-Speicher Warum Cache-Speicher? Cache-Strukturen Aufbau und Organisation von Caches Cache-Architekturen Cache-Strategien

Mehr

Martin Stiller, Fakultät Informatik, Institut für Technische Informatik. LLVA: Eine virtuelle Befehlssatzarchitektur

Martin Stiller, Fakultät Informatik, Institut für Technische Informatik. LLVA: Eine virtuelle Befehlssatzarchitektur Martin Stiller, Fakultät Informatik, Institut für Technische Informatik LLVA: Eine virtuelle Befehlssatzarchitektur Hauptseminar Technische Informatik, 02.05.2012 Gliederung 1 Virtual Instruction Set Computers

Mehr

Projekt für Systemprogrammierung WS 06/07

Projekt für Systemprogrammierung WS 06/07 Dienstag 30.01.2007 Projekt für Systemprogrammierung WS 06/07 Von: Hassan Bellamin E-Mail: h_bellamin@web.de Gliederung: 1. Geschichte und Definition 2. Was ist Virtualisierung? 3. Welche Virtualisierungssoftware

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

Intel P6 (Intel Pentium Pro) - Besonderheiten, Techniken und Architektur

Intel P6 (Intel Pentium Pro) - Besonderheiten, Techniken und Architektur Intel P6 (Intel Pentium Pro) - Besonderheiten, Techniken und Architektur P R O Z E S S O R - U N D R E C H N E R A R C H I T E K T U R P R Ä S E N T A T I O N 1 1. 0 7. 2 0 1 8 B E R N H A R D S A N G

Mehr

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler 1 Überlegungen Wenn wir einige Seiten eines Programms in den Speicher laden, brauchen wir eine Strategie, welche Seiten als nächstes geladen werden

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

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22 Cache Grundlagen Schreibender Cache Zugriff SS 212 Grundlagen der Rechnerarchitektur Speicher 22 Eine einfache Strategie Schreibt man nur in den Cache, werden Cache und darunter liegender Speicher inkonsistent.

Mehr

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

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10 Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10 Dominik Schoenwetter Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität

Mehr

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Aufbau eines modernen Betriebssystems (Windows NT 5.0) Aufbau eines modernen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 Proseminar KVBK Gliederung 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung 2. Umsetzung

Mehr

Übung zu Betriebssystemtechnik

Übung zu Betriebssystemtechnik Übung zu Betriebssystemtechnik Paging in StuBSmI 14. Mai 2018 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte Systeme

Mehr

Vorlesung: Virtualisierung und Rechenzentrumsinfrastrukturen. Lars Göbel & Christian Müller VL04: Einführung in die Virtualisierung

Vorlesung: Virtualisierung und Rechenzentrumsinfrastrukturen. Lars Göbel & Christian Müller VL04: Einführung in die Virtualisierung Vorlesung: Lars Göbel & Christian Müller VL04: Einführung in die Virtualisierung Themenüberblick Virtualisierung VL 02: Einführung in die Virtualisierung (heute) VL 06: VL 08: XaaS VL 09: PaaS + SaaS VL

Mehr

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Paging. Einfaches Paging. Paging mit virtuellem Speicher Paging Einfaches Paging Paging mit virtuellem Speicher Einfaches Paging Wie bisher (im Gegensatz zu virtuellem Speicherkonzept): Prozesse sind entweder ganz im Speicher oder komplett ausgelagert. Im Gegensatz

Mehr

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren der beiden Registerwerte $t1 und $t2 in einem Zielregister

Mehr

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

Aufgabe 1 Entwicklung einer Virtuellen Maschine

Aufgabe 1 Entwicklung einer Virtuellen Maschine Aufgabe 1 Entwicklung einer Virtuellen Maschine Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Entwicklung

Mehr

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Prog. Counter Memory Adress Register Befehl holen Incrementer Main store Instruction register Op-code Address Memory Buffer Register CU Clock Control

Mehr

Lock-free Datenstrukturen

Lock-free Datenstrukturen Lock-free Datenstrukturen Eine Einführung in die lock-free Programmierung Burak Ok Friedrich-Alexander Universität Erlangen-Nürnberg (FAU) 24. Januar 2017 burak.ok@fau.de Lock-free Datenstrukturen (24.

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

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

4. Übung - Rechnerarchitektur/Betriebssysteme

4. Übung - Rechnerarchitektur/Betriebssysteme 4. Übung - Rechnerarchitektur/Betriebssysteme 1. Aufgabe: Caching Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen a) Was ist ein Cache? Wann kommt Caching zum Einsatz? b) Welchen Vorteil

Mehr

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer Übung RA, Kapitel 1.5 1. Beantworten Sie bitte folgende Repetitionsfragen 1. Beschreiben Sie in eigenen Worten und mit einer Skizze die Schichtung einer Multilevel Maschine. Folie 5, rechte Seite 2. Welche

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

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

Technische Realisierung (1)

Technische Realisierung (1) Technische Realisierung () Einfachstes Modell: Prozess (Daten+Code) befindet sich im Hintergrundspeicher Bei teilweise eingelagerten Prozessen: Zusätzlich Teile im Hauptspeicher Logische Adressen überdecken

Mehr

Prozessor- und Rechnerarchitekturen (Master)

Prozessor- und Rechnerarchitekturen (Master) Prozessor- und Rechnerarchitekturen (Master) Themen am 28.06.17: Semesterrückblick, Terminplanung Ihrer Vorträge ProRecArc17_V10 Ulrich Schaarschmidt HS Düsseldorf, SS 2017 V1 (5.4.): Termine + mögliche

Mehr

5. Aufgabenblatt Speicherverwaltung

5. Aufgabenblatt Speicherverwaltung Faculty of Computer Science Institute for System Architecture, Operating Systems Group Betriebssysteme und Sicherheit, WS 0/. Aufgabenblatt Speicherverwaltung Geplante Bearbeitungszeit: drei Wochen Aufgabe.

Mehr

Betriebssysteme Vorstellung

Betriebssysteme Vorstellung Am Anfang war die Betriebssysteme Vorstellung CPU Ringvorlesung SE/W WS 08/09 1 2 Monitor CPU Komponenten eines einfachen PCs Bus Holt Instruktion aus Speicher und führt ihn aus Befehlssatz Einfache Operationen

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

Rückschlüsse durch Host- Performance-Daten auf das Datenbankverhalten. DOAG Regio Karlsruhe 13. Juni 2013

Rückschlüsse durch Host- Performance-Daten auf das Datenbankverhalten. DOAG Regio Karlsruhe 13. Juni 2013 Rückschlüsse durch Host- Performance-Daten auf das Datenbankverhalten DOAG Regio Karlsruhe 13. Juni 2013 Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz:

Mehr

Computer-Architektur Ein Überblick

Computer-Architektur Ein Überblick Computer-Architektur Ein Überblick Johann Blieberger Institut für Rechnergestützte Automation Computer-Architektur Ein Überblick p.1/27 Computer-Aufbau: Motherboard Computer-Architektur Ein Überblick p.2/27

Mehr

Abbilden von virtuellen auf physikalische Adressen

Abbilden von virtuellen auf physikalische Adressen Abbilden von virtuellen auf physikalische Adressen Virtuelle Adresse 31 30 29 28 27... 15 14 13 12 11 10 9 8... 3 2 1 0 Virtuelle Seitennummer Seiten Offset Translation Physikalische Adresse 29 28 27...

Mehr

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus 4.2 Caches é Cache kommt aus dem Französischen: cacher (verstecken). é Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. é Er ist software-transparent, d.h. der Benutzer braucht nichts

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

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

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9 Inhalt Curriculum 1.4.2 Manfred Wilfling HTBLA Kaindorf 28. November 2011 M. Wilfling (HTBLA Kaindorf) CPUs 28. November 2011 1 / 9 Begriffe CPU Zentraleinheit (Central Processing Unit) bestehend aus Rechenwerk,

Mehr

7. Speicherverwaltung

7. Speicherverwaltung 7. Speicherverwaltung Ziele Zuteilung des Arbeitsspeicher Abbildung der symbolischen Adresse auf die physikalische Adresse Adress-Transformation Symbolische Adresse verschiebbare Adresse physikalische

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

Übersicht. Virtuelle Maschinen Erlaubnisse (Rechte) (Protection-)Ringe. AVS SS Teil 12/Protection

Übersicht. Virtuelle Maschinen Erlaubnisse (Rechte) (Protection-)Ringe. AVS SS Teil 12/Protection Übersicht Virtuelle Maschinen Erlaubnisse (Rechte) (Protection-)Ringe 2 Literatur Virtuelle Maschinen [12-1] https://de.wikipedia.org/wiki/liste_von_virtualisierungsprodukten [12-2] https://de.wikipedia.org/wiki/virtuelle_maschine

Mehr

Mehrprozessorarchitekturen

Mehrprozessorarchitekturen Mehrprozessorarchitekturen (SMP, UMA/NUMA, Cluster) Arian Bär 12.07.2004 12.07.2004 Arian Bär 1 Gliederung 1. Einleitung 2. Symmetrische Multiprozessoren (SMP) Allgemeines Architektur 3. Speicherarchitekturen

Mehr

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

Name: ES2 Klausur Thema: ARM Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 75 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

JR - RA - SS02 Kap

JR - RA - SS02 Kap 3.1 Elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung 3.3 Einfache Implementierung von MIPS 3.4 Pipelining 3.5 Superskalare Befehlsausführung JR - RA - SS02 Kap.

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 3(Musterlösung) 2014-05-05 bis 2014-05-09 Aufgabe 1: Polling vs Interrupts (a) Erläutern Sie

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

JR - RA - SS02 Kap

JR - RA - SS02 Kap 3.1 Elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung 3.3 Einfache Implementierung von MIPS 3.4 Pipelining 3.5 Superskalare Befehlsausführung JR - RA - SS02 Kap.

Mehr