1 / 25

SMP und Threads

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

fauve
Download Presentation

SMP und Threads

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 ist Ausführungszustand(aktiv, bereit,...) Zuteilungspriorität Thread

  3. Nur ein thread pro Prozess und... 1)...nur ein Benutzerprozess erlaubt (ms-dos) 2)...mehrere Benutzerprozesse erlaubt Single-Thread-Ansatz

  4. mehrere Threads pro Prozess beim multithreading bekommt der Prozess die aufgabe der Resourcenzuteilung und die Konfliktvermeidung für die einzelnen Threads zu übernehmen Multithreading

  5. Ein virtuelle Adressraum, Der das Prozzesabbild enthält Geschützter Zugriff auf Prozessoren, andere Prozesse, dateien und IO Ressourcen Folgende Punkte beziehen sich auf Prozesse

  6. 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. Folgende Punkte beziehen sich auf Threads

  7. 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. Vorteile der Threads

  8. Thread Zustände Thread Synchronisation Thread Funktionalität

  9. 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. Thread Zustände

  10. 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. Thread Synchronisation

  11. 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 Benutzer Threads und Kernel Threads

  12. 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. Benutzer Threads(User-Level Threads)

  13. 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. Vorteile von Benutzer Threads gegenüber Kernel-Threads

  14. 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. Nachteile von Benutzer Threads gegenüber Kernel-Threads

  15. 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. Problemlösung

  16. 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. Kernel Threads

  17. 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. SMP

  18. jeder prozzessor hat einen eigenen speicher und gilt somit als eigener rechner der über festgelegte pfade oder übers netzwerk mit den anderen rechnern kommuniziert Cluster

  19. hier teilen sich alle prozessoren einen speicher und kommunizieren auch über diesen miteinander Mehrprozessorsystem mit gemeinsamen Speicher:

  20. 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. Master Slave Ansatz

  21. 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. Symmetrische Mehrprozessorsysteme (SMP):

  22. 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.

  23. 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. SMP's müssen folgendes enthalten:

  24. Questions • Was ist der Unterschied zwischen einem Thread und einem Prozess? • Nenne 3 wichtige Thread Zustände? • Nenne 3 von 4 SMP Technologien? • Was ist ein Cluster? • Was ist eine Cache Kohärenz? • Was macht die Thread Operation Blockierung?

  25. Answers • Prozesse werden vom Kernel verwaltet und Threads von Prozessen. • Aktiv, bereit, blockiert; • SÍSD, SIMD, MISD, MIMD; • Prozess + Eigenem Speicher (gilt als eigener PC). • Wenn der Cache Speicher ungültig wird. • Wenn ein Thread auf ein Ereignis warten muss wird er blockiert, der Prozessor wendet sich dann bereiten Threads zu.

More Related