25
SMP und Threads SMP ... symetrische Mehrprozessorsysteme Thread ... ein Teil eines Prozesses

SMP und Threads

  • Upload
    fauve

  • View
    41

  • Download
    0

Embed Size (px)

DESCRIPTION

SMP ... symetrische Mehrprozessorsysteme Thread ... ein Teil eines Prozesses. SMP und Threads. Resourcenbesitz: Virtuelleradressraum(für die aufnahme eines prozessabbildts) Zugriffsrechte/ Nutzungsrechte (IO kanäle-, geräte, Speicher) dies wird vom BS verwaltet um störungen zu vermeidenz - PowerPoint PPT Presentation

Citation preview

Page 1: SMP und Threads

SMP und Threads

SMP ... symetrische MehrprozessorsystemeThread ... ein Teil eines Prozesses

Page 2: SMP und Threads

Thread

Resourcenbesitz:Virtuelleradressraum(für die aufnahme eines prozessabbildts)Zugriffsrechte/ Nutzungsrechte (IO kanäle-, geräte, Speicher)dies wird vom BS verwaltet um störungen zu vermeidenz

Ablaufplanung/ Ausführung:Ausführungsweg (trace) der in mindestens einem Progeram enthalten istAusführungszustand(aktiv, bereit,...)Zuteilungspriorität

Page 3: SMP und Threads

Single-Thread-Ansatz

Nur ein thread pro Prozess und... 1)...nur ein Benutzerprozess erlaubt (ms-dos)

2)...mehrere Benutzerprozesse erlaubt

Page 4: SMP und Threads

Multithreading

mehrere Threads pro Prozess

beim multithreading bekommt der Prozess die aufgabe der Resourcenzuteilung und die Konfliktvermeidung für die einzelnen Threads zu übernehmen

Page 5: SMP und Threads

Folgende Punkte beziehen sich auf Prozesse

● Ein virtuelle Adressraum, Der das Prozzesabbild enthält

● Geschützter Zugriff auf Prozessoren, andere Prozesse, dateien und IO Ressourcen

Page 6: SMP und Threads

Folgende Punkte beziehen sich auf Threads

● Ausführungszustand● Kontext der abgespeichert wird wenn der thread nicht aktiv ist

● Ausführungstapel ● eigenen Speicherplatz für variablen● die Zugriffsrechte des Prozesses die mit den anderen threads im prozess geteilt werden.

Page 7: SMP und Threads

Vorteile der Threads

Threads sind im engeren Sinn "Prozesse in Prozessen". Dies wurde deshalb so entwickelt weil mehrere alleinstehende Prozesse, die miteinander kommunizieren oder sich rechte teilen müssen, vom Kernel verwaltet werden müssen. Nicht so bei Threads hier braucht der Kernel nur einen Prozess verwalten der dann mehrere threads enthält die der Prozess selber verwaltet, damit wird dem kernel arbeit abgenommen. Auserdem lassen sich Threads leichter und schneller terminieren oder kreieren als Prozesse. Threads kommunizieren schneller miteinander als Prozesse und zwischen threads kann auch schneller gewechselt werden als zwischen zwei Prozessen.

Page 8: SMP und Threads

Thread Funktionalität

Thread Zustände

Thread Synchronisation

Page 9: SMP und Threads

Thread Zustände

wichtigste Zustände: aktiv, bereit, blockiert

wenn ein Prozess ausgelagert wird, werden alle seine Threads mit ausgelagert.4 grundlegende Thread-Operationen für Änderung des Thread Zustandes:

● Erzeugung (Spawning):bei erzeugung eines neuen Prozesses wird auch ein neuer Thread erzeugt. Ein Thread innerhalb eines Prozesses kann einen weiteren Thread erzeugen.Dabei stellt er Befehlszeiger und argumente für den neuen Thread bereit.

● Blockierung:Wenn ein Thread auf ein Ereignis wartetn muss, wird er blockiert. Der Prozessor wendet sich dann bereiten Threads zu.

● Aufhebung der Blockierung:Wenn Ereignis eintrifft, aufgrund dessen ein Thread blockiert ist, wird der Thread als bereit eingestuft.

● Beendigung:Wenn ein Thread beendet wird, werden die Zuordnung des Registerkontexts und der Stapel freigegeben.

Page 10: SMP und Threads

Thread Synchronisation

Eine Änderung einer Ressource durch einen Thread betrifft auch die anderen Threads in dem Prozess. Daher müssen sie Synchronisiert werden, um sich nicht gegenseitig zu stören oder beschädigen.

Page 11: SMP und Threads

Benutzer Threads und Kernel Threads

● Benutzer Threads(User-Level Threads) :● Vorteile von Benutzer Threads gegenüber Kernel

Threads● Nachteile von Benutzer Threads gegenüber Kernel

Threads● Problemlösung● Kernel Threads

Page 12: SMP und Threads

Benutzer Threads(User-Level Threads)

Die anwendung übernimmt die Threat Verwaltung, Kernel ist sich nicht bewusst über deren Existenz.Jede Anwendung

kann durch die Thread Bibliothek, zu einer Multithreading- Anwendung umprogrammiert werden. Die Threat Bibliothek enthält den Code zur Erzeugung/Zerstörung, Weiterleitung,

Sicherung. Wiederherstellung der Thread - Kontexte.Eine Anwendung startet standartmäßig mit einem Thread. Der

Scheduling-Algorithmus aus der Thread-Bibliothek legt fest welcher Thread in folge aktiv wird.

Page 13: SMP und Threads

Vorteile von Benutzer Threads gegenüber Kernel-Threads

● Der Prozess muss nicht in den Kernel-Modus wechseln.Moduswechsel fällt hier also weg.

● Scheduling kann anwendungsspezifisch sein. Der Scheduling Algorithmus kann spezifisch an die Anwendung angepasst werden, ohne den

Betriebssystem- Scheduler negativ zu beeinflussen.● Benutzer-Threads können auf jedem Betriebssystem

ausgeführt werden.

Page 14: SMP und Threads

Nachteile von Benutzer Threads gegenüber Kernel-Threads

● In typischen Betriebssystemen haben viele Systemaufrufe blockierende Wirkung. Threads in

einem Prozess können so alle durch einen blockiert werden.

● Multithreading - anwendung kann die Vorteile des Mehrprozessorbetriebes nicht nutzen. Es kann also immer nur ein Thread innerhalb eines Prozesses ausgeführt werden.

Page 15: SMP und Threads

Problemlösung

mehrere Prozesse statt mehrere Threads, aber jeder Wechsel ist dann ein Prozesswechsel, kein Threadwechsel -> größerer Steueraufwand

oder Jacketing -> blockierender Systemaufruf wird in einen nicht blockierenden Systemaufruf verwandelt.

Page 16: SMP und Threads

Kernel Threads

Der Kernel übernimmt Thread-Verwaltung. Im Anwendungsbereich gibt es eine API (Application Programming Interface) zur Kernel-Thread-Einrichtung.Bsp. W2K, Linux, OS/2 Kernel kann mehrere Threads aus demselben Prozess gleichzeitig für den Ablauf auf mehreren Prozessoren einplanen. Nachteil -> Moduswechsel zu Kernel bei Steuerung von Threads. Kernel Threads sind jedoch langsamer als Benutzer-Threads.

Page 17: SMP und Threads

SMP

● SISD (Single instruction sinle data): 1 prozess 1 befehlsstrom 1 speicher ● SIMD(Single Instructure Multiple Data): 1 Maschienenbefehel steuert die gleichzeitige

ausführung mehrerer Verarbeitungselemete auf Lockstepbasis. Jedes Verarbeitungselement verfügt über einen Datenspeicher so das jedes

Verarbeitung- Element auf verschiedenen Datensätzten und Prozessoren ausgeführt werden kann

● MISD (Multiple INstructure Single data): eine sequenz von daten wird an mehrere prozessoren übertragen, von denen jeder einen andere befehlssequenz ausführt. dieses system

wurde nie umgesetzt● MIMD (Multible Instructure Multiple Data): Mehrere Prozessoren führen gleichzeitig

verschiedene Befehelssequenzen an unterschiedlichen Datensätzen aus.

Page 18: SMP und Threads

Cluster

jeder prozzessor hat einen eigenen speicher und gilt somit als eigener rechner der über

festgelegte pfade oder übers netzwerk mit den anderen rechnern kommuniziert

Page 19: SMP und Threads

Mehrprozessorsystem mit gemeinsamen Speicher:

hier teilen sich alle prozessoren einen speicher und kommunizieren auch über diesen miteinander

Page 20: SMP und Threads

Master Slave Ansatz

Der Kernel sitzt nur auf einem "MASTER" Prozessor welche die anderen Slave Prozessoren überwacht und konntrolliert er übernimmt das gesamte Scheduling was einen Leistungs engpass bedeuten kann und auserdem fällt auch das ganze System aus wenn der Master Prozessor ausfällt.

Page 21: SMP und Threads

Symmetrische Mehrprozessorsysteme (SMP):

Hier sitzt der Kernel auf mehreren Prozesoren gleichzeitig und jeder Prozessor übernimmt für sich die Ablaufplanung. Das Komplizierte ist hier das keine zwei Prozessoren den selben Prozess teil des Kernels bearbeiten und das keine prozesseteile in der warteschlange verloren gehen.

Page 22: SMP und Threads

Smp Rechnerarchitektur:

● Cache Kohärenz: wenn mehrere Prozessoren die selben sachen im cache stehen und ein prozessor einen bestimmten teil verändert ist der cache inhalt eines anderen Caches ungültig was nciht passieren darf dieses problem wird normalerweise in der

hardwear behoben.

Page 23: SMP und Threads

SMP's müssen folgendes enthalten:

●Gleichzeitige nebenläufige Prozesse oder Threads: die ausführung einzelener Kernel teile muss koordiniert werden

●Ablaufplanung (Scheduling): kann jeder Prozessor übernehemen hier wird dafür gesorgt das keine zwei prozessoren den selben Thread/Prozess bearbeiten

●Synchronisation: hier werden Prozessoren synchronisiert die die gleichen Resourcen benötigen ●Speicherverwaltung: die Speicherverwaltung des SMP gleicht der Speicherverwaltung in

einem Einprozessorsystemen und nutzt zusätzlich die volle bandbriete von Speichern mit mehreren ports. ●Zuverlässigkeit und Fehlertoleranz: hier wird dafür gesorgt das fals ein Prozessor ausfällt

die Ausführungsplanung aktualisiert wird damit die anderen Prozessoren die Aufgaben des ausgefallenen Prozessors übnernehmen.

Page 24: SMP und Threads

Questions

1. Was ist der Unterschied zwischen einem Thread und einem Prozess?

2. Nenne 3 wichtige Thread Zustände?3. Nenne 3 von 4 SMP Technologien?4. Was ist ein Cluster?5. Was ist eine Cache Kohärenz?6. Was macht die Thread Operation Blockierung?

Page 25: SMP und Threads

Answers

1. Prozesse werden vom Kernel verwaltet und Threads von Prozessen.

2. Aktiv, bereit, blockiert;3. SÍSD, SIMD, MISD, MIMD;4. Prozess + Eigenem Speicher (gilt als eigener

PC).5. Wenn der Cache Speicher ungültig wird.6. Wenn ein Thread auf ein Ereignis warten muss

wird er blockiert, der Prozessor wendet sich dann bereiten Threads zu.