Carsten Kelling 1997 ([EMail senden]); letzte Änderung: 17. September 1997


Diplomarbeit

Ein Rechner-Baukasten -

Simulation und Visualisierung der Zeitabläufe in Rechnerarchitekturen

mit Java-Applets

Carsten Kelling
Universität Hamburg, Fachbereich Informatik
Arbeitsbereich Technische Grundlagen der Informatik

Vogt-Kölln-Str. 30, D-22527 Hamburg

Hamburg, im September 1997



Carsten Kelling

Ratiborweg 16
22043 Hamburg

Tel.: 6549 36 61
Fax: 6549 13 68

Email: Carsten_Kelling@public.uni-hamburg.de


Inhaltsverzeichnis

1 Einleitung

1.1 Aufgabenstellung und Inhalt dieser Arbeit

1.1.1 Was diese Arbeit umfaßt
1.1.2 Was diese Arbeit nicht umfaßt

1.2 Aufbau und Gliederung

1.2.1 Darstellungskonventionen

2 Visualisierung und Simulation mit Java

2.1 Bestehende Ansätze

2.1.1 Lehrbücher: Gedruckte Bücher
2.1.2 Intel P6-Demo
2.1.3 WinASP
2.1.4 PowerPC-Simulator

2.2 Didaktische Notwendigkeiten

2.2.1 Animationen statt Bilder
2.2.2 Begleitende Dokumentation

2.3 Simulation mit Java

2.3.1 Praxiseignung von Java
2.3.2 Multimedia-Dokumentation
2.3.3 Zusammenfassung: Vorzüge des Rechner-Baukastens

3 Lernmaterialien zur technischen Informatik

3.1 Einleitung

3.1.1 Was man mit diesen Materialien lernen kann
3.1.2 An wen sich diese Materialien richten

3.2 Grundlagen der Rechnerarchitektur

3.2.1 Komponenten eines einfachen Rechners
3.2.2 Computerprinzipien

3.3 Der Von-Neumann-Rechner

3.3.1 Von-Neumann-Prinzipien
3.3.2 Simulation des Von-Neumann-Rechners
3.3.3 Nachbetrachtung: Steuerwerk

3.4 Erweiterte Konzepte

3.4.1 Adressierungsarten
3.4.2 Prinzipien der Ein-/Ausgabe

3.5 Die Speicherhierarchie

3.5.1 Einfacher Zwischenspeicher (Cache) für Lesezugriffe
3.5.2 Prinzipien des Zwischenspeicher-Aufbaus
3.5.3 Ein Cache mit variablen Parametern - was bringt wieviel?

3.6 Konzepte zur Steigerung der Verarbeitungsleistung

3.6.1 Die Befehlspipeline

3.7 Literaturliste

3.8 Glossar

4 Der Rechner-Baukasten

4.1 Komponenten des Rechner-Baukastens

4.2 Das Package ckelling.baukasten

4.3 Die Wahl der Basisklasse des Applets

4.4 Erzeugung der Komponenten

4.4.1 Der Baukasten-Editor
4.4.2 Koordinaten der Komponenten
4.4.3 Besonderheiten der Komponenten
4.4.4 Die zwei Arten von Komponenten
4.4.5 Entfernen von Komponenten

4.5 Wertzuweisung und Berechnung

4.5.1 Berechnungen mit ALU und Addierer

4.6 Visualisierung

4.6.1 Varianten von activate()
4.6.2deactivate()
4.6.3 Varianten von update()
4.6.4 Neuzeichnen der Komponenten
4.6.5 Vergrößern/Verkleinern und Verschieben von Komponenten

4.7 Zusätzliche Funktionalität

4.7.1 Einstellen der Überschrift
4.7.2Hilfetexte am Mauszeiger

4.8 Der Simulationsansatz

4.8.1 Der Ansatz SI/SS/DS
4.8.2 Der Ansatz SI/DS

4.9 Pfade und benötigte Dateien

4.10 Ausführen eines Applets

4.10.1 Integration in HTML-Seiten
4.10.2 Unterstützte Parameter
4.10.3 Beispiel-HTML für den Von-Neumann-Rechner

4.11 Demonstrations-Applets

4.12 Unterstützungsklassen zur freien Verwendung

4.12.1 AboutRechnerDialog
4.12.2 ConsoleWindow
4.12.3 DemonstrationStep
4.12.4 Error_Message
4.12.5 RKWrapper
4.12.6RTFTextArea
4.12.7 SimControl
4.12.8 LoadProgress
4.12.9 TimerThread

5 Zusammenfassung und Ausblick

5.1 Zusammenfassung

5.1.1 Die Lernmaterialien zur technischen Informatik
5.1.2 Der Rechner-Baukasten
5.1.3 Die Simulationsansätze
5.1.4 Eignung von Java für die Visualisierung von Zeitabläufen

5.2 Ausblick

5.2.1 Inhaltliche Fortentwicklung
5.2.2 Technische Fortentwicklung
5.2.3 Fortentwicklung durch Leser und Programmierer

5.3 Bekannte Einschränkungen und Fehler

6 Literaturliste

7 Glossar

8 Erklärung

9 Danksagung


1 Einleitung

Die technischen Grundlagen der Informatik werden von Studenten vielfach als "trocken" und kompliziert empfunden. Sie gehören aber zum Pflichtprogramm im Grundstudium, weil die Gesamt-Informatik sich als untrennbare Einheit aus technischer, angewandter, theoretischer und praktischer Informatik versteht und jedem Studenten zumindest einen Einblick in alle vier Bereiche vermitteln will. Dieser Einblick, d.h. das Wissen von den Inhalten und Grenzen der Informatik, ergibt sich auch zwingend aus ihrem Anspruch auf Wissenschaftlichkeit. Auch ein programmierender Informatiker sollte eben wissen, wie es der Maschine möglich ist, die Befehle in seinen Programmen auszuführen; bei anspruchsvolleren Projekten wird er ohne technisches Grundlagenwissen nicht bestehen können. Am Fachbereich Informatik der Universität Hamburg wird das angesprochene Wissen im Grundstudium im dreisemestrigen B-Zyklus vermittelt. Zu den Vorlesungen sind umfangreiche Skripte vorhanden, die durch wöchentliche Übungsaufgaben und -gruppen ergänzt werden. Außerdem richtet der Arbeitsbereich Technische Grundlagen der Informatik (TECH) als Träger des B-Zyklus "Praxis-Tutorien" aus, in denen am Computer digitale Schaltungen entworfen und sofort ausprobiert werden können. Das Ausbildungspensum scheint also ausreichend durch klassische Formen der Wissensvermittlung abgedeckt zu werden.

Dennoch ist man am Arbeitsbereich TECH der Meinung, daß sich Form, Inhalt und Umfang der Materialien, die man den Studenten zum (Selbst-)Studium an die Hand gibt, stets verbessern lassen. Ein erster Schritt besteht in der Umsetzung des klassischen, auf Papier gedruckten, Vorlesungsskriptes in ein Hypertext-Dokument im im world wide web (WWW) üblichen HTML-Format; dieses hat mehrere Vorteile:

Zusammengefaßt sind HTML-Dokumente, wie sie bisher verwendet wurden, bessere und schnellere Bücher, bestehend aus starrem Text und unveränderlichen Illustrationen. Es ist aber eine unbestrittene mnemotechnische Tatsache, daß Lerninhalte um so fester und dauerhafter im Gedächtnis verankert werden, je mehr "Sinne" sie bei der Aufnahme beansprucht haben. Probanden, die sich einen Text laut vorlasen, erinnerten sich im Durchschnitt an größere Teile des Inhalts als diejenigen, die denselben Text still gelesen haben; noch besser wird im allgemeinen durch "Ausprobieren" gelernt, wenn das Gehirn nicht nur auf Konsum, sondern auch auf Eigenarbeit eingestellt ist. Abgesehen davon aktiviert das Zulassen von "Experimenten" den oftmals unterschätzten, übersehenen oder ungewollten Faktor "Spaß". Dieses mag ein Grund für den großen Erfolg der Praxis-Tutorien sein.

Diese Diplomarbeit konzentriert sich auf die naheliegendste und eleganteste Möglichkeit, aus HTML-Dokumenten interaktive Lernmaterialien für diverse Anwendungen zu machen: Die Anreicherung von HTML-Seiten mit Java-Applets, also Programmen, abgefaßt in der rechnerunabhängigen Programmiersprache Java, die in der Umgebung des Browsers ausgeführt werden.

1.1 Aufgabenstellung und Inhalt dieser Arbeit

Die Entscheidung, HTML-Seiten mit Java-Applets zu versehen, war bei Beginn dieser Arbeit bereits gefallen; im Vergleich zu den Alternativen, bereits existierende Simulatoren oder dedizierte Multimediapräsentationsprogramme zu verwenden, hat die Kombination "Java + Browser" einige Vorteile:

Obendrein zeichnet sich Java durch einige weniger grundlegende Vorteile aus:

Die Verwendung von Java hat aber auch zwei Nachteile, die nicht verschwiegen werden sollen und zu dem Anlaß dieser Diplomarbeit führen:

Diese Sammlung von Java-Klassen unter dem Namen "Rechner-Baukasten" ist der eigentliche Inhalt der Diplomarbeit. Sie ist aber kein reiner Selbstzweck, sondern entstand aufgrund konkreter Anforderungen des Arbeitsbereiches TECH; dort sollen in nächster Zeit eben umfangreiche Materialien nach dem Motto "HTML + Java" entstehen. Deswegen war es auch Teil der Arbeit, einen Grundstock an Lernmaterialien zu erstellen: Eine HTML-Dokumentstruktur mit Texten, Abbildungen und Applets zu einigen, aber keineswegs allen, grundlegenden Themen.

Dabei erwies es sich für das Reifen des Rechner-Baukastens als äußerst nützlich, daß die Praxis am besten Lücken und Irrwege aufzeigt; so entstanden mehrere, auch größere, Demonstrations-Applets mit erläuternden HTML-Dokumenten, die Schritt für Schritt in eine Thematik einführen.

Damit dieser Anfang in den nächsten Monaten auch von anderen Informatikern unter Nutzung des Rechner-Baukastens fortgeführt werden kann, darf eine umfassende Dokumentation der Klassen des Baukastens und ihrer Verwendung nicht fehlen.


1.1.1 Was diese Arbeit umfaßt


1.1.2 Was diese Arbeit nicht umfaßt

1.2 Aufbau und Gliederung

Im Verlauf der Entwicklung dieser Diplomarbeit sind mehrere "Produkte" entstanden, die in verschiedenen der folgenden Kapitel behandelt werden:

Es ist klar, daß sich aufgrund dieser Vielfalt auch unterschiedliche Personenkreise für diese Arbeit interessieren können:

Der an der Programmierung interessierte oder mit dieser beauftragte findet eine ausführliche Behandlung des Rechner-Baukastens in Kapitel 4. Von allgemeinen Interesse dürfte der Abdruck der "Lernmaterialien zur technischen Informatik" mit einigen zusätzlichen Ausführungen in Kapitel 3 sein. Damit die in den "Lernmaterialien" enthaltenen Applets keine statischen Abbildungen bleiben, empfiehlt es sich dabei, nach den einleitenden Bemerkungen von Kapitel 3 unter der vorläufigen URL

http://tech-www.informatik.uni-hamburg.de/Students/1kelling/DA/Inhalt.html

weiterzulesen. Auf die evaluierten Simulationsansätze geht, im Rahmen der Einführung in die Verwendung des Rechner-Baukastens, 4.8 ein. Für den didaktisch interessierten Leser werden die Implikationen der Verwendung von "HTML + Rechner-Baukasten" in 2 Visualisierung und Simulation mit Java mit anderen Ansätzen verglichen.


1.2.1 Gliederung

Nach dieser Einführung beschäftigt sich Kapitel 2 mit der Frage, ob Java ein adäquates Mittel ist, um Zeitabläufe in Mikrorechnern zu simulieren und zu visualisieren. Der Abschnitt 2.1 Bestehende Ansätze präsentiert eine Übersicht anderer Mittel zur Wissensvermittlung bezüglich der Zeitabläufe in Mikrorechnern. Abschnitt 2.2 Didaktische Notwendigkeiten faßt nach diesen empirischen Beobachtungen zusammen, wie derartige Lernmaterialien geeignet gestaltet werden können. Im abschließenden Abschnitt 2.3 Simulation mit Java wird der in dieser Arbeit entwickelte Rechner-Baukasten an diesen Maßstäben gemessen und von den praktischen Erfahrungen mit Java bei seiner Entwicklung berichtet.

Die meisten Leser werden einem Ergebnis dieser Arbeit wahrscheinlich bei dem Studium des etwa 50 DIN-A4-Seiten starken Dokumentes "Lernmaterialien zur technischen Informatik" begegnen. Ein Teil dieser Unterlagen bildet das Kapitel 3 Lernmaterialien zur technischen Informatik. Leider müssen Applets dort durch kommentierte Abbildungen ersetzt werden und Hyperlinks sind als Unterstreichungen zwar angedeutet, aber selbstverständlich nicht benutzbar. Mit dem Rechner-Baukasten erstellte Applets befinden sich in den Abschnitten 3.2.1.1, 3.2.1.2, 3.3.2 (fünf Applets), 3.4.1, 3.5.3 und 3.6.1. Besonders deutlich werden die Vorteile der Simulation mit dem Rechner-Baukasten an dem Applet zur Speicherhierarchie in Abschnitt 3.5.3 auf Seite 64. Dieses Applet gestattet es, sämtliche relevanten Parameter eines Cache einzustellen und die Auswirkungen sofort zu beobachten.

In Kapitel 4 wird der Rechner-Baukasten im Detail vorgestellt. In einem bottom up-Vorgehen werden zunächst die Komponenten selbst in Abschnitt 4.1 eingeführt. Es folgen Anleitungen zu ihrer Erzeugung und Plazierung in Abschnitt 4.2 bis 4.4. Die Abschnitte 4.5 bis 4.7 zeigen, wie die Komponenten Daten berechnen und untereinander austauschen können bzw. wie diese Vorgänge visualisiert werden können.

Abschnitt 4.8 stellt die beiden Simulationsalgorithmen vor, die in den Demonstrations-Applets verwendet werden. Technische Details zur Ausführung der Applets befinden sich in den Abschnitten 4.9 und 4.10. Die sieben Demonstrations-Applets, einschließlich des Baukasten-Editors, werden in 4.11 aufgezählt. Schließlich beschreibt Abschnitt 4.12 die Unterstützungsklassen, die auch außerhalb des Rechner-Baukastens genutzt werden können.

Eine Zusammenfassung dieser Arbeit befindet sich in Kapitel 5. Der Ausblick in Abschnitt 5.2 nennt einige wünschenswerte Erweiterungen, und Abschnitt 5.3 enthält eine Liste der bekannten Unzulänglichkeiten des Rechner-Baukastens und der Demonstrations-Applets.

Das Literaturverzeichnis findet sich in Kapitel 6, ein Glossar verwendeter Begriffe, inklusive derer aus den "Lernmaterialien", in Kapitel 7.


1.2.2 Darstellungskonventionen

In dieser Arbeit werden einheitlich folgende Schrifttypen und Symbole verwendet:


Carsten Kelling 1997 ([EMail senden]); letzte Änderung: 17. September 1997