Sicherheitslücken in der x86 / amd64 - Architektur
|
|
- Teresa Baumgartner
- vor 5 Jahren
- Abrufe
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? 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
MehrProf. 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
MehrSchreiben 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
MehrEchtzeit-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
MehrEchtzeit-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
MehrProseminar 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
MehrCache 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
MehrProseminar 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
MehrQuiz. 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
MehrBetriebssysteme 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
MehrWie 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
Mehrz/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
MehrGrundlagen 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
MehrVorlesung: 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
MehrInstruktionssatz-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
MehrVirtueller 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
MehrTutorium 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
MehrDOSEMU. 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
MehrTechnische 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
MehrVorlesung 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
MehrSysteme 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
MehrAnalyse 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)
Ü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
MehrLeichtgewichtsprozesse
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
MehrLeichtgewichtsprozesse
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
MehrDer 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$
MehrKlausur 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
MehrAktuelle 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
MehrBetriebssysteme. 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
MehrVirtueller 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
MehrRO-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
MehrIn 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
MehrJust-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
MehrNeue 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/
MehrTeil 1: Prozessorstrukturen
Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium
MehrJust-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
MehrSpeicher- 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
MehrGrundlagen 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.,
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 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?
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 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
MehrPrinzipieller 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
MehrName : 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
Mehr4. Ü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 Dominik Schoenwetter Erlangen, 30. Juni 2014 Lehrstuhl für Informatik 3 (Rechnerarchitektur)
MehrEinfü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
MehrCache-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
MehrMartin 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
MehrProjekt 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
MehrRO-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
MehrIntel 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
MehrBetriebssysteme 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
MehrTeil 2: Speicherstrukturen
Inhalt Teil 2: Speicherstrukturen Hauptspeicher Cache Assoziativspeicher Speicherverwaltungseinheit ( Memory Management Unit ) 1 Virtueller Speicher Trennung von virtuellem Adreßraum (mit virtuellen Adressen)
MehrCache 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 Dominik Schoenwetter Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität
MehrAufbau 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 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
MehrVorlesung: 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
MehrPaging. 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
MehrDatenpfaderweiterung 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
MehrGrundlagen 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
MehrAufgabe 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
MehrStruktur 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
MehrLock-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.
MehrTechnische 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
MehrMikroprozessoren 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)
Mehr4. Ü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
MehrSelbststudium 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
MehrBesprechung 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
MehrKonzepte 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
MehrTechnische 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
MehrProzessor- 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
Mehr5. 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.
MehrBetriebssysteme 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
MehrBetriebssysteme Ü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
MehrRü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:
MehrComputer-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
MehrAbbilden 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
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
MehrEchtzeitbetriebssysteme
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
MehrDas 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
MehrInhalt. 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,
Mehr7. Speicherverwaltung
7. Speicherverwaltung Ziele Zuteilung des Arbeitsspeicher Abbildung der symbolischen Adresse auf die physikalische Adresse Adress-Transformation Symbolische Adresse verschiebbare Adresse physikalische
MehrSpeicherverwaltung. 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 2 Literatur Virtuelle Maschinen [12-1] https://de.wikipedia.org/wiki/liste_von_virtualisierungsprodukten [12-2] https://de.wikipedia.org/wiki/virtuelle_maschine
MehrMehrprozessorarchitekturen
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
MehrName: 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
MehrGrundlagen 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
MehrJR - 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.
MehrTECHNISCHE 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
MehrKonzepte 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
MehrGrundlagen der Rechnerarchitektur
Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie
MehrJR - 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