• Keine Ergebnisse gefunden

Aufgabe 3: Graphpartitionierung und List-Scheduling

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufgabe 3: Graphpartitionierung und List-Scheduling"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. rer. nat. Roland Wism ¨uller

Aufgabenblatt 6

(Zu bearbeiten bis 01.06.)

Vorlesung Verteilte Systeme Sommersemester 2021

Aufgabe 1: Java Sicherheitsmanager

Java Security wird seit Java 2 mit Hilfe von Security-Policies und dem Java-Security-Manager umgesetzt (siehe Kap.

3.4.2 der Vorlesung).

a) Erkl¨aren Sie kurz die Funktionsweise des Security-Managers. Was wird durch den Security-Manager gesch¨utzt und wovor?

b) Erweitern Sie das Code-Beispiel im Archivu06Files.zip1auf der Vorlesungswebseite so, daß der Client nur Dateien schreiben kann, die im Verzeichnis/tmpliegen. Versehen Sie die JVM dazu zun¨achst mit einem Security- Manager:

System.setSecurityManager(new SecurityManager());

Starten Sie nun den Client:

java Client /tmp/test Was passiert und warum?

Erstellen Sie jetzt eine Dateipolicymit der entsprechenden Sicherheitsrichtlinie und starten Sie den Client erneut:

java -Djava.security.policy=policy Client /tmp/test

c) Erstellen Sie nun einen eigenen Security-Manager, der zus¨atzlich(!) verhindert, daß der Client Dateien mit der En- dung.javaschreiben kann (selbst wenn diese unter/tmpliegen). Erweitern Sie dazu die KlasseSecurityManager und ¨uberschreiben Sie die Methodepublic void checkWrite(String file). Informieren Sie sich ¨uber die Methode mit Hilfe der Java-Dokumentation zur KlasseSecurityManager.

Aufgabe 2: Lastverteilungsstrategien

Lastverteilung in verteilten Systemen hat das Ziel, die auftretende Last m¨oglichst gleichm¨aßig zu verteilen, um ¨Uberlast auf einzelnen Knoten zu verhinden. Ein ehrgeizigeres Ziel w¨are es, die Last so zu verteilen, dass der Gesamtdurchsatz maximiert wird.

a) Wie unterscheiden sich statische, dynamische und pr¨aemptiv-dynamische Lastverteilung voneinander? Welche Vor- und Nachteile haben die Verfahren und welche Voraussetzungen m¨ussen jeweils gegeben sein, um eins der Verfah- ren anwenden zu k¨onnen?

b) Alle Lastverteilungsstrategien gr¨unden ihre Entscheidungen auf irgendeineLastmetrik. Die einfachste, oft betrach- tete Lastmetrik bei theoretischer Analyse der Algorithmen ist die Anzahl der (rechenbereiten) Prozesse pro Knoten.

Warum ist diese Metrik in der Praxis oft nicht ausreichend? Was w¨are eine bessere Metrik und welche neuen Pro- bleme treten dann auf?

1http://www.bs.informatik.uni-siegen.de/web/wismueller/vl/vs/u06Files.zip

1

(2)

Aufgabe 3: Graphpartitionierung und List-Scheduling

In der Vorlesung (Kap. 5.1.1) wurden zwei Arten von verteilten Scheduling-Algorithmen vorgestellt, die auf Graphen basieren:

• Lastverteilung durch Graphpartitionierung und

• List-Scheduling.

Welche Gemeinsamkeiten und Unterschiede k¨onnen Sie zwischen diesen beiden Klassen von Algorithmen feststellen?

Unter welchen Voraussetzungen sind sie anwendbar?

Aufgabe 4: Lastverteilung durch Graphpartitionierung

Erinnern Sie sich an die Lastverteilung durch Graphpartitionierung (s. Vorlesung Kap. 5.1.1). Nehmen Sie an, daß in der unten stehenden Abbildung der Prozess H von Knoten 2 auf Knoten 3 wechselt. Wie groß ist danach der (gesamte) Netzwerkverkehr zwischen den Knoten?

1 2 3

6

4 1 8

3 4 2

3 2

3 5 5 1 2

4 2

G E

B C

F

I H

D A

Aufgabe 5: List-Scheduling

In der Vorlesung wurden verschiedene Ans¨atze zum verteilten Scheduling vorgestellet (s. Kap. 5.1.1). Zwei h¨aufig ver- wendete List-Scheduling Algorithmen sind:High Level First with Estimated Time(HLFET) undEarliest Task First(ETF).

Der erste war schon in der Vorlesung dargestellt (s. Animation auf Folie 175: List-Scheduling mit HLFET). F¨ur den zwei- ten Algorithmus finden Sie eine genaue Beschreibung im dem Artikel von Hagras und Janacek (¨uber die Vorlesungsseite oderhttps://ojs.cvut.cz/ojs/index.php/ap/article/download/490/322) auf Seite 19.

Gegeben sei ein System mit 3 Prozessoren und der unten gezeigte DAG, der ein Programm, bestehend aus mehreren abh¨angigen Tasks, modelliert. Die Knoten beinhalten Tasks mit Ausf¨uhrungszeiten und die Kanten zeigen die notwendige Kommunikation mit ¨Ubertragungsdauer.

8

2 8 8 8 8 8 4

4 2

8 4 2 4 8

10 20

10 15 20

20 20 15 5 5

J A

G H I

C

B D E F

Wie werden die Tasks auf die drei Processoren gescheduled (mit HLFET / mit ETF)? Zeichen Sie jeweils ein Gantt- Diagramm. Nehmen Sie an, dass eine lokale Kommunikation keine Zeit kostet.

Aufgabe 6: Prozeßmigration

Einige Multicomputer gestatten die Migration laufender Prozesse von einem Knoten zum anderen. Ist es ausreichend, den Prozeß anzuhalten, das Speicherabbild einzufrieren und das Ganze auf einen anderen Knoten zu ¨ubertragen? Geben Sie zwei nicht-triviale Probleme an, die gel¨ost werden m¨ussen, damit das Modell funktioniert.

2

(3)

Aufgabe 7: Policies dynamischer Lastverteilungs-Systeme

a) Beschreiben Sie die vier Policies (Strategien), die normalerweise Bestandteile eines dynamischen Lastverteilungs- Systems sind. Geben Sie f¨ur jede Strategie an:

• eine intuitive Beschreibung des Zweckes dieser Strategie,

• ein Beispiel einer spezifischen Implementierung dieser Strategie.

b) Warum sind empf¨anger-initiierte Verfahren zum dynamischen Lastausgleich manchmal nicht erw¨unscht?

3

Referenzen

ÄHNLICHE DOKUMENTE

Bei einem Schema muss man für jede Klasse, jede Assoziation, jedes Attribut und deren Domain einen Knoten eines entsprechenden Types (NodeClass, EdgeClass,

In dieser Aufgabe wollen wir einen Mini-Interpreter sowohl in ML als auch in Java entwickeln, sowie Vor- und Nachteile der Implementierungen diskutieren. Wir betrachten die Sprache,

[r]

Verwendung wie bei Tastatureingabe, jedoch stream ist nun Datei (nicht stdin ). Scannen der eingelesenen Zeile

Eine Komponente eines Server-Skeletons ist der Dispatcher, der den in der Anfragenachricht spezifizierten Methodenauf- ruf an das jeweilige Objekt weitergibt. Das Server-Skeleton

Java Security has been implemented since Java 2 with the help of security policies and the Java Security Manager (see chapter 3.4.2 of the lecture).?. a) Briefly explain how

Interessant für manche Aufgaben ist, daß ein Stern ( * ) zwischen dem %- Zeichen und dem Datentyp (vergleichbar der variablen Feldbreite bei fprintf() ) bei scanf() bewirkt, daß

Ein Betriebssystem verwendet Paging, um f¨ur die verschiedenen Prozesse einen virtuellen Hauptspeicher zu realisieren.. Der virtuelle Speicher wird auf 12 MB Hauptspeicher und