|
Wissensfragen zur
Vorlesung
Gegenstand der Klausur ist der Inhalt der Vorlesung. Dazu sollten Sie
einerseits diese Inhalte kennen und wiedergeben können,
andererseits sollten Sie in der Lage sein, das erworbene Wissen
anzuwenden.
Im Folgenden finden Sie eine Sammlung von Wissensfragen, die sich aus
der Vorlesung ergeben und die beherrscht werden sollen.
|
Einführung |
- Wann ist ein Programmablauf sequentiell und wann
nichtsequentiell?
- Ist dies ein sequentielles oder nichtsequentielles Programm:
x = 3; y = 7;
(x,y) = (x+1,2*y);
z = x+y;
- Was ist ein Prozess?
- Was ist eine mögliche Syntax und Semantik einer
Nebenläufigkeitsanweisung?
- Was ist eine mögliche Syntax und Semantik einer
Gabelungssanweisung?
- Nennen Sie zwei Gründe für die Nutzung
nichtsequentieller Programmung.
- Wann stehen zwei Prozesse in Konflikt?
- Was ist Synchronisation?
- Was ist ein nichtdeterministische Programmablauf?
- Was ist Ergebnisdeterminiertheit?
- Was sind unteilbare Anweisungen?
- Was macht die Korrektheit nichtsequentieller Programme aus?
- Kann man die Korrektheit nichtsequentieller Programme
testen? Begründen Sie.
|
Nebenläufige Prozesse
|
- Was ist eine asynchrone Prozedur?
- Wie erzeugt man in Java Prozesse?
- Wo wird in Java die eigentliche Funktionalität eines
Prozesses definiert?
- Wie würde man in Java eine asynchrone Prozedur
implementieren?
- Wie kann man in Java direkt auf Prozesse einwirken? Bitte
bescheiben Sie.
- Skizzieren Sie die Zustände von Prozessen in Java
einschließlich der jeweils beteiligten Methoden und Ereignisse.
- Wo liegen die Probleme einer in einem Prozess verwendeten
Variable die als double d;
deklariert ist?
- Beschreiben Sie in Mehrprozessorsystem in Bezug auf die
Ausführung von Prozessen.
- Beschreiben Sie den Mehrprozessbetrieb in Bezug auf die
Ausführung von Prozessen.
- Wie kann es beim Fehlen echter Parallelität Probleme
durch nichtatomare Ausdrücke, Anweisungen etc. geben ?
- Was ist ein Thread im Gegensatz zu einem Prozeß?
|
Interaktion
über Objekte
|
- Was ist der Zweck von Sperrsynchronisation?:
- Was ist die Semantic eines in Java mit synchronized(o) markierten
Blocks?
- Was passiert mit dem Ausschluss, wenn in einer synchronized Methode eine
Ausnahme geworfen wird?
- Kann man synchronized
Blöcke schachteln und ist das problemlos?
- Was ist ein Monitor?
- Wir baut man in Java einen vollständigen Monitor?
- Was bewirkt die Definition der folgenden Objektmethode in
einer beliebigen Klasse?
void t() {
synchronized(this.getClass()) {
i++;
}
- Wie kann man für Klassen, die für
sequentielle Benutzung entworfen sind, einen Monitor für ihre
nichtsequentielle Nutzung "nachrüsten"?
- Wie ist die Semantik von Konstrukten zum
Leser-/Schreiberausschluß?
- Was sind Sperroperationen und was bedeuten sie?
- Was sind Lese-/Scheibsperren?
- Was ist das "Upgrading" einer Lesesperre?
- Was ist Serialisierbarkeit von Operationen?
- Wann ist ein Objekt serialisierbar?
- Welche Phasen unterscheidet man beim 2-Phasen-Sperren?
- Was ist Bedingungssynchronisation und warum ist sie
sinnvoll?
- Was ist ein verzögerter Monitor?
- Wer hat Vorrang beim Eintritt in einen verzögerten
Monitor?
- Was ist die Semantik der Warteanweisung AWAIT?
- Was sind Wachen und wie arbeiten sie?
- Diskutieren Sie die Implementierbarkeit von AWAIT und WHEN.
- Was ist Ereignissynchronisation?
- Welche Varianten von SIGNAL gibt es?
- Welche Mittel stellt Java zur Ereignissynchronisation
bereit?
- Welche Fairness-Garantien werden dabei gemacht?
- Was sind Semaphore und welche Operationen kann man auf
ihnen ausführen?
- In welcher Reihenfolge müssen die
Semaphoren-Operationen ausgeführt werden?
- Unter welchen Bedingungen werden die Semaphoren-Operationen
ausgeführt?
- Sind Monitore den Semaphoren überlegen? Umgekehrt?
- Wie baut man eine Sperrvariable mit Hilfe eines Semaphors
nach?
- Was ist eine Vererbungsanomalie?
- Wie kann man Vererbungsanomalien abhelfen?
- Was sind autonome Operationen und aktive Objekte?
- Wie baut man in Java eine asynchrone Operation?
- Was ist ein Future und wozu dient es?
|
Ablaufsteuerung |
- Was macht Ablaufsteuerung?
- Was ist eine Priorität eines Prozesses und wozu wird
sie genutzt?
- Was ist Prioritätsumkeht? Geben Sie ein Beispiel.
- Was ist eine faire Auswahlstrategie?
- Garantiert die zufällige Auswahl eines Prozesses in
der Ablaufsteuerung Fairness? Begründen Sie.
- Nennen Sie eine streng faire Auswahlstrategie?
- Nennen Sie Beispiele für effizienzorientierte
Auswahlstrategien und begründen Sie sie.
- Was ist ein Alterungsmechanismus?
- Wann ist eine Verklemmung deterministisch, wann ist sie
nichtdeterministisch?
- Was ist ein Anforderungsgraph und woraus besteht er?
- Wie verwendet man einen Anforderungsgraph zur
Verklemmungserkennung?
- Wie kann man eine Verklemmung auflösen?
- Was bedeutet Sicherheit bezogen auf Zustände in einem
2-Prozessor-System?
- Wie werden in Java Verklemmungen behandelt?
- Was ist ein Livelock?
|
Implementierung |
- Was ist eine strukturtreue Implementierung?
- Nennen und beschreiben Sie zwei Beispiele für nicht
strukturtreue Implementierungen
- Was macht die Test-and-Set Operation aus und warum
unterstützt sie die Implementierung nebenläufiger Systeme?
- Was ist ein Spin-Lock und was ist Busy-Waiting?
- Was sind Koroutinen?
|