ZHAW BSY Kap5
zhaw
zhaw
Kartei Details
Karten | 17 |
---|---|
Sprache | Deutsch |
Kategorie | Informatik |
Stufe | Universität |
Erstellt / Aktualisiert | 16.05.2019 / 12.06.2019 |
Weblink |
https://card2brain.ch/box/20190516_zhaw_bsy_kap5
|
Einbinden |
<iframe src="https://card2brain.ch/box/20190516_zhaw_bsy_kap5/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Lernkarteien erstellen oder kopieren
Mit einem Upgrade kannst du unlimitiert Lernkarteien erstellen oder kopieren und viele Zusatzfunktionen mehr nutzen.
Melde dich an, um alle Karten zu sehen.
Problemstellungen um Nebenläufigkeit und Parallelverarbeitung aufzählen und diskutieren
- Resultate nebenläufiger Berechnungen können vom zeitlichen Ablauf der Tasks abhängen (nicht deterministisches Verhalten)
- Mehrere Prozesse gleichen gleichzitig auf gleiche Daten zu und verändern sie (Bankkonto)
Konzept des kritischen Abschnitts erklären und diskutieren
- Nur ein Prozess darf gleichzeitig auf Daten zugreifen (Mutual exclusion). Lösung über Locks.
- Wartet ein Prozess auf Zutritt muss dieser irgendwann gewährt werden
Consumer/Producer und Readers/Writers Problem erklären und diskutieren
Consumer Producer describes two processes, the producer and the consumer, who share a common, fixed-size buffer used as a queue. The producer's job is to generate data, put it into the buffer, and start again. At the same time, the consumer is consuming the data (i.e., removing it from the buffer), one piece at a time. The problem is to make sure that the producer won't try to add data into the buffer if it's full and that the consumer won't try to remove data from an empty buffer.
Reader/Writer:
- Lesen oft häufiger als schreiben.
- Daher mehrere Reader gleichzeitig im kritischen Abschnitt.
- Maximal ein Writer und kein Reader im kritischen Abschnitt
- Vorteile: Lesezugriff Parallel aber trotzdem sichere Schreibzugriffe
(fänch was here)
Wann liegt eine Race Condition vor?
Wenn mindestens zwei Tasks auf gemeinsame Daten zugreifen und mindestens einer der Zugriffe eine Schreiboperation ist.
Funktioniert Peterson’s Algoritmus fur preemptives und nonpreemtives Scheduling (single CPU)? ¨ Kann das Verfahren auf Multicore-Systemen eingesetzt werden?
Nein, weil Petersons’s Algorithmus ßpinned¨und bei nonpreemtiven Verfahren kein KontextSwitch forciert werden kann. Eher nicht, moderne Multicore-Systeme verwenden in der Regel ein relaxed Memroy Modell
Können User-Level Threads mit Semaphoren synchronisiert werden?
Nein, weil der ganze Prozess schlafen gelegt wird, wenn ein Thread auf eine geschlossene Semaphore trifft.
Erklären Sie Transactional Memory (TM) und was Vor- und Nachteile sind.
Bei TM werden Zugriffe auf gemeinsame Daten wie Transaktionen gehandhabt: sie sind atomar. Vorteile sind: Transaktionen sind ”composable”, d.h. k¨onnen verschachtelt werden, es gibt keine Deadlocks und TM ist bei Hardwareuntesrt¨utzung schnell. Nachteil: f¨ur sehr kleine kritische Regionen eher langsamer, ben¨otigt HW-Unterts¨utzung.
Erklären und diskutieren Sie Monitore. Was ist der Unterschied zu Semaphore?
Monitore sind ein Sprachkonstrukt wie z.B. synchronized in Java, Semaphore sind Systemfunktionen und k¨onnen von allen Sprachen verwendet werden.
Was unternehmen die meisten Betriebsysteme bezuglich Deadlocks?
In der Rege(l) nichts
Diskutieren Sie den Unterschied zwischen Deadlock Prevention und Deadlock Avoidance.
Verhindern: daf¨ur sorgen, dass mindestens eine der vier Deadlock Bedingungen nicht eintrifft. Vermeiden: Ressource wird nur vergeben, wenn kein Deadlock entstehen kann
Nennen Sie die drei Bedingungen, die einen Deadlock m¨oglich machen. Welche vierte Bedingung muss auftreten, damit ein Deadlock ensteht?
Gegenseitiger Ausschluss, Hold and Wait (Task gibt belegte Ressource nicht frei), no preemption (Ressource kann dem Task nicht weggenommen werden, Circular Wait: Kreis von Anforderungen und Alloktaion besteht
Wie l¨asst sich beim Anfordern von Ressourcen ein Circular Wait verhindern?
] Ressourcen immer in der gleichen Reihenfolge anfordern
die Begriffe Deadlock, Lifelock und Starvationen erklären und diskutieren
Deadlock:
Tasks warten auf gegenseitige Freigaben von Resourcen und kein Task arbeitet weiter.
Livelock
Task arbeiten, aber Arbeit nicht produkti wegen ungewollter Busy Wait
Starvation
Prozess erhält keinen Zugriff auf Resourcen wegen unfairen Policies
Sie können Möglichkeiten zur Verhinderung von Deadlocks aufzählen und diskutieren
• Mutual Exclusion
- lässt sich nicht grundsätzlich vermeiden
• Hold and Wait
- alle benötigten Ressourcen zusammen anfordern
- vor neuer Anforderung alle Ressourcen zurückgeben
• No Preemption
- Ressourcen freigeben, deren Zustand leicht sicherbar sind
• Circular Wait
- Ressourcen nummerieren
- in aufsteigender Reihendolge allozieren
Nennen sie die 4 Voraussetzungen für ein Deadlock
- Mutual Exclusion
- Midestens eine Ressource ist exklusiv reserviert
- Hold and wait
- Mindestens ein Task hat eine Ressource exklusiv reserviert und wartet auf weitere Ressourcen
- No preemtion
- Reservierte Ressourcen können dem Task nicht enzogen werden. Freiwillige Rückgabe nur, wenn Aufgabe gelöst
- Circular wait.
- geschlossene „Kette “ von Tasks existiert, in der jeder Prozess mindestens eine Ressource reserviert hat, die auch von einem Nachfolger in der Kette benötigt wird
Möglichkeiten zum Lösen von Deadlocks
1. alle beteiligten Tasks stoppen
2. alle beteiligten Tasks auf Checkpoint zurücksetzen
3. beteiligte Tasks der Reihe nach stoppen, bis Deadlock gelöst
4. beteiligten Tasks Ressourcen wegnehmen, bis Deadlock gelöst
Sie können Ressourcengrafen erklären, diskutieren und Ressourcengrafen für das Finden von Deadlocks einsetzen
Grundsätzlich: Kein Zyklus = kein Deadlock
Siehe Folien
-
- 1 / 17
-