• 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,

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ß

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

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]

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