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
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:
- Das Prinzip der Verweise (Links) erlaubt ein schnelles Bewegen im Gesamtdokument und ermöglicht
so rasches Nachschlagen.
- Mehr noch, dieses Prinzip ermöglicht, ohne langwieriges Blättern, das Ersetzen von linearem Lernen
(erzwungenes Durchlesen des Skriptes von vorne nach hinten) durch "interessengesteuertes" Verfolgen des
Inhaltes. Ein Leser, der keine vollständige Behandlung des Gesamtthemas wünscht, sondern nur sein Wissen
zu einzelnen Themen vertiefen möchte oder gar nur "schnuppert", wird durch die Verweise durch das
Dokument geleitet. Für den Autor ist die Möglichkeit dieser Vorgehensweise Ansporn, jedes Kapitel inhaltlich
abgeschlossen und für sich selbst genommen verständlicher zu gestalten. Wo Vorwissen unabdingbar und
nicht in Kürze zu vermitteln ist, müssen Verweise auf andere Kapitel angebracht werden, so daß
der Leser bei Bedarf leicht das Grundwissen nachschlagen kann. Auch Erklärungen zu Fachtermini in einem Glossar
oder ein "anklickbarer" Index lassen sich durch Verweise, die möglicherweise sogar automatisiert
erzeugt werden könnten, abdecken.
- Die Dokumentenbeschreibungssprache HTML ist in den wichtigsten Grundzügen standardisiert und hardwareunabhängig.
HTML-Anzeigeprogramme (Browser; Erläuterungen zu diesem und anderen Fachbegriffen finden Sie in dem
Glossar ab Seite 137) sind für nahezu jede Hardwareplattform verfügbar; jeder Student hat bereits heute
die Möglichkeit, sich HTML-Dokumente an der Universität anzeigen zu lassen. Mit zunehmender Verbreitung
von PCs, insbesondere natürlich bei Informatikstudenten, steigt auch die Wahrscheinlichkeit, daß der
Student zu Hause in Ruhe im HTML-Text lesen kann.
- Elektronische Dokumente verbrauchen a priori kein Papier, lassen sich aber notfalls ausdrucken, um den großen
Vorteil gedruckter Werke, die Mobilität, auszugleichen.
- Elektronische Dokumente lassen sich schnell und "spurlos" überarbeiten. Die neue Version wird
über das Internet automatisch allen Lesern, die keine lokale Kopie benutzen, zur Verfügung gestellt.
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:
- Java [JavaWhitepaper] ist eine "echte" höhere Programmiersprache, abgeleitet von dem populären
C++. Damit ist die gesamte vorstellbare Palette an Anwendungen realisierbar, von einfachen Animationen bis zu kompletten
Simulationsvorgängen und graphischen Editoren. Existierende Simulationsprogramme wie Chipmunk decken
nicht alle Themen ab, die in der technischen Informatik von Bedeutung sind oder sind nicht frei verfügbar;
Multimediapräsentationsprogramme wie der Macromedia Director dagegen erlauben es quasi nur, graphisch
"aufgemotzte" Hypertext-Dokumente zu erstellen - mit vorgefertigten Animationen und Überblendungen,
aber ohne die Möglichkeit, Simulationscode einzubauen.
- Java ist frei verfügbar.
- Java ist plattformunabhängig. Das bedeutet vor allen Dingen zweierlei:
- Erstens wird Java-Quellcode vor der Ausführung in sogenannten Bytecode übersetzt, der nicht der Maschinensprache
einer bestimmten existenten Hardwareplattform entspricht, sondern nur in der Java-Virtuellen-Maschine (Java-VM)
ausgeführt werden kann. Diese Java-VM jedoch ist als Programm für nahezu jede Plattform verfügbar;
insbesondere kann die VM auch Bestandteil eines Internet-Browsers sein. Bei einem Java-Programm, das in der VM
eines Browsers ausgeführt wird, spricht man von einem Applet; falls eine eigenständige VM, wie das mit
dem JDK gelieferte Programm java [JDK 1.0.2],
das Programm ausführt, nennt man es application.
- Zweitens schirmt Java den Programmierer durch umfangreiche mitgelieferte Bibliotheken von den Details der jeweiligen
Hardware und des laufenden Betriebssystems ab. Ein "Fenster" für eine graphische Benutzeroberfläche
(graphical user interface, GUI) heißt in Java immer java.awt.frame und muß vom
Programmierer immer auf die gleiche Weise erzeugt werden, sieht aber dennoch unter MS Windows anders aus als unter
Mac OS oder Solaris, stets aber so, wie unter dem jeweiligen GUI üblich.
- Java ist für das Internet entwickelt worden; benötigte Teile des Bytecodes werden erst bei Bedarf
über eine weltweit eindeutige URL von einem Internetserver angefordert. Dadurch wird es einfach, stets
die aktuelle Version zur Verfügung zu stellen. Natürlich läßt sich der übersetzte Code
aber aus Geschwindigkeitsgründen auch lokal speichern.
- Java ist eine sehr sichere Sprache; Applets unterliegen weitreichenden Sicherheitsbeschränkungen, wie
z.B. dem Verbot eines lokalen Plattenzugriffs. Ein Java-Programm kann (theoretisch) nicht einmal die Java-VM zum
Absturz bringen, geschweige denn den gesamten Rechner. Auch ein von einem unbekannten Server über das Internet
geladenes Applet kann daher ohne Bedenken und Gefahr durch Viren ausgeführt werden.
Obendrein zeichnet sich Java durch einige weniger grundlegende Vorteile aus:
- Java ist objektorientiert, folgt also dem Credo und den Wünschen der meisten Programmierer (die die Alternativen
kennen; eine gute Einführung in die Grundbegriffe der objektorientierten Programmierung bietet [JavaTutorial]).
- Java gilt als "das bessere C++" [JavaWhitepaper],
das von einigen Fehlern und Ungereimtheiten des Vorbildes befreit wurde.
- Java ist momentan sehr in Mode, zu Recht, wie nicht nur der Autor meint.
Die Verwendung von Java hat aber auch zwei Nachteile, die nicht verschwiegen werden sollen und zu dem Anlaß
dieser Diplomarbeit führen:
- Der Java Bytecode ist zur Zeit noch gegenüber üblichen höheren Programmiersprachen, die Maschinencode
erzeugen, um mindestens den Faktor 10 langsamer. Dieses liegt zum einen an den aufwendigen Tests, die auch zur
Laufzeit ständig durchgeführt werden (Wertebereichstests, Zugriffsrechte), zum anderen daran, daß
der Bytecode lediglich interpretiert wird, also bei jeder Abarbeitung einer Codezeile erneut in Maschinensprache
übersetzt werden muß. Auch die sich allmählich etablierenden just in time-compiler (JIT)
der ersten Generation, mit deren Hilfe der Bytecode nur noch einmal, vor der ersten Benutzung, übersetzt wird,
heben die Ausführungsgeschwindigkeit von Java-Programmen noch lange nicht auf die von beispielsweise C-Programmen.
- Eine vollwertige Programmiersprache eröffnet selbstverständlich nicht nur alle Möglichkeiten,
sondern gibt dem Programmierer zumeist wenig konkrete Mittel an die Hand, um ein spezielles Problem zu lösen,
da sie für Programmierung im allgemeinen gedacht ist. Damit nicht jeder Interessierte in bezug auf die Fragestellung
"Wie erstelle ich interaktive, simulierende Applets zu Themen der technischen Informatik?" das Rad stets
aufs Neue erfinden muß, war die Erstellung einer entsprechenden Codebibliothek, bei einer objektorientierten
Sprache also einer Menge von Klassen, sinnvoll und wünschenswert.
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
- Eine Einleitung, welche Motivation, Gründe und Vorbedingungen der Erstellung der Arbeit aufzeigt.
- Eine Java-Klassenbibliothek, den eigentlichen "Rechner-Baukasten". Deren Klassen simulieren typische
Komponenten eines Rechners, der auf der Registertransferebene betrachtet wird, und stellen diese auf dem Bildschirm
dar. Dazu gehören verschiedene Register, Busse mit Abzweigungen, eine ALU und ein Addierer, ein RAM,
ein Tag-RAM für die Erstellung eines Cache, Multiplexer, ein Symbol für "Diverses" und einige
speziellere Komponenten.
- Einige weitere Klassen, die sich als nützlich erwiesen haben, darunter eine Anzeige für Hilfetexte
mit hervorgehobenem Text, Wortumbruch und Blocksatz, ein Standardfenster für Fehlermeldungen und ein Standardfenster
zur Mitprotokollierung von Aktionen ("Konsole"). Weitere Klassen sind ein Standardfenster mit regelmäßig
benötigten Steuerknöpfen (ein Schritt vor/zurück, befehlsweise vor/zurück, Ausführen bis
zum nächsten breakpoint, Neustart der Simulation), ein timer und noch einiges mehr.
- Einen graphischen Editor, mit dem sich Instanzen der Komponenten des Rechner-Baukastens erzeugen, auf dem Bildschirm
gruppieren und modifizieren lassen (Größe eines RAMs, Editierbarkeit von Registern oder RAMs etc.).
Anschließend läßt sich sofort lauffähiger Java-Code erzeugen, der den eben gebildeten Aufbau
erzeugt und die Rümpfe aller für eine Simulation notwendigen Methoden enthält. Der Editor ist ebenfalls
als Java-Applet realisiert.
- Ein umfangreiches HTML-Dokument unter dem Titel "Lernmaterialien zur technischen Informatik", das
zeigt, wie Grundlagen der technischen Informatik mit der Kombination "HTML + Java" vermittelt werden
können. Es enthält Applets zu den Fragen "Was ist ein Register/ein RAM/eine ALU/ein Bus?".
Anhand mehrerer Applets wird die Funktionsweise des Von-Neumann-Rechners erläutert und Schritt für Schritt
in eine beispielhafte Maschinensprache eingeführt; schließlich wird der Von-Neumann-Rechner um einen
Cache erweitert. Außerdem existieren noch Applets für eine Demonstration der Adressierungsarten des
MC 68000 [Motorola86] und der Befehlspipeline eines einfachen
RISC-Prozessors nach Hennessy und Patterson [HennPatt94].
- Eine intensive Einführung in die Benutzung der Rechnerkomponenten und zu der Frage, wie man mit ihnen
einen Rechner oder Teile davon simuliert. Mit Hilfe dieses Abschnitts sollte man vor Beginn der Programmierarbeit
entscheiden, welche Komponenten man benötigt, mit welchen Algorithmen man Vorgänge simuliert und wie
man diese visualisiert.
- Eine ausführliche Dokumentation der Klassen des Rechner-Baukastens, sowohl der eigentlichen Rechnerkomponenten
als auch der nützlichen Hilfsklassen. Dieser Abschnitt wendet sich als Referenz an diejenigen, die bereits
mit der Programmierung begonnen haben und die Fähigkeiten der einzelnen Klassen nachschlagen oder Details
zu ihrer Benutzung erfahren möchten.
1.1.2 Was diese Arbeit nicht umfaßt
- Eine vollständige Erklärung der Grundlagen der technischen Informatik.
- Pädagogisch ausgefeilte Schritt-für-Schritt-Anleitungen zu allen Applets.
- Einen Aufbau zur Simulation einer ganzen CPU etwa vom Typ Motorola 68000, Intel 8086 oder eines RISC-Prozessors.
- Keine Fehler im Java-Code.
1.2 Aufbau und Gliederung
Im Verlauf der Entwicklung dieser Diplomarbeit sind mehrere "Produkte" entstanden, die in verschiedenen
der folgenden Kapitel behandelt werden:
- Eine in Java verfaßte Klassenbibliothek mit ca. 37000 Zeilen Code und einer summierten Dateigröße
der Quellcodes von über 1,1 MByte. Diese Klassen gliedern sich in drei Gruppen:
- Den Rechner-Baukasten, der die typischen Komponenten eines auf der Registertransferebene betrachteten
Rechners simuliert und ihr Verhalten optisch präsentiert. Die einzelnen Komponenten, wie das Simulationsmodell
eines Registers, eines Busses oder eines RAMs, verfügen über Methoden, um das typische Verhalten der
simulierten Komponente bei Datenspeicherung und -verarbeitung nachzustellen. Diese zunächst unsichtbaren internen
Vorgänge können so visualisiert werden, daß verständliche Schritt-für-Schritt-Einführungen
in die Funktion von Rechenanlagen einfach möglich werden. Zu dem Rechner-Baukasten gehören auch die oben
erwähnten Hilfsklassen, die dem Programmierer die Arbeit erleichtern und wichtige Werkzeuge für die Präsentation
der Wissensinhalte an die Hand geben.
- Die sieben Demonstrations-Applets, die mit dem Rechner-Baukasten erstellt wurden. Sie zeigen teilweise
sehr komplexe Aufbauten aus Rechnerkomponenten. Die Komponenten können in ihrem Zusammenspiel vorwärts
und rückwärts in der Zeit beobachtet und beeinflußt werden. Vorgänge wie das Laden eines Wertes
oder eine Berechnung mit einer ALU können in didaktisch gewählten kleinen Schritten verfolgt werden,
wobei zu jedem Schritt ein spezifischer und variabler Hilfetext erscheint. Alternativ kann der fortgeschrittene
Leser die Aufbauten größere Schritte abarbeiten lassen, bis hin zu dem Setzen von breakpoints.
- Den Baukasten-Editor, mit dessen Hilfe sich Komponenten aus dem Rechner-Baukasten grafisch zusammenstellen
und anordnen lassen. Der als weiteres Applet realisierte Editor unterstützt vollständig die komponentenrelativen
Koordinaten, die der Baukasten statt absoluter Angaben kennt. Damit werden Aufbauten leichter wiederverwendbar
und resistent gegen Positions- und Größenänderungen einzelner Komponenten. Mit dem Editor lassen
sich zunächst die Eigenschaften einstellen, die alle Klassen aus dem Rechner-Baukasten besitzen, wie die Überschriften
oder die Instanzennamen im späteren Java-Code. Es werden aber bereits die Spezialfunktionen einiger Komponenten
unterstützt, wie z.B. Größe, Editierbarkeit und geladenes Programm eines Speichers. Damit kann
der Editor auch als Einführung in die Möglichkeiten der Komponenten dienen.
- Das etwa 50 DIN-A4-Seiten starke Dokument "Lernmaterialien zur technischen
Informatik" - für das Selbststudium gedachte Unterlagen, versehen mit diversen Illustrationen
und den Demonstrations-Applets. Mit diesen Mitteln kann man sich zunächst gründlich theoretisch über
Bestandteile eines Rechners, ihre Funktion und theoretische Voraussetzungen informieren, um anschließend
zum besseren und dauerhaften Verständnis das Zeitverhalten eines Computersystems interaktiv zu simulieren.
Inhaltliche Grundlagen für die bisher erstellten Lernmaterialien waren [Duden88],
[Encarta97], [HennPatt90],
[HennPatt94], [Lagemann87]
sowie [Lexikon91].
- Zwei algorithmische Ansätze, die sich für die Implementation von Simulationscode eignen und
die didaktisch vorteilhafte Präsentation der Vorgänge in und zwischen den Rechnerkomponenten ermöglichen.
Beide Ansätze wurden in der Praxis für den Entwurf und die Implementation der Demonstrations-Applets
verwendet und haben sich als tauglich auch bei größeren Aufbauten erwiesen. Allerdings kann der erste
Ansatz beim Rückgängigmachen von Simulationsschritten versagen, das aber eine conditio sine qua non für
wirklich verständliche Visualisierung ist. Deswegen wurde er zu dem zweiten Ansatz weiterentwickelt, der z.B.
in den Von-Neumann-Rechner-Applets in die Praxis umgesetzt wurde.
- Umfassende Erfahrungen über die Praxiseignung von Java als Programmiersprache im allgemeinen und als Simulationswerkzeug
im speziellen. Die Eignung von Java für ein Simulationsprojekt erscheint durch ihre Klassifikation als vollwertige
höhere Programmiersprache gegeben zu sein. Diese Eignung erwies sich aber in der Praxis von grundsätzlichen
Eigenschaften, wie dem objektorientierten Paradigma, als ebenso abhängig wie von profanen Attributen, etwa
der Ausführungsgeschwindigkeit und der korrekten Implementation in Browsern. Letztlich bedeutete die Beschäftigung
mit der Eignung von Java, obwohl sie für diese Arbeit als Grundlage vorgegeben war, auch eine Überprüfung
anderer Simulationswerkzeuge auf ihre Tauglichkeit.
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:
- Kursive Schrift für noch nicht als Teil der deutschen Sprache anzusehende Fachtermini oder dem
ersten Auftreten wichtiger Begriffe oder
- Kursive Schrift für Betonungen.
- Fette Schrift für besondere Betonungen, abgesehen von Überschriften.
- Nichtproprotionale Schrift für Beispielcode und Begriffe, wie z.B. Klassennamen, die so im Code
stehen können.
- Nichtproprotionale Schrift steht auch für Dateinamen.
- Das Symbol für Kapitel, die
in der HTML-Fassung ein oder mehrere Applets enthalten.
- Ein senkrechter Strich am linken Rand und nach rechts eingerückter Text für besondere Anmerkungen
wie diese.
- In Überschriften werden keine Auszeichnungen oder besonderen Schriften verwendet.