Parallelität Flashcards

1
Q

Welche 2 Arten von lokaler Parallelität unterscheidet man?

A

reale Parallelität

virtuelle Parallelität

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

was versteht man unter realer Parallelität?

A

in einem einzigen System laufen verschiedene Aktionen tatsächlich parallel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was versteht man unter virtueller Parallelität?

A

Aktionen könnten prinzipell echt parallel laufen, werden aber zunächst sequentialisiert und nacheinander ausgeführt.
So kann ein Softwaresystem auch auf einem Einprozessorsystem scheinbar parallel ausgeführt werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist die Aufgabe des Schedulers?

A

Der Scheduler teilt die für dei Programmausführung zur Verfügung stehenden Prozessoren den verschiedenen Ausführungssträngen zu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was versteht man unter preemtivem Scheduling?

A

Der Scheduler entscheidet über die Rechenzeit eines Prozesses

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was versteht man unter nicht-preemtivem Scheduling?

A

der Ausführungsstrang entscheidet selbst über seine Rechenzeit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wann nennt man Scheduling fair?

A

ein faires Scheduling ist dann gegeben, wenn der Scheduler garantiert, dass jeder Ausführungsstrang nach einer endlichen Wartezeit einen Prozessor zugeteilt bekommt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Ein Thread erbt von der Klasse Thread, wie kann Sub-Thread noch von einer anderen Klasse erben?

A

Für diesen Zweck stellt Java das Interface java.lang.Runnable bereit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welche Varianten lokaler Parallelität lassen sich unterscheiden? Erklären Sie sie!

A

Reale Parallelität bedeutet, dass in einem einzigen System verschiedene Aktionen tatsächlich parallel ablaufen können. Virtuelle Parallelität (oder auch Quasi-Parallelität) hingegen bedeutet, dass Aktionen, die zwar echt parallel laufen könnten, zunächst sequentialisiert werden und nacheinander ausgeführt werden. So kann ein Softwaresystem auch auf einem Einprozessorsystem scheinbar parallel ausgeführt werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Warum ist es auch dann von Vorteil, ein Softwaresystem so zu implementieren, dass es parallel ausgeführt werden kann, wenn es nur auf einem Einprozessorsystem laufen soll?

A

Häufig ist es nicht notwendig, die Ausführungsreihenfolge zweier Aktionen a und b festzulegen; d.h. für die Funktionalität des Programms ist es äquivalent, ob zuerst a oder b ausgeführt wird. In diesem Fall erlaubt die Berücksichtigung der Parallelität, auf eine künstliche Sequentialisierung einer Implementierung zu verzichten und überlässt es einem Scheduler, zwischen verschiedenen Ausführungssträngen zu wechseln. Eine solche verschränkte Ausführung ist insbesondere dann von Vorteil, wenn ein Strang gerade nichts „Sinnvolles“ tun kann, da er z.B. auf eine Antwort aus dem Netzwerk oder einem Gerät (z.B. der Festplatte) wartet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Welche Aufgabe hat der Scheduler? Welche Arten des Schedulings können unterschieden werden? Wann ist das Scheduling fair?

A

Der Scheduler hat die Aufgabe, die für die Programmausführung zur Verfügung stehenden Prozessoren den verschiedenen Ausführungssträngen zuzuteilen. Beim preemptiven Scheduling entscheidet der Scheduler darüber, wie lange ein Ausführungsstrang rechnen darf. So kann er dem Strang z.B. nach Ablauf eines bestimmten Zeitfensters den Prozessor entziehen und ihn einem anderen Strang zuweisen. Beim nicht-preemptiven Scheduling entscheidet ein Ausführungsstrang selbstständig darüber, wann er einen Prozessor wieder freigibt. Bei unvorsichtiger Implementierung kann dies dazu führen, dass ein Ausführungsstrang alle anderen blockiert. Das Scheduling ist dann fair, wenn der Scheduler garantiert, dass jeder Ausführungsstrang nach einer endlichen Wartezeit einen Prozessor zugeteilt bekommt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

In Java erzeugt man eigene Thread-Klassen durch Ableiten von der Klasse Thread. Umgekehrt kann in Java eine Klasse nur von einer anderen Klasse abgeleitet sein. Welche Lösung bietet einem Java an, wenn man ein Thread-Objekt gleichzeitig von einer anderen Klasse als Thread ableiten möchte?

A

Man kann ebenso auch das Interface java.lang.Runnable implementieren. Eine Instanz dieses Objekts kann dann einem Thread im Konstruktor übergeben und dieser kann anschließend wie gewöhnlich mit start() gestartet werden.

Thread t = new Thread(runnable); 
t.start();
How well did you know this?
1
Not at all
2
3
4
5
Perfectly