zhaw


Set of flashcards Details

Flashcards 17
Language Deutsch
Category Computer Science
Level University
Created / Updated 16.05.2019 / 12.06.2019
Weblink
https://card2brain.ch/box/20190516_zhaw_bsy_kap5
Embed
<iframe src="https://card2brain.ch/box/20190516_zhaw_bsy_kap5/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

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