Block 3 PIK // Parallele Prozesse und Multithreading

bello17
Flashcards by bello17, updated more than 1 year ago
bello17
Created by bello17 over 5 years ago
8
1

Description

Bachelor 3. Semester - Wirtschaftsinformatik - HSLU (Softwarekomponenten INM21) Flashcards on Block 3 PIK // Parallele Prozesse und Multithreading, created by bello17 on 12/13/2015.

Resource summary

Question Answer
Was bedeutet "Parallele Ausführungen"? Parallele Ausführung bedeutet, dass in einem Prozess mehrere Kontrollflüsse existieren, die parallel ausgeführt werden
Wo werden "Parallele Ausführungen" angewendet? - Serverseitgies Erbringen von Leistungen, wobei mehrere Clients gleichzeitig bedient werden - Steuerung von Echtzeitautomaten, Robotern - Ausführung von komplexen Abläufen, die in mehrere parallel ausführbare "Subprozesse" zerlegt werden können (Splitting)
Was ist die Voraussetzung für parallelle Ausführungen? - das Mehrprozessorsystem und - die Unterstützung durch das Betriebssystem
Was sind Mehrprozessorsysteme? Mehrprozessorsyste sind Computer, die zwei oder mehr Prozessoren haben. - sind (waren) teuer und nicht sehr verbreitet - dies ändert sich mit dem Vormarsch von Multicore-Prozessoren
Was ist ein schwergewichtiger Prozess? Ein klassischer Prozess (Betriebssystem-Prozess) stellt sowohl für das Memory-Management als auch für Scheduling eine Einheit dar und wird als ein schwergewichtiger Prozess bezeichnet
Was ist der Vorteil von Threads gegenüber Prozessen? - in einem Prozess können mehrere Threads laufen - der Kontextwechsel eines Threads ist weniger aufwendig, da nicht alles ausgelagert werden muss
Was ist ein leichtgewichtiger Prozess? Ein Thread wird auch als leichtgewichtiger Prozess bezeichnet
Was braucht ein neuer Thread? - einen eigenen Stack (lokale Variablen, Rücksprungadressen) - einen eigenen Befehlszeiger (Instruction-Pointer) - einen eigenen Stackzeiger (Stack-Pointer) - einen Satz von Register
Was sind für alle Threads eines Prozesses gemeinsam? - Programmcode - Prozessspezifische Daten - Datei-Informationen - "globale" Daten
Welche fünf Zustände kann ein Thread haben? 1. neu 2. bereit für die Ausführung 3. in der Ausführung 4. blockiert 5. tot
Wie können Zustandsänderungen von Threads hervorgerufen werden? 1. durch entsprechende Methodenaufrufe (z. B. sleep) im Programm und 2. durch das Betriebssystem (in Java JVM)
Was bedeutet der Zustand "neu" bei einem Thread? - dass der Thread durch den new-Operator erzeugt wurde und sich in seinemAnfangszustand befindet - der Thread ist noch nicht lauffähig - seine Datenfelder und Methoden können angesprochen werden
Was bedeutet der Zustand "tot" bei einem Thread? - dass der Thread seine Arbeit erledigt hat - seine Datenfelder und Methoden können angesprochen werden, ausser die Methode run - Ein Thread, welcher sich im Zustand tot befindet, kann nicht erneut gestartet werden (es wird eine Ausnahme geworfen)
Threads - Wie sehen die Zustandsübergänge als Folge von Methodenaufrufen aus?
Threads - Wie sehen Zustandsübergänge hervorgerufen durch VM aus?
Welche Klasse und welches Interface stellt Java i.S. Threads zur Verfügung? - die Klasse java.lang.Thread und - die Schnittstelle java.lang.Runnable
Auf welche zwei Arten kann ein Objekt threadfähig gemacht werden? 1. die generierende Klasse wird von der Klasse Thread abgeleitet, oder 2. die generierende Klasse implementiert die Schnittstelle Runnable
Wie sieht das direkte Ableiten von der Klasse Thread in UML aus?
Wie sieht das direkte Ableiten von der Klasse Thread im Code aus?
Wie startet man den Thread bei der direkten Ableitung (Beispiel Uhr)?
Wie sieht es in UML aus, wenn die Klasse mit Thread laufen soll?
Wie sieht der Code aus bei Threads mit Runnable aus? Die Klasse ZeitHandler
Wie sieht der Code aus bei Threads mit Runnable aus? Die Klasse Uhr
Wie sieht der Code aus bei Threads mit Runnable aus? Die Mainklasse, um die Applikation zu starten
Wie kann ein Thread beendet werden (1. Variante)? 1. Durch Aufruf der Methode interruptundisInterrupted - der Zustand des Interrupted-Flags wird abgefragt - falls der betroffene Thread gerade am Schlafen ist, wird die Ausnahme InterruptedExceptionausgelöst und kann entsprechend verwertet werden
Wie kann ein Thread beendet werden (2. Variante)? 1. Durch Einsatz von privaten Datenfelder - Am Anfang vom Schleifendurchlauf kann der Wert des privaten Feldes geprüft werden - Der Ablauf der Ausführung der Methode runkann entsprechend dem Wert des privaten Feldes gesteuert werden
Wie sieht der Code aus, wenn durch interrupt einen Thread beendet wird (in der Mainklasse)?
Wie sieht der Code aus, wenn durch interrupt einen Thread beendet wird (in der Uhrklasse)?
Die Klasse Thread stellt welche Methoden in Bezug auf interrupt zur Verfügung?
Was gilt es noch zu beachten? - Methode interruptsetzt das Interrupted-Flagauf true - Methode isInterruptedliefert den Wert des Interrupted-Flags zurück, ohne ihn zu ändern - Klassenmethode interruptedliefert den Wert des Interrupted-Flags zurück und falls das Flaggesetzt war (true), wird das Flagzurückgesetzt (auf falsegeändert) - Nachdem die Ausnahme InterruptedExceptiongeworfen wurde, wird das Interrupted-Flag anschliessend zurückgesetzt (von trueauf false)
Wie sieht der Code aus, wenn eine parelle Ausführung mit privaten Feldern gestoppt wird?
Was kann passieren, wenn Threads auf eine gemeinsame Resource zugreifen wollen? Da Zugriff auf gemeinsame Ressourcen nicht koordiniert erfolgt, kann ein Prozess bzw. Thread die inkonsistente Sicht der Daten erhalten (in unserem Beispiel findet Monika die leere Garage vor)
Was ist ein racecondition? Falls mehrere Prozesse / Threads auf gemeinsame Ressourcen zugreifen und sie manipulieren, nennt man das racecondition(auf Deutsch: Wettkampfbedingung)
Was ist ein kritischer Abschnitt? Der Abschnitt, in dem die gemeinsamen Daten manipuliert werden, wird kritischer Abschnitt genannt
Wie sieht der Ablauf auf den Zugriff auf eine gemeinsame Resource aus?
Welches Synchronisationsmittel wird in Bezug auf den Zugriff von gemeinsamen Resourcen verwendet? Das Monitorkonzept
Welches sind die wesentlichen Merkmale eines Monitorkonzeptes? - Kritische Abschnitte, die auf denselben Daten arbeiten, sind Methoden eines Monitors - Ein Prozess betritt einen Monitor durch Aufruf einer Methode des Monitors
Mit welchem Schlüsselwort wird das Monitorkonzept in Java umgesetzt? synchronized
Was bewirkt das Schlüsselwort synchronized? - Mit dem Schlüsselwort synchronized kann der wechselseitiger Ausschluss sowohl für Methoden als auch für einzelne Codeblöcke realisiert werden - Falls nötig, kann der Zugriff auf alle Methoden synchronisiert werden (z. B. zugriff auf Collections)
Wie werden die Monitoren bei Klassenmethoden gebaut? - Wenn eine oder mehrere Klassenmethoden mit dem Schlüsselwort synchronized versehen werden, wird ein Monitor um diese Methoden "herum gebaut" - Die synchronisierten Klassenmethoden werden dadurch die Methoden des Monitors
Wie sehen synchronisierte Klassenmethoden im Code aus?
Ist es möglich, Codeblöcke in unterschiedlichen Methoden zu synchronisieren? Beweisen Sie es anhand von Code.
Was wird für das Synchronisieren eines Codeblockes gebraucht? Für das Synchronisieren eines Codeblocks wird ein Objekt als Schlüssel benötigt
Kann ein Schlüssel auf den Zufgriff von mehreren Codeblöcken synchronisiert werden? Mit einem Schlüssel kann der Zugriff auf mehreren Codeblöcke synchronisiert werden: die Schlüsselbrett-Rolle übernimmt der Monitor
Welches Objekt eignet sich als Schlüssel? - Instanz der Klasse Class - Ein übergebenes Schlüssel-Objekt - Die Referenz auf das aktuelle Objekt (this) - usw.
Was ist sehr wichtig in Bezug auf den Schlüssel? Der Schlüssel, der in der Regel von mehreren Instanzen gebraucht wird, darf nur einmal Vorkommen!
Was ist ein Thread-Pool? Ein Thread-Pool hält eine Anzahl von erzeugten und bereits gestarteten Threads bereit, um mit denen anfallende Arbeiten (aufgaben) asynchron zu erledigen
Was sind die Vorteile von Thread-Pools? - Weniger Overhead beim Erstellen, Starten und Beende n der Threads - Aufgaben werden in eine Warteschlange eingereiht und nicht direkt auf Threads abgebildet: sie werden dem Thread-Pool übergeben, der sie einem freien Thread zuweist - Durch passende Konfiguration kann die Skalierbarkeit des Systems optimiert werden, da die Anzahl Threads dynamisch angepasst werden kann - Ergebnisse werden einer Warteschlange hinzugefügt u nd können abgeholt werden
Was ist ein Executor Framework? Das Framework stellt mit der Klasse Executorseine Helper-Klasse zur Verfügung, mit der die Arbeit mit dem Executor-Framework vereinfacht wird: - Erstellen von diversen Thread-Pools - Erstellen von ThreadFactoryInstanzen - Erstellen und holen von Callableetc.
Wie sieht der Aufbau eines Executor Framework aus?
Wie sieht ein Executor Framework und Thread-Pools im Code aus (PrimeFactoryPrinter Klasse)?
Wie sieht ein Executor Framework und Thread-Pools im Code aus (Main Klasse)?
Was ist Callable? - Wenn das Executor-Objekt nach der Ausführung eines Tasks ein Resultat zurückliefern sollte, kann anstatt Runnableder Typ Callable benutzt werden: Runnable-Methode runist vom Typ voidund liefert keinen verwertbaren Wert zurück - Ein Callable-Objekt arbeitet mit generischen Typen und erlaubt die Rückgabe der Resultats nachdem die Ausführung beendet wurde
Was ist ein Future? - Wenn einem Executor-Objekt ein Callable-Objekt übergeben wird, liefert das Framework das Objekt vom Typ Future zurück - Das Future-Objekt ermöglicht die Abfrage des Task-Zustande
Wie sieht die Schnittstelle Callable im Code aus?
Wie sieht die Schnittstelle Future im Code aus?
Wie sieht ein Callable und Future im Code aus (PrimeFactoryPrinter Klasse)?
Wie sieht ein Callable und Future im Code aus (Main Klasse)?
Wie sieht ein Callable und Future im Code aus (weiteres Beispiel)?
Wann ist der Threadpool eine gute Lösung? Der Threadpool ist eine gute Lösung in Applikationen, in denen eine grosse Anzahl von kurzlebigen und voneinander unabhängigen Aufgaben erledigt werden müssen
Was ist ein typischer Anwendungsfall von Threadpool? Typischer Anwendungsfall stellt der Server dar, bei dem jede Clientanfrage von einem Pool-Thread abgearbeitet wird
Wann ist der Threadpool keine gute Lösung? Der Threadpool ist keine gute Lösung in Applikationen, in denen eine kleine Anzahl aufwändiger und voneinander abhängigen Aufgabe erledigt werden müssen
Show full summary Hide full summary

Similar

UNIT 1 DIGITAL MEDIA SECTORS AND AUDIENCES
carolyn ebanks
Edexcel Additional Science Biology Topic 1
hchen8nrd
Cells and the Immune System
Eleanor H
Organigramas
Sindy Deydania
Organigramas
Sindy Deydania
HISTORIA DE LA LITERATURA BOLIVIANA
Einard Angel Gutiérrez Huanca
Mapa Conceptual
Brisa Jimenez Robles
Creación de
Lina Baldovino
LINEA DEL TIEMPO DE LA EVOLUCION DEL MICROSCOPIO
Naitha Hernandez
La estadistica, mapa conceptual
Tirso Solano
New English Literature GCSE
Monica Harris