ITEO - Virtualisierung

ITEO - Virtualisierung

ITEO - Virtualisierung

Cyrille Ulmi

Cyrille Ulmi

Kartei Details

Karten 94
Lernende 51
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 06.06.2017 / 23.11.2023
Weblink
https://card2brain.ch/box/20170606_iteo_virtualisierung
Einbinden
<iframe src="https://card2brain.ch/box/20170606_iteo_virtualisierung/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Was ist SMP?

Symmetrische Multiprozessoren

Beschreiben Sie Symmetrische Multiprozessoren (SMP)

  • Zwei oder mehr gleichartige Prozessoren mit vergleichbaren Möglichkeiten
  • Prozessoren teilen sich das gleiche main Memory und sind über einen Bus oder andere interne Verbindungen zusammengeschaltet
  • Multicore chips sind eigentlich auch SMPs (auf Grund der gleichen Architektur)
  • Teilen I/O Devices
  • Fazit: Alle Prozessoren haben sehr ähnliche Eigenschaften. Gleiche Funktionen, gleiches Main Memory, gleiche I/O Devices usw. --> Cores haben dieselbe Architektur (selbe Ausführungseinheiten etc.)


Wie sieht eine SMP Architektur aus? (Symmetrische Multiprozessoren)

Beschreiben Sie einen Multicore CPU

  • Kombiniert 2 oder mehr Prozessoren (Cores)
  • Jeder Core beinhaltet alle Komponenten von einem unabhängigen Prozessor

Was ist die grösste Bremse einer MultiCore Architektur?

L3-Cache

Was ist UMA?

Shared Memory Architektur (UMA)

UMA = Unified Memory Architecture

Beschreiben Sie die Shared Memory Architektur (UMA)

  • Alle Prozessoren haben den gleichen Weg und die gleiche Zugriffszeit auf dieselben Memory-Stellen
  • Private-Memory: mehrere lokale Addressräume
  • Die einzelnen lokalen Adressräume skalieren nicht gut

Was bedeutet NUMA?

NUMA = Non-Unified Memory Architecture

Beschreiben Sie eine NUMA (Non-Unified Memory Architecture)

  • Alle Prozessoren haben den nicht mehr den gleichen Weg und die gleiche Zugriffszeit auf dieselben Memory-Stellen
  • meistens werden 2 oder mehr SMPs physikalisch verbunden.
  • Shared-Memory: ein globaler linearer Addressraum (vom OS aus) --> Memory Zugriff auf „remote“ Memory ist langsamer
  • Ein SMP kann direkt auf das Memory der anderen SMPs zugreifen.

Was ist LLC?

Last level cache (shared Cache --> z.B. L3-Cache)

Was sind Memory Stalls?

Memory Stalls = Wartezeit betr. des Lesens / Schreibens vom / ins Memory

Was ist eine Load Store Architektur

Load Store Architektur: Zuerst laden des Befehls und dann benötigt man noch die Operanden --> den Wert (Operanden) holen bedeutet eine teure Operation

Was ist SMT?

Simultanious Multi Threading

Wie sieht eine Befehlsverarbeitung mit Befehlspipelining aus im gegensatz zu einer ohne Befehlspipelining?

Was ist CMP?

Chip-Level Multiprocessing

Was ist eine Superscalare Architektur?

  • mehrere Instruktionen auf mehrere redundante Funktionseinheiten (mehrere redundante Ausführungseinheiten) verteilt --> mehrere Instruktionen per Clock Cycle
  • Eine funktionale Einheit ist nicht eine CPU sondern eine Ausführungsressource innerhalb einer einzigen CPU wie zB: eine „arithmetic logic unit“, ein „bit shifter“ oder ein „multiplier“

Was ist Amdahls Gesetz?

  • Gesammte Rechenzeit = 1
  • Nicht Parallelisierter Anteil = a = 20%
  • Parallelisierbar = 1-a = 80%
  • T = Ausführungszeit für die Anzahl Prozessoren (n)
  • Je grösser man n wählt, desto besser wird ersichtlich:
  • T konvergiert gegen 0.2 --> das ist der nicht parallele Anteil (20%) --> Punkt, an welchem die Effizienz T gesättigt ist (es bringt also von hier an nichts mehr, wenn man mehr Prozessoren verwendet)

Zählen Sie 2 Cachekohärenzprobleme beim Multithreading auf

  • Write through cache
  • Write back cache

Beschreiben Sie das Cachekohärenzproblem "Write through cache"

Zählen Sie mögliche Lösungen für Cachekohärenzprobleme auf

  • Cachekohärenzprotokolle
    • Protokolle anpassen, es wird zwischen Snoopy und Directory-Protokolle unterschieden
  • Verwendung eines gemeinsamen Cashes
    • Nachteil => hoher Hardwareaufwand
  • Unterteilung der Daten
    • Für Daten, auf die mehr als nur ein Prozessor zugreift, existiert jeweils nur eine Kopie (Datenunterteilung kann durch Compiler oder Entwickler vorgenommen werden)
    • Nachteil => hoher Aufwand betr. Realisierung

Welche zwei Protokolle zur Lösung des Cachekohärenzproblems existieren?

  • Snoopingbasiert (Snoop):
    • Cachecontroller beobachten und erkennen welche Blöcke sie selbst gespeichert haben
  • Verzeichnisbasiert (Directory):
    • Zentrale Liste mit Status aller Cache Blöcken

--> Ab 64 Prozessoren oder Cores werden ausschliesslich Directory basierende Protokolle eingesetzt, da die Bandbreite des Busses nicht ausreichend skaliert

Was ist "Snoopy"

  • Kombination zwischen Cache Algorithmen und Hardware
  • Snoopy Caches hören auf den Verbindungsbus mit um alle Schreiboperationen auf Cache Werte die sie auch selber halten zu detektieren

Welche Zustände kann ein Speicherblock im Cashe besitzen?

  • - Shared (Block ist in einem oder mehreren Caches, Wert ist up-todate),
  • - Uncached (Block ist in keinem Cache),
  • - Exclusive (Block gehört einem Cache, Wert ist nicht up-to-date)

Beschreiben Sie "Processor Interconnect"

  • Uni direktionale Verbindungen
  • QPI = Quick Path Interface
  • erlauben Intel viel grössere Geschwindigkeiten

Welche "Schalen" Existieren bei der Software?

Zählen Sie die Prioritäten der Befehlsverarbeitung in einem Prozessor auf

Wie sieht ein Systemkern ungefähr aus?

Wie ist ein Prozess aufgebaut?

Identifier: Eindeutig, ID

State: Idle, Working, Ready

Program counter: Pointer auf Code, typischerweise nur einer, bei mehreren Threads auch mehrere Program counter (Position)

Die zwei Prozess Status erklären

1. Trace (Verfolgen)
 - Verfolgt das Verhalten der individuellen Prozesse indem er die Sequenzen der Instruktionen auflistet die er für diesen Prozess ausführt.
 - Das Verhalten des Prozessors kann charakterisiert werden indem gezeigt wird wie die „traces“ der Prozesse verschachtelt sind.

2. Dispatcher (Verteilen)
 - Programm das von einem Prozess auf den anderen wechselt welche dann auf dem Prozessor ausgeführt werden.

 

Beschreiben Sie das "Queuing Modell"

  • Das OS muss immer die ganze Queue durchsuchen um den geeigneten Kandidaten (Prozess) zu finden
  • Es werden mehrere Queues verwendet

 

Trifft ein Event ein, dann werden alle Prozesse auf "Ready" gesetzt, also in die Ready Queue verschoben bzw die Pointer der Prozesse ändert.

--> Es werden eher verkettete Listen verwendet als Queues (FIFO).

Was sind Kernal OS Control Tables?

Os braucht Infos vom Status von Prozessen und Resourcen
(Wo der Prozess zu finden ist / essentielle Attribute vom Prozess)

--> Es gibt mehrere Kontrolllisten, welche das OS unterhält (betr. Prozessen, Files, Memory, ...)

--> In der Primary Process Table sind die Process Elements (Programm(e), Daten, Stack, Attribute) inklusive Pointer zum eigentlichen Prozess (Process Image)

+ Anhand diesen Informationen wird entschieden welche Teile im RAM ins Swap/Page-File kommen bei einem RAM-Overflow

(4) Was ist der Prozess Kontroll Block?

- Enthält die Prozess Elemente.

- Es ist somit möglich einen laufenden Prozess zu unterbrechen um ihn später wieder laufen zu lassen so als wäre er nie unterbrochen worden.

- Erzeugt und verwaltet durch das OS.

- Schlüsselbaustein der mehrere Prozesse unterstützt

(2*3) Process Control Structure erklären

Prozess Location
- Ein Prozess enthält ein oder mehrere Programme zum ausführen.
- Ein Prozess muss mindestens genug Memory aufweisen um das Programm und dessen Daten zu halten.
- Die Ausführung des Programmes involviert typischerweise einen Stack (z.b. Kern-Stack, User Stack) der verwendet wird um die Ausführung von Prozeduraufrufen und das Mitgeben von Parametern zu diesen ermöglicht.

Prozess Attributes
- Jeder Prozess verfügt über eine Anzahl von Attributen die verwendet werden um dem OS die Kontrolle über diesen Prozess zu ermöglichen.
- Die Sammlung des Programms, Daten, Stack und Attributen wird als Prozess Image bezeichnet.
- Der Standort vom Prozess Image hängt vom Memory Management Schema in Verwendung ab.

Unterschied Modus Wechsel und Prozess-Status Wechsel erklären

- Modus-Wechsel -> Zugriff Modus gemeint (User Modus - begrenzt Instruktionen, Kernel Modus - zugriff privilegierte Instruktionen)
  * wichtig bei Interrupts für Interrupt Handler

Wenn ein Interrupt am Prozessor anliegt:
-> Setzt den Programm-Counter auf die Startadresse vom Interrupt Handler Programm
-> Wechselt vom User Modus in den Kernel Modus, so dass der Interrupt Handler Code damit auch privilegierte Instruktionen ausgeführt werden können.

Prozess-Status Wechsel
- Die Schritte eines ganzen Prozess Wechsels

 

(6) Wie findet der Prozess-Status Wechsel statt?

Die Schritte eines ganzen Prozess Wechsels sind:

1. Speichere den Kontext vom Prozessor
2. Update vom Prozess Kontrol Block vom Prozess momentan im “run” Status.
3. Verschiebe den Prozess Kontrol Block zur richtigen Queue.

Falls der momentan laufende Prozess in einen anderen Status verschoben wird (Ready, Blocked, etc.), dann muss das OS substantielle Wechsel in seinem Environement machen.

4. Wähle einen anderen Prozess fuer die Ausführung aus. Udate vom Prozess Control Block vom ausgewählten Prozess.
5. Update Memory Management Data Strukturen.
6. Restore vom Prozessor Kontext, so dass er genau da weiterfährt als der Prozess weggenommen wurde.

Welche drei Arten der Prozessausführung im OS sind vorhanden?

a. Traditionell: Der Kernel wird ausserhalb jedes Prozesses ausgeführt. Der OS Code wird als besondere Entität im privilegierten Modus ausgeführt.

b. Execution innerhalb vom User Prozess: Das OS ist wie eine Sammlung von Programmen die vom User im User Environement aufgerufen werden. Jedes Prozess Image beinhaltet: Programm, Data, Stack Bereiche für Kernel Programme

c. Prozess basierende OS: Das OS wird als Sammlung von System-Prozessen implementiert. Wie bei den anderen Beispielen, wenn die SW ein Teil des Kernels ist, wird sie im Kernel Modus ausgeführt. Wobei hier die wichtigsten Kernel Funktionen als separate Prozesse organisiert sind.

Welche Prozess Staten existieren und wie hängen diese voneinander ab?

Wie wird ein Prozess erzeugt?

Prozess wird erzeugt durch den Kernel system call: fork( )

§ Im Kernel Mode macht dann das OS folgendes:

1 •Alloziere einen freien Platz in der Prozesstabelle fuer den neuen Prozess. 

2 •Vergib eine einzigartige Prozess ID fuer den Child Prozess. 

3 •Mach eine Kopie vom Parent-Prozess Image mit der Ausnahme vom “gesharten” Memory. 

4 •Inkrementiere die Zähler für jedes File das vom Parent besitzt wird um anzuzeigen, dass ein zusätzlicher Prozess diese Files auch besitzt. 

5 •Füge den Child Prozess der “ready to run” Queue zu. 

6 •Retourniere die ID Nummer vom Child Prozess zum Vater Prozess und den Wert 0 zum Child Prozess.

Durch welche 3 Arten kann die Ausführung eines Prozesses unterbrochen werden? Erklären Sie diese

Erklären und aufzählen der drei Prozess Kontexte

§ Benutzer Kontext
- zugewiesener Adressraum und Daten

§ Hardware Kontext (multitasking relevant)
- Inhalte CPU Register
- weitere wichtige Infos wie z.B: Seitentabelle

§ System Kontext (Sicht OS)
- Prozessnummer, geöffnete Dateien, Info Eltern und Kind Prozess, Prioritäten, etc.