176 36 72MB
German Pages 244 [261] Year 1976
W I A D Y S L A W M. T U R S K I DATENSTRUKTUREN
E L E K T R O N I S C H E S R E C H N E N UND R E G E L N Herausgegeben von
Prof. Dr. H A N S F R Ü H A U F • Prof. Dr. W I L H E L M K Ä M M E R E R Prof. Dr. K U R T S C H R Ö D E R • Prof. Dr. H E L M U T T H I E L E Prof. Dr. H O R S T V Ö L Z
Sonderband
21
DATENSTRUKTUREN von
W L A D Y S L A W M. T U R S K I
A K A D E M I E - Y E R L A G 19 7 5
•
B E R L I N
WLADYSLAW
M.
TURSKI
DATENSTRUKTUREN In deutscher Sprache herausgegeben von
Prof. D r . H e l m u t Thiele, Berlin Dipl.-Math. Gerhard Paulin, Berlin
Mit 47 Abbildungen
A K A D E M I E - V E R L A G • B E R L I N 19 7 5
Wladysl aw M. Turski, Struktury Danych Wydawnictwa Naukowo-Techniczne • Warszawa Copyright © 1971 by Wydawnictwa Naukowo-Techniczne
Deutsche Übersetzung: Dipl.-Math. Bernhard Mitulla, Dipl.-Math. Erwin Ludwig, Dipl.-Math. Peter Doering, Berlin
Erschienen im Akademie-Verlag, 108 Berlin, Leipziger Str. 3—4 © Akademie-Verlag, Berlin, 1975 Lizenznummer: 202 • 100/404/75 Gesamtherstellung: VEB Druckerei „Thomas Müntzer", 582 Bad Langensalza Bestellnummer: 7618668 (6125)- LSV 1085 Printed in GDR EVP 48, -
VORWORT ZUR
DES
DEUTSCHEN
AUTORS AUSGABE
Ich freue mich, daß der bekannte und angesehene Akademie-Verlag es für zweckmäßig hielt, die Leser der Deutschen Demokratischen Republik mit meinem Buch über die Morphologie von Daten bekanntzumachen. Die Zeit von fünf Jahren seit der Orginalbearbeitung des Textes hat mich in der Überzeugung bestärkt, daß dieser hervorgehobene Aspekt der Informatik ein begründetes Recht auf thematische Selbständigkeit besitzt. Ein besonders wesentliches Argument, das für die Richtigkeit dieses Standpunktes spricht, ist eine sehr intensive Entwicklung von Arbeiten auf dem Gebiet sogenannter Datenbanken, die in der Praxis eine breite Anwendung finden. Als Verfasser, der die deutsche Sprache nicht in dem Grade beherrscht, um die Ubersetzung zu autorisieren, bin ich den Bearbeitern dieses Buches, Herrn Prof. H. THIELE und Herrn G. PAULIN, zu aufrichtigem Dank verpflichtet für die Mühe, den Text mit der in der DDR üblichen Terminologie und den Gepflogenheiten der Verlagsreihe in Übereinstimmung zu bringen sowie für die Ergänzung des Literaturverzeichnisses mit Arbeiten, die den Lesern der DDR leichter zugänglich sind. P r o f . D r . h a b . WLADYSLAW M. TURSKI
VORWORT DER DEUTSCHEN BEARBEITER
Nachdem die Rechentechnik in nahezu alle Gebiete wissenschaftlicher Forschung Eingang gefunden hat, erscheinen laufend Veröffentlichungen über Erfährungen und mögliche Modifikationen und über rechentechnische Realisierungen dieser Erfahrungen. J e komplexer die Rechner werden, in um so stärkerem Maße sind theoretische Untersuchungen über die Objekte der Informationsverarbeitung, die Daten, erforderlich, Untersuchungen zur formalen Beschreibung von Datenstrukturen und der Repräsentation dieser Strukturen in Speichermedien. Zur Formalisierung der Notationen von Algorithmen sind unterschiedliche Hilfsmittel entwickelt worden. Trotz der Fülle der Arbeiten, die weltweit durchgeführt worden sind und durchgeführt werden, sind Untersuchungen von Datenstrukturen (Informationsstrukturen) nicht über ein gewisses Anfangsstadium hinausgekommen. So gibt es nach wie vor höchstens Ansätze für eine theoretisch geschlossene Darstellung von Datenstrukturen und wohl auch keine systematische Darstellung nichtnumerischer Algorithmen. Lassen sich für dieses offensichtliche Mißverhältnis Gründe aufführen ? Es fällt schwer anzunehmen, daß Gründe im Objekt selbst liegen sollen. Man kann aber meinen, daß die letzten Jahrzehnte im wesentlichen dadurch gekennzeichnet sind, daß nach praktischen Lösungen für, den Einsatz moderner Informationsverarbeitungssysteme gesucht wurde. Die Arbeiten auf heterogenen Gebieten brachte es mit sich, daß gleiche Beziehungen für unterschiedliche Inhalte verwendet wurden; erst mit der Ansammlung von Erfahrungen und nachdem sich der Umfang dessen, was mit Rechenanlagen erreicht werden kann, klarer abzeichnet, sind Arbeiten zur Systematisierung und Formalisierung von Daten-und allgemeinen Informationsverarbeitungsprozessen denkbar. Das vorliegende Buch ist eines der ersten, in denen ein einheitlicher Zugang zu Datenstrukturen vorgetragen wird, ferner wird die Abbildung dieser Datenstrukturen in Datenträgermedien mit unterschiedlichen Eigenschaften behandelt. Auf der Grundlage dieser Definitionen werden die prinzipiellen nichtnumerischen Verfahrenstechniken formal eingeführt und durch Algorithmen konkretisiert. Wir sind davon überzeugt, daß das Buch einerseits theoretische U n t e r s u c h u n gen auf dem Gebiet der Datenstrukturierung anregen wird und andererseits dem Praktiker die theoretischen Aspekte vorführt, deren Kenntnis erforderlich ist, um schöpferische Praxis und Praktizismus zu trennen.
VIII
Vorwort
Wir danken dem Autor für das sorgfältige Lesen des deutschsprachigen Manuskriptes und seine Hinweise zu terminologischen Fragen, die sich immer ergeben, wenn Bezeichnungen übersetzt werden, die entweder noch nicht eindeutige Entsprechungen in der Zielsprache haben oder für die mehrere Synonyme üblich sind. Wir danken außerdem den Übersetzern, den Herren D O E R I N G , L U D W I G und M I T U L L A für die Mühe und Sorgfalt bei der Übersetzung des schweren Textes und nicht zuletzt dem Akademie-Verlag für die Aufnahme des Buches in das Veröffentlichungsprogramm und das Entgegenkommen bei allen Wünschen des Autors und der Herausgeber. Berlin, April 1975
H . THIELE
G. PAULIN
VORWORT ZUR ORIGINALAUSGABE
Das vorliegende Buch ist der Versuch einer systematischen Darlegung eines Themenkomplexes, der Datenstrukturen und ihre Verteilung in Datenspeichern von Rechnersystemen betrifft. Die Behandlung von Datenstrukturen gehört der Kategorie von Problemen an, die gewöhnlich nur im Rahmen allgemeiner Erwägungen erscheinen. Von einer Datenstruktur spricht man gelegentlich in Programmiersprachen und bei der Methodik der Anwendung von Rechnersystemen und ihrer Software. In dem vorliegenden Buch werden Datenstrukturen als Hauptgegenstand behandelt. Man stellt sie zuerst unabhängig von den möglichen Zusammenhängen dar, in denen sie auftreten können. Diesem Zweck dienen sowohl die Einleitung, in der ein allgemeiner Standpunkt zum Problem der Datenstrukturen bezogen wird, als auch die beiden folgenden Abschnitte. Der Abschnitt 2 umfaßt die wesentlichen Voraussetzungen, die sich aus den aktuellen Gerätelösungen ergeben. Im Abschnitt 3 wird ein theoretisches Modell für Datenstrukturen vorgeschlagen. Dieses Modell gestattet es, eine Klassifikation von Datenstrukturen durchzuführen, die die aus der Praxis gut bekannten Differenzen widerspiegelt. Ferner läßt sich nachweisen, welche Eigenschaften von Datenstrukturen bei der Benutzung zu Besonderheiten führen. Die weiteren drei Abschnitte sind drei Arten von Datenstrukturen gewidmet. In jedem dieser Abschnitte treten unterschiedliche Probleme in den Vordergrund, die aus praktischer Sicht die wichtigsten für die gegebene Strukturart sind. Im Abschnitt über reguläre Strukturen sind es Probleme der Abbildungsfunktion, im Abschnitt über halbreguläre Strukturen sind es die Probleme eines effektiven Ordnens und im Abschnitt über nichtreguläre Strukturen die Probleme der sogenannten Speicherverwaltung. Der letzte Abschnitt gibt eine kurze Übersicht über die Art der Behandlung von Datenstrukturen in Programmiersprachen. Das vorliegende Buch ist von der Konzeption her kein Lehrbuch, es soll keine fertigen Verfahren liefern. Insbesondere beschränke ich mich.auf die notwendigen Hinweise, wenn ein bestimmtes Problem sich ähnlich wie an einer anderen Stelle des Buches lösen läßt. Aus demselben Grunde sind die Algorithmen, die das Wesentliche erläutern, mit wenigen Ausnahmen in beschreibender Form angegeben. Es wurde dabei auf Organisationseinzelheiten, die zwar beim Programmieren wichtig sind, aber den allgemeinen Überblick über das Verfahren erschweren, verzichtet. Aus der Tatsache, daß das Buch kein Lehrbuch ist,
X
Vorwort
ergibt sich ferner eine unterschiedliche Ausführlichkeit in der Behandlung einzelner Probleme. Von mehreren Problemen ähnlicher Natur wurde gewöhnlich das Interessanteste ausgewählt, und nur dieses ist eingehender entwickelt worden. Das Buch soll nach den Absichten des Autors vor allem eine Hilfe beim Studieren der Fragen sein, bei denen das Problem der Datenstrukturen eine wesentliche Rolle spielt. Dieses Ziel wäre erreicht, wenn der Leser bei der Konfrontation mit einem konkreten Problem über Datenstrukturen nach diesem Buch greift, um in ihm nicht nur Lösungshinweise, sondern auch eine Erklärung der Natur des ihn intersesierenden Problemes zu finden. Die Lektüre dieses Buches erfordert im Prinzip keine speziellen vorbereitenden Kenntnisse außer den Elementen der höheren Mathematik und den Grundlagen der Programmiertechnik. Jedoch werden sich Leser, die über Erfahrungen im Umgang mit Ziffernrechenmaschinen verfügen, den Inhalt des Buches leichter aneignen. Der Anhang B enthält mathematische Grundlagen, die zum Verständnis dieses Buches notwendig sind und in der Mathematikausbildung an einigen Hochschulen nicht enthalten sind. In diesem Anhang wird auch die allgemeinmathematische Symbolik dargestellt, die im vorliegenden Buch benutzt wisd. Das vorliegende Buch stützt sich auf monographische Vorlesungen zu demselben Thema, die ich in den Jahren 1968 — 1970, anfangs an der Universität in Lexington und danach an der Warschauer Universität, gehalten habe. Die vorliegende Form des Buches ist wesentlich von den Reaktionen dieser Hörer beeinflußt worden. Die sehr geringe Anzahl von monographischen Publikationen zu Themen, die mit dem in diesem Buch behandelten Thema in Zusammenhang stehen, mag zum Teil die didaktischen Unvollkommenheiten und die in gewissem Grade willkürliche Anordnung seines Inhalts rechtfertigen. Den
Herren
D r . STANISLAW WALIGÖBSKI
und
M g r . J A N MALTJSZYNSKI
bin
ich für wesentliche Bemerkungen und wohlwollende Kritik einzelner Teile dieses Buches zu Dank verpflichtet. Die Durchsicht des Manuskripts diese Buches und besonders die Überprüfung der Formeln und Zeichnungen führte Frau Mgr. HELENA DRYZEK aus. Ihr und auch Frau MAGDA ROCHOWICZ, die die aufeinanderfolgenden Varianten abgeschrieben hat, sage ich an dieser Stelle herzlichen Dank. Ich möchte gern auf diesem Wege den Wissenschaftlich-Technischen Verlagen für die schnelle und sorgfältige Vorbereitung des Buches für den Druck sowie der Redakteurin, Frau BARBARA OSUCHOWSKA, für die wesentliche redaktionelle Hilfe meine Dankbarkeit zum Ausdruck bringen. Warschau, im Oktober 1970
W . M. T .
INHALTSVERZEICHNIS
1. Einführung
1
2. Datenträgermedien 2.1. Funktionelle Charakteristik 2.2. Adressierung in homogenen Medien 2.3. Gemischte Datenträgermedien
11 12 20 33
3. Abriß einer einheitlichen Theorie von Datenstrukturen 3.1. Definitionen und Klassifikation 3.2. Operationen der Extraktion und Konstruktion 3.3. Verteilung von Datenstrukturen in Datenspeichern. Abbildungsfunktionen 3.4. Graphentheoretische Darstellung von Datenstrukturen 3.5. BosAK'sche Informationsalgebra
47 47 57 61 64 67
4. Reguläre Datenstukturen 4.1. Namen von Daten, die in regulären Strukturen auftreten 4.2. Verteilung regulärer Strukturen in einem homogenen Datenspeicher. . . . 4.3. Dynamische reguläre Datenstrukturen
72 72 76 88
5. Halbreguläre Datenstrukturen 5.1. Datennamen in halbregulären Strukturen 5.2. Methoden zur Konstruktion der charakteristischen Funktion 5.3. Das Bilden halbregulärer Strukturen 5.3.1. Einleitende Bemerkungen 5.3.2. Methoden des internen Ordnens 5.3.3. Methoden des externen Ordnens 5.3.4. Integration und Ordnen durch Einteilung 5.4. Methoden der Verteilung halbregulärer Strukturen 5.5. Das Ordnen halbregulärer Strukturen in halbregulären Medien
94 95 98 108 108 110 121 139 141 147
6. Nichtreguläre Datenstrukturen 6.1. Die Verteilung nichtregulärer Strukturen im homogenen Datenträger . . . 6.1.1. Die Namen der Daten aus nichtregulären Strukturen 6.1.2. Die Speicherung der Daten : . . . . 6.1.3. Wichtige Arten der Speicherung nichtregulärer Strukturen . . . . 6.2. Einige Operationen auf nichtregulären Strukturen, die im homogenen Datenträger verteilt sind 6.3. Speicherverwaltung und die Rückgewinnung von Speicherplatz 6.4. Die Speicherverwaltung im System AED — ein Beispiel einer plexen Lösung
152 152 155 159 152
7. Datenstrukturen in Programmiersprachen 7.1. Datenstrukturen in ALGOL 68 7.2. Datenstrukturen in speziellen Programmiersprachen
195 195 204
165 174 187
XII
Inhaltsverzeichnis
Anhang A. Aufbau eines Plattenspeichers
210
Anhang B. Mathematische Ergänzungen
214
Bibliographische Anmerkungen
220
Literaturverzeichnis
222
Sachwortverzeichnis
227
1.
EINFÜHRUNG
Der aufmerksame Leser der Fachliteratur auf dem Gebiet der Digitalrechner und vor allem ihrer Anwendungen wird zweifellos seit einigen Jahren ein zunehmendes Suchen nach synthetisierenden und verallgemeinernden Gesichtspunkten bemerkt haben, die möglichst viele Probleme einheitlich zu behandeln erlauben. Damit wird auch gleichzeitig nach primären Elementen gesucht, die eine Grundlage für solche Verallgemeinerungen bilden können. Eine so intensive Entwicklung von analytischen Untersuchungen und Versuchen einer Synthese begleitet gewöhnlich die Entstehung der Anfänge einer Theorie und führt oftmals zu einer anderen Art der Formulierung von Forschungsproblemen als in der Phase der anfänglichen Ansammlung von empirischem Wissen. So geschah es auch auf dem uns interessierenden Gebiet. Deckten sich in den ersten zwei Jahrzehnten der Anwendung der elektronischen Informationsverarbeitung, d. h. in dem Zeitraum, den wir verabredetermaßen als empirische Phase betrachten können, die Grenzen der Forschungsprobleme im Prinzip mit den „natürlichen" Grenzen der konkreten Anwendungen, so sind gegenwärtig die Forschungsprobleme vielmehr durch gemeinsame Aspekte vieler verschiedener konkreter Anwendungen bestimmt. Ein derartiger — für die Mehrzahl der aktuell wichtigen Anwendungen gemeinsamer — Aspekt ist das Problem des Aufbaus, der Speicherung und der effektiven Nutzung von Informationsmengen. Der Reiz und auch die realen Vorteile, die sich aus der Konzentration der Forschung auf die aus konkreten Anwendungen abgeleiteten Probleme ergeben, bestehen darin, daß wir die Möglichkeit gewinnen, eine einheitliche Beschreibung zu finden. Auf dieser Grundlage ergäbe sich dann eine Klärung der konkreten auftretenden Besonderheiten. Vor allem aber gewinnen wir die Möglichkeit, einen leistungsfähigen Begriffs- und Prozedurapparat aufzubauen, der Behandlungsmethoden eines gewählten Aspekts nicht nur von bekannten, sondern auch künftigen konkreten Anwendungen generiert. In die Sprache der Praxis übersetzt bedeutet dies: Der Vorteil aus der Einteilung der Probleme nach ihren signifikanten und reproduzierbaren Elementen (nicht nach den Anwendungen allein) besteht darin, daß wir bei einer Konstruktion eines neuen informationsverarbeitenden Systems nicht Kräfte verschwenden für das erneute Lösen aller Teilfragen von Anfang an, sondern dafür allgemeine Lösungen (selbstverständlich für jeden Anwendungsaspekt spezifische) benutzen, die wir nur dem konkreten Fall anpassen. Das Vorhandensein und die Kenntnis einer abstrakten
2
1.
Einführung
Beschreibungsmethode der einzelnen Aspekte erleichtern bedeutend die dabei geforderten Modifikationen. Die besondere Bedeutung von Problemen der Organisation der Speicherung und der leistungsfähigen Nutzung von Informationsmengen ergibt sich aus dem praktischen Lösungsversuch solcher informationsverarbeitender Aufgaben, bei denen der Arbeitsaufwand für die Vorbereitung der Eingangsinformation so groß ist, daß er einerseits im Prinzip die Möglichkeit von strukturellen Veränderungen in schon fertigen Mengen ausschließt, was mehrmals zur Anpassung des Algorithmus (und manchmal auch der informationsverarbeitenden Geräte) an Eigenschaften dieser Mengen zwingt, andererseits zu einer sehr sorgfältigen Planung des Prozesses der Informationssammlung veranlaßt, damit die Art der Datengruppierung möglichst viele Regelmäßigkeiten widerspiegelt, die der informationsverarbeitende Prozeß benutzen wird. Man kann also sagen, daß die Art der Informationssammlung viele Aspekte des Prozesses der Informationsverarbeitung determiniert, besonders diejenigen, die wir manchmal Organisationsaspekte nennen. Das intuitive Herangehen an das Problem, mit dem wir uns im vorliegenden Buch beschäftigen, ist also hinreichend einfach: Aus vielen konkreten Anwendungen von Digitalrechnern betrachten wir gerade die Probleme, die mit Informationssammlung zusammenhängen und untersuchen, welche Ähnlichkeiten und welche Unterschiede man in ihnen erblicken kann, in welcher Sprache man sie ausdrücken kann und welche Grundbegriffe dafür notwendig sind, um eine weitgehend konzentrierte Beschreibung der uns interessierenden Fakten und wichtigsten Prozesse vorzulegen. Wir müssen also überlegen, welche Fakten und Prozesse uns am meisten interessieren. Jeder, der sich mit automatischer Informationsverarbeitung beschäftigt hat, wird bemerkt haben, daß sich die auftretenden Informationsmengen in drei Grundarten einteilen lassen. Erstens haben wir es mit sehr regulären Gebilden zu tun, die durch Zahlentabellen (Matrizen) dargestellt sind und bei denen ein Verweis auf die geforderte Information in der Regel durch Angabe der Koordinaten (z. B. „das zweite Element der fünften Zeile") geschieht. Zweitens können wir es mit weniger regulären Gruppierungen zu tun haben, mit solchen wie alphabetisch geordneten Listen oder Verzeichnissen, bei denen ein Aufsuchen der geforderten Information auf Grund eines Verweises auf einen Teil dieser Information, einen sog. Schlüssel, geschieht, den man mit Schlüsseln (nicht notwendig allen — aber das ist schon eine Realisierungseinzelheit) der einzelnen Elemente einer derartigen Gruppierung vergleicht. Drittens sind Informationen so strukturiert, daß ein Aufsuchen der geforderten Information eine Analyse der Struktur erfordert (ein Beispiel für solche Gruppierungen können Sätze in irgendeiner natürlichen Sprache sein). Jede dieser drei Arten von Informationsgruppierungen hat ihre feste Begründung in der entsprechenden Problemklasse, mit jeder verbinden sich auch spezifische Probleme. Zum Beispiel ist bei Gruppierungen der ersten Art ein wesentliches Problem die weitgehende Ausnutzung der Adressierungsmechanismen, die in Rechengeräten eingebaut sind, um die Such-
1.
Einführung
3
zeit der geforderten Information maximal zu verkürzen und um den Speicher der Maschine wirtschaftlich zu nutzen. Eine zusätzliche Eigenschaft solcher Informationsgruppierungen, die recht allgemein benutzt wird und die aus der Natur der Probleme hervorgeht, in denen sie auftritt, ist die Tatsache, daß im Verarbeitungsprozeß Gruppierungen dieser Art gewöhnlich weder die Gestalt noch den Umfang ändern; mehr noch, die Anzahl derartiger Gruppierungen und ihr Aufbau sind im Prinzip für jeden Informationsverarbeitungsprozeß bekannt, in dem sie eine wesentliche Rolle spielen. Anders sieht die Situation aus, wenn wir es mit einem informationsverarbeitenden Prozeß zu tun haben, bei dem Gruppierungen der zweiten Art eine wesentliche Rolle spielen: Bekannt sind Regeln für die Organisation dieser Gruppierungen, aber die konkrete Gestalt entsteht gewöhnlich erst während des Verarbeitungsprozesses selbst. Oft ist sogar das Ziel des Verarbeitungsprozesses die Konstruktion einer derartigen Gruppierung die nach einem gegebenen Schlüssel aus zahlenmäßig kleineren (nicht notwendig in demselben Sinne angeordneten) Gruppierungen angeordnet ist. Unser Interesse konzentriert sich dann nicht so sehr auf Probleme einer optimalen Ausnutzung von fertigen Adressierungsmechanismen und eines sparsamen Umgehens mit dem Speicherplatz (obwohl man das natürlich nie ganz vernachlässigen sollte), als mehr auf das Problem eines Aufbaus von optimalen Algorithmen zur Konstruktion derartiger Gruppierungen1). Noch andere Probleme verbinden sich mit der Verarbeitung einer in Form von Gruppierungen der dritten Art gegebenen Information: Das Fehlen von Regularitätsmerkmalen erlaubt hier im Prinzip keine der traditionell eingebauten Geräteerleichterungen; das Speichern derartiger Gruppierungen (sowie abgeleiteter Gruppierungen, die während ihrer Analyse entstehen) nimmt ziemlich viel Speicherplatzeinheiten ein, wobei der Bedarf dafür sowohl hinsichtlich der zeitlichen Reihenfolge als auch der Zahl der verlangten Einheiten schwierig vorauszusehen ist. Ebenso tragen einen nichtregulären Charakter die häufigen „Rückgaben" eines durch nicht mehr benötigte Information besetzten Speicherbereichs. Unsere Aufmerksamkeit konzentriert sich daher auf das Problem der Spei eher Verwaltung: Lieferung und Wiedererlangung von (Speicher-) Inhalten mit einem überaus verschiedenartigen Aufbau. Da weder Koordinaten noch Schlüssel als Mittel zum Auffinden der geforderten Information dienen können, sollte man sich wirksame Algorithmen zum Durchmustern nichtregulärer Informationsgruppen überlegen. Das oben skizzierte Bild könnte die Glaubwürdigkeit unseres Hauptziels — des Findens von gemeinsamen Grundlagen eines so differenzierten Problemkreises — in Zweifel ziehen. Zum Glück ist dieses Bild noch unvollständig und die *) Den in diesem Satz verwendeten Ausdruck „optimale Algorithmen" sollte man wegen der beschränkten Anzahl von Magnetbandeinheiten mit einer großen Dosis guten Willens betrachten. — In der Praxis kennen wir hier selten Optimalitätskriterien, nicht selten dagegen müssen wir Algorithmen suchen, die überhaupt eine Aufgabe auf den vorhandenen Geräten zu realisieren gestatten.
4
1.
Einführung
übergangenen Teile gestatten gerade, derartige gemeinsame Grundlagen einzuführen. Eine erste und weniger wichtige Quelle eines synthetisierenden Herangehens sind die einheitlichen Grundlagen des Aufbaus der Geräte der Informationsverarbeitung, genauer: der Datenträgermedien. Man sollte natürlich nicht meinen, daß wir, wenn wir von gemeinsamen Grundlagen des Aufbaus von Datenträgermedien sprechen, an technische Grundlagen oder auch an konkrete Firmenlösungen denken. Es geht uns um solche Grundlagen wie den Speicherzellenaufbau, hardwaremäßig festgelegte Arten der Adressierung, die, obgleich in verschiedenen Formen, in einer Mehrzahl von Rechnersystemen auftreten (der Entwicklung dieses Gedankens ist der zweite Abschnitt gewidmet). Eine zweite, wichtigere Quelle eines synthetisierenden Herangehens an verschiedene oben erwähnte Probleme, sind gewisse gemeinsame Eigenschaften aller besprochenen Informationsgruppierungen. Da der dritte Abschnitt die formalen Betrachtungen zu diesem Thema enthält, verwenden wir die Fortsetzung dieser Einführung für eine nichtformale Darstellung der Theorie der Datenstrukturen und für eine Begründung der gemachten Voraussetzungen. Aus dem Wesen eines Informationsverarbeitungsprozesses geht hervor, daß eine in einen derartigen Prozeß eingeführte Information, sog. Eingangsinformation, im Laufe der Ausführung des Prozesses gewissen Umbildungen unterliegt. Ohne Beschränkung der Allgemeinheit können wir voraussetzen, daß diese Umbildungen sinnvoll sind, wodurch wir soviel (und nur soviel) verstehen, daß die im Ergebnis entstehende sog. Ausgangsinformation, in der geforderten Beziehung zur Eingangsinformation bleibt. Man kann auch voraussetzen, daß die Ausgangsinformation von der Eingangsinformation verschieden ist — wir werden daher keine trivialen Prozesse der Informatioiistransmission untersuchen. Die Festlegung von Beziehungen zwischen zwei Informationen, der Eingangs- und Ausgangsinformation (ohne die ausgeschlossene identische Beziehung), setzt eine Zerlegung der Informationen in Teile mit bestimmter Bedeutung voraus 1 ). Eine solche Einteilung hat oftmals einen hierarchischen Charakter : Wir teilen die Information in Fragmente, die wir wiederum in Unterfragmente teilen usw., bis wir solche Fragmente erreichen, die bei weiterer Teilung für den gegebenen Informationsverarbeitungsprozeß keine bestimmte Bedeutung Mitunter, obgleich sehr selten, besteht keine Notwendigkeit einer effektiven Informationszerlegung; z. B. dann, wenn der Verarbeitungsprozeß auf einer Abbildung der Eingangsinformation als Ganzes in die Ausgangsinformation, auch als Ganzes betrachtet, beruht. Sogar in solchen Fällen kann man jedoch von einer — wenn man so will virtúellen — Informationszerlegung sprechen, denn man muß doch prüfen können, ob die Eingangsinformation (und die Ausgangsinformation) das geforderte Ganze bildet. Man kann auch Vorbehalte zur Notwendigkeit einer Zuordnung einer Bedeutung zu den ausgesonderten Informationsfragmenten haben; z. B. im Prozeß einer reinen Codeänderung spielt eine Bedeutung der einzelnen Eingangssymbole scheinbar keine Rolle. Ohne sich auf Abschweifungen, die von unserem Thema schon allzu entfernt sind, einzulassen, lohnt es sich zu bemerken, daß eine Festlegung einer geeigneten Entsprechung für ein gegebenes Symbol als Definition der Bedeutung dieses Symbols betrachtet werden kann.
1.
Einführung
5
mehr hätten. Wir kommen hier zu einer der wichtigsten Voraussetzungen unserer weiteren Betrachtungen: Voraussetzung über die Existenz von (im semantischen Sinne) unteilbaren Informationsfragmenten. Wenn man diese Voraussetzung formuliert, muß man noch einmal unterstreichen, daß wir die semantische Unteilbarkeit auf einen konkreten Informationsverarbeitungsprozeß beziehen (oder auf eine entsprechende Klasse derartiger Prozesse) und nicht ausschließen, daß im Kontext eines Informationsverarbeitungsprozesses semantisch unteilbare Fragmente mit verschiedener Informationskapazität (Informationsquantität im Sinne der Informationstheorie) auftreten können. Es sei hinzugefügt, daß wir aus der Voraussetzung der Existenz von semantisch unteilbaren Informationsfragmenten in diesem Buch mehrfach Gebrauch machen werden, indem wir oft unterstreichen werden, daß eine Festlegung derartiger Fragmente eine Frage der Verabredung ist. Diese Voraussetzung spiegelt ziemlich gut das aus der Programmierungspraxis her bekannte Vorgehen wider, welches (nach Weglassen von syntaktischen „Schmuckstücken", die für jeden Fall spezifisch sind) zu der Feststellung führt, daß Größen, mit denen wir bei der Ausführung von Programmen operieren, zu festgelegten Interpretationsklassen gehören müssen. Die ihnen entsprechenden Niederschriften im Speicher der Maschine müssen also auf eine festgelegte Art interpretiert werden. Das schließt natürlich weder in der Praxis noch in unserer axiomatischen Fassung die Existenz von Abbildungen zwischen Größen verschiedener Interpretationsklassen nicht aus. Beispielsweise kann bei Benutzung der Terminologie der allgemein angewandten Programmierungssprachen, einer Zahl vom Typ real, eine Zahl vom Typ integer, einer Zahl vom Typ integer eine Folge von Ziffern (Folge der Zahlenwerte der einzelnen Ziffern ihrer dekadischen Entwicklung) und auch eine Folge von Zeichen (d. h. der Zahlenwerte der Codes der einzelnen Ziffern der dekadischen Entwicklung) entsprechen. Die elementaren, semantisch unteilbaren Informationsfragmente werden wir einfache Werte nennen. Gewöhnlich reicht allein die Kenntnis der einfachen Werte zur Durchführung eines Informationsverarbeitungsprozesses nicht aus. Am häufigsten müssen wir noch wissen, auf welche Art die Werte miteinander zusammenhängen. Derartiges Wissen enthält offenbar das Programm des Informationsverarbeitungsprozesses1), das sich auf die einzelnen einfachen Werte in dem Maße bezieht, wie dies die algorithmischen Zusammenhänge erfordern. Es entsteht dabei natürlich das Problem der Identifizierung der individuellen einfachen Werte: In den im Programm beschriebenen algorithmischen Zusammenhängen treten Objekte auf, die in einer für eine gegebene Programmierungssprache geeigneten Art bezeichnet sind und die man mit einzelnen einfachen Werten oder ihren Gruppierungen identifizieren soll. Die Bezeichnungsart selbst dieser Objekte ist jetzt für uns 1 ) Unter einem Programm verstehen wir hier die Niederschrift eines Algorithmus, der die Eigenschaften eines Rechensystems berücksichtigt, auf dem der Informationsverarbeitungsprozeß realisiert werden soll.
2
Batens trukturen
6
1.
Einführung
weniger wichtig, bedeutend wichtiger ist die Notwendigkeit einer Identifizierung der einfachen Werte. Zur weiteren Vereinfachung, setzen wir voraus, daß Objekte, die Gegenstand eines Informationsverarbeitungsprozesses sind, geordnete Paare sind: Das erste Element eines solchen Paares nennen wir Namen und das zweite Element Wert. Das Objekt selbst, das sich aus Namen und Wert (in dieser Reihenfolge) zusammensetzt, bezeichnen wir mit dem Terminus: Dateneinheit. Anders gesagt, unter einer Dateneinheit werden wir ein Objekt verstehen, in dem man zwei Teile unterscheidet: den Namen der Dateneinheit und ihren Wert. Man sollte dabei daran denken, daß wir mit dem Namen ein vom Wert unabhängiges und im Informationsprozeß konstantes (im Gegensatz zum Wert, der im Ergebnis dieses Prozesses einer Änderung unterliegen kann) Merkmal des Objektes bestimmt haben, das die Identifizierung des Objekts in einer Menge ähnlicher Objekte erlaubt. Es muß hier vor einem möglichen Mißverständnis gewarnt werden, das auf der Identifizierung des so bestimmten Namens einer Dateneinheit mit der Bezeichnung (dem Identifikator) entweder des Namens der Dateneinheit oder ihres Wertes beruht. Es kann beispielsweise vorkommen, daß wir einen solchen Verarbeitungsprozeß betrachten, werden, in dem das Verhältnis des Flächeninhalts eines Kreises zum Flächeninhalt eines Quadrats, dessen Seite gleich dem Radius dieses Kreises ist, vorkommt. Dieses Verhältnis1) bezeichnet man mit dem griechischen Buchstaben n, und seinen angenäherten Zahlenwert bezeichnen wir in der dekadischen Schreibweise z. B. so: 3.1415926. Jedoch ist weder n noch 3.1415926 eine Dateneinheit. Die uns interessierende Dateneinheit ist das Paar: (das Verhältnis des Flächeninhalts des Kreises zum Flächeninhalt des Quadrats, dessen Seite gleich dem Radius dieses Kreises ist; die Zahl, die dieses Verhältnis ausdrückt). Den Namen dieser Dateneinheit kann man mit dem Buchstaben jr bezeichnen, aber genausogut kann man auch so die Zahl bezeichnen, die den Wert dieses Verhältnisses darstellt. Die konkrete Form von Bezeichnungen der Namen und der Werte von Daten wird uns weiter nicht interessieren. Wir bemerken nur, daß wir der Einfachheit halber auch Bezeichnungen für Daten einführen werden (wir werden z. B. von der Dateneinheit d sprechen), indem wir dies jedoch immer und ausschließlich als abkürzende Schreibweise betrachten (die z.B. den Ausdruck Dateneinheit {n,x) ersetzt; mit anderen Worten, das Paar (n, x) bezeichnen wir mit d). Man sollte auf zwei interessante Folgerungen der oben gegebenen Definition der Dateneinheit hinweisen. Erstens ist eine Dateneinheit das Entsprechende des Satzes: „Es gibt ein unterscheidbares Objekt, das identifizierbar ist durch einen Namen und das einen Wert hat". Zweitens kann man sagen (wenn wir daran denken, daß eine im Speicher eines Rechensystems untergebrachte Information immer einen konkreten Platz einnimmt), daß man den Namen einer Dateneinheit als eben diesen Platz interpretiert, ebenso wie man den Wert einer Dateneinheit als den Inhalt dieses Speicherplatzes interpretiert. (Wir ver!) Wie bekannt, vom Radius unabhängig.
1.
Einführung
7
meiden hier absichtlich den Gebrauch des Begriffs Adresse, da genau gesagt, nicht alle Plätze eines Speichers eine Adresse haben; vgl. Abschnitt 2). I n hinsichtlich des Aufbaus von Datenmengen trivialen Anwendungen von Digitalrechnern sind die einzelnen Daten miteinander nur durch den Algorithmus der Informationsverarbeitung verbunden, die Namen der Daten dienen nur zu ihrer Identifizierung, und als völlig ausreichend kann man eine beliebige Aufbauart von Bezeichnungen für Namen ansehen, die die Eindeutigkeit dieser Bezeichnungen bewahrt. Damit erklärt sich z. B. die vollständige Freiheit in der Wahl der Identifikatoren der Veränderlichen in der Mehrzahl der elementaren numerischen Programme. Geht man einen Schritt weiter, so kann man sagen, wenn die Namen der Daten die Verbindungen zwischen den Objekten, die durch die Daten modelliert werden, nicht berücksichtigen, daß das ganze Gewicht des Aufbaus eines Informationsverarbeitungssystems auf den Aufbau von Algorithmen und Programmen fällt, und in der Konsequenz läßt man die Möglichkeit der Änderung der Art der Gruppierung von Daten zu, da die Art selbst keine nützliche Information im Informationsverarbeitungsprozeß trägt. In der uns in diesem Buch interessierenden Klasse von Problemen setzt man voraus, daß die Art der Gruppierung von Daten die wesentlichen Merkmale des zu lösenden Problems widerspiegelt, nützliche Information enthält und nicht beliebig geändert werden kann. Um jedoch die Information über das Problem, die in der Art der Gruppierung von Daten enthalten ist, zu benutzen, muß man annehmen, daß man diese Information aus der Analyse der Daten erhalten kann. Da diese Information nicht zu den Werten der Daten gehört, nehmen wir an, daß die Namen der Daten sie enthalten. Wir setzen also voraus, daß die Namen von Daten eine Information tragen, die einzelne Daten im Kontext einer Datenmenge für die von uns betrachteten Probleme zu identifizieren erlaubt. Wir bemerken gleich, daß in der Praxis die Eingangsinformation nicht notwendig explizit gegebene Bezeichnungen für Namen von Daten enthalten m u ß ; die Namen von Daten können z. B. impliziert werden durch die Verteilung der Werte auf Lochkarten, durch die Sequenz des Auftretens der Werte in der Eingabeeinrichtung (oder Registriereinrichtung), durch festgelegte Formate und Schablonen, mit denen man die „rohe" Eingangsinformation vergleicht, durch die Art und Weise des Abiesens von graphischen Darstellungen und ähnliches. Die Namen von Daten können auch von einer separaten Quelle (z. B. von einer unabhängigen Uhr oder anderen Geräteeinrichtungen und auch von einem Programm) angezeigt werden. Wir legten daher fest, daß der Name einer Dateneinheit eine Information über die Beschaffenheit der Dateneinheit im Komplex von Daten trägt und zu ihrer Identifizierung dient. Indem wir die zweite, mehr offensichtliche Funktion 1 ) übergehen, werden wir die Folgerungen ausführlicher diskutieren, die sich aus der ersten Funktion (und Hauptfunktion von unserem Standpunkt aus) der Namen von Daten ergeben. J
) Damit Namen von Daten sie erfüllen können, reicht es aus, daß keine zwei verschiedene Daten denselben Namen haben. 2*
8
1.
Einführung
Wie wir oben bemerkt haben, betreffen heutige Aufgaben der Informationsverarbeitung immer häufiger solche Probleme, deren Natur durch Datenmengen und genauer durch eine Ordnung (effektive oder erwünschte) dieser Menge bestimmt ist. Vom mathematischen Standpunkt ist das Problem einer Ordnung in einer Menge von Elementen nicht so scharf, wie wir es vom Standpunkt einer Analyse der Grundlagen der Prozeduren der Informationsverarbeitung sehen möchten. Es lohnt sich jedoch, zwei Gedanken von BERTE AND RUSSELL anzuführen, der in der Einführung in die Philosophie der Mathematik [65] folgendes schrieb: „Wenn wir eine Ordnungsdefinition suchen, müssen wir uns vor allem vergegenwärtigen, daß keine Menge von Dingen nur eine einzige Ordnung mit Ausschluß aller anderen besitzt. Eine Menge von Elementen besitzt alle Ordnungen, die in ihr nur möglich sind. Zuweilen ist uns eine Ordnung soweit mehr bekannt und natürlich für unser Denken, daß wir geneigt sind, sie als einzige und richtige Ordnung der Menge anzusehen; das ist aber falsch" (S. 47). Und etwas weiter: „Die Ordnung steckt nicht in der Klasse der Elemente, sondern in der Beziehung zwischen den Elementen dieser Klasse, wobei im Zusammenhang damit einige Elemente als frühere und andere als spätere auftreten. Die Tatsache, daß eine Klasse verschiedene Ordnungen haben kann, folgt daraus, daß zwischen den Elementen derselben Klasse viele Beziehungen vorkommen können" (S. 48). Diese Bemerkungen charakterisieren sehr gut die philosophischen Voraussetzungen der Untersuchung von Daten in der Form von geordneten Paaren. Wenn wir uns für die Wahl eines solchen Raumes von Namen, d. h. einer Menge von Namen mit einer Ordnungsrealtion, entscheiden, wählen wir eine der möglichen Ordnungen in der betrachteten Informationsmenge. Eine der möglichen Beziehungen zwischen semantisch unteilbaren Informationsfragmenten und diesem Merkmal, bezüglich dessen man den Wert der gewählten Beziehung bestimmt, erkennen wir als Name der Dateneinheit an. Alle anderen Ordnungen, die in der betrachteten Informationsmenge auftreten können, ergeben sich aus den Beziehungen, die zwischen den Werten der Daten bestehen. Wenn wir von der Wahl einer der möglichen Ordnungen oder einer der möglichen Ordnungsrelationen (vergl. Anhang B ) sprechen, so wollen wir nicht unbedingt sagen, daß wir diese Wahl bewußt tun, z. B . bei der Herstellung eines Programms des Informationsverarbeitungsprozesses; sehr häufig ist uns diese Wahl durch den Prozeß der Datensammlung auferlegt, auf den wir keinen Einfluß haben oder durch Traditionen und Gewohnheiten der Benutzer, für die man das Informationsverarbeitungssystem schafft. Aus diesem Grunde werden wir die Ordnung der Daten, die sich aus der Anordnung der Namen ergibt, natürliche Ordnung nennen, und im Abschnitt 3 werden wir sie als zusammen mit der Datenmenge gegeben betrachten. Wir verlassen uns dabei auf das Urteil des Lesers, ob wir bei einer derartigen Fassung einen Fehler begehen, von dem man im letzten Satz des ersten Zitats spricht.
1.
Einführung
9
Es muß hinzugefügt werden, daß das Aussondern von Namen u n d Werten in jedem konkreten Falle abhängig ist von einer gewissen Verabredung, nämlich von der Annahme eines solchen und nicht anderen Raumes von Namen u n d Raumes von Werten. Man setzt voraus, daß eine solche Annahme im ganzen uns interessierenden Zeitraum verbindlich ist oder umgekehrt, daß unsere Betrachtungen sich auf einen solchen Zeitraum beziehen, in dem die festgelegte Definition des konkreten Raumes von N a m e n u n d des konkreten Raumes von Werten verbindlich ist. Wir verlegen die mehr formale Darstellung der Sache in den Abschnitt 3 und stellen hier in allgemeinen Umrissen die Hauptvorteile dar, die wir aus der Einführung des Begriffs Namenraum gewinnen. Der erste Vorteil ist die Möglichkeit der Einteilung von Datenmengen in zwei A r t e n : erstens Datenmengen, deren Namen zu solchen R ä u m e n gehören, daß wir bei einer Untersuchung von N a m e n von zwei verschiedenen Daten ihre gegenseitige vom K o n t e x t (d. h. von den übrigen Daten der Menge) unabhängige Anordnung bestimmen können und zweitens Mengen, in denen man die Nachfolgerschaft von Daten ausschließlich durch die Angabe der ganzen Menge von Datennamen, in der die N a m e n der untersuchten Daten auftreten, bestimmt und die n u r in dieser Menge verbindlich ist. Namenräume der ersten Art werden wir systematische Räume nennen. Innerhalb von Datenmengen mit N a m e n aus einem systematischen R a u m können wir reguläre Namenmengen erzeugen, die sich dadurch charakterisieren, daß man auf Grund der Kenntnis der Namen von zwei D a t e n feststellen kann, wieviel D a t e n (von demselben Aufbau wie die zwei betrachteten Daten) zwischen den beiden Daten in der natürlichen Anordnung der ganzen Menge auftreten. Wir gewinnen also — indem wir den Begriff des Namenraumes benutzen — die Möglichkeit der Beschreibung aller wichtigeren Arten von Datengruppierungen, die wir eingangs erwähnten. Der zweite Vorteil, der sich aus der Einführung des Namenraumes ergibt, ist eine nahezu homogene Darstellung der Arten der Speicherung von verschiedenen Datengruppierungen in Speichern von Rechnersystemen. Dieses Ziel erreichen wir, indem wir — außer dem Begriff des Namenraumes (der, wie wir wissen, die Voraussetzung der Kenntnis der natürlichen Ordnung der Namen enthält) — den Begriff der Position im Datenträgermedium (Abschnitt 2) sowie den Begriff der Art der Verteilung als Abbildung von Namenmengen auf Positionsmengen einführen. I m Abschnitt 3 konstruiert m a n einige typische Abbildungsfunktionen von Datennamen auf Adressen, die das allgemein bekannte Vorgehen im Falle adressierbarer Datenträgermedien modellieren. Diese F u n k tionen wenden wir weiter im Abschnitt 4 zur Lösung von einigen wichtigen praktischen Problemen an. Der dritte Vorteil ist die Möglichkeit der Formulierung von Voraussetzungen, unter denen man die bekannten Arten der Sortierung und des Mischens anwenden k a n n ; diese Voraussetzungen k a n n man ohne K e n n t n i s der N a t u r der
10
1.
Einführung
Schlüssel, nach denen man Stapel von Daten anordnet, ausdrücken, indem man ausschließlich Eigenschaften eines systematischen 'Namenraumes benutzt. Wenn wir annehmen, daß Datenwerte nicht ausschließlich einfache Werte sind, sondern auch Datenmengen sein können, so gewinnen wir einen rekursiv bestimmten Werteraum, der den hierarchischen Aufbau von Daten widerspiegelt. Das kartesische Produkt des Namen- und Werteraumes bildet den Datenraum. Eine Dateneinheit hat in einem solchen Raum — außer dem Namen und dem Wert — auch einen Rang (Abschnitt 3). Ein Rang ist eine ganze Zahl, die gleich der Zahl der „hierarchischen Niveaus" des Wertes einer Dateneinheit ist. Die Einführung des Begriffes des Datenraumes erlaubt, viele praktisch wichtige Eigenschaften von Daten zu beschreiben, wie z. B. das Enthaltensein einer Dateneinheit in einer anderen, den Zusammenhang zwischen der Speicherplatzzuordnung und dem hierarchischen Aufbau von Daten usw. Die Zerlegung des Datenraumes in einen Namenraum und einen Werteraum gestattet Informationsverarbeitungsprozesse, die den Aufbau und die Verteilung von Daten in Datenträgermedien betreffen, und Prozesse der inhaltlichen Informationsverarbeitung (Verarbeitung der Werte von Daten) disjunkt zu betrachten. I m vorliegenden Buch werden wir uns ausschließlich mit der ersten Art von Informationsverarbeitungsprozesssen beschäftigen.
2.
DATENTRÄGERMEDIEN
Unter einem Datenträgermedium werden wir jeden Träger verstehen, der in Ilechnersystemen zum Schreiben und Lesen von Informationen (unabhängig von der Form, die die geschriebene Information annimmt) benutzt wird, einschließlich aller Elemente der Rechengeräte, die (direkten) Einfluß auf die Art des Schreibens und Lesens haben. Aus dieser Definition geht hervor, daß die Nutzungseigenschaften eines gegebenen Datenträgermediums sowohl durch die Wahl des Trägers allein als auch durch die gewählte Gerätelösung bestimmt sind. So wie ein und derselbe Träger in Speichermedien benutzt werden kann, die sich hinsichtlich der angewandten Konstruktionsvoraussetzungen der Elemente der Geräte unterscheiden, so kann auch eine identische Gerätelösung auf verschiedenen Trägern beruhen. In jedem Falle wird ein anderes Speichermedium gebildet. Die Benutzung von hinsichtlich der Arbeitsgeschwindigkeit verschiedenen Ferritkernen in Operationsspeichern mit gleicher Adressierungsart ist ein Beispiel für die zweite Mannigfaltigkeit. Ein normalisiertes Magnetband, das ein bzw. zwei Bewegungsrichtungen hat (Abschn. 2.1.), liefert ein Beispiel für die erste Mannigfaltigkeit. Es sei außerdem bemerkt, daß eine entsprechende Software die Charakteristik eines Datenträgermediums scheinbar verändern kann. Beispiele dafür sind im Abschnitt 2.3. angeführt. In diesem Abschnitt werden wir uns zunächst jedoch ausschließlich mit Eigenschaften der oben definierten Datenträgermedien beschäftigen, d. h., wir schließen Programmierhilfsmittel, die zwischen dem Benutzer (genauer: seinem Programm) und dem Speichermedium wirken, aus. Wenn wir vom Informationsträger samt den begleitenden Einrichtungen sprechen, so werden wir mitunter den Terminus Speicher gebrauchen. Wir werden beispielsweise Ferritkerne, die aufgefädelt sind auf Leiter, die in Matrixform (Ebenen) und in Blöcken angeordnet sind, Ferritspeicher nennen; einen mit ferromagnetischem Lack bedeckten Zylinder einschließlich der Lese-SchreibKöpfe und des Antriebsmechanismus werden wir Trommelspeicher nennen usw. Für jedes Datenträgermedium ist eine für dieses Medium spezifische Interpretation des Begriffes Informationsposition festgelegt. Damit meinen wir eine solche Menge von (stetigen oder diskreten) Elementen eines Trägers, deren Informationsgehalt innerhalb des Mediums als unteilbares Ganzes betrachtet wird, also unabhängig davon, ob und in welche Teile die in der gegebenen Position eingeschriebene Information zerlegt werden kann. Diese Zerlegung kann aus-
12
2.
Datenträgermedien
schließlich mit Programmitteln (oder Gerätemitteln, die aber nicht zum Medium gehören) erfolgen. Wenn wir von Informationspositionen sprechen, benutzen wir oftmals den Begriff Positionskapazität (oder Positionslänge), ohne immer zu spezifizieren, in welchen Einheiten diese Größe ausgedrückt ist. Das dürfte jedoch nicht zu Mißverständnissen führen, da es in diesen Fällen ausschließlich um die Feststellung der gleichen (oder verschiedenen) Informationskapazität zweier (oder mehrerer) Positionen geht. Haben alle Positionen eines Mediums die gleiche Kapazität, so werden wir den Begriff Zelle austauschbar mit dem Begriff Position gebrauchen. Wir erinnern schließlich daran, daß wir in der Einführung die Bedeutung des Ausdrucks „Daten" deutlich von der Bedeutung des Ausdrucks „Information" getrennt haben.
2.1.
Funktionelle Charakteristik
Eine funktionelle Einteilung von Datenträgermedien kann traditionsgemäß auf verschiedene Arten vorgenommen werden. Ungeachtet dessen, daß heute die Bezugnahme auf die Struktur des Rechners viele Grundlagen ändert, auf denen die traditionellen Einteilungen aufgebaut waren, sind hier einige dieser Einteilungen als Ausgangspunkt unserer Betrachtungen aufgenommen worden. Versuchen wir zuerst, die funktionelle Charakteristik des Hauptspeichers (zuweilen Basisspeicher oder interner Speicher genannt) eines Rechnersystems festzulegen, welcher als gesonderter Teil des Systems betrachtet wird, der wesentlich verschieden vom Hilfsspeicher ist. Diese Einteilung nimmt natürlich einen Anfang im Gedankenschema, das sich unwiderlegbar mit der Rechnung mit Hilfe eines Handrechners und eines elektrischen Rechners verbindet, bei denen der Hauptspeicher und die Register, die einzigen automatisch zugänglichen Stellen für die Aufbewahrung der Operanden waren und bei denen die Bequemlichkeit der Rechnung ganz wesentlich von der Universalität dieser Register abhing, d. h. von der Möglichkeit der automatischen Übertragung des Inhalts eines von ihnen in ein anderes. Eine psychologische Begründung für die Beibehaltung einer scharfen Abgrenzung zwischen Haupt- und Hilfsspeicher in den ersten Rechnersystemen (ungeachtet des hier schon automatisierten Prozesses der Informationsübertragung zwischen zwei Arten von Speichern) sind die schwierigen Maßnahmen, die bei der Übertragung des Inhalts eines Registers auf Papier unerläßlich sind, und die damit verbundene Möglichkeit, einen Fehler zu begehen (eine Möglichkeit, die auch bei dem nicht weniger mühseligen Prozeß des Eintastens von Zahlen in Register besteht). Offenbar fehlen auch nicht andere Gründe, warum die hier betrachtete Einteilung sich so lange hielt. Es ist jedoch wichtig, sich den ursprünglichen Grund klarzumachen, denn kein anderes Kriterium außer der relativen Bequemlichkeit des Zugriffs zum Inhalt kann klären helfen, was Hauptspeicher ist und was
2.1.
Funktionelle Charakteristik
13
nicht. So werden wir beispielsweise die Magnettrommel in den Rechenautomaten IBM 650 oder Odra 1003 und den stapelartig organisierten Ferritkernspeicher in der Maschine B 5500 als Hauptspeicher bezeichnen. Als Datenträgermedien unterscheiden sich die genannten zwei Speicher sowohl hinsichtlich des benutzten Trägers als auch hinsichtlich der elektronischen Gerätelösung. Das sind also verschiedene Trägermedien, und das beweist, daß die Einteilung in Speicherformen (Haupt- oder Hilfsspeicher) nicht unmittelbar mit gewissen Arten von Trägermedien zusammenhängt. Wir sehen daher, daß das funktionelle Kennzeichen eines Hauptspeichers der Zugriff zu der in ihm enthaltenen Information ist. Eine kurze Überlegung reicht aus, um festzustellen, daß dieses Kennzeichen noch nicht hinreichend präzis ausgedrückt ist. Wir versäumten nämlich festzulegen, bezüglich welcher Operationen jener Zugriff zum Speicherinhalt bestimmt wird. Weitere Überlegungen zum Thema Einteilung — „Hauptspeicher — Hilfsspeicher" — würden in. unsere Betrachtungen nichts Neues bringen. Wir zeigten wohl ausführlich genug, daß die betrachtete Einteilung einen konventionellen Charakter hat (was ihre didaktische Bedeutung nicht mindert). Eine wesentlichere Tatsache liegt der Einteilung in Speicher mit sequentiellem und direktem Zugriff zugrunde. Wir betrachten zwei Speicher M x und M2 und legen in jedem zufällig n Positionen pn, pl2, ..., pin bzw. p21, ..., p2n mit identischer Informationskapazität fest. Nun führen wir für jeden Speicher eine Folge von Operationen durch, die zum aufeinanderfolgenden Lesen der in diesen Positionen gespeicherten Informationen führt, wobei wir die Zeitabschnitte r zwischen dem Lesen der Information aus der Position pij-^ und der Position Pi}, i = 1, 2, j = 2, ..., n, messen. Der Speicher, für den die Gesamtheit der Werte ry einen größeren ,,Veränderlichkeitsindex" hat (siehe [45, S. 102]), werden wir als Speicher mit einem mehr sequentiellen Zugriff und den Index selbst als Maß der Sequentialität ansehen. Wenn wir jetzt Datenträgermedien betrachten, können wir sie hinsichtlich wachsender (oder fallender) Sequentialität des Zugriffs anordnen. Traditionell hat sich aber die Einteilung in Speicher mit sequentiellem bzw. direktem Zugriff eingebürgert, wobei sich lediglich der zweite Begriff auf natürliche Weise durch das oben angegebene Schema ausdrückt: Als Speicher mit direktem Zugriff bezeichnen wir ein solches Datenträgermedium, dessen Veränderlichkeitsindex der Zeitabschnitte zwischen aufeinanderfolgenden Informationsentnahmen aus zufällig festgelegten Positionen vernachlässigbar klein ist. Offenbar könnten wir statt „Informationsentnahme" auch, ohne irgendwie den Sinn obiger Bemerkungen zu ändern, „Informationsspeicherung" schreiben. Wir besprechen jetzt einige am meisten angewandte Arten von Datenaufbewahrungsmedien, indem wir uns auf ihre funktionellen Charakteristiken konzentrieren. Magnetkernspeicher
Dieser Speichertyp, der allgemein als Speicher mit direktem Zugriff eingesetzt wird und in den meisten Fällen einen „Operationsspeicher" von Rechnersyste-
14
2.
Datenträgermedien
men bildet, kann hinsichtlich der Organisation der elektronischen Ausrüstung in mehrere verschiedene Arten von Datenspeichermedien eingeteilt werden, von denen zwei besonders beachtenswert sind. Sehr verbreitet ist zweifellos ein Datenträger, der durch eine Einteilung in gleiche Zellen gekennzeichnet ist, zu denen man den Zugriff (für Informationsentnahme oder Informationsspeicherung) durch Angabe der Adresse der Zelle erlangt. Die Adresse einer Zelle ist eine nichtnegative ganze Zahl (in der überwiegenden Mehrzahl von Rechnersystemen), die zu einem festgelegten Intervall gehört. Die Art, wie man die Adresse bestimmt, wird später in diesem Abschnitt behandelt. J e t z t beschränken wir uns nur auf die Bemerkung, daß der numerische Wert der Adresse in der Regel eine Linearkombination von einer nicht großen Anzahl von Gliedern ist. Wenn wir an die oben angegebene Definition eines Mediums mit direktem Zugriff anknüpfen, bemerken wir, daß man für die betrachtete Art des Mediums keine zwei derartigen gleichmächtigen Folgen von Adressen festlegen kann, so daß die Gesamtzeit der Informationsentnahme aus den Zellen der einen Folge erheblich die entsprechende Zeit für die zweite übertrifft. Ein derartiges adressierbares Datenträgermedium mit Zellenaufbau werden wir homogenes Medium nennen. Die Zellen eines homogenen Mediums haben eine eigene, für einen konkreten Speicher spezifische, strukturelle Einteilung. Am häufigsten besteht eine Zelle aus einer gewissen endlichen Anzahl von Positionen, die je ein Bit oder ein Zeichen aufnehmen können, wobei die letzten wiederum in 1-Bit-Positionen zerlegbar sind. Die Homogenität eines Mediums ist als Kennzeichen der gleichen Bequemlichkeit des Zugriffs (auf Grund der Adresse) zu beliebiger Zelle des Mediums definiert worden, was ganz und gar nicht die gleiche Bequemlichkeit des Zugriffs zu einem beliebigen Element auf niedrigerem (feinerem) strukturellem Niveau bedeutet. I n der Tat hängt die Bequemlichkeit des Zugriffs zu den einzelnen strukturellen Elementen einer Zelle nicht nur von den Eigenschaften des Mediums selbst ab, sondern auch davon, was wir unter „Zugriff" verstehen. So kann man beispielsweise sagen, daß der Zugriff zu der 1-Bit-Position einer gegebenen Zelle, deren Inhalt bei gewissen Maschinenoperationen als Vorzeichen der in dieser Zelle gespeicherten Zahl behandelt wird, leichter ist als zu anderen 1-Bit-Positionen derselben Zelle, da wir, ohne zusätzliche Operationen auszuführen, sofort nach Entnahme des Inhalts der Zelle in den Akkumulator uns die Information von einem Bit zunutze machen können, indem wir einen bedingten Sprung ausführen (wegen des Vorzeichens des Inhalts des Akkumulators). Dabei ist die Tatsache ohne Bedeutung, ob der ganze entnommene Inhalt der Zelle als Zahl interpretiert werden soll oder nicht (das Beispiel ist sogar deutlicher, wenn der Inhalt der Zelle nicht als Zahl interpretiert werden soll). Wir haben auf die Relativität des Begriffes der Homogenität eines Datenträgermediums hingewiesen, da hierdurch deutlich der Gegenstand unseres Buches gekennzeichnet ist, was wir eingangs angedeutet haben und noch mehrmals unterstreichen werden. Es geht näm-
2.1.
Funktionelle Charakteristik
15
lieh darum, daß wir bei der Erörterung von strukturellen Eigenschaften und Relationen, die Objekte mit gewisser Struktur betreffen, an folgendes denken müssen: Es ist damit zu rechnen, daß beim Einführen des Begriffes Struktur als Beschreibungsmittel alle Folgerungen von einer von uns angenommenen „Stufe der strukturellen Unteilbarkeit" abhängen. Wenn wir also einen Kernspeicher als Menge von Zellen betrachten und die Eigenschaft der Homogenität auf eine so festgelegte strukturelle Einteilung beziehen, so hat eigentlich ein Analysieren einer feineren Einteilung dieses Mediums keinen Sinn.
Man muß also jetzt die funktionelle Bedeutung der Wahl der Kapazität (Länge) einer Zelle, die ein strukturelles Element eines homogenen Datenträgermediums bildet, analysieren. Eine 1-Bit-Zelle stellt die kleinste Einheit eines homogenen Speichers dar. Bei numerischen Problemen ist eine Zahl der brauchbare und natürliche Wert von elementaren Daten, bei nichtnumerischen Problemen der Datenverarbeitung ist es ein alphanumerisches Zeichen. In gewissen numerischen Rechnungen hat sich die normalisierte Gleitkommadarstellung von Zahlen eingebürgert, obgleich das mit der Ablehnung des Prinzips der Durchführung einer Rechnung mit der kleinsten unbedingt notwendigen Genauigkeit zusammenhängt. Die Kosten (Gerätekosten und Rechenzeit) einer anderen Lösung, die auf der Durchführung von Rechnungen mit veränderlicher Anzahl von signifikanten Ziffern beruht, stellen sich als viel zu teuer heraus, teurer als die „Verluste", die sich aus „iu großer" Genauigkeit ergeben, mit der wir oft in der Gleitkommaarithmetik rechnen. Andererseits erlaubt die Einführung von Operationen mehrfacher Genauigkeit, die mehrere Zellen als Argumente haben, eine unbedingt notwendige Erhöhung der Genauigkeit. Es sei bemerkt, daß die Forderung, einzelne Teile einer Zahl, die in mehreren Zellen gespeichert ist, in benachbarten Zellen zu verteilen, durchaus nicht von der Inhomogenität des Speichers zeugt, da diese Forderung nicht so sehr erhoben wird durch das Bestreben nach Erleichterung des Zugriffs als durch den geringen Aufwand bei der Generierung von Adressen der einzelnen Teile. Wir sehen also, daß für numerische Rechnungen ein homogener Speicher mit einer Zellenlänge, die der durchschnittlichen Genauigkeit der Rechnungen entspricht, funktionell begründet ist. Auf Grund analoger Betrachtungen kann man feststellen, daß für Probleme der nichtnumerischen Informationsverarbeitung, genauer für die Automatisierung von Verwaltungs- und Handelsoperationen, ein homogener Speicher mit einer Zellenlänge, die für die Speicherung eines binären Bildes von einem alphanumerischen Zeichen (das sind 6 oder 8 Bits) ausreicht, zweckmäßig ist. Da es jedoch in der Praxis schwierig ist, numerische von nichtnumerischen Anwendungen zu trennen, ist häufig die Struktur eines Kernspeichers eine gemischte Struktur, in der die Grundzelle eine 1-Zeichen-Zelle {Byte) ist, aber für manche Maschinenoperationen Komplexe solcher Zellen (Speicherwörter) gleichzeitig zugänglich sind, wie sie z. B. für die Speicherung von Gleitkommazahlen bestimmt sind. Ferritkerne werden auch als Träger in inhomogenen Datenträgermedien verwendet, z. B. in Stapelmedien.
16
2.
Datenträgermedien
Ein Stapelmedium ist durch folgende Eigenschaften gekennzeichnet: 1. Bei der beibehaltenen Einteilung in Zellen mit gleicher Informationskapazität ist in jedem gegebenen Zeitpunkt nur eine von ihnen für die Operation der Informationsentnahme zugänglich und eine — von der vorhergehenden aber verschiedene — für die Operation der Informationsspeicherung. 2. Die Reihenfolge, in der die einzelnen Speicherzellen der Operation der Informationsentnahme zugänglich gemacht werden, ist umgekehrt zu der Reihenfolge, in der sie der Operation der Informationsspeicherung zugänglich gemacht werden. 1 ) Der Grundunterschied zwischen einem homogenen und einem stapelartigen Medium besteht darin, daß man für ein Stapelmedium nicht den Begriff der Adresse einer Zelle einführt. Das widerspiegelt den funktionellen Aspekt des Stapelmediums, daß wir bei seiner Benutzung keine Freiheit in der Wahl der Zelle haben, der wir Information entnehmen (oder, in die wir Information speichern) wollen. Es sei bemerkt, daß wir bei Stapelmedien nicht unmittelbar die Betrachtungsschemata anwenden können, die zur Festlegung der Definition der Wahlfreiheit des Zugriffs geführt haben, da der Prozeß der Informationsentnahme aus einer zufällig festgelegten Folge von Positionen dieses Mediums einfach nicht ausführbar ist. In Anbetracht eben dieser Art von Datenträgermedium sind wir nicht geneigt, eine dichotomische Einteilung aller Datenträgermedien in sequentielle und direkte Medien anzunehmen. Gewiß besitzt eine Ziffernmaschine, die über ein stapelartiges Datenträgermedium verfügt, ein gewisses Repertoire an Operationen, die dieses Medium benutzen, so wie übrigens auch eine Maschine, die über ein homogenes Medium verfügt. Ein Beispiel für Operationen, die mit einem Stapelmedium arbeiten, sind arithmetische Operationen mit zwei Argumenten, die auf den Inhalt von zwei Zellen eines Stapelspeichers wirken. Funktionell sind Operationen doch immer nach dem Schema zerlegt: 1. 2. 3. 4.
Lies den Inhalt der Zelle Lies den Inhalt der Zelle Führe die Operation durch Speichere das Ergebnis in der Zelle
Bemerkung. Gemäß der oben angegebenen funktionellen Beschreibung eines Stapelspeichers betreffen zwei aufeinanderfolgende Leseoperationen zwei verschiedene Zellen. Die Anwendung von Stapelmedien ist z. B . in der Arbeit [75] beschrieben. Es sei hinzugefügt, daß man Datenträgermedien, die funktionell denen ähnlich sind, die man unter Verwendung eines Kernspeichers bauen kann, auch mit Anmerkung des Herausgebers: In der deutschsprachigen Literatur werden derartig organisierte Speicher meist Kellerspeicher oder einfach Keller genannt. Die Bezeichnung Stapel wird vorzugsweise für Programmstapel (batch processing) verwendet. Bezüglich der Bezeichnung Stapelautomat in der theoretischen Literatur siehe im Literaturverzeichnis des Herausgebers [20].
2.1.
Funktionelle Charakteristik
17
anderen Trägern — Tunneldioden, dünnen Schichten u. ä. — bildet. Eine allgemeine funktionelle Eigenschaft von Trägern, die zum Aufbau von homogenen und stapelartigen Datenträgermedien verwendet werden, ist eine hohe Geschwindigkeit, mit der man die Operationen der Informationsentnahme und der Informationsspeicherung ausführen kann. Man muß bemerken, daß — wenn nicht die hohen Kosten dieser Träger und die verhältnismäßig komplizierte elektronische Ausrüstung, die zum Aufbau des Mediums erforderlich ist — die Universalität von homogenen und stapelartigen Medien ein ausreichendes Argument wäre, das für die Einschränkung auf nur die beiden Arten von Datenträgermedien in den heutigen Rechnersystemen spricht. Leider zwingen uns ökonomische Gründe auch zur Anwendung anderer Medien mit bedeutend schlechteren funktionellen Eigenschaften. Man kann noch hinzufügen, daß ein aus Ferritkernen aufgebauter Speicher mitunter zur Konstruktion von Medien, die funktionell von den obenbeschriebenen verschieden sind, verwendet wird. Sie sind jedoch nicht so charakteristisch, um sie zu beschreiben. Rotierende
Speicher
Mit dem Begriff rotierende Speicher umfassen wir magnetische Trommel- und Plattenspeicher; Datenspeichereinheiten, die diese Träger enthalten, haben viele gemeinsame Merkmale. Die funktionelle Grundeigenschaft von rotierenden Speichern ist ebenso wie in Kernspeichern die Unterscheidung von individuell adressierten Zellen, d. h. von Positionen mit festgelegter Länge. Im Gegensatz zu homogenen Medien kann man hier aber solche gleichmächtige Folgen von Adressen wählen, daß die Gesamtzeit der Informationsentnahme aus den Zellen einer Folge erheblich die entsprechende Zeit einer anderen Folge übersteigt, obwohl für hinreichend lange zufällige Folgen von Zellen der Veränderlichkeitsindex der Zeitabschnitte, die zwischen aufeinanderfolgenden Leseoperationen vergehen, nicht groß sein wird. Das erlaubt es, die Datenträgermedien mit rotierenden Speichern als Medien mit direktem Zugriff anzusehen 1 ). Das charakteristische Merkmal von Plattenspeichern ist, daß der Zugriff zur gewählten Zelle dieses Speichers aus zwei Etappen besteht — dem Aufsuchen des eigentlichen Zylinders des Speichers, dem die Bewegung der Köpfe entspricht und dem Aufsuchen der eigentlichen Position (Zelle) innerhalb dieses Zylinders. (Dieses Merkmal tritt auch in einigen Realisierungen des Trommelspeichers auf.) Außerdem ist das Lesen von Informationen aus den Zellen in der Reihenfolge, in der sie den Lesekopf passieren, bedeutend schneller als das 1
) Es lohnt sich hinzuzufügen, daß in einem großen Teil der Fachliteratur das Merkmal der Wahlfreiheit ausschließlich auf „äußere Speicher" bezogen wird; es umfaßt nicht den Kernspeicher, der traditionell als „innerer Speicher" angesehen wird. In einer derartigen Fassung bezieht sich der Begriff „Speicher mit direktem Zugriff" (random-access memory) fast ausschließlich auf rotierende Speicher und einige andere.
18
2.
Datenträgermedien
Lesen in irgendeiner anderen Reihenfolge; das betrifft übrigens in gleichem Grade beide Arten von rotierenden Speichern. Obwohl also die Lesezeit der Information aus einer Zelle eines rotierenden Speichers nicht groß ist, so bewirkt ihre Erhöhung um die Zeit des Aufsuchens der Zelle (durchschnittlich gleich der Zeit der halben Drehung der Trommel oder der Zeit der halben Drehung der Platte vergrößert um die mittlere Zeit der Verschiebung der Köpfe), daß die Informationsentnahme aus einzelnen Zellen von rotierenden Speichern sehr uneffektiv ist. Daraus ergibt sich die allgemeine Tendenz, beim Datentransport zu oder von rotierenden Speichern die Daten zu größeren Blöcken zusammenzufassen, die auf dem rotierenden Träger in benachbarten Zellen gespeichert sind. (Der Begriff der Nachbarschaft ist hier nicht notwendig als physikalische Nachbarschaft der Zellen zu verstehen. Die entscheidende Rolle spielt die hinsichtlich der Reihenfolge des Passierens des Lesekopfs günstigste Verteilung der Zellen auf dem Träger.) Diese Tendenz betrifft gleichermaßen dap Schreiben wie das Lesen von Informationen, wobei ein wichtiges funktionelles Merkmal von rotierenden Speichern ist, daß es bedeutungslos ist, ob die ausgeführte Operation des Lesens denselben Komplex von Zellen betrifft wie die Operation des Schreibens der Information. F a ß t man das oben Gesagte kurz zusammen, so kann man bemerken, daß es wegen der Forderung nach einer effektiven Ausnutzung von rotierenden Speichern sinnvoll ist, die Ausführung des Schreibens und Lesens mit Komplexen von Zellen durchzuführen. Diese Forderung beschränkt aber keinesfalls die Wahl der Adresse der ersten Zelle eines solchen Komplexes. Datenspeicher mit rotierenden Trägern sind Beispiele für halbhomogene Medien. Zu halbhomogenen Datenträgermedien zählen wir auch alle anderen Medien, die funktionelle Merkmale der Wahlfreiheit des Zugriffs und der Adressierbarkeit der einzelnen Zellen aufweisen. Auf diese Art ist jedes homogene Medium zugleich halbhomogen, jedoch ist der Zugriff zu jeder Zelle gleich bequem. Halbhomogene Datenträgermedien können durch Verwendung vieler verschiedener Träger, z. B . magnetischer K a r t e n oder geschlossener Schleifen eines Magnetbandes, realisiert werden. Wenn man in einem Rechnersystem außer einem halbhomogenen Medium ein homogenes Medium benutzt (was in der Regel stattfindet), so sollte die Informationskapazität der Zellen beider Medien gleich sein oder wenigstens die Länge der Zellen des halbhomogenen Mediums sollte ein ganzzahliges Vielfaches der Länge der Zellen des homogenen Mediums sein. I m Anhang A ist der Aufbau eines Plattenspeichers beschrieben worden. Magnetbandspeicher Wenn nicht sehr geringe Kosten für eine Einheit der Informationskapazität und die Möglichkeit der praktisch unbeschränkten Vergrößerung der gesamten Kapazität für Magnetbandspeicher sprächen, würde ein Magnetband sicherlich nie als Informationsträger in Datenspeichern verwendet werden. Indes ist aber,
2.1.
Funktionelle Charakteristik
19
dank eben der beiden Vorzüge, das Magnetband einer der beliebtesten Informationsträger und einer der wichtigsten Speicher. Die allgemeinste Form einer Speichereinheit mit Magnetband ist ein streng sequentielles Medium, dessen Positionen keine festgelegte Länge haben und für welches der Begriff der Adressierbarkeit nicht definiert ist. Ein derartiges Medium werden wir inhomogenes Medium nennen. Andere Arten von Medien mit Magnetband, wie beispielsweise die obenerwähnten halbhomogenen Medien mit Bandschleifen oder hier und da angewandte adressierbare Magnetbänder mit festgelegter Positionslänge sind nicht so verbreitet, um ihnen außer einer kurzen Erwähnung mehr Raum zu widmen. Das Fehlen einer Adressierbarkeit der Position eines inhomogenen Mediums bedeutet, daß die Operation der Informationsentnahme aus einem solchen Medium eine der beiden Formen annimmt — entweder wir entnehmen den Inhalt der Position, die sich aktuell unter dem Lesekopf befindet, oder wir mustern eine Position nach der anderen durch und finden auf Grund des Inhalts der in ihr gespeicherten Information (häufiger — eines Teils dieses Inhalts) die Position, um die es uns gelit. Für die Realisierung der zweiten Form des Lesens von Informationen lassen einige inhomogene Medien eine Operation des Aufsuchens der Position zu, wobei die Operation in einem Durchmustern des Bandes, einem Ablesen von Markierungen, die jeder Position vorangehen und einem Fixieren des Bandes in einer solchen Lage besteht, damit die ausgewählte Information bequem gegenüber dem Lesekopf eingestellt ist. Es gibt eine ganze Reihe anderer Hilfsoperationen, die man innerhalb eines inhomogenen Informationsträgermediums ausführen kann. Zu den typischen gehören: Rücksetzen des Bandes um eine Position, Vorsetzen des Bandes um eine Position und Rückspulen des Bandes in die Anfangslage (notwendig, falls sich die uns interessierende Position in dem Teil des Bandes befindet, der schon den Kopf passierte und die Magnetbandeinheit nicht die Möglichkeit des Rückwärtslesens hat). Die ungleiche Kapazität (Länge) der einzelnen Positionen eines inhomogenen Mediums bedeutet, daß wir darauf achten müssen, wenn wir den Inhalt einer gegebenen Position durch neue Information ersetzen wollen, beim Einschreiben nicht auf die folgende Position überzugreifen oder nicht einen leeren Teil des Bandes zu verbrauchen, der für Abgrenzung der einzelnen Positionen unentbehrlich ist. Die erwähnten funktionellen Merkmale von inhomogenen Medien determinieren eine optimale Art ihrer Exploitation. Die Exploitation besteht darin, entweder Schreib- oder Leseoperationen mit (physikalisch) demselben Medium zuzulassen (kein updating) ufid das Lesen der Positionen in einer solchen Reihenfolge festzulegen, in der sie den Lesekopf der Spule passieren (das ist möglich mit Ignorierung des Inhalts einiger Positionen). Das Schreiben von Informationen beschränken wir im Prinzip auf „reine" Bänder, d. h. auf Bänder, deren vorhergehender Inhalt nicht mehr interessant ist. Eine bedeutende Bereicherung der Verwendungsmöglichkeit geben inhomogene Medien mit zwei Richtungen, z. B. solche Spulen eines Magnetbandes,
20
2.
Datenträgermedien
die ein Rückwärtslesen erlauben. Sowohl eine Vergrößerung der Kosten der elektronischen'Ausrüstung als auch eine schlechtere Ausnutzung des Bandes selbst (kleinere brauchbare Informationsmenge auf gegebener Bandlänge) verursachen, daß inhomogene Medien mit zwei Richtungen nicht eine solche Verbreitung erfahren haben wie diejenigen mit einer Richtung. Zum Abschluß dieses Abschnitts sind in Form einer'Tabelle die funktionellen Hauptcharakteristiken der besprochenen vier Arten von Datenträgermedien zusammengefaßt (Tab. 2.1). Tabelle 2.1.
Art des Mediums
homogenes Medium halbhomogenes Medium inhomogenes Medium Stapelmedium
Hauptmerkmale der Datenspeichermedien
Sequentialität des Zugriffs
Positionslänge
Adressierbarkeit
gleich bequemer Zugriff zu jeder Position
gering
gleich
ja
ja
klein
gleich
ja
nein
groß entfällt
verschieden gleich
nein nein
entfällt entfällt
2.2.
Adressierung in homogenen Medien
In Übereinstimmung mit dem, was wir im vorangegangenen Abschnitt gesagt haben, ist das Hauptmerkmal der homogenen Medien bei der Speicherung von Daten die gleichschnelle Zugriffsmöglichkeit zu jeder Speicherzelle auf der Grundlage der festgestellten Adresse dieser Zelle. Der Vorteil eines solchen Mediums hängt demnach vor allem davon ab, wie leicht man die Adresse der Zelle feststellen kann, zu der wir einen Zugriff erlangen wollen. Das aber hängt von der Universalität und Effektivität der Hilfsgerätemittel ab. Um Mißverständnisse zu vermeiden, muß man bemerken, daß ein jeweiliges Bestimmen der Adresse mit Hilfe von Programmierungsmitteln möglich ist; das ist eine Methode, auf die wir immer dann zurückgreifen, wenn die vorhandene Gerätetechnik sich als nicht ausreichend erweist. Der große Zeitaufwand für die ganze Programmierung der Adressenbestimmung veranlaßt uns jedoch nach Möglichkeit Gerätemittel zu benutzen — entweder unmittelbar oder indem wir den Programmierungsprozeß der Bestimmung der Adresse auf solche Teilprozesse aufteilen, die mit Hilfe von Gerätemitteln realisiert werden können. Wir nehmen unter gewisser Vereinfachung an, daß die „Adressenbestimmung für eine Zelle" auf der Bildung des zahlenmäßigen Wertes dieser Adresse in einem speziellen Speicheradressierungsregister P beruht. Wir wollen vereinbaren, daß wir den Inhalt des Registers (und ebenfalls der Zelle) genauso bezeichnen werden wie das Register (die Zelle) selbst, jedoch
20
2.
Datenträgermedien
die ein Rückwärtslesen erlauben. Sowohl eine Vergrößerung der Kosten der elektronischen'Ausrüstung als auch eine schlechtere Ausnutzung des Bandes selbst (kleinere brauchbare Informationsmenge auf gegebener Bandlänge) verursachen, daß inhomogene Medien mit zwei Richtungen nicht eine solche Verbreitung erfahren haben wie diejenigen mit einer Richtung. Zum Abschluß dieses Abschnitts sind in Form einer'Tabelle die funktionellen Hauptcharakteristiken der besprochenen vier Arten von Datenträgermedien zusammengefaßt (Tab. 2.1). Tabelle 2.1.
Art des Mediums
homogenes Medium halbhomogenes Medium inhomogenes Medium Stapelmedium
Hauptmerkmale der Datenspeichermedien
Sequentialität des Zugriffs
Positionslänge
Adressierbarkeit
gleich bequemer Zugriff zu jeder Position
gering
gleich
ja
ja
klein
gleich
ja
nein
groß entfällt
verschieden gleich
nein nein
entfällt entfällt
2.2.
Adressierung in homogenen Medien
In Übereinstimmung mit dem, was wir im vorangegangenen Abschnitt gesagt haben, ist das Hauptmerkmal der homogenen Medien bei der Speicherung von Daten die gleichschnelle Zugriffsmöglichkeit zu jeder Speicherzelle auf der Grundlage der festgestellten Adresse dieser Zelle. Der Vorteil eines solchen Mediums hängt demnach vor allem davon ab, wie leicht man die Adresse der Zelle feststellen kann, zu der wir einen Zugriff erlangen wollen. Das aber hängt von der Universalität und Effektivität der Hilfsgerätemittel ab. Um Mißverständnisse zu vermeiden, muß man bemerken, daß ein jeweiliges Bestimmen der Adresse mit Hilfe von Programmierungsmitteln möglich ist; das ist eine Methode, auf die wir immer dann zurückgreifen, wenn die vorhandene Gerätetechnik sich als nicht ausreichend erweist. Der große Zeitaufwand für die ganze Programmierung der Adressenbestimmung veranlaßt uns jedoch nach Möglichkeit Gerätemittel zu benutzen — entweder unmittelbar oder indem wir den Programmierungsprozeß der Bestimmung der Adresse auf solche Teilprozesse aufteilen, die mit Hilfe von Gerätemitteln realisiert werden können. Wir nehmen unter gewisser Vereinfachung an, daß die „Adressenbestimmung für eine Zelle" auf der Bildung des zahlenmäßigen Wertes dieser Adresse in einem speziellen Speicheradressierungsregister P beruht. Wir wollen vereinbaren, daß wir den Inhalt des Registers (und ebenfalls der Zelle) genauso bezeichnen werden wie das Register (die Zelle) selbst, jedoch
2.2.
Adressierung in homogenen Medien
21
unten mit einem „fetten" Punkt versehen. Beispielsweise bezeichnen wir den Inhalt des Registers P mit P., den Inhalt der Zelle a mit a. usw. Bei der einfachsten Adressierungsmethode wird in das Register P der Inhalt des Adreßteils jener Instruktion übertragen, deren Ausführung den Zugriff zur Speicherzelle erfordert. In diesem Abschnitt werden wir beispielsweise eine Form des Zugriffs zum Speicher untersuchen, nämlich das Laden einer Information aus einer Zelle in den Akkumulator. Natürlich existieren neben der Operation Laden auch andere Operationen, die einen Zugriff zum Speicher erfordern. Außerdem besitzen nicht alle Ziffernrechenmaschinen einen Akkumulator, also ist diese Operation nicht für alle Maschinen sinnvoll. Dennoch haben wir uns entschlossen, die Operation des Ladens einer Information in den Akkumulator wegen ihrer einfachen Funktion auszuwählen, und auch deshalb, weil in jeder Rechenmaschine entweder genau diese Instruktion oder eine ihr sehr ähnliche Instruktion vorhanden sein muß. Die Instruktion des Ladens in den Akkumulator stellt (wie allgemein jede Instruktion) bei ihrer Entnahme zur Ausführung den Inhalt einer gewissen Zelle dar. In weiteren Erwägungen beschränken wir uns jedoch auf die Analyse der Situation, die bereits nach der Entnahme der Instruktion aus dem Speicher und ihrer Unterbringung in das Steuerregister R entstanden ist. Wir nehmen wieder unter einer gewissen Vereinfachung und etwas allgemein an, daß die Ausführung der Instruktion im Moment ihrer Übertragung in das Register R beginnt, aus dem die Bestandteile der Instruktion in geeignete Gerätesysteme übertragen werden. Diese Systeme realisieren Funktionen, deren Summe die Ausführung der Instruktion ausmacht. Wir wollen bemerken, daß die Adresse der Zelle, aus der gerade die auszuführende Instruktion entnommen wurde, der Inhalt des Registers ist, das üblich Befehlszähler C genannt wird. Bei normaler sequentieller Arbeit, d. h. bei Ausschluß von Sprüngen, wird nach der Ausführung der laufenden Instruktion der Inhalt des Befehlszählers C um 1 erhöht und in das Register P übertragen mit dem Ziel der Entnahme der nachfolgenden Instruktionen aus dem Speicher. Wir führen jetzt einige vereinfachte Konventionen der Beschreibung der Funktionen ein, aus denen sich die Ausführung der Operation des Ladens einer Information aus einer Zelle in den Akkumulator zusammensetzt. Falls einzelne unterschiedliche Teile des Inhalts des Registers (der Zelle) selbständige Bedeutung haben, so bezeichnen wir diese Teile wie folgt: X sei das Register, a dagegen die Bezeichnung eines bestimmten Teils seines Inhalts. Dann bezeichnet a(X.) den Inhalt dieses ausgezeichneten Teils. Wenn wir z. B . vereinbaren, mit d den Adreßteil (das Adreßfeld) zu bezeichnen, so bezeichnet d(R.) den Inhalt des Adreßteils (also eine gewisse ganze Zahl) der Information, die im Register R untergebracht ist. Wenn wir nicht den Wert (den Inhalt) des ausgewählten Teils des Registers (der Zelle), sondern diesen Teil des Registers (der Zelle) selbst bezeichnen wollen, d. h. über das ausgewählte Registerfeld (Zellenfeld) sprechen, dann bedienen wir 3
Datenstrukturen
22
2.
Datenträgermedien
uns der Bezeichnung a(X). So bezeichnen wir das Feld des Adreßteils (das Adreßfeld) des Registers R beispielsweise mit d(R). Wir wollen bei dieser Gelegenheit bemerken, daß bereits beim Lesen des Inhalts von Registerfeldern zusätzliche Operationen erforderlich sind. Das ist in dem Maße der Fall, wie der Inhalt eines jeden Registerfeldes auf Grund des Gerätesystems unmittelbar zugänglich ist. Die in Registern untergebrachte Information (und ihre Bestandteile, die eine selbständige funktionelle Bedeutung haben) kann in wesentlich kürzerer Zeit zwischen Registern übertragen werden, als für die Ausführung der Operation der Informationsübertragung von einer Zelle in den Akkumulator oder in das Register R notwendig ist. Deshalb benutzen wir auch für die Darstellung der Übertragung von Informationen zwei verschiedene Schreibweisen: X : = «.
bezeichnet die Übertragung des Inhalts der Zelle a in das Register X,
(2.2.1)
X *- Y.
bezeichnet die Übertragung des Inhalts des Registers Y in das Register X.
(2.2.2)
Ähnliche Bezeichnungen benutzen wir für die Darstellung der Übertragung zwischen den Feldern von Registern. Bei komplizierteren Adressierungssystemen wird die absolute Adresse als Summe einiger Bestandteile bestimmt. Für die Darstellung dieses Vorgangs führen wir die folgende Schreibweise ein: X+-Z.@y. (2.2.2') Bei dieser Schreibweise bezeichnen X und Z Register, 0 bedeutet einen Summationsoperator ( + oder —) und y bezeichnet entweder den Inhalt irgendeines Registers (und hat dann die Form Y.) oder ist eine feste natürliche Zahl. Wir bemerken schließlich, daß n. den Inhalt der Speicherzelle mit der Adresse n bezeichnet, falls P. = n ist. Zur Vereinfachung werden wir in solchen Fällen P.. schreiben und darunter den Inhalt der Zelle verstehen, deren Adresse im Register P gespeichert ist. Unter Benutzung der oben angeführten Bezeichnungen können wir jetzt die einfachste Adressierungsmöglichkeit (die einfache Adressierung), angewandt auf die Operation des Ladens des Inhaltes einer Speicherzelle in den Akkumulator A, wie folgt darstellen: A :=
P...
(2.2.3)
Bei den meisten Ziffernrechenmaschinen verläuft die Übertragung A : = nicht unmittelbar, sondern mit Hilfe sogenannter Speicherausgangsregister Das vorstehende Schema hat dann die folgende Form:
P.. W.
P 1>
©
Um,
2 '
5
"4095. 4096
©
20
5120 ,6144
7168
\77 \
5119
24
©
7167
©
8191
28
Kernspeicher'
Abb. 2.1.
S A
T
6
F
9