Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » Concurrent Systems Exam 2021-04-09 (Übersicht)
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
pruefungen:hauptstudium:ls4:cs-2021-04-09 [09.04.2021 17:24] – Marcel[Inf] | pruefungen:hauptstudium:ls4:cs-2021-04-09 [09.04.2021 20:13] (aktuell) – Marcel[Inf] | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Concurrent Systems | + | ====== Concurrent Systems |
{{indexmenu>: | {{indexmenu>: | ||
Zeile 48: | Zeile 48: | ||
> * Beispiel 1: Programm nutzt BS-Primitiven (z. B. Sperren) um zu blockieren. => Zur Ausführung gibt der kernel-level Prozess (d.h. Prozess auf BS-Ebene) die Kontrolle ab; kernel-level Prozesszustand wechselt zu " | > * Beispiel 1: Programm nutzt BS-Primitiven (z. B. Sperren) um zu blockieren. => Zur Ausführung gibt der kernel-level Prozess (d.h. Prozess auf BS-Ebene) die Kontrolle ab; kernel-level Prozesszustand wechselt zu " | ||
> * Beispiel 2: Programm nutzt in Anwendungssoftware kodierte Umlaufsperren um zu blockieren. => Zur Ausführung gibt der Anwendungsprozess die Kontrolle ab, der kernel-level Prozess aber nicht. | > * Beispiel 2: Programm nutzt in Anwendungssoftware kodierte Umlaufsperren um zu blockieren. => Zur Ausführung gibt der Anwendungsprozess die Kontrolle ab, der kernel-level Prozess aber nicht. | ||
+ | |||
+ | * Was für Techniken gibt es für blockierende Synchronisation? | ||
+ | |||
+ | > Sperren, Semaphore, Mutexe | ||
+ | |||
+ | * Was ist der Unterschied zwischen Mutexe und Semaphore? | ||
+ | |||
+ | > Mutexe sind Methoden zur Sicherstellung wechselseitigen Ausschlusses [siehe Anhang des Foliensatzes zu Mutexe zum Thema Mutexe vs. Mutexentitäten]. Mutexentitäten sind Objekte mit einer `acquire` und einer `release`, wobei `release` überprüft, | ||
* Nachteile von blockierender Synchronisation? | * Nachteile von blockierender Synchronisation? | ||
Zeile 65: | Zeile 73: | ||
* Welche der 4 Bedingungen entkräftet Verklemmungsvermeidung? | * Welche der 4 Bedingungen entkräftet Verklemmungsvermeidung? | ||
- | Nur (iv) zirkuläres Warten. | + | > Nur (iv) zirkuläres Warten. |
* Was ist der Unterschied zwischen Verklemmungsvorbeugung und Verklemmungsvermeidung? | * Was ist der Unterschied zwischen Verklemmungsvorbeugung und Verklemmungsvermeidung? | ||
Zeile 73: | Zeile 81: | ||
* Was gibt es neben den beiden noch? | * Was gibt es neben den beiden noch? | ||
- | Wir können die Flinte ins Korn werfen und Verklemmungserkennung betreiben -- d.h. reagieren wenn es eigentlich schon zu spät ist. | + | > Wir können die Flinte ins Korn werfen und Verklemmungserkennung betreiben -- d.h. reagieren wenn es eigentlich schon zu spät ist. |
* Wie genau funktioniert Verklemmungserkennung? | * Wie genau funktioniert Verklemmungserkennung? | ||
Zeile 103: | Zeile 111: | ||
> Und wenn ein Prozess `unlock()` ausführt (also Kopf der Warteschlange war), so invalidiert dieser nur die boolsche Variable desjenigen Prozesses, der nach ihm folgt (also nächster innerhalb der Warteschlang war). | > Und wenn ein Prozess `unlock()` ausführt (also Kopf der Warteschlange war), so invalidiert dieser nur die boolsche Variable desjenigen Prozesses, der nach ihm folgt (also nächster innerhalb der Warteschlang war). | ||
- | * Wie kann mensch dann diese Warteschlange, | + | * Wie kann mensch dann diese Warteschlange, |
- | * Warum ist es keine gute Idee, ein Ticketlock zu implementieren, | + | |
> Das Ticketlock ja u.a. deswegen schick ist, weil es zu keinen Buslock Bursts führt, so wie bei TAS/ | > Das Ticketlock ja u.a. deswegen schick ist, weil es zu keinen Buslock Bursts führt, so wie bei TAS/ |