Frühe Echtzeitsysteme

Im vorherigen Kapitel haben Sie erfahren, wie Computer im Batch-Betrieb funktionieren. Dabei wurden Probleme offenbar, die durch die sehr langen Wartezeiten zwischen Programmabgabe und Aushändigung des Ergebnisses und durch die Notwendigkeit entstanden, ohne Computerkontakt auf Papier mit Lochkarten und Lochstreifen programmieren zu müssen. Wenn eine Geschichte des Computers erzählt wird, wird es oft so dargestellt, als sei der Batch-Betrieb regelrecht alternativlos gewesen und eine direktere Computernutzung erst relativ spät, irgendwann in den 1970ern, erfunden worden. Das ist in dieser Absolutheit so allerdings nicht wahr. Zwar war der Batch-Betrieb sicher dominant, doch hat man schon damals Computer im sogenannten „Echtzeitbetrieb“ betreiben können. Verbreitet war seinerzeit auch der Begriff „On-Line-Betrieb“ oder „Dialogbetrieb“.

Gerade in Universitäten und Forschungsinstituten dominierten ziemlich lange Rechenanlagen, die im Batch-Betrieb arbeiteten. Diese Art der Computernutzung war hier vor allem deshalb so verbreitet, weil es eine sehr große Zahl an Nutzern gab, die Computerdienste nutzen wollten. Aufgrund der Anforderungen an wissenschaftliche Berechnungen kam zudem nur ein gut ausgestatteter Computer infrage, der über viel Speicher verfügte und der schnell rechnen konnte. Da solche Computer Großanschaffungen und damit teuer waren, musste ein einzelner Rechner ausreichen, um eine große Menge Aufträge von einer Vielzahl von Nutzern abzuarbeiten. Der Batch-Betrieb war hier, trotz der beschriebenen Nachteile, am besten geeignet. Es gab allerdings auch damals bereits Nutzungsszenarien, in denen hohe Rechenleistung nicht das Wichtigste war, in denen es nur wenige Nutzer gab, die einen Computer nutzen wollten, oder in denen eine nur kleine Anzahl von selten geänderten Programmen genutzt wurden. Für diese Einsatzbereiche standen schon früh, man könnte fast sagen von Anfang an, Rechner zur Verfügung, die im Echtzeitbetrieb verwendet wurden. Schauen wir uns im Folgenden einige solcher Systeme mit ganz verschiedenen Charakteristiken an.

Flurbereinigung: Zuse Z11

Schon im ersten Kapitel haben Sie etwas über die Rechner von Konrad Zuse erfahren. Der Fokus lag dabei auf der Z4. Wir schauen uns nun einen etwas späteren Rechner, die Z11, an. Diese Z11 war der erste Computer der Zuse KG, der in Serie gefertigt wurde. Die Idee hinter der Computerentwicklung von Konrad Zuse war, wie bereits erläutert, seine Erfahrung, dass Ingenieure immer wieder gleiche Berechnungen mit verschiedenen Werten durchführen müssen. Aus diesem Gedanken folgt ziemlich direkt, dass Zuse keine Maschinen im Sinn hatte, die laufend mit neuen Programmen bestückt wurden. Er ging eher davon aus, dass es einige wenige „Rechenpläne“ gab, die immer wieder für neue Berechnungen mit anderen Startwerten genutzt, selbst aber eher selten geändert werden.

Bedienpult der Zuse Z11 – Bild: Dr. Bernd Gross (CC BY-SA 4.0)
Bedienpult der Zuse Z11 – Bild: Dr. Bernd Gross (CC BY-SA 4.0)

Hier abgebildet sehen Sie einen Teil der Bedienkonsole der Z11. Zentral ist eine Tastatur für Dezimalzahlen. Diese Tastatur wurde vom Ingenieur genutzt, um die Werte seiner Berechnung einzugeben. Danach wurde mittels eines Knopfes an der Konsole die Berechnung gestartet. Auf einer angeschlossenen elektrischen Schreibmaschine wurden die Ergebnisse der Berechnung ausgegeben. Ein typisches Einsatzszenario für die Z11 war die Flurbereinigung13. Um diese durchzuführen, bedurfte es einer Reihe von Berechnungen, die immer wieder für verschiedene Fälle durchgeführt werden mussten. Für die Aufgaben der Flurbereinigung wurde also nur eine kleine Zahl von Programmen gebraucht, die sehr häufig verwendet wurden. Da die Programme für den Einsatzzweck so typisch waren und es so wenig Variation bedurfte, waren die wichtigsten von ihnen sogar fest eingebaut, mussten also gar nicht mehr von Lochstreifen eingelesen werden. Der Lochstreifen erlaubte aber natürlich weitergehende Berechnungen und den Einsatz des Rechners in anderen Einsatzfeldern.

Die Z11 war gerade für die Angestellten in den Vermessungsämtern ein sehr angenehmer Rechner, da er den Nutzern wenig Wissen über Computertechnik abverlangte und zudem schnell Ergebnisse lieferte. Die Programme konnten an der Bedienkonsole per Knopfdruck gestartet werden. Dann mussten nur noch die Zahlen auf festgelegte Art und Weise „eingetastet“ werden und schon startete die Berechnung. Direkt nach dem Erhalt der Ergebnisse stand die Maschine für die nächste Berechnung wieder zur Verfügung. Es gab bei dieser Nutzungsweise keine Notwendigkeit, sich mit Computerinterna wie Zahlencodierung, Registern oder Sprungbefehlen zu belasten.

Die Zuse Z11 war, auch schon für die damalige Zeit Mitte der 1950er Jahre, ein ziemlich langsamer Rechner. Sie arbeitete, genau wie die Z3 und die Z4, mit Telefonrelais und verfügte ebenso wie diese nicht über ein Stored Program im Sinne eines Programms, in dem beliebige Stellen im Programm angesprungen werden können. In Szenarien wie der Flurbereinigung war das allerdings nicht schlimm. Die Geschwindigkeit war bei diesem Rechner nicht das entscheidende Kriterium. Es war weder das Ziel, den Rechner dauerhaft laufen zu lassen noch die Rechengeschwindigkeit und den Durchsatz zu optimieren. Der Vorteil des Rechners bestand vielmehr darin, für die Anwender jederzeit zur Verfügung zu stehen. Obwohl der Rechner als solcher langsam war, lieferte er den Nutzern doch viel schneller Ergebnisse, als wenn diese einen schnellen Computer im Batch-Betrieb hätten nutzen und dann auf die Ergebnisse immer lange warten müssen.

Buchhaltung: IBM 305 RAMAC und IBM 1401

Weitere typische Bereiche, bei denen die Anforderung an schnelles Einlesen vieler verschiedener Programme und das Befriedigen vielseitiger Bedürfnisse unterschiedlicher Nutzer nicht im Vordergrund standen, waren Buchhaltung, Lagerhaltung und vergleichbare Verwaltungsvorgänge. Solche Vorgänge sind dadurch gekennzeichnet, dass es große Datenmengen gibt, die verarbeitet werden müssen. Jedes Ein- und Auslagern in einem Hochregal etwa ist ein eigenes Datum und entsprach damals daher im Prinzip einer eigenen Lochkarte, die verarbeitet werden musste. In diesem Einsatzkontext ist es auch heute noch so, dass sich die Anzahl verschiedener Programme in Grenzen hält, und die bestehenden Programme sehr stabil sind, was heißt, dass sie nur sehr selten geändert werden müssen. Schon vor dem Beginn des Computerzeitalters im engeren Sinne wurden für Verwaltungszwecke dieser Art Maschinen benutzt, die Lochkarten verarbeiteten. Die Firma IBM bot zum Beispiel Geräte an, die auf Lochkarten gespeicherte Daten verrechnen oder als Tabelle ausgeben konnten. In der Tradition dieser Lochkarten-Verarbeitungs-Systeme standen dann auch die auf diesen Bereich der Datenverarbeitung optimierten Computer von IBM, von denen wir uns hier zwei anschauen wollen:

IBM 305 RAMAC

1956 brachte IBM das System IBM 305 RAMAC auf den Markt. Die Abkürzung RAMAC steht für Random Access Method of Accounting and Control. „Random Access“ bedeutet, dass auf die gespeicherten Daten wahlfrei zugegriffen werden kann, ohne dass Lochkartenstapel durchlaufen werden müssten oder auf Bändern sequenziell nach den Daten gesucht werden müsste. Für diesen wahlfreien Zugriff wurde von der Firma IBM eigens ein neuer Datenspeicher, die Festplatte, entwickelt. Sie sehen diese Festplatte auf dem Bild als Stapel von Magnetscheiben hinter der Dame schräg links unter dem Schriftzug „RAMAC“. Die Zielgruppe der 305 RAMAC waren nicht Wissenschaftler oder andere Nutzer mit komplexem Rechenbedarf, sondern die Unternehmen, die bisher Lochkartenverarbeitungsmaschinen und Drucker von IBM zum Sortieren, Tabellieren und Akkumulieren von Daten genutzt hatten.

IBM 305 RAMAC – Bild mit freundlicher Genehmigung von IBM
IBM 305 RAMAC – Bild mit freundlicher Genehmigung von IBM

Nutzer der IBM 305 RAMAC konnten, ganz ähnlich wie bei der Zuse Z11, über ein Programmwahlrad ein Programm auswählen und laufen lassen. Das Programm war entweder per Kabelverbindungen fest im Rechner verdrahtet oder befand sich auf dem Trommelspeicher der Maschine. So ein Trommelspeicher war vom Prinzip her einer Festplatte nicht unähnlich. Es handelte sich um eine schnell rotierende Walze, die mit einer magnetisierbaren Schicht versehen wurde. Mehrere fest eingebaute Schreib-Lese-Köpfe waren über die Länge der Trommel verteilt. Sie befinden sich auf der Abbildung hinter den gut sichtbaren Anschlusskabeln, die nach vorne herausgeführt sind. Die gespeicherten Daten rotierten unter den Schreib-Lese-Köpfen hinweg. Der Speicherplatz auf einer solchen Trommel war relativ beschränkt. Der Trommelspeicher der RAMAC konnte auf 32 Spuren insgesamt 3200 Zeichen abspeichern. Die Magnettrommel bildete den Programm- und Arbeitsspeicher des Rechners. Ein großer Vorteil dieser Technologie verglichen mit heutigen Speicher-Modulen war ihre Persistenz. Moderne RAM-Module verlieren ihren Speicherinhalt, sobald sie nicht mehr mit Strom versorgt werden. Wurde ein Rechner mit Magnettrommelspeicher ausgeschaltet, blieben die Speicherinhalte hingegen erhalten. Bei der nächsten Verwendung des Geräts konnten die vorher geladenen Programme also direkt wieder gestartet und mussten nicht neu eingelesen werden. Auch alle auf der Trommel gespeicherten Variablen und Konfigurationen blieben erhalten.

Magnettrommelspeicher – Bild: Robert Freiberger from Union City, CA, USA (CC BY 2.0)
Magnettrommelspeicher – Bild: Robert Freiberger from Union City, CA, USA (CC BY 2.0)

Die Programme der RAMAC verarbeiteten Eingabedaten in Form von Lochkarten, hatten aber auch Zugriff auf die Daten der Festplatte und die des Magnettrommelspeichers. Ausgaben konnten auf einem Drucker, mittels eines Lochkartenstanzers oder auf einer Konsolen-Schreibmaschine getätigt werden, die eigentlich nichts anderes war als eine elektrische Schreibmaschine mit Computeranschluss. Im Gegensatz zu den Großcomputern von Universitäten verarbeitete ein RAMAC-System nicht dauerhaft Daten. Der Clou des Systems war vielmehr, Daten in Form von Lochkarten direkt dann zu verarbeiten, wenn sie eintrafen, statt dies in einem großen Programmlauf nur einmal am Tag zu erledigen. Der aktuelle Gesamtstand der Daten befand sich persistent, also dauerhaft zugreifbar, auf dem Plattenstapel. Sollten beispielsweise aktuelle Informationen über den Lagerbestand bezogen werden, konnte das entsprechende Programm ausgewählt oder gegebenenfalls per Lochkarte eingelesen werden. Das Programm erzeugte dann den Bericht anhand der Daten auf dem Plattenstapel, ohne dass es nötig war, hierfür nochmals große Mengen Eingabedaten per Lochkarte bereitstellen zu müssen. Daten-Lochkarten waren somit nicht mehr die Grundlage aller Datenverarbeitung, sondern dienten nur noch der Erfassung von Änderungen am Datenstand, der auf der Festplatte gespeichert und damit dauerhaft im Zugriff war.

Die Verbesserungen in der Datenhaltung sind durchaus interessant und sicher auch ein Fortschritt in der Computertechnik, aber für sich genommen nicht der Grund, aus dem ich mich an dieser Stelle damit beschäftige. Das Spannende an diesem Computersystem ist, zumindest aus meiner Perspektive, die Konsole (im deutschen IBM-Sprech „das Konsol“ genannt) bestehend aus einer Tastatur und gegebenenfalls zusätzlich einer angeschlossenen Schreibmaschine. Auf dem Bild oben sitzt die Dame an dieser Konsole. Die Konsole erlaubte eine gewisse Form von Interaktivität. Zwar gab es keine interaktiven Programme, bei denen Nutzer Eingaben machen und so den Programmablauf steuern konnten – Programme liefen ganz klassisch ohne menschliche Interventionen ab. Was aber möglich war, war das Auslesen und Manipulieren von auf dem Trommelspeicher gespeicherten Daten. Diese Funktionalität war vor allem zur Fehlersuche und für Korrekturen von Interesse. Noch interessanter war die Funktion, sich auch Datensätze von der Festplatte abrufen und direkt ausgeben lassen zu können. Diese Ausgabe war allerdings noch unabhängig von einer programmierten Nutzungsschnittstelle und musste daher sehr maschinennah erfolgen. Dem Nutzer musste der physikalische Ort der gespeicherten Daten auf der Platte bekannt sein. Durch Angabe dieses Ortes konnten die Daten dann auf die Konsolenschreibmaschine ausgegeben werden.

Die 305 RAMAC war kein besonders rechenstarker Computer. Komplexe Berechnungen wären mit dem Rechner sicher möglich gewesen, wären aber recht langsam abgelaufen. Auch die Nutzung einer Magnettrommel als Arbeitsspeicher war ziemlich langsam. Das machte aber nichts, denn Geschwindigkeit und Rechenleistung standen auch bei dieser Maschine nicht im Fokus. Typische Buchhaltungs- und Verwaltungsprogramme führten keine komplexen Berechnungen durch, und da der Rechner nicht unter Vollauslastung betrieben wurde, war die Arbeitsgeschwindigkeit kein limitierender Faktor.

IBM 1401

Der IBM-Rechner 1401 erschien nur drei Jahre nach der 305 RAMAC. Die 1959 eingeführte 1400er-Serie von IBM konnte in einer Vielzahl von Konfigurationen bestellt und verwendet werden. Sie konnte zum Beispiel, ganz klassisch, im Batch-Betrieb genutzt werden. In vielen Universitäten wurden 1401-Rechner dafür verwendet, die Magnetbänder größerer Rechenanlagen vorzubereiten und auszulesen, also Daten von Lochkarten auf die Bänder zu kopieren und vorhandene Daten von den Bändern auszustanzen und auszudrucken. Neben diesen Betriebsmöglichkeiten ließen die Rechner aber auch eine Arbeitsweise ähnlich der 305 RAMAC zu, gingen aber an entscheidender Stelle noch darüber hinaus. Über eine spezielle Konsole erlaubten die Rechner der 1400er Serie nämlich die Eingabe von Daten, die dann vom laufenden Programm verarbeitet werden. Die Bedienungsanleitung der IBM 140114 beschreibt das Arbeiten mit der Konsole (mit der internen Bezeichnung 1407) wie folgt:

When an inquiry is to be made, the operator presses the request enter key-light. As soon as the system is free to act on the request, the enter light comes ON and the operator can type the message and enter it into 1401 core storage.

When the system completes the processing of the inquiry, it is transferred to the inquiry station by the stored program. The message is typed, and the operator may act on the reply.

Auch der Vorteil dieser Arbeitsweise wird herausgestellt:

An account record or stock-status record needed by management can be requested by the operator and made available in a short time. Thus, management can, at a moment’s notice, request information from the 1401 system and have an answer almost instantaneously.

IBM 1407 Control Inquiry Station – Bild: Reference Manual IBM 1401 Data Processing System. IBM. 1962.
IBM 1407 Control Inquiry Station – Bild: Reference Manual IBM 1401 Data Processing System. IBM. 1962.

Um bei der 1401 Daten abzurufen, bedurfte es nicht mehr der Angabe von physikalischen Speicheradressen. Der Rechner erlaubte es vielmehr in einem speziellen Modus, „messages“, also Nachrichten, einzugeben. Bei den Nachrichten, wir würden heute vielleicht eher „Befehl“ oder „Kommando“ sagen, konnte es sich um alles Mögliche handeln. Gehen wir von einer Lagerhaltung aus, lagen zum Beispiel Nachrichten zum Anfragen von Lagerbeständen oder Änderungen der Bestandsdaten nahe. Die IBM 1401 ermöglichte also eine Art Kommandomodus und damit eine ziemlich interaktive Arbeitsweise. Es handelte sich allerdings noch nicht um einen interaktiven Programmablauf, wie wir ihn uns heute vorstellen. Ein Programm forderte nicht etwa den Nutzer zu einer Eingabe auf. Stattdessen hatte der Nutzer die Möglichkeit, das laufende Programm zu unterbrechen, um einen „request“ zu stellen. Diese Eingabe wurde in einen festen Bereich des Speichers des Rechners geschrieben, von wo aus das Programm sie auslesen und verarbeiten konnte. Das mag uns heute von der Nutzung und Programmierung her etwas umständlich erscheinen, doch erfüllte das System so bereits das wichtigste Potenzial interaktiver Schnittstellen, nämlich die Responsivität, ermöglichte also eine umgehende Reaktion auf eine Nutzeranfrage. In der Anleitung wird das deutlich. Eine Anfrage kann „at a moment’s notice“ getätigt werden, die Antwort kommt „almost instantaneously“.

Flugbuchung: SABRE

Ein weiteres wichtiges Beispiel für frühe Echtzeit-Anwendungen ist das SABRE-System (Semi-automated Business Research Environment) von American Airlines. Besonders interessant ist an diesem System die US-weite Vernetzung von Eingabeterminals mit einem zentralen Computer. Prototypisch ab 1961 und im vollen Einsatz ab 1964 verwaltete dieses System alle Buchungen der Fluggesellschaft American Airlines. Wenn ein Kunde der Airline telefonisch einen Flug buchte oder in eine der Service-Stellen der Fluglinie kam, konnten Kundendienstmitarbeiter über spezielle Terminals Kontakt mit einem Zentralcomputer aufnehmen, der die Anfragen in Echtzeit annahm und verarbeitete. Es gab über tausend dieser im ganzen Land verteilten Terminal-Stationen. Die Terminals waren mit dem zentralen Computer per Telefonleitung verbunden. Sie konnten genutzt werden, um direkt einen Flug zu buchen. Das System gab dem Service-Mitarbeiter der Airline ohne nennenswerte Verzögerungen Informationen über verfügbare Plätze und verarbeitete die Fluggastdaten des Kunden. Noch fehlende Informationen zu einer Buchung wurden vom System umgehend moniert. Die Terminals konnten auch genutzt werden, um vorhandene Buchungen zu ändern oder zu stornieren. Über den Namen des Kunden und die Angabe des gebuchten Fluges konnte eine frühere Buchung wiedergefunden und dann abgeändert werden. Da es sich um ein vernetztes System handelte, wo alle Terminals Zugriff auf den gleichen Datenbestand hatten, musste eine Änderung nicht am gleichen Terminal erfolgen, sondern konnte zum Beispiel auch in einer ganz anderen Stadt durchgeführt werden, etwa wenn ein Reisender am Zielort den Rückflug umbuchen wollte.

SABRE-Terminal – Einzelbild aus „An Introduction to SABRE“, American Airlines, 1961.
SABRE-Terminal – Einzelbild aus „An Introduction to SABRE“, American Airlines, 1961.

Die Abbildung oben zeigt ein Terminal, mittels dessen Servicemitarbeiter die Flugbuchungen durchführen konnten. Zentrales Element war eine elektrische Schreibmaschine. Links neben der Maschine befand sich eine Einlassung im Tisch für sogenannte „Air Information Cards“. Diese Karten enthielten sowohl lesbare Informationen für den Service-Mitarbeiter, als auch maschinenlesbare Lochungen, sodass das Terminal eine Karte identifizieren konnte. Die Karten wurden in einen Halter oberhalb der Schreibmaschine eingelegt. Mit Knöpfen links und oben konnten Felder (Zeilen und Spalten) auf der Karte ausgewählt werden. Rechts neben der Schreibmaschine befand sich neben einer Wählscheibe für Telefonanrufe der sogenannte „Director“. Hiermit konnten Befehle für Buchung, Stornierung und für die Angabe von Sitzwünschen etc. direkt ausgeführt werden. Die Schreibmaschine selbst diente zur Ausgabe von Nachrichten des Zentralrechners und zur Eingabe von textuellen Daten wie Namen, Adressen und Telefonnummern.

Auch das SABRE-Szenario hat eine ganz andere Charakteristik als der universitäre und wissenschaftliche Computereinsatz, ist aber auch anders als das Buchhaltungsszenario. Bei SABRE arbeiten alle Nutzer mit dem gleichen Programm, dem Flugbuchungsprogramm. Das Programm ist ihnen fest vorgegeben. Sie müssen es nicht erst programmieren oder laden und können es auch nicht verändern. Das Programm wird eher selten, und wenn, dann von anderen Personen als den Kundendienstmitarbeitern, verändert. Ganz anders war es im wissenschaftlichen Bereich: Jeder Nutzer kam hier mit einem eigenen Programm daher, das ganz verschieden geartete Daten verarbeiten sollte. Auch handelte es sich bei SABRE um kein System, das hohe Rechenleistung brauchte, denn bei einer Flugbuchung wurde kaum nennenswert etwas berechnet, was über das Zählen freier Plätze hinausgegangen wäre.

Wissenschaft und Technik: LGP-30

Auch in den Bereichen Wissenschaft und Technik konnte es natürlich sehr von Vorteil sein, einen Computer vor Ort zu haben und ihn ohne Wartezeiten und ohne den administrativen Aufwand eines Großrechners mit Batch-Verarbeitung betreiben zu können. Die Vorteile konnten Abstriche in der Rechengeschwindigkeit durchaus aufwiegen.

LGP-30 – Bild mit freundlicher Genehmigung des Computermuseums der Informatik der Universität Stuttgart
LGP-30 – Bild mit freundlicher Genehmigung des Computermuseums der Informatik der Universität Stuttgart

Rechner, die dieser Charakteristik entsprachen, waren der LGP-30 der Firma Librascope von 1956 und sein Nachfolger LGP-21 von Mitte der 1960er Jahre. In Deutschland wurden die Maschinen in Lizenz von der Firma Schoppe & Faeser gebaut. Der oben abgebildete, funktionstüchtige Rechner steht im Computermuseum der Informatik der Universität Stuttgart. Der eigentliche Rechner ist der rechte der beiden Kästen. Er ist für die damaligen Verhältnisse relativ kompakt, hat etwa das Volumen einer kleineren Kühltruhe.

Wie bei der IBM 305 RAMAC handelte es sich beim LGP-30 um einen Rechner mit Trommelspeicher, der bei diesem Rechner das zentrale Element war, da es keine anderen Massenspeicher gab. Da die Trommel magnetisch war, blieb der Speicherinhalt nach dem Ausschalten erhalten. Wenn man also ein Programm einmal auf die Trommel geladen hatte, musste man es nach dem Ausschalten nicht neu laden. Es konnte nach dem Wiedereinschalten des Rechners gleich wieder ausgeführt werden. Die Trommel konnte 4.096 Wörter à 31 Bit speichern. Wenn Ihnen der Begriff „Wort“ in diesem Zusammenhang nichts sagt, macht das nichts. Ich möchte an dieser Stelle nicht allzu sehr in die technischen Details einsteigen, gebe Ihnen hier daher einen groben Überschlag, der Ihnen einen Eindruck vermitteln soll: Würden Sie die Trommel komplett mit Textzeichen vollschreiben wollen und pro Textzeichen sechs Bit veranschlagen, würden etwa 20.500 bis 21.000 Zeichen Platz finden. Das sind etwa zwölf DIN-A4-Seiten. Sie können es sich also ungefähr so vorstellen, als hätten Sie einen Computer mit einem Arbeitsspeicher von zwanzig Kilobyte – nicht Gigabyte, nicht Megabyte, sondern Kilobyte – und diese zwanzig Kilobyte Arbeitsspeicher sind gleichzeitig auch die Festplatte Ihres Rechners.

Umgebaute Schreibmaschine als Konsole der LGP-30 – Bild: Marcin Wichary from San Francisco, U.S.A. (CC BY 2.0)
Umgebaute Schreibmaschine als Konsole der LGP-30 – Bild: Marcin Wichary from San Francisco, U.S.A. (CC BY 2.0)

Zentrales Ein- und Ausgabegerät des LGP-30 war eine umgebaute Schreibmaschine vom Typ Friden Flexowriter, ihrerseits eine umgebaute IBM-Schreibmaschine, die um einen Lochstreifenleser und -stanzer erweitert wurde. Die wichtigste Erweiterung dieser Maschine war eine Schnittstelle, die eingegebene oder vom Lochstreifenleser gelesene Zeichen an den Computer weitergab und von dort kommende Zeichen so ausgab, als wären sie an der Maschine direkt eingegeben worden. Hinzu kamen Kontrolltasten, mittels derer der Computer in Gang gesetzt und mit denen zwischen manueller Eingabe und Eingabe vom Lochstreifen umgeschaltet werden konnte. Eine Lampe in der Mitte der Maschine oberhalb der Tastatur diente der Anzeige, dass der Computer eine Eingabe vom Nutzer erwartete. Schlussendlich wurden einige Tasten der Maschine durch helle Tasten ausgetauscht. Diese hellen Tasten entsprechen den Befehlen des Maschinencodes und sind hier optisch abgesetzt worden.

Mittels Eingaben von der Schreibmaschine konnten Werte direkt in den Speicher des Computers geschrieben werden. Auf diese Weise war es möglich, den Rechner direkt zu programmieren oder zumindest ein bereits auf der Magnettrommel vorhandenes Programm zu starten. Hierzu musste ein Sprungbefehl zur Startadresse des entsprechenden Programms eingegeben, dieser Befehl ausgeführt und der Rechner dann auf automatischen Betrieb umgeschaltet werden. Neue Programme konnten per Handeingabe oder per Lochstreifen auf die Trommel gebracht werden. Ein einfaches Betriebssystem verfügte über Routinen, mit denen das Laden von Programmen auf die Trommel und auch das Ausführen von Programmen ab einer angegebenen Speicheradresse relativ einfach möglich war. Mittels eines Compilers für die einfache Hochsprache ACT-III ließen sich komplexere Programme entwickeln, ohne auf die Maschinensprache des Rechners zurückgreifen zu müssen.

Interessant in Bezug auf die Nutzungsschnittstelle war die Einstellung „Eingabe von Hand“ an der Konsolen-Schreibmaschine. War diese Taste gedrückt, las der Computer Eingaben nicht vom Lochstreifenleser, sondern direkt von der Tastatur der Schreibmaschine. Der Computer ermöglichte hierdurch Programme, die während ihrer Ausführung die Eingabe von Werten über die Tastatur verlangten und damit auch die Steuerung des Fortgangs des Programms durch Nutzereingaben ermöglichten. Der Computer ließ sich also in einem ganz modernen Sinne interaktiv nutzen. Selbst einfache Spiele waren so möglich. Noch nicht umgesetzt war der Betrieb eines interaktiven Editors, also eines Programms, das es ermöglicht hätte, den Quellcode eines Hochsprachenprogramms im Speicher zu halten und direkt am Computer zu bearbeiten. Obwohl dies grundsätzlich mit dem Rechner hätte gehen müssen, hat wohl vor allem der geringe Speicher des Rechners einen praktischen Einsatz unmöglich gemacht, denn es hätte auf der Trommel dann ja Platz für den Editor, den zu bearbeiteten Programmcode, den Compiler und das Kompilat in Maschinensprache geben müssen, von eventuellen Daten des Programms ganz zu schweigen. Programmiert wurde also auch bei diesem Computer daher in der schon etliche Male beschriebenen Art und Weise, also zunächst mit dem Stift auf einem Codierbogen und dann durch Ablochen auf Lochstreifen. Da es sich um einen Rechner handelte, der lokal genutzt wurde und nicht im Batch-Betrieb arbeitete, war es aber immerhin möglich, die Programme oft abzuändern und dann immer wieder auszuprobieren. Im Batch-Betrieb hätte das mehrere Tage gedauert.

Der LGP-30 war ein Rechner mit relativ geringer Rechen- und Speichergeschwindigkeit und nur geringer Speichergröße. Er war dafür relativ günstig. 1956 kostete er 47.000 Dollar, was inflationsbereinigt heute fast einer halben Million Dollar entspricht. Natürlich ist das viel Geld. Ein typischer Computer der Zeit, wie etwa die UNIVAC I, die von 1951 bis 1954 gebaut wurde, kostete jedoch mit 1,25 bis 1,5 Millionen Dollar fast dreißig mal so viel.

Interaktivität an großen Computern – UNIVAC I

Sie haben die UNIVAC im vorherigen Kapitel kurz im Zusammenhang mit Bandlaufwerken kennengelernt. Dort ging es um eine Verbesserung der Auslastung von teuren Rechnern durch das Lesen und Speichern von Programmen und Daten auf Magnetbändern. Die Dateneingabe mittels Tastatur läuft dieser Art der Optimierung natürlich total entgegen. Interessant ist aber, dass sich eine UNIVAC grundsätzlich auf ähnliche Art bedienen ließ wie eine LGP-30, denn die Bedienkonsole des Rechners ermöglichte die Eingabe von Werten in das Programm und der Befehlssatz des Rechners gab es her, Werte von der Konsole abzufragen oder auf ihr auszugeben. Die Bedienungsanleitung des Rechners beschreibt15:

The programmer may arrange to use the Supervisory Control as an input-output device. When this is done certain options are available depending on the switch settings. These options are explained in “Supervisory Control Operations”. The two programmed instructions which may be used for input or output in connection with the Supervisory Control are listed.

INSTRUCTIONS

10m: Stop UNIVAC operations and produce a visual signal. Call for one word to be typed from the Supervisory Control keyboard into memory location m. UNIVAC operations are resumed after the “word release button” on the Supervisory Control has been actuated.

50m: Print one word from memory location, m, onto the printer associated with the Supervisory Control. UNIVAC operations are resumed automatically after m has been transferred to an intermediate output storage location prior to printing.

Diese Art der Bedienung der UNIVAC war zwar möglich, allerdings wurde damit der Computer in seiner Verarbeitung oft angehalten und somit wertvolle Rechenzeit verschenkt. Im Gegensatz zur Bedienungsanleitung von IBMs 1401 wird daher für eine solche Nutzungsform auch nicht geworben, sondern explizit auf die Nachteile hingewiesen:

The ability to type into or print out of any desired memory location during the processing of a problem permits a very flexible control of that problem. However, it is well for the programmer to remember that the time required to execute these instructions is relatively great especially for a type-in instruction which is a human operation and an added source of error.

Beachtenswert ist, dass hier nicht nur darauf hingewiesen wird, dass der Mensch bei der Ausführung der Eingaben sehr langsam ist; problematisiert wird vielmehr auch, dass es sich bei Eingaben durch Menschen um eine zusätzliche Fehlerquelle handelt. Bei der UNIVAC mag dieser Hinweis dahingehend gedeutet werden, diese Betriebsart doch lieber zu meiden. In der Tat ergibt sich durch interaktive Nutzung eines Computers eine wichtige Änderung in der Programmierung. Konnte vorher davon ausgegangen werden, dass Eingabedaten im Großen und Ganzen korrekt und wohlformatiert waren, musste nun ein gehöriges Maß an Programmieraufwand in die Eingabebehandlung und die Verarbeitung von Eingabefehlern gelegt werden. Der Hauptaufwand bei der Programmierung verschob sich. Auf einmal entstand ein großer Programmieraufwand nicht für die eigentliche Programmlogik, sondern für seine Nutzungsschnittstelle.