Fachhochschule Augsburg
Fachbereich Informatik

Klausur im Fach „Java Threads“, Sommersemester 2002

Semester: I/MM 8
2001-07-24, 1430 Uhr
Bearbeitungszeit: 60 Minuten
Zugelassene Hilfsmittel: keine



back to top   1 Grundlagen

 

1.1  Begriffe

Grenzen Sie die Begriffe Nebenläufigkeit und Parallelität gegeneinander ab.

1.2  Umsetzung im Betriebssystem

Inwiefern erweitern Threads das Prozesskonzept des Betriebssystems?
Stellt hierbei das Vorhandensein von Threads in einer ohnehin schon als Multitaskingsystem ausgelegten Umgebung nicht ein „Überangebot“ -- durch äquivalente Primitive -- dar?

Hardwareaspekte

Welche Auswirkungen hat der Einsatz von Threads ...

back to top   2 Threads in Java

 

2.1  Umsetzungskonzepte

Die gesamte threadbasierte Verarbeitung ist in Java eng an das Konzept der Klasse gekoppelt. Trotzdem existieren mit dem vererbungs- und dem schnittstellenbasierten Ansatz zwei duale Umsetzungsmöglichkeiten.
Vergleichen Sie beide hinsichtlich ihrer Grundidee und der Auswirkungen auf die Anwendungsentwicklung.

2.2  Schnittstellenbasierte Umsetzung

Formulieren Sie das nachfolgende Programm so um, daß es -- bei gleicher Funktionalität -- die Schnittstelle Runnable zur Umsetzung der Threads verwendet.

(1)public class TTest1 {
(2)    public static void main(String argv[]) {
(3)        for (int i=0; i<2; i++)
(4)            new TTest2();
(5)    } //main()
(6)} //class TTest1
(7)
(8)class TTest2 extends Thread {
(9)    public TTest2() {
(10)        start();
(11)    } //constructor
(12)
(13)    public void run() {
(14)        while(true) {
(15)            try {
(16)                System.out.println("Hello from thread "+Thread.currentThread().getName() );
(17)                Thread.sleep(1000);
(18)            } catch (InterruptedException ie) {}
(19)        } //while
(20)    } //run()
(21)} //class TTest2

Download

2.3  Vermischtes

Synchronisation

Implementieren Sie eine Banküberweisung von einem Konto auf ein anderes unter Verwendung des Schlüsselwortes synchronized.

Diskutieren Sie Ihre Lösung hinsichtlich der mit synchronized einhergehenden Einschränkung der Parallelität.
Wo limitieren Sie gezielt gleichzeitige Zugriffe und mit welchen Auswirkungen?

2.5  Wait und Notify

Weshalb müssen Methoden der Familie wait und notifyimmer innerhalb synchronisierter Abschnitte eingesetzt werden?

2.6  Puffer

Skizzieren Sie den Einsatz von Synchronisationsprimitiven zur Entkopplung von Erzeugern und Verbrauchern an einem Codebeispiel.

back to top   3 Verklemmungen

 

Zeichnen Sie den Ressourcenanforderungsgraphen zum folgenden Ablauf und kennzeichnen Sie ggf. Verklemmungssituationen geeignet.

(Thread-6): requested(1)
(Thread-5): requested(4)
(Thread-11): requested(1)
(Thread-9): requested(1)
(Thread-13): requested(4)
(Thread-5): requested(2)
(Thread-7): requested(2)
(Thread-11): requested(3)
(Thread-4): requested(0)
(Thread-7): requested(3)
(Thread-10): requested(0)
(Thread-10): requested(1)
(Thread-12): requested(2)
(Thread-13): requested(0)
(Thread-9): requested(4)
(Thread-4): requested(4)
(Thread-8): requested(0)
(Thread-12): requested(3)
(Thread-8): requested(2)
(Thread-6): requested(0)

(Thread-5) locked(4)
(Thread-11) locked(3)
(Thread-9) locked(1)
(Thread-7) locked(2)
(Thread-4) locked(0)

back to top   4 Algorithmische Aspekte

 

Entwickeln Sie eine nebenläufige Implementierung der Multiplikation zweier n x n-Matrizen.

Skizzieren Sie zunächst verbal Ihre Überlegungen!




separator line
Service provided by Mario Jeckle
Generated: 2004-06-07T12:31:03+01:00
Feedback Feedback       SiteMap SiteMap
This page's original location This page's original location: http://www.jeckle.de/vorlesung/javaThreads/klausur/ss2002/index.html
RDF metadata describing this page RDF description for this page