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
Grenzen Sie die Begriffe Nebenläufigkeit und Parallelität gegeneinander ab.
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?
Welche Auswirkungen hat der Einsatz von Threads ...
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.
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
activeCount
, und warum wird diese nur als Schätzwert geliefert?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?
Weshalb müssen Methoden der Familie wait
und
notify
immer innerhalb synchronisierter
Abschnitte eingesetzt werden?
Skizzieren Sie den Einsatz von Synchronisationsprimitiven zur Entkopplung von Erzeugern und Verbrauchern an einem Codebeispiel.
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)
Entwickeln Sie eine nebenläufige Implementierung der Multiplikation zweier n x n
-Matrizen.
Skizzieren Sie zunächst verbal Ihre Überlegungen!
Service provided by Mario Jeckle
Generated: 2004-06-07T12:31:03+01:00
Feedback SiteMap
This page's original location: http://www.jeckle.de/vorlesung/javaThreads/klausur/ss2002/index.html
RDF description for this page