204 80 9MB
German Pages 136 Year 1972
Einführung in Teilgebiete der Informatik I
W. Dirlewanger, K.-U. Dobler, L. Hieber, P. Roos, H. Rzehak, H.-J. Schneider, C. Unger
w DE
G
S a m m l u n g Göschen Band 5 0 1 1
Walter de Gruyter Berlin • New York • 1972
Die Reihe „Informatik"
in der Sammlung
Göschen umfaßt folgende
Bände:
Einführung in Teilgebiete der Informatik. 2 Bände Digitale Rechenautomaten. Von R. Klar Analog- und Hybridrechner. Von G. Gensch. (In Vorb.) Datenübertragung und -fernverarbeitung. Von K. Oettl. (In Vorb.) Programmierung von Datenverarbeitungsanlagen. Von H. J. Schneider u. D. Jurksch. Datenstrukturen und höhere Programmiertechniken. Von H. Noltemeier. Betriebssysteme I. Grundlagen. Von E. J. Neuhold. (In Vorb.) Betriebssysteme II. Von P. Caspers. (In Vorb.) Theorie und Praxis des Übersetzerentwurfs. Von H. J. Hoffmann. (In Vorb.) Schaltwerk- und Automatentheorie. Von C. Hackl. 2 Bände Graphentheorie für Informatiker. Von W. Dörfler u. J. Mühlbacher. Einführung in die mathematische Systemtheorie. Von F. Pichler. (In Vorb.) Formale Beschreibung von Programmiersprachen. Von K. Alber. (In Vorb.) Angewandte Informatik. Von P. Mertens. Information Retrieval. Von O. Simmler. (In Vorb.) Programmiersprachen für die numerische Werkzeugmaschinensteuerung. Von U. Grupe. (In Vorb.)
©
Copyright 1972 by Walter de Gruyter & Co., vormals G. J. Göschen'sche Verlagshandlung - I. Guttentag, Verlagsbuchhandlung - Georg Reimer Karl J. Trübner - Veit & Comp., Berlin 30. - Alle Rechte, einschl. der Rechte der Herstellung von Photokopien und Mikrofilmen vom Verlag vorbehalten. - Satz: IBM-Composer, Walter de Gruyter - Druck: MercedesDruck, Berlin - Printed in Germany ISBN 3 11 003910 9
Vorwort Der neu eingeführte Studiengang Informatik an der Universität Stuttgart beinhaltet im ersten Semester neben mathematischen, elektrotechnischen und programmierungstechnischen Grundlagen-Vorlesungen eine informelle Einfuhrung in die Informatik. Diese informelle Einführung besteht aus Referaten und Gesprächen mit dem Ziel, einen Überblick und eine Einführung in die Probleme und Fragen zu vermitteln, die durch die vielfältigen Möglichkeiten des Aufbaues und des Einsatzes moderner Rechenanlagen entstehen. Der vorliegende Band I geht auf diese Lehrveranstaltung sowie auf den Lehrgang „Informatik, Überblick über ein neues Wissensgebiet" an der Technischen Akademie Eßlingen zurück. Bei der Abhandlung der einzelnen Teilgebiete wurde versucht, den Stoff so darzustellen, daß nur elementare mathematische und elektrotechnische Kenntnisse zum Verständnis nötig sind. Die einzelnen Beiträge sind weitgehend unabhängig, so daß sie auch einzeln gelesen werden können. Diese Aufteilung des Stoffes soll dem Leser die Möglichkeit geben, sich über Teilgebiete der Informatik schnell zu informieren. Dabei kann es sich nur um eine Einführung und um ein Aufzeigen der Problematik handeln. Für eine weiterführende Beschäftigung mit dem Stoff sind am Ende eines jeden Kapitels Literaturangaben zu finden. Das neue Wissensgebiet Informatik ist gegenüber anderen Wissenschaften noch nicht genau abgegrenzt. Die Auswahl der Themen für Band I ist unter dem Aspekt einer ersten Begegnung mit der Informatik zu sehen. In einem Band II sollen weitere Teilgebiete der Informatik in ähnlicher Weise behandelt werden. Im Sommer 1972
Die Autoren
Autoren dieses Bandes 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Theoretisches und gesellschaftliches Interesse der Informatik Dr. Paul Roos, Universität Stuttgart Der Betrieb von Rechenanlagen Stapelverarbeitung Dr. Ludwig Hieber, Datenzentrale Baden-Württemberg Der Betrieb von Rechenanlagen Teilnehmerbetrieb Dr. Werner Dirlewanger, Universität Stuttgart Die verschiedenen Ebenen der Programmierung Dr. Hans-J. Schneider, Universität Stuttgart Problemorientierte Programmiersprachen Dr. Claus Unger, Universität Stuttgart Programmiersprachen bei Stapelverarbeitung bzw. Dialogbetrieb Dr. Werner Dirlewanger, Universität Stuttgart Analog- und Hybridrechner Dr. Karl-U. Dobler, Universität Stuttgart Prozeßrechner Dipl.-Ing. Helmut Rzehak, Universität Stuttgart Informationswiedergewinnungssysteme Dr. Helmut Rzehak, Universität Stuttgart Management-Informations-Systeme (MIS) in Forschung, Industrie Verwaltung Dr. Hans-J. Schneider, Universität Stuttgart
und
Inhalt 1. Theoretisches und gesellschaftliches Interesse der Informatik . . . . 1.1 1.2 1.3
Positive Kommunikationstheorie Kritische Kommunikationstheorie Kommunikation als Politikum
2 . Der Betrieb v o n Rechenanlagen — Stapelverarbeitung 2.1 2.2 2.3 2.4 2.5 2.6 2.7
Einleitung Zentraleinheit und externe Geräte Betriebsarten Möglichkeiten zur besseren Ausnutzung von Rechenanlagen Zeitlicher Ablauf bei einer Stapelverarbeitung Aufgaben eines Betriebssystemes für Stapelverarbeitung Zusammenfassung
3 . Der Betrieb von Rechenanlagen - Teilnehmerbetrieb 3.1 3.2 3.3 3.4 3.5 3.6 3.7
Einleitung Beschreibung des Teilnehmersystems Die periodische Zuteilung des Rechnerkerns Der Aufbau von Teilnehmersystemen Datenübertragung Weitere Probleme Zusammenfassung
4 . Die verschiedenen E b e n e n der Programmierung 4.1 4.2 4.3
Das Umsetzen eines Problems in ein Programm Die Ebene der Maschinen-und Assemblersprachen Die Ebene der problemorientierten Sprachen
5 . Problemorientierte Programmiersprachen 5.1 5.2 5.3 5.4 5.5 5.6 5.7
Einleitung und Überblick ALGOL 60, FORTRAN COBOL SYMBAL SIMULA-67 EXAPT Verarbeiten eines Quellprogramms
6 . Programmiersprachen bei Stapelverarbeitung bzw. D i a l o g b e t r i e b . . 6.1 6.2 6.3 6.4 6.5
Stapelverarbeitung Der Dialog Mensch-Maschine Arten des Dialogs Der graphische Dialog Zusammenfassung
9 9 14 17 24 24 25 26 29 31 32 35 36 36 37 39 43 45 46 47 48 48 52 54 56 56 58 60 62 64 67 69 70 70 72 73 79 79
7. Analog- und H y b r i d - R e c h n e n 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10
Allgemeines Unterschied ANALOG - DIGITAL Aufbau des Analogrechners (AR) Aufbau der Bausteine des Analogrechners Schaltzeichen Betriebsarten des Analogrechners Anwendung des Analogrechners Programmierung Der hybride Analogrechner Das Hybride Rechnersystem (HRS)
8. Prozessrechner 8.1 8.2 8.3 8.4 8.5
Einleitung Beschreibung des Einsatzortes eines Prozeßrechners Das System zur Programmunterbrechung Sicherheitsfragen Spezielle Gesichtspunkte der Programmierung
9. Informationswiedergewinnungssysteme (Information Retrieval Systems=IRS) 9.1 9.2 9.3 9.4
81 81 81 83 83 87 87 88 90 93 97 99 99 100 102 107 108
109
Einige Tatsachen zur Information Die Struktur von Information Retrieval Systems (IRS) Datenbanken und Datenstrukturen Forschung auf dem Gebiet der Informationswiedergewinnungssysteme
110 111 116 120
10. Management Informations S y s t e m e (MIS) in Forschung, Industrie und Verwaltung
122
10.1 10.2 10.3 10.4
Grundlagen eines MIS Planung von MIS Realisierung eines MIS Generalized Data Base Management Systems (GDBMS oder DBMS)
123 125 127 128
1. Theoretisches und gesellschaftliches Interesse der Informatik Von Paul Roos 1.1 Positive Kommunikationstheorie 1.1.1 Kommunikation Unter Kommunikation versteht man den Austausch von Zeichen zwischen Zeichen erzeugenden und Zeichen verbrauchenden Systemen. Synonym für Zeichen werden umgangssprachlich auch die Begriffe Mitteilung, Nachricht, Botschaft, Information verwendet. Der materielle Träger des Zeichens heißt Signal. Ein Signal kann statisch als Zustand (z. B. auf Papier gedruckter Buchstabe, gestanzte Lochkombination auf einer Lochkarte) oder dynamisch als Prozeß (z. B. Schallwellen, elektrische Impulse) vorliegen. Zeichen erzeugende oder verbrauchende Systeme heißen auch informationelle Systeme und können natürliche, belebte und unbelebte, soziale oder technische Produkte sein, wie Menschen, Tiere, die Natur als beobachtetes Objekt eines Interessierten (z. B. Angler, Fachwissenschaftler), gesellschaftliche Gruppen (z. B. Arbeiter eines Betriebes, Familie), Institutionen (Bibliothek, Gewerkschaft, Landtag) und technische Automaten (z. B. Telefon, Verkehrsampel, Computer, Teekessel mit Pfeife).
1.1.2 Kommunikationskette Die Funktionsweise informationeller Systeme kann verstanden werden, wenn man von der Modellvorstellung ausgeht, daß die Zeichen erzeugenden Systeme über einen Zeichenproduzenten (Zeichenquelle) und einen
Gemeinsames Zeichenrepertoire
Abb. 1 - 1
10
1.1 Positive Kommunikationstheorie
Signalsender (Signalwandler) und die Zeichen verbrauchenden Systeme über einen Zeichenkonsumenten (Zeichensenke) und einen Signalempfänger (Signalwandler) verfügen. Erzeugendes und verbrauchendes System sind durch einen Kommunikationskanal verbunden, der Zeichen übermittelt. Zeichenproduzent bzw. -konsument sind als zentrale, Signalsender bzw. -empfänger als periphere Organe des Systems aufzufassen. Der Kommunikationskanal kann zur Umwelt des Systems gerechnet werden. Die Funktion des Zeichenproduzenten ist, aus einer Zeichenmenge (Zeichenrepertoire) nach einem bestimmten System von Regeln Zeichen zu entnehmen, deren Zeichenträger durch den Sender so transformiert (kodiert) wird, daß er von dem verfügbaren Kommunikationskanal übertragen werden kann. Beispiel für ein Zeichenrepertoire ist ein Wörterlexikon, fiir das System von Regeln eine Grammatik, welche beide zusammen die Sprache des Systems bilden. Nach vorausgegangener Dekodierung des Zeichenträgers durch den Empfänger wird das Zeichen, gleiches Repertoire und gleiche Regeln vorausgesetzt, vom Zeichenkonsumenten verwertet. Das Schema der geschilderten kommunikativen Kopplung von informationellen Systemen, die Kommunikationskette, ist in Abb. 1-1 dargestellt. 1.1.3 Prozeßtranszendenter Beobachter, Objekt- und Metasprache Wie schon W. Meyer-Eppler [5, S. 5] erkannte, kann der Kommunikationsprozeß Zeichen erzeugender und verbrauchender Systeme nur von einem externen, außerhalb der Kommunikationskette stehenden Beobachter exakt beschrieben werden, dem die beteiligten Systeme und der vermittelnde Kanal zugänglich sind. Für Aussagen über den Kommunikationsprozeß wird eine Metasprache herangezogen, die von der Objektsprache der beobachtenden Systeme unterschieden ist. 1.1.4 Kommunikationstheorie:
Grundlagenwissenschaft der Informatik
Die praktische Herstellung, Verwertung und Weiterentwicklung informationeller Systeme und deren Kopplung werfen eine Vielzahl von Problemen der Systemkonzeption und Gerätetechnik (Hardware), sowie der Sprachmittel (Software) auf. Dazu gehören die Miniaturisierung von Schaltelementen, die Kapazitäts- und Zugriffsschnelligkeitssteigerung bei Speichern, die Informationskomprimierung auf Übertragungskanälen, Synchronisierung von entfernten Systemteilen, automatische Sprach- und Schrifterkennung, Konstruktion von Rechnerverbundsystemen und Teilnehmerrechensystemen, Koppelung von digitalen und analogen Geräten, Entwicklung von benutzerorientierten Programmiersprachen, insbesondere Dialogsprachen, Formalisierung der Semantik usw. Zur theoretischen Basis dieser informationellen Systempraxis synthetisieren sich entsprechend eine ganze
1. Theoretisches und gesellschaftliches Interesse der Informatik
11
Reihe ursprünglich getrennt arbeitender Wissenschaften wie Nachrichtentechnologie, Signaltheorie, symbolische Logik, Schaltwerkstheorie, Theorie formaler (Programmier-) Sprachen, Informationstheorie und statistische Thermodynamik, Nervenphysiologie, physikalisch-mathematische Theorie der Systeme, Algorithmen- und Automatentheorie. Informatik ist die Synthese dieser Teildisziplinen zu einer einheitlichen Wissenschaft. Ihr Gegenstand ist die Theorie der informationellen Systeme und ihrer Koppelung. Jede dieser Teildisziplinen der Informatik spiegelt entsprechend der spezifischen Zuwendung ihrer Theorie das Ganze dieser informationellen Systeme wieder. Elektrische Schaltkreise korrespondieren mit logisch-algebraischen Formalismen; Hardware-Ausrüstung und Software-Ausrüstung in einem vorgegebenen informationellen Systemkonzept sind weitgehend austauschbar; das (intellektuelle) Zeichen erweist sich als eine Äquivalenzklasse (materieller) Signale. Die Beobachtung solcher Korrespondenzen, Austauschbarkeiten, Äquivalenzen führt auf die Aufgabe, die gemeinsamen Bausteine, Strukturen, Grundbegriffe und Verknüpfungsregeln in diesen Teildisziplinen aufzufinden und im Rahmen einer einheitlichen Theorie darzustellen. Diese Aufgabe stellt sich die Kommunikationstheorie, die so als Grundlagenwissenschaft aufgefaßt auch allgemeine Kommunikationstheorie heißt. Elektrische Schaltkreise korrespondieren mit logisch-algebraischen Formalismen; Hardware-Ausrüstung und Software-Ausrüstung in einem vorgegebenen informationellen Systemkonzept sind weitgehend austauschbar; das (intellektuelle) Zeichen erweist sich als eine Aquivalenzklasse (materieller) Signale. Die Beobachtung solcher Korrespondenzen, Austauschbarkeiten, Äquivalenzen führt auf die Aufgabe, die gemeinsamen Bausteine, Strukturen, Grundbegriffe und Verknüpfungsregeln in diesen Teildisziplinen aufzufinden und im Rahmen einer einheitlichen Theorie darzustellen. Diese Aufgabe stellt sich die Kommunikationstheorie, die so als Grundlagenwissenschaft aufgefaßt auch allgemeine Kommunikationstheorie heißt. Die von den informationellen Systemen wie zwanghaft ausgreifende Tendenz zur Wissenschafts-Vereinheitlichung, die selbst eine kommunikative Kraft ist, zieht auch Wissenschaftsgebiete an sich, die sich urprünglich nicht mit dem offensichtlichen Ziel der praktischen Herstellung oder theoretischen Analyse informationeller Systeme befaßten. In der logischen Reflexion auf das, was die Mathematiker effektiv berechnen können, entdeckte Turing das allgemeinste informationelle System, die (universale) Turingmaschine. Die effektive operationale Mitteilung von Funktionen durch Algorithmen erweist so die Informatik-Relevanz insbesondere der allgemeinen Kommunikationstheorie für die Grundlegung der Mathematik. Geschichtlich vermittelt wird der Operationalismus durch die vorausgehende Reflexion Einsteins über die Möglichkeit der effektiven operationalen Zeitmessung, welche auf die signaltheoretische Grundlegung des
12
1.1 Positive Kommunikationstheorie
Zeitbegriffs führt. Damit ist die allen physikalischen Prozessen zugrundeliegende Kategorie der Zeit notwendig ein Gegenstand der allgemeinen Kommunikationstheorie. Wo Grundlagenforschung getrieben wird, treten beteiligte informationelle Systeme auf den Plan. In der Quantenmechanik muß der kommunikative Einfluß des Beobachters berücksichtigt werden. Die Kritik des Laplacesehen Dämons führt zu Ansätzen, Zusammenhänge zwischen thermodynamischen und intelligenten informationellen Prozessen zu konstatieren. Durch das an Schaltelementen orientierte Modell des Neurons haben Mc Culloch und Pitts Signalprozesse im Nervensystem denen in universalen Automaten als prinzipiell gleichwertig aufgewiesen. Bemerkenswerterweise ging J. von Neumann bei seiner Suche nach einer universellen Sprache (Bausteinen) zur technologie-unabhängigen Beschreibung der Schaltung der ersten konzipierten elektronischen Rechenanlagen von diesem abstrakten Neuronenkonzept aus. Aus der geschilderten Stellung der allgemeinen Kommunikationstheorie im Rahmen der Informatik erwächst nun die Aufgabe, Forschungsprojekte fiir diese Wissenschaft zu formulieren. Die geschilderte Aufgabe der allgemeinen Kommunikationstheorie ist also durch Angabe expliziter Forschungsprojekte zu exemplifizieren. Es kann nicht ihre Aufgabe sein, selbst Logik, Schaltwerkstheorie oder formale Sprachtheorie zu betreiben. Vielmehr geht es um Motivation und Konstruktion von Grundbegriffen für die theoretische Rekonstruktion realer informationeller Systeme. Es geht um die Formulierung von Postulaten, denen die Grundbegriffe genügen sollen, um die Analyse ihres internen Zusammenhangs, ihrer Reichweite und Grenzen sowie um die Reflexion über die benutzten wissenschaftlichen Methoden. Für die Logik bedeutet dies z. B., daß die Grundbegriffe der Logik und ihre impliziten Voraussetzungen auf ihre Funktion im Rahmen der Theorie informationeller Systeme zu untersuchen sind. Beispiele spezieller Ziele sind: (1) Die Rolle der klassischen logischen Partikel aus den Postulaten der Intersubjektivität und Operationalität von Mitteilungen zu motivieren. Analyse der intuitionistischen und dialektischen Negationsbegriffe. Die Semantik (Theorie der Wahrheitswerte) ist auf dem Hintergrund des postulierten aristotelischen informationellen Systems von Subjekt und Objekt zu untersuchen. Die Ansätze zu alternativen Logiken, mehrwertigen, eingeschränkten, operationalen, intuitionistischen sind in Bezug auf die Problematik bestimmter implizierter informationeller Systeme zu diskutieren [2, 3, 10]. (2) Kritik der Konzepte von Schaltelementen und ihren Verknüpfungsregeln, von den allgemeinen physikalischen Randbedingungen der Endlichkeit her, der raum-zeitlichen Einbettung, der erhärteten physikalischen Erhaltungs- und Aktionsprinzipien, die auch für informationelle Prozesse
1. Theoretisches und gesellschaftliches Interesse der Informatik
13
gelten müssen. Entwurf von Alternativen, axiomatischen Konzepten, die diesen physikalischen Grundsätzen evtl. besser genügen [6]. (3) Herausarbeitung eines allgemeinen Modellbegriffs, der den theoretischen und praktischen Modellen realer informationeller insbesonderer intelligenter Systeme zugrunde gelegt werden kann. (4) Systematische Analyse der Grundlagen der Mathematik unter dem Gesichtspunkt eines (empirischen) Outputs des intelligenten Automaten Mensch. Ansatzpunkte bieten die Kritik der Churchschen These, des Code/sehen Unentscheidbarkeitstheorems, der Brouwerschen Theorie eines denkenden Subjekts, hinsichtlich ihrer logischen Voraussetzungen und ihrer Implikationen für eine Theorie des Bewußtseins. (5) Analyse des Zeichenbegriffs von Peirce, Morris, Bense, Schaff, Klaus als Grundbegriff informationeller Systeme. Untersuchung der Verkettung von Energie, Entropie, Signal, Information und Zeichen in intelligenten Prozessen. (6) Analyse von globalen strukturellen Kennzeichnungen (Invarianten) informationeller Systeme. Hierher gehört die Analyse von Komplexitätsmaßen und Informationsmaßen. (7) Analyse der Struktur selbstreproduzierender Systeme und ihre Implementierung in eine Turingmaschine. Zu diesen inhaltlichen Forschungsaufgaben kommt die Reflexion auf die angewandte wissenschaftliche Methodologie. Gesichtspunkte sind hier die von der positiven Wissenschaftstheorie erarbeiteten Erkenntnisgrundsätze, wie das Popperiche Falsifikationsprinzip oder das schon erwähnte Schichtprinzip von Objekt- und Metasprache des prozeßtranszendenten Beobachters von Meyer-Eppler und das Formalisierungsprinzip. Das Poppersche Falsifikationsprinzip besagt, daß beim Vorliegen einer unendlichen Individuenmenge eine Allaussage evtl. falsifiziert, aber nicht verifiziert werden kann. Das Formalisierungsprinzip besagt, daß die Aussagen in einer am Muster der Mathematik orientierten, mathematisierten Sprache gemacht werden. Zur Kennzeichnung dieser methodologischen Grundlagen kann man von einer positiven Kommunikationstheorie sprechen [3]. 1.1.5 A llgemeine Struktur der Zeichen Als Beispiel der Problemstellungen der Kommunikationstheorie, und weil dieses einen systematischen Zugang zu ihr ermöglicht, sei die von Af. Bense [1 ] und E. Walther [8] weiterentwickelte Peircesche Zeichentheorie (Semiotik) kurz erläutert. Aufgabe der Semiotik ist die Analyse der Struktur des Zeichens. Nach M. Bense [ 1, S. 9] gilt: „Zeichen ist alles, was zum Zeichen erklärt wird, und nur was zum Zeichen erkärt wird. Jedes beliebige Etwas kann (im Prinzip) zum Zeichen erklärt werden. Was zum Zeichen erklärt wird, ist selbst kein Objekt mehr, sondern Zuordnung (zu etwas, was Ob-
14
1.2 Kritische Kommunikationstheorie
jekt sein kann) gewissermaßen Metaobjekt. Die Zuordnung (Relation), die mit einem zum Zeichen erklärten Etwas gegeben wird, ist triadisch: das Etwas ist als „Mittel" (M) einem „Objekt" ( 0 ) für einen „Interpretanten" (I) zugeordnet." Ein Zeichen Z ist danach eine triadische Relation Z = Z R (M, O, I). In der konkreten Anwendungssituation ist also das Objekt 0 , zum Beispiel ein Ding, ein belebtes oder unbelebtes System, ein Sachverhalt oder eine Situation. Der Interprétant I kann in der Gestalt eines Ichs, eines Sprechers, einer definierenden Vorschrift oder einer allgemeinen Konvention auftreten. Das Mittel M ist eine Bezeichnung in der Form eines begrifflichen oder physischen Merkmals. Begriffliche Merkmale sind z. B. Namen oder kennzeichende Symbole, physische Merkmale können z. B. visueller, akustischer oder taktiler Art sein. Die Relation Z = Z R (B 67325401, Fritz Majer, Bundesgesetz) besagt z. B., daß durch den Interpretanten I = Bundesgesetz, dem Deutschen Staatsbürger O = Fritz Majer die Nummer B 67325401 als Zeichen Z zugeordnet wird. Die von W. Morris formulierten semiotischen Problemgebiete der Syntaktik, der Semantik und der Pragmatik lassen sich in der relationalen Theorie des Zeichens so kennzeichnen: Die Konstruktion von Wörtern, Namen aus einem Alphabet und von Sätzen aus Wörtern ist die typische Problematik des Mittelbezugs M. Die Syntaktik ist also eine einstellige Funktion der Relation R t (M): Die Semantik befaßt sich mit der Zuordnung von Namen zu ihren Objekten, die sie „bedeuten". Für sie wird also ein Zeichen bereits durch die zweistellige Relation R 2 (M, O) bestimmt. Die Pragmatik, die Herkunft, Gebrauch und Auswirkungen von Zeichen behandelt, wird von der vollen triadischen Relation Z abhängig gesehen. Teilgebiete der Syntaktik sind die Logik als Aussagenlogik, Prädikatenlogik, Relationenlogik usw., die Mathematik als Systemtheorie, speziell als Theorie allgemeiner algebraischer, topologischer, kategorialer Strukturen. Teilgebiete der Semantik sind die logische, linguistische, physikalische, ästhetische Semantik. Teilgebiete der Pragmatik im obigen Sinne sind die mathematische Nutzentheorie, Werttheorie, Planungstheorie, Wissenssoziologie.
1.2 Kritische Kommunikationstheorie 1.2.1 Kritik der positiven
Kommunikationstheorie
Die Kritik der positiven Kommunikationstheorie setzt mit der Analyse der Rolle des prozeßtranszendenten Beobachters ein. Diese singuläre, absolute Position des Beobachters bezeichnet die klassische wissenschaftliche Situation des Theoretikers. Die Beziehung dieses Beobachters zu seinem wissenschaftlichen Objekt, den informationellen Systemen ist selbst ein kommunikativer Prozeß. Eine umfassende Theorie der Kommunikation muß sich
1. Theoretisches und gesellschaftliches Interesse der Informatik
15
dieser Situation öffnen und die transzendente Rolle dieses hypostasierten Beobachters selbst einer kritischen Reflexion unterziehen. Dabei gerät zwangsläufig sein sprachlogisches Verfahren der Aufspaltung seiner Äußerungen in Metasprache und Objektsprache wieder in Diskussion. Wenn der Beobachter und sein Objekt wieder als Einheit gesehen werden sollen, dann muß zu dieser Einheit auch der gehören, der diese Einheit selbst denkt. Diese Einheit ist also ein offenes System, das in einem reflektierenden Prozeß seine Interaktionen immer wieder in sich aufnimmt. Der Prozeß der Reflexion erweist sich in dieser Kritik als der zentrale Begriff von Kommunikation. 1.2.2 Neue Ansätze Die Reflexionsthematik wird gegenwärtig von vier Ausgangspunkten angegangen. Von seinen Versuchen zur Formalisierung der Hegeischen Dialektik ausgehend, kommt Gotthard Günther [ 10] zu einem triadischen Schema (siehe Abb. 1-2), dessen Komponenten Objekt, Subjekt und Reflexionsprozeß sind. Zwischen diesen Komponenten erfolgt die kommunikative Verständigung durch die drei entsprechenden Identitätsbeziehungen der Seinsidentität (klassische Identität), der Reflexionsidentität und der Transzendentalidentität. Ort dieser Identitäten sind entsprechend das „Es", das „Ich" und das „Du". Dieser neuen ontologischen Basis entspricht eine neue Logik, die G. Günther als Nicht-Aristotelische Logik kennzeichnet. Auf Grund der neuen ontologischen Basis wird eine inhaltliche Diskussion dieser Reflexionslogik möglich. Die mögliche Formalisierung führt auf 3- und mehrwertige Logiken, die sich als Grundlage der Theorie informationeller Systeme, insbesonderer solcher mit Rückkopplung, also kybernetischer Systeme, anbieten. Refi. Prozeß
Abb. 1-2 Von einer mathematisch-logischen Analyse des Bewußtseins herkommend, stellt G. Frey [9, S. 130] die Frage nach einer formalen Theorie des Bewußtseins. Er kommt zu der Feststellung, „daß die Bedingung für eine Theorie der Reflexion eine formalisierte Sprache ist, für die nicht zwischen Objekt- und metasprachlichen Ausdrücken unterschieden werden braucht."
16
1.2 Kritische Kommunikationstheorie
Da diese Bedingung für eine Theorie der Reflexion nach den Gödelschen Resultaten der mathematischen Logik nicht erfüllbar ist, kann es „keine explizit formulierte Theorie der Reflexion geben". Doch ist eine von sprachlichen Iterationen ausgehende Unterscheidung von finiten und transfiniten Reflexionsstrukturen möglich, die mit der Unterscheidung von Bewußtsein und Selbstbewußtsein in Verbindung gebracht wird. S. Maser [4, 13] entwickelt ein kybernetisches Modell für Wissenschaft überhaupt. Am einfachen Problem der Beantwortung einer Frage durch eine Person spezifiziert G. Maser [13, S. 315 f.] seine automatentheoretische Auffassung vom wissenschaftlichen Prozeß folgendermaßen: „. . . so entspricht die Frage selbst einem Input, die Menge der inneren Zustände entspricht dem Wissen der Person, die Überführungsfunktion entspricht dem Verstehen der Frage, dem Output entspricht die Antwort, der Ausgabefunktion entspricht das Formulieren dieser Antwort." Durch die Rückkopplung der Antwort mit dem Input wird die Korrektur möglich. Damit hat man das Modell einer Wissenschaft, welche die Reflexion, aus dem Subjekt herausprojiziert, in ihren objektiven Begriff aufgenommen hat. J. Habermas [11, 12] geht mit G. H. Mead [ 14]') von einer soziologisch fundierten Kritik am Wirklichkeitsbegriff aus: „Die Wirklichkeit konstituiert sich im Rahmen einer umgangssprachlich organisierten Lebensform kommunizierender Gruppen. Wirklich ist, was unter den Interpretationen einer geltenden Symbolik erfahren werden kann" (Habermas 1968 a, S. 237). Die „unter dem Gesichtspunkt möglicher technischer Verfügung objektivierte Wirklichkeit" ist als „Grenzfall" aufzufassen. Das technische Interesse konstituiert in seinem instrumentalen Handeln die Wirklichkeit. Als Aufgabe einer allgemeinen kritischen Wissenschaftstheorie formuliert J. Habermas die Aufgabe, für die Forschungsprozesse den „spezifischen Zusammenhang von logisch-methodischen Regeln und erkenntnisleitenden Interessen" nachzuweisen (J. Habermas [12, S. 155]). Die Analyse der Interessen liefert eine Basis, auf der die sonst getrennt ablaufenden 3 Forschungsprozesse der „empirisch-analytischen", der „historisch-hermeneutischen" sowie der „kritischen" Wissenschaft selbst diskutiert werden kann. Habermas [12, S. 155] analysiert so: „In den Ansatz der empirischanalytischen Wissenschaften geht ein „technisches", in den Ansatz der historisch-hermeneutischen Wissenschaften ein „praktisches" und in den Ansatz kritisch orientierter Wissenschaften jenes „emanzipatorische" Erkenntnisinteresse ein, das schon den traditionellen Theorien uneingestanden zugrunde lag".
l
) Für die Diskussion über das Werk von G. H. Mead bin ich dem Seminar von Herrn W. van Reijen [15] zu Dank verpflichtet.
1. Theoretisches und gesellschaftliches Interesse der Informatik
17
Daß sich, wie schon gesagt, Wirklichkeit im Rahmen der umgangssprachlich kommunizierenden Gruppen vollzieht, bedeutet für die instrumental, empirisch-analytisch arbeitenden Forscher, daß sich auch „das Subjekt ihres Forschungsprozesses auf dem Boden einer InterSubjektivität bildet, die als solche über den transzendentalen Rahmen instrumentalen Handelns hinausgreift. Die Kommunikation der Forschenden nimmt bei der dialogischen Klärung metatheoretischer Fragen eine an den Rahmen symbolisch vermittelter Interaktionen gebundene Erkenntnis in Anspruch, die für den Erwerb technisch verwertbaren Wissens vorausgesetzt ist, ohne daß sie unter Kategorien dieses Wissens selber zu rechtfertigen wäre" (Habermas [11, S. 178]). Der Analyse der Umgangssprache kommt also eine zentrale Bedeutung zu. Mit der Problematik der Reflexion, die in den positiven Wissenschaften bei der theoretischen Beschreibung informationeller Systeme auftritt, sind die hermeneutischen Wissenschaften längst vertraut. In den Ansätzen des hermeneutischen Verstehens der 3 Lebensäußerungen des sprachlichen Ausdrucks, der Handlungen und der Erlebnisaudrücke liegt eine jetzt auch für die positiven Wissenschaften wichtig werdende Auffassung der Umgangssprache zugrunde: „Die Umgangssprache folgt nicht der Syntax einer reinen Sprache: sie wird erst durch ihre Verzahnung mit Interaktionen und leiblichen Ausdrucksformen komplett. Die Grammatik von Sprachspielen im Sinne einer kompletten Lebenspraxis regelt nicht nur die Verknüpfung von Symbolen, sondern zugleich die Interpretationen sprachlicher Symbole durch Handlungen und Expressionen. Eine „reine" Sprache ist dadurch charakterisiert, daß sie durch metasprachliche Konstitutionsregeln, d. h. aber mit ausschließlich symbolischen Mitteln erschöpfend definiert werden kann. Eine natürliche Sprache hingegen entzieht sich einer formal strengen, nämlich innersprachlichen Rekonstruktion, weil sie durch Nicht-Sprachliches interpretierbar ist" (Habermas [11, S. 212]). Die in der Hermeneutik ausgenutzten spezifischen umgangssprachlichen Fähigkeiten zur Reflexivität, zur Ausführung hermeneutischer (nicht vitiöser) Zirkel bieten unmittelbare spezielle Ansatzpunkt« für einen Übergang zur positiven Reflexionsdiskussion.
1.3 Kommunikation als Politikum 1.3.1 Informatik: Neue Produktivkraft der Wissenschaft Die Datenverarbeitung wird heute von der deutschen Bundesregierung als eine der bedeutsamsten Schlüsseltechnologien erkannt. Sie soll im 2. Datenverarbeitungsprogramm der Bundesregierung [28] für die Jahre 1971-1979 mit rd. 4,2 Milliarden DM gefördert werden. Davon entfallen auf die Ausbildung und die Hochschulen 60 %, die DV-Anwender 14 %, die DV-Industrie 20 %, und die Sonderprogramme (z. B. DFG) 6 %. Zum Vergleich sei angeführt: In der Zeit von 1952 bis Ende 1970 wurden rd. 2
Hieber, Einf. i. Teilgeb. d. Informatik I
18
1.3 Kommunikation als Politikum
680 Millionen DM im Rahmen des 1. Datenverarbeitungsprogramms aufgewendet. Davon entfielen damals 60 % auf die Hochschulen und andere öffentliche Einrichtungeh, 40 % auf die gewerblichen Unternehmen. Stand der Datenverarbeitungsanlagen in der BRD ergibt am 1. 1. 1970: 6350 installierte größere Rechenanlagen im Wert von ungefähr 8 Milliarden DM und rd. 15 000 installierte Kleinstrechner-Anlagen im Wert von 840 Millionen DM. Folgende Engpässe bestehen gegenwärtig in der Datenverarbeitung und sollen durch die Förderungsmaßnahmen beseitigt werden [28]: a) Einschneidender Personalmangel auf allen Qualifikationsebenen für Systemanalyse, Programmierung und Betrieb sowie unzureichende Schulung der Führungskräfte bei den potentiellen Anwendern; b) mangelnde Erschließung neuer zukunftsträchtiger Anwendungsgebiete; die DV-Systeme sind noch nicht benutzerfreundlich genug; c) ein Mangel an Datenleitungen in den Ortsnetzen der BRD, der dem allgemeinen Trend entgegensteht, Kleinstrechner als „intelligente Terminals" an größere Anlagen anzuschließen und die Möglichkeiten der Datenfernübertragung für größere Verbundsysteme auszunützen. 1.3.2 Computer: Werkzeug und Geschichte Die gewaltige positive und negative Dynamik der EDV zwingen zu ihrer Analyse als einem weltgeschichtlichen Phänomen. Nach dem Anthropologen A Gehlen und dem Sozialwissenschaftler der Frankfurter Schule J. Habermas [12, S. 56] kann „die Geschichte der Technik unter dem Gesichtspunkt der schrittweisen Objektivierung zweckrationalen Handelns rekonstruiert werden". Unter zweckrationalem Handeln wird rationales Entscheiden gekoppelt mit instrumentalem, werkzeuggebrauchendem Handeln verstanden. Nach dieser Auffassung „fügt sich die technische Entwicklung dem Interpretationsmuster, als hätte die Menschengattung die elementaren Bestandteile des Funktionskreises zweckrationalen Handelns, der zunächst am menschlichen Organismus festsitzt, einen nach dem anderen auf die Ebene technischer Mittel projiziert und sich selbst von den entsprechenden Funktionen entlastet. Zuerst sind die Funktionen des Bewegungsapparates (Hände und Beine) verstärkt und ersetzt worden, dann die Energieerzeugung (des menschlichen Körpers), dann die Funktionen des Sinnesapparates (Augen, Ohren, Haut) und schließlich die Funktionen des steuernden Zentrums (des Gehirns)... Die technische Entwicklung folgt einer Logik, die der Struktur zweckrationalen und am Erfolg kontrollierten Handelns, und das heißt doch der Struktur der Arbeit, entspricht." Der Computer ist so ein Werkzeug in der Geschichte der menschlichen Arbeit, ist dem Menschen auf den Leib geschrieben. Der Computer bedeutet Instrumentalisierung
1. Theoretisches und gesellschaftliches Interesse der I n f o r m a t i k
19
von intellektuellen Funktionen, Vergegenständlichung des Rechnens, das er vom Menschen löst und zeigt, was es selbst ist: Ein Automat. Die Instrumentalisierung der intellektuellen Prozesse rückt diese in den Umkreis der physikalischen Prozesse und der gesellschaftlichen Arbeit. Gegen jeden utopischen Versuch, dieser Technik zu entrinnen erklärt Habermas [12, S. 56] weiter: „Wenn man sich vergegenwärtigt, daß die technische Entwicklung einer Logik folgt, die der Struktur zweckrationalen und am Erfolg kontrollierten Handelns, und das heißt doch: der Struktur der Arbeit, entspricht, dann ist nicht zu sehen, wie wir je, solange die Organisation der menschlichen Natur sich nicht ändert, solange wir mithin unser Leben durch gesellschaftliche Arbeit und mit Hilfe von Arbeit substituierenden Mitteln erhalten müssen, auf Technik, und zwar auf unsere Technik, zugunsten einer qualitativ anderen sollten verzichten können." 1.3.3 Freude an der A u tomation Das Automatische informationeller Systeme übt eine eigentümliche Faszination auf den Menschen aus. So schreibt schon Wilhelm Schickard (1592 in Herrenberg geboren) an Johannes Kepler: „Dasselbe, was Du rechnerisch gemacht hast, habe ich in letzter Zeit auf mechanischem Weg versucht, und eine aus elf vollständigen und sechs verstümmelten Rädchen bestehende Maschine konstruiert, welche gegebene Zahlen augenblicklich automatisch zusammenrechnet: addiert, subtrahiert, multipliziert und dividiert. Du würdest hell auflachen, wenn Du zuschauen könntest, wie sie die Stellen links, wenn es über einen Zehner oder Hunderter weggeht, ganz von selbst erhöht bzw. beim Subtrahieren ihnen etwas wegnimmt." (Beauclair [16, S. 3]). Der komischen Lust bei der Beobachtung von Automatismen ist S. Freud 1905 bei seiner Analyse des Witzes und seiner Beziehung zum Unbewußten auf die Spur gekommen. Der Mensch empfindet diese Lust, wenn er,.hinter dem Reichtum und der scheinbaren Freiheit der psychischen Leistung den monotonen psychischen Automatismus bloßzulegen" imstande ist {Freud[ 18, S. 188]). Leblose Automatismen werden als Entlarvungen des lebendigen Menschen empfunden. In der umgekehrten Richtung argumentierend meinte Bergson {Freud [18, S. 194]), „daß alles dasjenige komisch wirkt, was bei einer lebenden Person an einen unbelebten Mechanismus denken läßt". „Ursache des Lachens ist die Degradierung des Lebenden zum Leblosen." Umgekehrt kann man das Lachen Schickhards bedingt durch die „Beförderung" eines Leblosen zum Lebenden verstehen. Das Lachen kann auch die Befreiung von etwas Unheimlichem sein. Freud ([18], S. 250) geht in seiner Untersuchung des Unheimlichen von der Bemerkung (von E. Jentsch) aus, daß diese Empfindung entsteht, wenn gezweifelt wird, „ob ein lebloser Gegenstand nicht etwa beseelt sei", oder umgekehrt, wenn „Zweifel an der Beseelung eines anscheinend lebendigen
20
1.3 Kommunikation als Politikum
Wesens" bestehen. Die Analyse der Fälle des Unheimlichen führt Freud ([18], S. 263) „zu der alten Weltauffassung des Animismus" zurück. „Es scheint", so sagt Freud ([18], S. 263) weiter, „daß wir alle in unserer individuellen Entwicklung eine diesem Animismus der Primitiven entsprechende Phase durchgemacht haben, daß sie bei keinem von uns abgelaufen ist, ohne noch äußerungsfähige Reste und Spuren zu hinterlassen, und daß alles, was uns heute als „unheimlich" erscheint, die Bedingung erfüllt, daß es an diese Reste animistischer Seelenfähigkeit rührt. Der von Automaten erregte Eindruck des Unheimlichen, der von seiner Quasi-Lebendigkeit herrührt, entsteht demnach dadurch, daß die überwundene primitive Überzeugung des Animismus im Beobachter wieder belebt wird. Vorwärts gerichteter optimistischer wissenschaftlicher Rationalität entgegengesetzt, welche die Konstruktion informationeller Systeme, insbesondere in der Rekonstruktion des intelligenten Automaten Mensch, vorantreibt, bekommt die rückwärts, nach unten, innen gerichtete Psychoanalyse die Rolle eines kritischen Korrektivs. Die Latenz des Primitiven, die Desintegration des affektiven und intellektuellen Bereichs, die drohenden Kurzschluß-Katastrophen aus Angst, sind ein „Background" der Freude an der Automation. 1.3.4 Kritik der wissenschaftlich-technischen
Revolution
In den Prognosen der Zukunftstechnologen (R. Jungk [21]) spielt die Entwicklung informationeller Systeme eine zentrale Rolle. So erklärt O. Helmert ([21] S. 22): „Insbesondere wird die Möglichkeit des automatisierten Zutritts zu Zentralen Informationsbanken (Datenspeichern) in Verbindung mit angemessenen sozial-ökonomischen Modellen den Humanwissenschaften die gleichen Möglichkeiten einer umfangreichen Datenverarbeitung und Fähigkeit zur Interpretation der erhaltenen Ergebnisse verleihen, welche den Naturwissenschaften jenen Durchbruch ermöglichten, der dann zur Entwicklung der Atombombe führte." Das so leicht optimistisch hingeworfene Stichwort „Atombombe" muß hellhörig machen: Wie lautete doch jenes wissenschaftliche Ergebnis von Hiroshima? Als diese Frucht vom Göttinger Baum der Erkenntnis vor einem Vierteljahrhundert über Hiroshimas Dächern laut und tödlich zu Boden platzte, entblätterte die entstandene Stoßwelle auch diesen Baum selbst. Die einst im Grünen saßen und ihren fachinternen theoretischen Spielen nachhingen, sahen sich plötzlich im kahlen Geäst vor der Welt bloßgelegt. Die gesellschaftliche Instanz meldete sich als Gewissen. Die sonst nur im Fach dachten, empfanden von innen her den Zwang über dieses hinaus, politisch, gesamtgesellschaftlich zu denken. Auf seine im Freudschen Sinne „primitive" Weise hat der Atomblitz die soziale Desintegration der Naturwissenschaften erleuchtet. Es begann die gesellschaftliche Reflexion in den Wissenschaften.
1. Theoretisches und gesellschaftliches Interesse der I n f o r m a t i k
21
Der Beginn dieser Reflexion in den Jahren nach dem 2. Weltkrieg fällt zusammen mit dem Beginn der sog. wissenschaftlich-technischen Revolution, in der die Wissenschaft als unmittelbare Produktivkraft im Produktionsprozeß wirkt. Ausgelöst wurde diese Revolution durch die Entwicklung informationeller Systeme, die den Menschen an vielen Stellen in seiner Steuerungsfunktion ersetzen. Die menschliche Funktion wird einerseits intelligenzintensiver in den Steuerungs- und Programmieraufgaben der Systeme, andererseits inhalts-leerer in den reinen Magazinierungsfunktionen für Automaten. Die wissenschaftlich-technische Revolution bringt mit dem Einsatz der informationellen Systeme in der industriellen Produktion, der Organisation von Verwaltungen, in staatlichen, kommunalen und privaten Datenbanken eine Hydra gesamtgesellschaftlicher Sorgen mit sich. Hierher gehören die Freisetzung von Arbeitskräften durch Rationalisierung, die Bedrohung der privaten Sphäre und die generelle Unsicherheit gegenüber der sachlogisch begründeten Unterordnung unter die intelligenten informationellen Systeme. Die ethische retrospektive gesellschaftliche Reflexion der Atomphysiker geht unter dem aktuellen Druck der wissenschaftlich-technischen Revolution auf in einer fundamentalen Reflexion über diese selbst. Die Arbeit dieser Reflexion wird insbesondere von Wissenschaftlern, [12, 24, 25, 26] Studenten [17, 23] und den Gewerkschaften [19, 20, 22, 27] getragen. In dem Analysenbündel lassen sich vor allem zwei Richtungen unterscheiden. Die eine „rechtsgerichtete" setzt unmittelbar an der neuen Technik und dem von ihr verursachten strukturellen Wandel der Produktionsbedingungen an. Die Darstellung der Situation erfolgt wesentlich aus der Sicht des „Entscheiders", der als individueller, eigenverantwortlicher Unternehmer oder leitender Angestellter, wissenschaftlicher Top-SystemPlaner diese Technik ausnutzt. Die anscheinend objektive Kennzeichnung der Veränderungen als „technische Revolution" ist wesentlich die Terminologie der Interessengruppe der Entscheider. Die Haltung ist fortschrittlich und, was die Sorge um die soziale Problematik betrifft, beruhigend. Die gesellschaftliche Problematik wird wesentlich als eine ethische gesehen. So sagt H. Ozbekhan [21, S. 60]: „Damit die Automation zur Reife kommen und voll in die menschliche Welt integriert werden kann, ist ein völlig neues System der Ethik notwendig, das dem Einzelnen erlaubt, sich den vielfältigen Verschiebungen anzupassen, denen er bald begegnen wird." Die „ökonomische Dimension" (H. A. Simon [24, S. 13]) betrifft bei den „Entscheidern" „die Geschwindigkeit mit der Neuerungen eingeführt werden, die Folgen für Produktivität und Beschäftigung und die Auswirkung auf Struktur und Arbeitsweise von Unternehmungs- und Regierungsorganisationen". Typisch ist die Haltung von H. A. Simon [24, S. 14], der sich „in technologischer Hinsicht" als „Radikalen, in ökonomischer Hinsicht" als „Konservativen" bezeichnet. Unter technologischem Radikalismus ver-
22
1.3 Kommunikation als Politikum
steht er die Ansicht: „Computer werden alles tun können, wozu der Mensch fähig ist." Als „ökonomisch Konservativer" sieht er in der Automation „nichts anderes als die Fortführung der industriellen Revolution. Die Produktivität wird weiterhin steigen und zwar nicht wesentlich schneller als bisher, die Menge des zur Verfügung stehenden Kapitals wird die Anstiegsgeschwindigkeit hemmen; die Wirtschaft wird im wesentlichen die Vollbeschäftigung beibehalten und die Wirtschaftswelt weiterhin nicht viel anders aussehen als bisher". Die andere, „linksgerichtete", setzt an der ökonomischen Ausbeutungssituation des Lohnabhängigen, der auf Profitmaximierung ausgerichteten kapitalistischen Wirtschaft an. Ihr Ziel ist eine Kritik der sog. „wissenschaftlich-technischen Revolution", die als Versuch entschleiert wird, eine soziale Revolution zu verhindern. Die Analyse zielt auf die Verflechtung von Kapital und Wissenschaft. Die staatliche, also aus den Mitteln der Allgemeinheit subventionierte Wissenschaft wird als Gratisproduktivkraft des Kapitals (K. H. Roth, E. Ranzow [23, S. 103 ff.]) entlarvt. Dem Glauben an Fortschritt und widerspruchsfreie Wirtschaftsentwicklung werden die Tatsachen periodisch wiederkehrender Krisen entgegengehalten. Der Glaube an diesen Fortschritt dient so den Interessen des Kapitals. Im Bildungssystem wird ein Beherrschungsinstrument der Herrschenden gesehen. Die Aktivitäten der Gewerkschaften (G. Friedrichs [19], Pollock [22]) nehmen zwischen diesen beiden geschilderten Richtungen eine Mittelstellung ein. Sie sehen die konkrete Arbeitsplatzbedrohung, der sie durch juristische Absicherung [20], Umschulungsmöglichkeiten und Mobilisierung des Bildungswesens entgegentreten. AnM. Weber und H. Marcuse anknüpfend, kommt/. Habermas [12, S. 487] zu einer philosophisch-soziologischen Kritik von „Technik und Wissenschaft als Ideologie". „Marcuse ist überzeugt", so führt Habermas aus, „daß sich in dem, was Max Weber „Rationalisierung" genannt hat, nicht „Rationalität" als solche, sondern im Namen der Rationalität eine bestimmte Form uneingestandener politischer Herrschaft durchsetzt." „Rationalität" ist damit nicht nur „kritischer Maßstab für den Stand der Produktivkraft", sondern „apologetischer Maßstab" zur Rechtfertigung der zugehörigen „Produktionsverhältnisse". Mit einem Seitenhieb auf Steinbuch [23] sagt Habermas, daß „Rationalität" die zum „Korrektiv innerhalb des Systems herabgesetzt", allenfalls noch feststellen kann, die Gesellschaft sei „falsch programmiert". Wit Marcuse feststellt, übernehmen in der spätkapitalistischen Epoche Technik und Wissenschaft die Funktion von Herrschaftslegitimation. Um den so destruierten Rationalitätsbegriff neu formulieren zu können, unterscheidet Habermas zwischen ,Arbeit' und ,Interaktion'.,Arbeit' ist ,zweckrationales Handeln', welches als instrumentales Handeln' oder .rationale Wahl' zu verstehen ist. Unter .Interaktion' wird kommunikatives
1. Theoretisches und gesellschaftliches Interesse der Informatik
23
Handeln verstanden, das sich nach ,obligatorisch geltenden N o r m e n ' richtet. Rationalisierung bedeutet im Falle der Arbeit Steigerung der Produktivkräfte, im Falle kommunikativen Handelns Emanzipation. Emanzipation selbst ist ein kommunikativer Prozeß, in ihr geht es um Individuierung, um Ausdehnung des Raumes herrschaftsfreier Kommunikation. Zu 1. Positive Kommunikationstheorie |1) Bense, M.: Semiotik. Allgemeine Theorie der Zeichen. Baden-Baden 1967. [2] Klaus, G.: Wörterbuch der Kybernetik Bd. 1, 2. Frankfurt 1969. [3) Leinfellner, W.: Einführung in die Erkenntnis- und Wissenschaftstheorie. Mannheim 1967. |4] Maser, S.: Grundlagen der allgemeinen Kommunikationstheorie. Stuttgart 1971. [5] Meyer-Eppler, W.: Grandlagen und Anwendungen der Informationstheorie. Berlin - Göttingen - Heidelberg 1959. [6] Petri, C. A.: Kommunikation mit Automaten. Bonn 1962. [7] Steinbuch, K.: Automat und Mensch. 4. Aufl. Berlin - Heidelberg - New York 1971. [8]
Walther, E.: Abriß der Semiotik. Arch + 2, 8 (1969), S. 3 - 1 3 .
Zu 2. Kritische Kommunikationstheorie [9] Frey, G.: Die Mathematisierung unserer Welt. Stuttgart 1967. [10] Günther, G.: Das Bewußtsein der Maschinen. Krefeld, Baden-Baden 1957. [11] Habermas, J.: Erkenntnis und Interesse. Frankfurt 1968. [12] Habermas, J.: Technik und Wissenschaft als „Ideologie". Frankfurt 1968. Maser, S.: siehe [4], [13] Maser, S.: Wissenschaft und Kybernetik. In: Rationalisierung, 20. Jg. (1969), S. 312-316. [14] Mead, G. H.: Geist, Identität und Gesellschaft. Frankfurt 1968. [15] van Reijen, W.: Seminar über Identität und Identifikation. Philosophische Aspekte der Theorie der symbolischen Interaktion. Univ. Stuttgart SS 1971. Zu 3. Kommunikation als Politikum [16] Beauclair, W. de: Geschichtliche Entwicklung. In: K. Steinbuch Taschenbuch der Nachrichtenverarbeitung. Berlin - Heidelberg - New York 1967, S. 1-39. [17] Bergmann, £/., R. Dutschke, W. Lefevre und B. Rabehl: Rebellion der Studenten. Hamburg 1968. [18] Freud, S.: Psychologische Schriften Bd. IV. Frankfurt 1970. [19] Friedrichs G. (Hrsg.): Automation, Risiko und Chance, I, II. Frankfurt 1965. Beiträge zur zweiten internationalen Arbeitstagung der IG Metall für die BRD über Rationalisierung, Automatisierung und techn. Fortschritt, 16. bis 19. 3. 1965 in Oberhausen. Habermas, J.: siehe [12]. [20] IG Metall: Abkommen zum Schutz der Arbeiter und Angestellten vor Folgen der Rationalisierung. Köln/Frankfurt 1968. [21] Jungk, R.: Technologie der Zukunft. Heidelberg - New York, 1970.
24 [22] [23] [24] [25] [26] [27] [28] [29]
2.1 Einleitung Pollock, F.: Automation. Materialien zur Beurteilung der ökonomischen und sozialen Folgen. Frankfurt 1964. Roth, K. H. und E. Kanzow: Unwissen als Ohnmacht. Berlin 1970. Simon, H. A.: Perspektiven dir Automation für Entscheider. Quickborn, 1966. Steinbuch, K.: Falsch programmiert. München 1969. Weinberg, A. M.: Probleme der Großforschung. Frankfurt 1970. Computer und Angestellte. 2. Bd. Frankfurt 1969 Förderung der Datenverarbeitung als Schlüsseltechnologie. Informationen Bildung und Wissenschaft 3/70 (1971). Information, Computer und Künstliche Intelligenz. Frankfurt 1967.
2. Der Betrieb von Rechenanlagen — Stapelverarbeitung Von Ludwig Hieber
2.1 Einleitung Die Entwicklung der Datenverarbeitungsanlagen begann in den 30er Jahren dieses Jahrhunderts mit dem Einsatz zunächst elektrischer und dann elektronischer Schaltelemente zum Bau von Rechenmaschinen, die schneller als die bis dahin bekannten mechanischen Rechenmaschinen arbeiten sollten. Daß man bei solchen Rechenmaschinen die Geschwindigkeit der Rechenwerke bei Handbedienung nicht mehr ausnützen konnte, legte die Idee nahe, die Vorschrift über die Folge der auszuführenden Rechenoperationen (also das, was man heute Programm nennt) in einem Informationsspeicher abzulegen. Man hat dann die Möglichkeit, die Rechenoperationen mittels einer geeigneten Einrichtung automatisch und mit optimaler Geschwindigkeit ablaufen zu lassen. Dies führte zu dem von Zuse und später Burds, Goldstine und von Neumann (USA) entwickelten, klassischen Konzept des Universalrechenautomaten. Es liegt den meisten heutigen elektronischen Datenverarbeitungsanlagen zugrunde. Die Periode von 1930 bis 1948 ist die Zeit der Experimente und schließt ab mit dem Bau der ersten schnellen elektronischen Anlagen. Im darauffolgenden Jahrzehnt beschäftigte man sich damit, gute Konzeptionen für die Elektronik zu entwickeln und die Zuverlässigkeit der Anlagen zu verbessern. Etwa Ende der 50er Jahre hatte sich die Rechengeschwindigkeit gegenüber den ersten Anlagen ganz wesentlich gesteigert. Die bei manueller Bedienung der Anlagen unvermeidlichen Pausen und Fehler stellten nun eine merkliche Verschwendung von Rechenleistung dar. Man ging dazu über, die anlageninternen organisatorischen Aufgaben zur Abwicklung des Betriebs der Anlage an diese selbst zu übertragen. Mit der Entwicklung der
2. Der Betrieb von Rechenanlagen — Stapelverarbeitung
25
dazu nötigen Programmsysteme („Betriebssysteme") beschäftigte m a n sich etwa ab Mitte der 50er Jahre. Die Anschaffungskosten von mittelgroßen Rechenanlagen liegen heute bei etwa 10 Mill. DM, bei großen Anlagen über 2 0 Mill. DM. Dazu k o m m e n die Kosten für die räumliche Unterbringung der Anlage einschließlich der notwendigen Klimaanlage. Darüberhinaus sind R ä u m e für Zusatzgeräte wie Kartenlocher und ähnlichen Geräten erforderlich. Bereits für mittelgroße Rechenanlagen sind für den Betrieb und die Organisation etwa 2 0 Personen notwendig, t o n denen etwa die Hälfte eine wissenschaftliche Ausbildung besitzen m u ß . Schließlich fallen auch noch Betriebskosten an, die sich im wesentlichen aus Wartungskosten und Kosten für Papier und L o c h k a r t e n zusammensetzen. Daraus läßt sich erkennen, daß die beim Betrieb einer Rechenanlage anfallenden Kosten so groß sind, daß enorme Anstrengungen nötig sind, um gegebene Rechenanlagen möglichst gut auszunützen. Möglichkeiten zur besseren Nutzung von Rechenanlagen liegen insbesondere im automatischen Ablauf bei der Bearbeitung von Programmen und bei organisatorischen Maßnahmen, welche die Bedienung und Benutzung einer Anlage betreffen. Darüberhinaus hängt der Nutzen einer Rechenanlage davon ab, mit welcher Effektivität Programme ausgelegt sind, also ob gute oder weniger gute Algorithmen verwendet werden. Einfluß auf die anfallenden Kosten pro Stunde Rechenzeit hat auch die Verfügbarkeit einer Anlage nämlich, welche Stör- und Wartungszeiten inkauf genommen werden müssen.
2.2 Zentraleinheit und externe Geräte Die Baugruppen einer Rechenanlage kann man in zwei Kategorien einordnen, nämlich Zentraleinheit und externe Geräte (auch periphere Geräte oder EA-Geräte). In der Zentraleinheit gibt es nur elektronische Baugruppen, die mit großer Geschwindigkeit arbeiten können. Wesentliche Teile der Zentraleinheit sind Rechenwerk, Befehlswerk, Leitwerk, Arbeitsspeicher und Kanalwerke. Bei den externen Geräten handelt es sich u m elektromechanische Geräte für die Ein- und Ausgabe von Informationen. Diese I n f o r m a t i o n e n bestehen aus Daten, die zur Bearbeitung von Programmen benötigt werden oder es sind die Ergebnisse von Programmen. Außerdem kann es sich u m die Eingabe oder Ausgabe von Programmen selbst handeln. Durch d e n teilweise mechanischen A u f b a u der peripheren Geräte ist die Geschwindigkeit für das Eingeben oder Ausgeben von Information u m Größenordnungen kleiner als die Verarbeitungsgeschwindigkeit der Zentraleinheit. Beispiele für externe Geräte sind Kartenleser/Stanzer, Schnelldrucker, Magnetbandgeräte, Plattenspeicher, Trommelspeicher, Bildschirme und Konsolschreibmaschinen.
2.3 Betriebsarten
26
Einige typische Geschwindigkeitsangaben: Rechenwerk: Arbeitsspeicher: Kartenleser: Kartenstanzer: Streifenleser: Magnettrommel: Plattenspeicher:
1 Mill. Operationen/Sekunde 1 Mill. Speicherzugriffe/Sekunde 15 Karten/Sekunde 6 Karten/Sekunde 1000 Zeichen/Sekunde 100 Zugriffe/Sekunde im Mittel 15 Zugriffe/Sekunde im Mittel
In Abb. 2 - 1 ist eine Rechenanlage dargestellt mit Zentraleinheit und einer Reihe von externen Geräten.
Abb. 2 - 1 Rechenanlage mit Zentraleinheit und externen Geräten
2.3 Betriebsarten Für den Betrieb einer Rechenanlage gibt es mehrere Organisationsformen. Diese Organisationsformen lassen sich einteilen nach der Art und Weise, wie ein Benutzer sich die Dienste einer Rechenanlage zugänglich machen kann. Im folgenden werden diese Organisationsformen kurz beschrieben und deren Besonderheiten angegeben.
2.3.1 Offener Betrieb (open shop) Der o f f e n e Betrieb eignet sich besonders für kleinere Anlagen, die einem nicht allzu großen Benutzerkreis zur Verfügung steht. Beim o f f e n e m Betrieb ist der Benutzer der Rechenanlage während der Bearbeitung seines Programmes anwesend und bedient die Anlage selbst. Es ist also notwendig, daß jeder Benutzer in die Bedienung der Anlage eingewiesen wird. Dies hat zur Folge, daß durch ungeübte Benutzer mit unzureichenden
2. Der Betrieb von Rechanlagen - Stapelverarbeitung
27
Kenntnissen in der Bedienung der Anlage Zeitabschnitte auftreten können, in denen die Anlage nicht genutzt wird. Für einen gut eingearbeiteten Benutzer bietet diese Betriebsart gewisse Vorteile. Durch seine Anwesenheit bei der Bearbeitung seiner Programme kann ein Gefühl für die Effektivität der Programme entwickelt werden, indem die Zeitpunkte von anfallenden Zwischen- und Endergebnissen beobachtet werden. Durch laufendes manuelles Auswerten der Zwischenergebnisse können außerdem Programme abgebrochen werden, wenn z. B. ein Verfahren für ein bestimmtes Problem zu langsam konvergiert. Der offene Betrieb ist aber insbesondere für das Entwickeln und Testen von Programmen beliebt, weil sehr schnell Änderungen an Programmen durchgeführt werden können, ohne daß Wartezeiten bei der Bearbeitung von Programmen auftreten. 2.3.2 Geschlossener Betrieb (closed shop) Im Gegensatz zum offenen Betrieb hat bei der Organisationsform .geschlossener Betrieb' der Benutzer keinen direkten Zugriff zur Rechenanlage. Zu bearbeitende Programme müssen abgegeben werden. Nach der Bearbeitung durch die Rechenanlage werden die Programme mit den angefallenen Ergebnissen zurückgegeben. Die Rechenanlage selbst wird durch Operateure bedient. Operateure sind speziell ausgebildete Bedienungskräfte und sind ausschließlich für den Betrieb einer Anlage eingesetzt. Mit gut ausgebildeten Operateuren läßt sich eine Anlage wesentlich besser ausnützen als im offenen Betrieb. Bei der Beschickung von Kartenleser/Stanzer, Schnelldrucker, beim Wechseln von Platten und beim Einlegen von Magnetbändern lassen sich Wartezeiten auf ein Minimum verkürzen. Der Umgang mit Magnetbändern und Wechselplatten-Stapel erfordert zudem eine große Sorgfalt. Die zuverlässige Handhabung dieser Datenträger läßt sich nur in einem kleinen Personenkreis überwachen. Für langfristige Datenhaltung ist die sorgfältige Behandlung dieser Datenträger eine der wesentlichen Voraussetzungen. Gut eingearbeitete Operateure sind in der Lage, bei Unregelmäßigkeiten dem Wartungspersonal wertvolle Hinweise über etwa auftretende Fehlersituationen zu geben. Dies erleichtert die Fehlersuche und verkürzt Wartungszeiten. Im geschlossenen Betrieb werden zu bearbeitende Programme in der Reihenfolge ihrer Abgabe bearbeitet. Die Bearbeitung geschieht gewissermaßen stapelweise, man spricht deswegen von Stapelverarbeitung. Falls es sich um eine Lochkarten-orientierte Anlage handelt, werden die Kartenstapel nacheinander gelesen und nach der Bearbeitung mit den Ergebnisprotokollen zurückgegeben. Meistens ist der Betrieb so organisiert, daß in gewissen Zeitabständen Programm-Abgabe und Programm-Rückgabe erfolgt. Durch die unmittelbare Aufeinanderfolge bei der Bearbeitung von Programmen können Leerzeiten zwischen Programmen weitgehend vermieden werden. Dazu ist es allerdings erforderlich, daß bei etwa vorkom-
28
2.3 Betriebsarten
menden Unregelmäßigkeiten bei der Bearbeitung eines Programmes die Fehlerursache festgestellt, ausgedruckt und unmittelbar zur Bearbeitung des nächsten Programmes übergegangen wird. Als Nachteil für den Benutzer einer Rechenanlage mit geschlossenem Betrieb sind insbesondere die Wartezeiten bis zur Programm-Rückgabe und Mangel an Informationen über den Programm-Ablauf zu erwähnen. Bei auftretenden Fehlern in einem Programm muß dem Benutzer ausreichende Information mit zurückgegeben werden, anhand deren die Ursachen des Fehlers festgestellt werden können. Diese Informationen werden zum großen Teil von der Rechenanlage selbst erstellt, aber auch der Operateur muß bisweilen seine Beobachtungen beim Ablauf des Programmes an den Benutzer weitergeben. Der geschlossene Betrieb erfordert, daß der Benutzer alle notwendigen Informationen über den Programmablauf dem Operateur mitteilt. Solche Anweisungen an den Operateur sind bisweilen problematisch und führen nicht selten zu Mißverständnissen. Ein Rechenzeitverlust entsteht bei Programmen, bei denen der Autor während des Laufes aufgrund von Zwischenergebnissen das Programm beenden würde. Der Operateur kann dies nur selten tun, so daß die meisten Programme so lange bearbeitet werden, bis die Ergebnisse ermittelt sind oder ein vorgegebener Zeitlimit erreicht ist. Am unzulänglichsten ist der geschlossene Betrieb zum Austesten von Programmen. Selbst bei einem unbedeutenden Fehler muß auf die Programm-Rückgabe gewartet werden, so daß es zu unnötig hohen Zeitaufwendungen zum Erstellen von Programmen kommt. 2.3.3 Teilnehmerbetrieb Beide betrachteten Organisationsformen .offener Betrieb' und .geschlossener Betrieb' haben gewisse Vorteile. Bei Rechenanlagen, die einen Mehrfachzugriff oder Teilnehmerbetrieb zulassen, können gewissermaßen beide Organisationsformen genutzt werden, ohne daß die aufgeführten Nachteile auftreten. Beim Teilnehmerbetrieb können die Benutzer oder Teilnehmer über - von der eigentlichen Rechenanlage abgesetzten — Arbeitsplätze (Terminals) die Rechenanlage benutzen. Obwohl mehrere Teilnehmer gleichzeitig Dienste der Rechenanlage in Anspruch nehmen können, hat ein einzelner Benutzer den Eindruck, als benutze er die Anlage allein. Dies ist durch die hohe interne Arbeitsgeschwindigkeit der Rechenanlagen möglich. In Wirklichkeit steht den einzelnen Teilnehmern die Rechenanlage nur für Bruchteile einer Sekunde zur Verfügung; in der restlichen Zeit werden die anderen Teilnehmer bedient oder andere Programme bearbeitet. Ein solcher Arbeitsplatz besteht aus einer Konsolschreibmaschine für Einund Ausgabe und eventuell einem zusätzlichen Bildschirm, auf dem Texte und Ziffern sichtbar gemacht werden können. Ein Benutzer kann also sein Programm über die Konsolschreibmaschine eingeben, gegebenenfalls korrigieren und Befehle zur Ausführung des Programms eintippen. Das Pro-
2. Der Betrieb von Rechenanlagen - Stapelverarbeitung
29
gramm wird dann bearbeitet. Ergebnisse und eventuelle Fehlermeldungen können über denselben Arbeitsplatz ausgegeben werden. Die Arbeitsplätze können über Telefon- oder Telexleitungen an die Rechenanlage angeschlossen werden, um damit räumlich weit vom Rechenzentrum entfernt eingerichtete Terminals zu ermöglichen.
2.4 Möglichkeiten zur besseren Ausnutzung von Rechenanlagen Wie schon in der Einleitung erwähnt, sind die beim Betrieb einer Rechenanlage anfallenden Kapital- und Betriebskosten so groß, daß es besonderer Anstrengungen bedarf, um Rechenanlagen möglichst gut auszunützen. Anlagen mit offenem Betrieb sollen hier unberücksichtigt bleiben. Ein Teil der hier aufgeführten organisatorischen Möglichkeiten läßt sich mit der Rechenanlage selbst durchführen. 2.4.1 Externe Maßnahmen Unter externen Maßnahmen werden Verbesserungen aufgezeigt, welche durch die Organisation bei der Bedienung und Benutzung einer Anlage möglich sind: — Gut ausgebildete Operateure für die Bedienung der Anlage; dadurch können Leerzeiten weitgehend vermieden werden. — Vorsorge für mögliche Ausfälle von externen Geräten durch Vorladen von zu bearbeitenden Programmen auf Band und Platte. — Gut ausgebildetes Wartungsteam mit modern ausgestatteten Hilfsmitteln — Umfangreiche Programmbibliothek mit ausgetesteten effektiven Programmen. — Beratung der Benutzer, so daß möglichst effiziente Programme erstellt werden. — Überwachung der verbrauchten Rechenzeiten einzelner Benutzer. — Durchsichtige Benutzerordnung, sorgfältige Trennung von bearbeiteten und noch zu bearbeitenden Programmen. — Gute Sicherung für langfristige Datenhaltung (z. B. Duplikate bei beschriebenen Magnetbändern). — Sorgfältig dokumentierter Änderungsdienst für die Software. 2.4.2 Interne Maßnahmen (Multiprogrammierung) Neben den aufgezählten externen Maßnahmen gibt es weitere Möglichkeiten, um den Programmdurchsatz einer Anlage zu verbessern. Im wesentlichen handelt es sich dabei um Multiprogrammierung, einer Möglichkeit, um die unterschiedliche Arbeitsgeschwindigkeit zwischen externen Geräten und Zentraleinheit auszugleichen. Mit den Angaben aus Abschnitt 2.2 läßt sich ermitteln, daß die Zentraleinheit in der Lage ist, lOOOmal mehr
30
2.4 Möglichkeiten zur besseren Ausnutzung von Rechenanlagen
Zahlen zu addieren, als im günstigsten Falle vom Kartenleser eingelesen werden k ö n n e n . Weil das F o r m a t der Karten nur in Sonderfällen ganz ausgenutzt ist, kann sich diese Zahl zugunsten der Zentraleinheit n o c h wesentlich vergrößern. Bei der Multiprogrammierung wird die Rechenanlage zur überlappten Bearbeitung von mehreren Programmen eingesetzt. Das Prinzip ist dabei stets so, daß, während ein oder mehrere Programme durch den Ablauf einer Eingabe oder Ausgabe nicht bearbeitet werden k ö n n e n , die Zentraleinheit ein weiteres rechenfähiges Programm ausführt. Das folgende Bild soll das Prinzip der Multiprogrammierung näher erläutern. Aus Gründen der Übersichtlichkeit wird nur von der gleichzeitigen Bearbeitung zweier Programme ausgegangen. Beide Programme benötigen während ihrer Bearbeitung Eingabe und Ausgabe von Daten. 1. P r o g r a m m
—
2. P r o g r a m m
—
- -— J -
-
_
_
Rechnen
Eingabe/ Ausgabe
_ .. _ _ _ _
1. P r o g r a m m 2. P r o g r a m m
Abb. 2 - 2 Prinzip der Multiprogrammierung
Das zweite Programm wird mit höherer Priorität bearbeitet. Immer dann, wenn im 2. Programm die Bearbeitung wegen Eingabe oder Ausgabe von Daten angehalten werden m u ß , kann das 1. Programm gerechnet werden. Ohne das 1. Programm würde in solchen Zeitabschnitten die Zentraleinheit stillstehen. Sobald EA-Vorgänge des 2. Programms beendet sind, wird das 1. Programm unterbrochen und die Bearbeitung des 2. Programms fortgesetzt. Bei jeder Unterbrechung eines Programms müssen alle Zustände von Registern der Maschine abgespeichert werden, so daß ein unterbrochenes Programm später nach Einräumen der Register mit den ursprünglichen Inhalten wieder fortgesetzt werden kann. Wie aus Abb. 2 - 2 ersichtlich ist, kann es trotz der simultanen Bearbeitung von 2 Programmen Situationen geben, bei denen die Zentraleinheit stillsteht. Dies ist dann der Fall, wenn beide Programme gleichzeitig auf EAVorgänge warten müssen. U m solche Situationen möglichst zu vermeiden, müssen mehr als zwei Programme für den Multiprogramm-Betrieb vorgesehen werden. Z u m Beispiel k ö n n e n bei der Rechenanlage T R 4 8 Programme gleichzeitig bearbeitet werden. J e d e m dieser Programme m u ß eine Priorität zugeordnet werden, w o d u r c h die Reihenfolge der Bearbeitung bei auftretenden Programmunterbrechungen gesteuert wird. Jede Programmunter-
2. Der Betrieb von Rechenanlagen — Stapelverarbeitung
31
brechung erfordert neben dem Abspeichern der Register auch noch andere organisatorische Maßnahmen, wie z. B. das Holen eines rechenbereiten Programms in den Arbeitsspeicher. Alle diese Vorkehrungen kosten Rechenzeit. Um diese Regiezeiten klein zu halten, sind Hardware-Vorkehrungen für den Multiprogrammbetrieb notwendig. Um die Eigenschaften der Multiprogrammierung gut ausnützen zu können, ist es notwendig, EA-intensive Programme zusammen mit rechen-intensiven Programmen zu bearbeiten. Die EA-intensiven Programme müssen dabei mit höheren Prioritäten versehen werden als die rechen-intensiven Programme.
2.5 Zeitlicher Ablauf bei einer Stapelverarbeitung Im folgenden wird schematisch auf die wesentlichen Stufen eingegangen, die bei der Bearbeitung eines Programms durchlaufen werden. Es wird davon ausgegangen, daß das Programm in einer problemorientierten Sprache, etwa ALGOL vorliegt (vgl. Abschnitt 4). — Zunächst muß der Programmtext gelesen werden (von Lochkarten oder Lochstreifen). — Der Programmtext wird zwischengespeichert auf Band oder Platte. — Der Programmtext (Quellensprache) muß übersetzt werden. Dazu muß das Übersetzerprogramm bereitgestellt und gestartet werden. — Während des Übersetzens müssen u. U. Bibliotheksprogramme an das erzeugte Objektprogramm angeschlossen werden. — Werden beim Übersetzen syntaktische Fehler in der Quellensprache gefunden, so druckt der Übersetzer ein Fehlerprotokoll. Falls möglich, wird der gesamte Quellentext auf weitere Fehler durchsucht. Danach wird das Programm beendet. — Falls keine Fehler beim Übersetzen aufgetreten sind, kann das erzeugte Objektprogramm zur Ausführung gestartet werden. Dabei ist es im allgemeinen nötig, daß es mit Daten versorgt wird, die zur Bearbeitung des Programms notwendig sind. Eventuell müssen während des Laufes weitere Bibliotheksprogramme zeitweise angeschlossen werden. — Treten beim Bearbeiten des Objektprogramms Fehler auf, so wird das Programm abgebrochen und ein Diagnoseprogramm gestartet (Dump), das die Fehlerursache untersucht und ausdruckt. Die Fehlerdiagnose wird am zweckmäßigsten mit Bezug auf die Ebene der Quellensprache ausgegeben. — Bei einem korrekt ablaufenden Objektprogramm werden alle anfallenden Ergebnisse gedruckt oder gestanzt. — Vor dem Übergang zur Bearbeitung des nächsten Programms wird die verbrauchte Rechenzeit sowie der Verbrauch an Druckerpapier festgestellt und für die Buchhaltung abgelegt.
32
2.6 Aufgaben eines Betriebssystemes für Stapelverarbeitung
In Abb. 2 - 3 sind diese einzelnen Arbeitsstufen in einem Flußdiagramm dargestellt.
Abb. 2 - 3 Bearbeitung eines Programms
2.6 Aufgaben eines Betriebssystemes für Stapelverarbeitung In einem Betriebssystem sind alle jene Programme zusammengefaßt, die einen weitgehend automatischen Ablauf beim Betrieb einer Rechenanlage ermöglichen. Insbesondere werden in einem Betriebssystem Möglichkeiten bereitgestellt, die eine lückenlose Aufeinanderfolge bei der Bearbeitung von einer Menge von Programmen garantieren. Ein Betriebssystem kann ' auch als eine Art Superprogramm aufgefaßt werden, unter dessen Regie die zu bearbeitenden Programme ablaufen. An allen Stellen, an denen beim
2. Der Betrieb von Rechenanlagen - Stapelverarbeitung
33
manuellen Betrieb Programmstops (z. B. beim Enden eines Programms oder bei Auftreten eines Fehlers) auftreten, greift das Betriebssystem ein und leitet die notwendigen Maßnahmen zur Fortsetzung des Betriebes ein. Außerdem enthalten Betriebssysteme Programmteile, die häufig benötigt werden, wie z. B. EA-Programme oder die Vorkehrungen für den Multiprogrammbetrieb. Im folgenden sind die wesentlichen Aufgaben von Betriebssystemen zusammengestellt: — Verwaltung der Bedienkonsole. — Vorkehrungen für die automatische Aufeinanderfolge von ProgrammLäufen. — Durchführung von EA-Vorgängen. — Ausreichende Möglichkeiten zur Fehlerdiagnose. — Behandlung von Hardware und Softwarefehlern. — Bereitstellung der Multiprogramm-Eigenschaften zur besseren Ausnützung der Zentraleinheit. — Verwaltung der den einzelnen Programmen zugeteilten Betriebsmittel (EA-Geräte, Arbeitsspeicher). — Verwaltung der Rechner-Uhr. — Vorkehrungen für den Anschluß von Programmen aus Programmbibliotheken des Systems. — Speicherschutz. — Führung des Operateurs bei Aufgaben, die nicht durch das Betriebssystem durchgeführt werden können (z. B. Archiv-Band auflegen, das System prüft die Kenn-Nummer des Bandes). — Netzausfall-Vorkehrungen. — Buchung von Rechenzeit und anderen Kriterien für die Kostenabrechnung. Es gibt eine Reihe von Aufgaben des Betriebssystems, die es erfordern, daß die zugehörigen Programm-Teile permanent im Arbeitsspeicher stehen. Das Organisationsprogramm für den Multiprogrammbetrieb (executive, Verteiler) z. B. muß stets bereitstehen, um die auftretenden EA-Vorgänge zu koordinieren. Es gibt andere Aufgaben des Betriebssystems, die nur gelegentlich benötigt werden. Es wäre ungünstig, diese Programme immer im Arbeitsspeicher zu halten, besser ist es, sie auf einer Trommel oder Platte abzulegen und sie bei Bedarf zu holen. 2.6.1 Verwaltung von Betriebsmitteln Innerhalb der Multiprogrammierung kann es leicht zu Konfliktsituationen kommen, wenn zugelassen wird, daß ein Programm ein vorgebbares EA3
Hieber, Einf. i. Teilgeb. d. Informatik I
34
2.6 Aufgaben eines Betriebssystemes für Stapelverarbeitung
Gerät oder einen bestimmten Bereich des Arbeitsspeichers beanspruchen kann. Die Erfüllung solcher Forderungen kann scheitern an: — Der verlangte Speicherbereich oder das EA-Gerät ist durch ein anderes Programm bereits belegt. Andere Speicherbereiche und EA-Geräte vom gleichen Typ sind aber noch frei. — Ein verlangtes EA-Gerät ist nicht betriebsbereit, z. B. nicht eingeschaltet. — Das gewünschte EA-Gerät wird gewartet und steht für das System nicht zur Verfügung. Solche Konfliktsituationen führen zu unnötigen Wartezeiten. Besser ist es, samtliche Betriebsmittel, also alle EA-Geräte und den zur Verfügung stehenden Arbeitsspeicher vom Betriebssystem selbst verwalten zu lassen. Programme können dann nicht mehr einen bestimmten Speicherbereich zugeteilt b e k o m m e n , sondern das System vergibt einen gerade freien Speicher. Ganz ähnlich kann die Zuteilung von EA-Geräten erfolgen. Im Programm k a n n z. B. nur angegeben werden, daß ein Bandgerät benötigt wird, nicht aber ein ganz bestimmtes Gerät. Die Speicherverwaltung beschränkt sich nicht nur auf den Arbeitsspeicher, sondern u m f a ß t auch das Speichervolumen von externen Geräten wie Trommeln, Platten, Bandspeichern. Je häufiger Programm teile benötigt werden, u m so schneller müssen sie erreichbar sein. Solche Programmteile müssen also im Arbeitsspeicher oder auf der Trommel abgelegt werden. Die angegebenen Speicherarten unterscheiden sich nach außen hin durch ihre mittlere Zugriffszeit. Die Ablage von Programmen in den verschiedenen Speichern m u ß von der Häufigkeig ihrer Benutzung abhängig gemacht werden. Das Betriebssystem stellt fest, welche Programme selten b e n u t z t werden und verlegt sie in langsamere Speicher. 2.6.2
System-Programme
Für die bequeme und effektive Benutzung sowie zur Ausfuhrung einer Reihe von Verwaltungsaufgaben ist es wünschenswert, weitere Dienste durch die Rechenanlage selbst zur Verfügung zu stellen. Die Bereitstellung solcher Dienste wird durch Programme realisiert, die sehr häufig mit dem Betriebssystem Informationen austauschen. Man spricht deshalb häufig von System-Programmen. Im folgenden sind einige Gruppen von SystemProgrammen zusammengestellt. — Umcodierer für die Umwandlung verschiedener externer Datenträger in einen einheitlichen internen Code. — Programme zur Änderung der Systemsoftware (System-Pflege). — Druckprogramme für interne und externe Speicherbereiche.
2. D e r Betrieb von Rechenanlagen — Stapelverarbeitung
35
— Organisationsprogramme zum Laden von Bändern und Platten mit zu bearbeitenden Programmen und zum Zwischenspeichern von Ergebnissen. — Buchhaltung für verbrauchte Rechenzeit. — Voreinstellungen bei Beginn eines Programms: Zeitlimit, Blattlimit, Priorität, Geräte und Speicherbedarf. — Organisationsprogramme für die Pflege von Bibliotheken (Einschieben oder Löschen von Programmteilen). — Übersetzer und zugehörige Diagnose-Programme. — Testhilfen. Im allgemeinen werden Systemprogramme nur dann in den Arbeitsspeicher geladen, wenn sie gebraucht werden. Sie werden jedoch an bevorzugter Stelle auf Band oder Platte bereitgehalten, so daß sie möglichst schnell rechenbereit gemacht werden können.
2.7 Zusammenfassung Beim Betrieb von Rechenanlagen treten eine Reihe von organisatorischen Problemen auf. Eine wichtige Erkenntnis ist, daß zur Lösung eines Teiles dieser Probleme die Rechenanlage selbst herangezogen werden kann. So ist es möglich, bei unveränderter Hardware durch die Einführung der Multiprogrammierung den Durchsatz an zu bearbeitenden Programmen wesentlich zu steigern. Darüber hinaus kann das Erstellen und Testen von Programmen beschleunigt werden, wenn durch Systemprogramme geeignete Dienste zur Verfügung gestellt sind. Eine vollständige Automatisierung des Rechenbetriebs kann jedoch nicht erreicht werden, weil manuelles Eingreifen nötig ist, wie z. B. das Wechseln von Magnetbändern oder Magnetplatten.
Literatur [1] [2]
Ganzhorn, K. undiT. Tjaden: Was ist Software. Köln 1970. Rechenberg, P.: Grundzüge digitaler Rechenautomaten. München - Wien 1968.
131
Wiele, H„ G. Segmüller, W. Ulrich und F. Peischl: Ein Betriebssystem für schnelle Rechenanlagen. In: Elektronische Rechenanlagen 6 (1964).
3'
36
3.1 Einleitung
3. Der Betrieb von Rechenanlagen — Teilnehmerbetrieb Von Werner Dirlewanger
3.1 Einleitung Der Teilnehmerbetrieb ist die derzeit neueste Betriebsform von Datenverarbeitungsanlagen. Sie ist im Zusammenhang mit der immer weiter gesteigerten Verarbeitungsgeschwindigkeit dieser Anlagen entstanden. In Abb. 3 - 1 ist die Entwicklung der Verarbeitungsgeschwindigkeit dargestellt.
Operationen
Abb. 3 - 1 Entwicklung der Rechenleistung
Als meistverwendete Betriebsform für die Datenverarbeitungsanlagen bildete sich der geschlossene Betrieb (closed shop) heraus; er wird z. B. in Abschnitt 2.3 beschrieben. Die Abarbeitung der Benutzeraufgaben erfolgt in Stapelverarbeitung (batch processing). Bei dieser Betriebsweise geben die Benutzer ihre Aufgaben (jobs) fertig vorbereitet, meist in Form von Lochkartenstapeln, im Rechenzentrum ab. Dort werden die Benutzeraufgaben — nach einer eventuellen Vorsortierung entsprechend ihrer Dringlichkeit — bearbeitet. Nach der Bearbeitung kann der Benutzer seinen Kartenstapel und die Ergebnisse seiner Aufgabe abholen. Um die Leistung des schnellen Rechenwerks möglichst gut auszunützen, bedient sich das Betriebssystem im allg. der Multiprogrammierung (vgl. Abschnitt 2.4). Das mittels Stapelbetrieb und Multiprogrammierung erreichte Ziel ist eine hohe Arbeitsdurchsatzleistung (throughput) des Rechenzentrums.
3. Der Betrieb von Rechenanlagen - Teilnehmerbetrieb
37
Nachteile sind die o f t langen Wege des Benutzers zum Rechenzentrum und die langen Wartezeiten zwischen Abgabe der Benutzeraufgabe und dem Erhalt der Ergebnisse. Schließlich kann der Benutzer — etwa im Gegensatz zum open-shop-Betrieb - nicht überwachend und korrigierend in den Programmablauf eingreifen. Dies alles erschwert die Neuentwicklung von Programmen und auch die Benutzung schon fertiger Programme. Es war also wünschenswert, die Maschinen etwas mehr den Bedürfnissen des Menschen anzupassen. Während dieser Wunsch auf der Programmierseite zur Entwicklung der problemorientierten Sprachen geführt h a t t e , gab er bezüglich des Betriebs der Rechenanlagen den Anstoß zu einer neuen Betriebsweise, dem „Teilnehmerbetrieb" (time-sharing). Dieser vermeidet einen großen Teil der oben genannten Nachteile, er nützt j e d o c h die Rechenanlagen bezüglich der Arbeitsdurchsatzleistung nicht ganz optimal aus. Es ist bekannt, daß bei Verwendung von problemorientierten Sprachen anstelle von maschinennahen Sprachen im allg. eine größere Arbeitsleistung der Anlage für die Bearbeitung einer bestimmten Aufgabe notwendig ist. Ähnlich ist beim Teilnehmerbetrieb ein höherer interner organisatorischer Aufwand notwendig als beim Stapelbetrieb. Man wendet also in beiden Fällen einen Teil der Leistung der Anlage auf, um die Inanspruchnahme der Anlage bequemer zu machen und in eine neue F o r m zu bringen, die dem Menschen besser angepaßt ist als bisher. Als besonderen Vorteil bietet der Teilnehmerbetrieb die Möglichkeit zum Dialog zwischen Mensch und Maschine. Die Betriebsform „Teilnehmerbetrieb" wird im folgenden beschrieben.
3.2 Beschreibung des Teilnehmersystems Ein großer Nachteil des „geschlossenen Betriebs" von Datenverarbeitungsanlagen sind die o f t großen Entfernungen zwischen Benutzer u n d Rechenzentrum. Diesen Nachteil kann man durch Verwendung von Datenfernstationen vermeiden. Es ist dann möglich, Benutzeraufgaben vom Arbeitsplatz über Fernleitungen zum Rechenzentrum und die Ergebnisse zurück zu übermitteln ( R e m o t e J o b Entry). Sind Benutzer über Datenfernstationen an ein im „Stapelbetrieb" arbeitendes Rechenzentrum angeschlossen, dann hat man zwar die Entfernung Benutzer—Rechenzentrum überbrückt, der Nachteil der großen Umlaufzeit der Benutzeraufgaben (turn-around-time) besteht aber weiter. Weiter besteht auch der Nachteil, daß diese Umlaufzeit dann besonders hoch ist, wenn viele Benutzeraufgaben im Rechenzentrum zur Bearbeitung anstehen. Erst bei der Betriebsform „Teilnehmerbetrieb" wird auch dieser Nachteil vermieden. Sie ermöglicht einen jederzeitigen Zugang zur Verarbeitungsleistung des Rechenzentrums: Der Benutzer kann seine Aufgabe sozusagen „on-line" dem Rechner stellen und gelöst b e k o m m e n . Dies wird durch eine zeitlich gegliederte periodische Zuteilung des Rechnerkerns an die einzel-
38
3.2 Beschreibung des Teilnehmersystems
nen Benutzeraufgaben erreicht. Dadurch entsteht der Eindruck, jedem Benutzer stünde die Datenverarbeitungsanlage allein zur Verfügung. Sie scheint nur je nach der Zahl der momentan aktiven Benutzer u. U. etwas langsamer zu arbeiten als die wirkliche Anlage. Die Kennzeichen des Teilnehmerbetriebs
sind:
1. Viele Teilnehmer können über fernangeschlossene Datenstationen und Fernleitungen mit der Anlage verkehren. 2. Jeder Teilnehmer kann seine eigenen Aufgaben mit der Anlage lösen. 3. Die Betriebsmittel werden den Teilnehmern gemeinsam (z. B. der Großspeicher) bzw. in zeitlich periodischer Folge (z. B. der Rechnerkern) zur Verfügung gestellt. 4. Der einzelne Teilnehmer wird durch die Mitbenützung der Anlage durch andere Teilnehmer nicht merklich behindert. Die Antwortzeit, also die Reaktionszeit des Systems auf Aktivitäten des Teilnehmers ist derart, daß für ihn der Eindruck entsteht, das System stehe ihm ausschließlich zur Verfügung. Es gibt eine ganze Reihe von Systemen, bei denen die Verarbeitungsleistung von Datenverarbeitungsanlagen mehreren Benutzern gleichzeitig zur Verfugung gestellt wird. Sie stellen dennoch keine Teilnehmersysteme dar, weil sie nicht alle vier genannten Kriterien erfüllen. Neben der Stapelfernverarbeitung, die insbesondere Punkt 4 nicht erfüllt, seien die Systeme für automatische Platzreservierung (z. B. für Luftverkehrsgesellschaften) und die Auskunftsysteme genannt. Die letzteren erfüllen den Punkt 2 nicht, denn sie können nur ganz spezielle Aufgaben lösen. Man nennt solche Systeme Teilhabersysteme. Eine sehr wichtige Eigenschaft von Teilnehmersystemen ist eine ausreichend kurze Reaktionszeit. Sie stellt ein Zeitkriterium dar. Betrachtet man unter diesem Aspekt die Betriebsformen von Datenverarbeitungsanlagen, dann sind — bezüglich der Maßnahmen zur anlageninternen Organisation — Multiprogrammierung (s. Abschnitt 2.4.2) und Realzeitverarbeitung (s. Abschnitt 8.2) die beiden Extrema. Bei der Multiprogrammierung bestehen für die Abfertigung der Benutzeraufgaben keine Zeitbeschränkungen. Das Ziel ist eine möglichst hohe Ausnutzung des schnellen Rechenwerks. Dies wird erreicht, indem man die Wartezeiten des Rechenwerks auf die wesentlich langsameren peripheren Geräte zur Weiterbearbeitung anderer selbständiger Programmeinheiten ausnützt. Bei der Realzeitverarbeitung stellen die Benutzeraufgaben bezüglich der zeitlichen Abfertigung zwingende Bedingungen. Es muß eine bestimmte Höchstzeit für die Reaktion auf ein Eingangssignal garantiert werden. Die Aufgaben für Teilnehmerbetrieb liegen innerhalb der durch diese beiden Systeme abgesteckten Grenzen: Es gibt zwar keine absolut
3. Der Betrieb von Rechenanlagen - Teilnehmerbetrieb
39
festen Zeitbedingungen, j e d o c h ist m a n von Zeitbedingungen nicht ganz frei. Es wird zwar keine feste Reaktionszeit garantiert, j e d o c h soll sie möglichst kurz sein. Sie hängt bei Teilnehmersystemen u. U. von der momentanen Gesamtbelastung der Anlage ab. Die kurze Reaktionszeit beim Teilnehmerbetrieb gestattet ein „Gespräch" zwischen Teilnehmer und Maschine. Eine Antwort kann z. B. sein, daß die Maschine auf Fehler des Benutzers hinweist, Gegenfragen stellt, Rechenschritte des Benutzerprogramms kommentiert oder Ratschläge erteilt. Eine Antwort kann u. U. auch erst nach längerer Zeit k o m m e n , z. B. w e n n der Benutzer eine Aufgabe stellt, die die Anlage länger beschäftigt. (Dies ist ein Fall, der natürlich nicht dem Kriterium der Reaktionszeit genügen muß.) Die Möglichkeit eines solchen Dialogverkehrs ist ein besonderer Vorteil des Teilnehmerbetriebs.
3.3 Die periodische Zuteilung des Rechenwerks Im Gegensatz zur Stapelverarbeitung werden beim Teilnehmersystem die Benutzeraufgaben nicht nacheinander bearbeitet. Vielmehr werden die m o m e n t a n e n „aktiven" Benutzeraufgaben reihum jeweils eine gewisse Zeit bearbeitet. Bei Ende des jeweiligen Zeitabschnitts wird ohne Rücksicht darauf, ob die gerade bearbeitete Benutzeraufgabe fertig ist, zur nächsten Aufgabe weitergegangen. Da im allgemeinen der Hauptspeicher der Anlage nicht ausreicht, u m die Programme aller aktiven Teilnehmer gleichzeitig aufzunehmen, ist ein fortwährender Programmaustausch im Hauptspeicher notwendig. Es ist also neben dem Hauptspeicher ein zweiter, größerer Speicher (Sekundärspeicher) notwendig, der für die Aufgaben aller gleichzeitig aktiven Teilnehmer ausreichen m u ß . Dieser Sekundärspeicher ist im einfachsten Falle ein schneller Trommelspeicher, u . U. auch ein schneller Plattenspeicher. Die simpelste F o r m des Programmwechsels ist der „einfache Programmwechsel". Die Programme werden samt Daten jeweils ganz und als einziges in den Hauptspeicher geladen. Wenn die dem m o m e n t a n bearbeiteten Programm zugeteilte Zeit u m ist, wird es gegen das nächste ausgetauscht (s. Abb. 3 - 2 a ) . Dieses Verfahren wurde bei dem 1962 in Betrieb genommenen BBN-System (s. [2]) angewendet. Selbst w e n n der auszutauschende Hauptspeicherinhalt nicht groß ist (z. B. mehrere Tausend Worte) und als Sekundärspeicher ein schneller Trommelspeicher zur Verfügung steht, wird für das Neuladen und Umstarten eine vergleichsweise lange Zeit gebraucht (z. B. 10 Millisekunden). Es entstehen Wartezeiten, während derer der. Rechnerkern stillsteht und ungenützt warten m u ß . Dazu k o m m t ein weiteres Problem. Es sei eine größere Zahl von Teilnehmern aktiv (z. B. 100) und m a n m ö c h t e eine für praktische Zwecke ausrei-
40
3.3 Die periodische Zuteilung des Rechenwerks N Tin.
1 •
Tin.
2
Tin.
3
Tin.
4
\
y
/
Tin.
Hauptspeicher
SekundärSpeicher
Abb. 3 - 2 Programmwechsel a) Einfacher Programmwechsel
Tin.
2
Tin.
3
Tin.
«
Tin.
5
Tin.
6
/
HauptSpeicher
1 : SekundarSpeicher
b) SeitenwechselverFahren
chend kurze Antwortzeit haben (z. B. 3 Sekunden). Dann kann der Zeitantßil für den Programmwechsel schon einen ganz erheblichen Anteil des dem einzelnen Teilnehmer zustehenden Zeitanteils ausmachen (im Beispiel 10 von 30 Millisekunden). Ist eine sehr große Anzahl von Teilnehmern aktiv, dann kann es passieren, daß die gesamte Rechenleistung für interne organisatorische Aufgaben und den Programmwechsel aufgebraucht wird und die Anlage damit praktisch lahmgelegt ist. Es ist deshalb notwendig, die Wechselzeiten merklich zu verkürzen. Dies ist durch Anwendung des sogenannten „Seitenwechselverfahrens" möglich. Es wird in verschiedenen Varianten in den meisten modernen Teilnehmersystemen verwendet. Beim Seitenwechselverfahren sorgt man — ähnlich wie bei der Multiprogrammierung — dafür, daß mehrere Programme rechenfähig sind. Es wird nun ausgenützt, daß die Zeit zum Umstarten zwischen rechenfähig im Hauptspeicher befindlichen Programmen im allg. um Größenordnungen kleiner ist, als wenn das nächste Programm erst nachgeladen werden muß. Bei der Multiprogrammierung verwendet man die in niederer Priorität laufenden Programme nur zum Ausnützen deijenigen Zeitlücken, in denen das Rechenwerk nicht durch das Programm der nächsten Priorität beschäftigt ist. Beim Teilnehmerbetrieb dagegen gibt es Zeitbedingungen. Denn, ist ein bestimmter Teilnehmer „an der Reihe", dann muß seine Aufgabe bearbeitet werden. Dazu ist es jedoch nicht notwendig, daß das Programm dieses Teilnehmers als Ganzes rechenbereit im Hauptspeicher steht. Es genügt, wenn deijenige Programmteil samt zugehörigen Daten im Hauptspeicher ist, an dem momentan weiterzuarbeiten ist. Wenn vor Beendigung des Zeitintervalls der momentan bearbeiteten Benutzeraufgabe weitere noch nicht im Hauptspeicher befindliche Programmteile und/oder Daten benötigt werden, dann werden sie (falls die Zeit noch reicht) vom Sekundärspeicher nachgeladen.
3. Der Betrieb von Rechenanlagen - Teilnehmerbetrieb
41
Um dies in rationeller Weise hinsichtlich des Speicherplatzes im Hauptspeicher tun zu können, geht man beim Seitenwechselverfahren wie folgt vor: Man unterteilt sowohl den Hauptspeicher wie auch den Sekundärspeicher in (z. B. 1000 Worte große) „Seiten". Im Sekundärspeicher teilt man jeder Benutzeraufgabe eine ausreichende Anzahl von Seiten zu. Im Hauptspeicher teilt man den Teilnehmern soviele Seiten Platz zu, wie sie voraussichtlich während des nächsten Zeitintervalls benötigen werden. Es ist nicht notwendig, daß für jeden aktiven Teilnehmer Platz im Hauptspeicher reserviert ist. Vielmehr genügt es, wenn für die zu den nächsten Zeitscheiben gehörenden Teilnehmer Platz reserviert ist. Dann entsteht für den Rechnerkern beim Umsteuern von der momentan bearbeiteten Benutzeraufgabe zur nächsten sicher keine Wartezeit wegen eines Informationsaustausches zwischen Haupt- und Sekundärspeicher. Abb. 3-2 zeigt ein Beispiel in dem für vier von sechs aktiven Teilnehmern der als nächstes zu bearbeitende Programmteil rechenfähig im Hauptspeicher bereit steht. Das eben geschilderte Vorgehen bewirkt eine dauernde Änderung desjenigen Hauptspeicherinhaltes, der für einen bestimmten Teilnehmer zur Verfügung stehen muß, wenn er an der Reihe ist. Um dies auch in Bezug auf ökonomische Verwendung des Hauptspeicherplatzes zu erreichen, bedient man sich der „dynamischen Adressierung". Sie ermöglicht, daß die für einen bestimmten Teilnehmer im nächsten Zeitabschnitt benötigte Anzahl von Seiten nicht in zusammenhängender Reihenfolge im Hauptspeicher stehen muß, sondern beliebig verteilt sein kann (s. Abb. 3-3). Dies kann man ohne nennenswerten Leistungsverlust der Anlage mittels sogenannter „Assoziativ-Register" erreichen. Sie ermöglichen die bei der Verwendung der dynamischen Adressierung dauernd notwendigen Umrechnungen von Hauptspeicheradressen in ganz besonders schneller Weise. Damit ist es
Tin.
1
Tin.
2
Tin.
3
Tin.
4
Tin.
5
Tin.
6
i
>12 -6 2 3
Hauptspeicher SekundärSpeicher
Abb. 3 - 3 Ein Beispiel der Zuordnung von Hauptspeicherseiten zu Sekundäispeicherseiten im Beispiel von Abb. 3 - 2 b bei dynamischer Adressierung
42
3.3 Die periodische Zuteilung des R e c h e n w e r k s
auch möglich, daß jeder Benutzer einen Adressenraum verwendet, der größer als der des wirklich vorhandenen Hauptspeichers ist. Man spricht deshalb bei Maschinen mit einer Seiten-Wechseleinrichtung auch von einem „virtuellen Speicher". Bezüglich der Zeitverteilung des Rechenwerks an die aktiven Teilnehmer gibt es viele Möglichkeiten. Geht man „sozial" vor, dann gibt man den Benutzeraufgaben jeweils gleichlange „Zeitscheiben". Dieses Verfahren nennt man „Zeitsegmentverfahren" (time slicing). Es arbeitet solange gut, wie alle derzeit aktiven Aufgaben während einer Zeitscheibe wirklich jeweils ein entsprechendes Stück vorangebracht werden können. Sind jedoch während einer Zeitscheibe länger dauernde Ein-/Ausgabe-Vorgänge zu erledigen oder werden — z. B. aufgrund von Rechenergebnissen — Reaktionen des Teilnehmers erwartet, dann entstehen wieder Wartezeiten für den Rechnerkern. Es kann dann in ungünstigsten Fällen passieren, daß im Wesentlichen Daten zwischen Haupt- und Sekundärspeicher hin- und hertransportiert werden. Die Anlage kommt dann zu keiner „nützlichen Arbeit". Man modifiziert deshalb meist das starre Zeitsegmentverfahren. Dafür gibt es eine größere Anzahl von Möglichkeiten. Welche gewählt wird, hängt von speziellen Gegebenheiten der Anlage ab. Schließlich sei noch erwähnt, daß man sich meist nicht mit der zweifachen Stufung Hauptspeicher—Sekundärspeicher begnügt, sondern über eine Speicherhierarchie von mehreren Stufen einen Seitenwechsel oder Datentransport vornimmt. Der Grund ist, daß die Zugriffszeit zu Speichermedien mit deren Fassungsvermögen steigt (s. Abb 3-4). Man erreicht durch das Speicher
Zugriffszeit
Kapazität
M sec
Übertragungsgeschwindigkeit Zeichen/ M sec
Anwendung
Kern, Dünnschicht
0.3
30
5 10'
Massenkemspeicher
3
4
Rückgriff Speicher
Trommel
(6 . . . 20) • 10 3
1
Bereitstellungsspeicher
Platte
(50 . . . 100) • 10 3
0.2
Zeichen
*
Magnetstreifen
300•10
3
0.1
10'
Magnetband
1 Minute
0.1
(beliebig)
Hauptspeicher
Verfugungsspeicher Archiv
Abb. 3 - 4 Daten heutiger Speicher (Großrechenanlagen, 1971)
3. Der Betrieb von Rechenanlagen — Teilnehmerbetrieb
43
Zwischenfügen von Stufen, daß die für Datentransporte insgesamt aufgewendeten Zeiten kürzer werden.
3.4 Der Aufbau von Teilnehmersystemen Teilnehmersysteme bestehen aus einer (im allgemeinen sehr leistungsfähigen) zentralen Rechenanlage und einer Reihe von fern-angeschlossenen Außenstationen („Terminals"). Diese Außenstationen sind (s. Abb. 3 - 5 ) in den meisten Fällen die für Dialogverkehr typischen Einrichtungen: Schreibmaschinenterminal oder Bildschirmterminal.
Abb. 3-5 Beispiel einer Teilnehmerrechenanlage Das Schreibmaschinenterminal besteht aus einer Eingabetastatur und dem Schreibwerk einer elektrischen Schreibmaschine als Ausgabemedium (üblich sind 5 bis 20 Zeichen/Sekunde Druckgeschwindigkeit). Gelegentlich ergänzt man das Schreibmaschinenterminal durch eine LochkartenEin-/Ausgabe. Meist verwendet man jedoch eine Lochstreifen-Ein-/Ausgabe als Zusatz, so daß man Fernschreiber für die Außenstationen verwenden kann. Die Leitungen zwischen dem Rechner und solchen Terminals haben Datenraten von ca. 50 bis 200 Bit pro Sekunde zu übertragen. Terminal-Übertragungsraten bis zu 2000 Bit pro Sekunde sind für Bildschirmterminals notwendig. Diese haben anstelle des Druckwerkes ein Datensichtgerät. (Dabei handelt es sich um sogenannte alphanumerische Datensichtgeräte, die nicht zur Anzeige von graphischen Gebilden, Zeichnungen u. ä. dienen, sondern nur zur Anzeige von Texten. Es gibt daneben die sogenannten graphischen Bildschirme zur Darstellung von Bildern usw. (s. Abschnitt 6.4), auf die jedoch nicht näher eingegangen werden soll). Bildschirmterminals haben gegenüber den Schreibmaschinenterminals den
44
3.4 Der Aufbau von Teilnehmersystemen
Vorteil, daß sie schneller ausgeben können. Den Nachteil, daß kein gedrucktes Protokoll entsteht, behebt man oft so, daß man außer dem Bildschirm noch ein Druckwerk als Ausgabe anschließt (hard copy), auf dem auf Wunsch die angezeigte Information gedruckt werden kann. Neben den beiden genannten Terminalarten gibt es größere Außenstationen, die mit Kartenleser und mittelschnellen oder sehr schnellen Druckern ausgestattet sind. Die erforderliche Übertragungskapazität der Datenleitungen liegt für solche Außenstationen bei ca. 200 bis 10000 Bit pro Sekunde. Schließlich ist es möglich, eine (kleine) Rechenanlage als Außenstation zu verwenden (Satellitenrechner), die ihrerseits wieder Außenstationen bedient. Zur Verbindung von Zentralrechner und Satellitenrechner sind im allg. Leitungen mit sehr hoher Übertragungskapazität notwendig (Breitbandkabel), die z. B. 10 4 bis 10 5 Bit pro Sekunde übertragen können. Die mögliche Zahl der Außenstationen ist je nach Leistungsfähigkeit der zentralen Anlage verschieden. An kleine Anlagen sind oft nur wenige Außenstationen angeschlossen. Die größten derzeitigen Teilnehmersysteme haben mehrere Hundert Terminals. Die zentrale Rechenanlage eines Teilnehmersystems wird im allg. durch eine Datenbank ergänzt. Dies ist ein sehr großer Datenspeicher, in den die Teilnehmer Daten, Programme, Rechenergebnisse usw. langfristig ablegen können. Damit ist es nicht mehr notwendig, bei jedem Programmlauf die Programme neu einzugeben. Vielmehr braucht man sie nur aus der Datenbank abzurufen und zu starten. Neu einzugeben sind nur eventuelle Änderungen am Programm, die Eingabedaten u. ä. Die Datenbank dient ferner zum gegenseitigen Austausch von Information unter Teilnehmern, zur Benutzung wichtiger Programme usw. Die für Teilnehmerbetrieb typische Betriebsweise ist der Gesprächsmodus, bei dem ein Dialog mit der Maschine stattfindet. Beim Gesprächsmodus kann der Benutzer spontan oder als Reaktion auf eine Anfrage der Maschine in den Programmlauf eingreifen. Es gibt jedoch auch Fälle, in denen der Benutzer nach Eingabe der Aufgabe in die Rechenanlage an einer weiteren Einflußnahme nicht interessiert ist, also eine Stapelverarbeitung verlangt. Diese Betriebsweise nennt man auch Abschnittsmodus. Moderne Teilnehmersysteme können Benutzeraufgaben wahlweise entweder im Abschnittsmodus oder im Gesprächsmodus bearbeiten. Kleine Außenstationen (Schreibmaschinen- und Bildschirmterminals) werden je nach Aufgabenstellung im Abschnitts- oder Gesprächsmodus betrieben. Größere Außenstationen, bei denen die Eingabe über Kartenleser und die Ausgabe über schnelle Drucker erfolgt, wird man zweckmäßigerweise im Abschnittsmodus betreiben. Oft verwendet man eine größere, mit Kartenleser und Drucker ausgerüstete Außenstation als Ergänzung einer Gruppe von Schreibmaschinen- oder Bildschirmterminals wie folgt: Man arbeitet im
3. D e r B e t r i e b v o n R e c h e n a n l a g e n — T e i l n e h m e r b e t r i e b
45
wesentlichen am Kleinterminal. Hat man jedoch größere Datenmengen einzugeben oder auszugeben, dann verwendet man hierzu Leser bzw. Drucker der großen Außenstation.
3.5 Datenfernübertragung Außenstationen in unmittelbarer Nähe (etwa im selben Gebäude) der zentralen Rechenanlage werden über direkt zum Rechner gehende Leitungen angeschlossen. Bei größeren Entfernungen ist man im allg. auf fremde Datenübertragungswege angewiesen. Solche werden in der BRD seit einiger Zeit von der Deutschen Bundespost in Form des Telefon- und des Datexnetzes zur Verfügung gestellt. Die Betriebsarten solcher Leitungen sind Simplex (Übertragung nur in einer Richtung), Halbduplex (Übertragung abwechslungsweise in der einen und anderen Richtung) und Duplex (Übertragung gleichzeitig in beiden Richtungen). Man mißt die Übertragungskapazität in Baud (= Bit/sec). Unter Übertragungskapazität C einer Leitung versteht man die maximal pro Sekunde übertragbare Anzahl von Ja-Nein-Entscheidungen (Bits). Die Mietkosten von Datenleitungen steigen mit der Übertragungskapazität (s. Abb. 3-6). Leitungsart
Übertragungskapazität C Baud
Kosten (etwa)
Telex
50
DM 15 . . . 35/Std. je nach Entfernung
Datex
200
DM 30 . . . 50/Std. je nach Entfernung
Telefonwahlleitung
1200
Telefonmietleitu ng
4800
Breitbandleitung
bis 100 • 10
siehe Telefongebühren DM 20 . . . 25 pro Kilometer und Monat 3
Sondervereinbarung
Abb. 3 - 6 Die wichtigsten von der Deutschen Bundespost zur Zeit angebotenen Datenleitungen und deren Kosten (Stand 1970/71)
Einige Beispiele sollen verdeutlichen, welche Übertragungskapazitäten notwendig sind. Zur Darstellung eines Zeichens sind (je nach Größe des Zeichenvorrates) 6 bis 8 Bits notwendig. Damit ergeben sich folgende Mindestübertragungskapazitäten (im Falle von 8 Bit pro Zeichen): a) Fernschreiberterminal, 6 Zeichen/sec; C = 48 Baud b) Terminal mit mittelschnellem Drucker, 5 Zeilen zu je 120 Zeichen/sec; C = 4800 Baud c) Satellitenrechner, bis zu 10 5 Baud; also Breitbandleitung
46
3.6 Weitere Probleme
Um einen von der Deutschen Bundespost zur Verfügung gestellten Übertragungsweg zur Datenübertragung einsetzen zu können, sind Anschalteinrichtungen an die Leitungen notwendig. Dies sind z. B. bei Telex- und Datexleitungen Einrichtungen zur Umwandlung von Code und Geschwindigkeit, zum Schutz gegen Übertragungsfehler u. ä. Für Telefon- und Breitbandleitungen sind außerdem noch Übertragungseinrichtungen notwendig, die die zwischen Rechner und Terminal zu übertragenden binären Signale in korrespondierende Signale für die Fernmeldeleitung umwandeln bzw. nach der Übertragung zurückverwandeln. Man nennt eine solche Einrichtung Modem (Abkürzung für Modulator—Demodulator). Im Modem sind meist auch die Einrichtungen zur Prüfung auf Fehler während der Übertragung und ggf. zu deren Korrektur enthalten. Wenn eine Fehlerprüfung und/oder Korrektur stattfinden soll, dann sind zusätzliche Informationen zu übertragen (Prüfbits). Die Übertragungskpazität der Leitung muß dann etwas größer als die zu übertragende Datenrate sein, wenn man eine Fehlersicherung anwendet.
3.6 Weitere Probleme Bei Teilnehmerrechensystemen ergibt sich eine große Reihe von Problemen, die neu gegenüber dem Stapelbetrieb von Rechenanlagen sind. Sie alle darzustellen, würde den hier vorgegebenen Rahmen sprengen. Deshalb seien nur einige kurz angedeutet: Benutzer, die eine Rechenanlage über eine Außenstation benutzen, müssen sich identifizieren. Dies geschieht im allg. durch die Angaben einer dem Benutzer zugeteilten Benutzernummer. Wird eine dem System nicht bekannte Benutzernummer angegeben, dann wird dieses sich mit einer entsprechenden Antwort melden. Damit kann man die Benutzung der Anlage durch nicht berechtigte Personen verhindern. Oft geht man dabei so vor, daß man bei mehrmaliger Eingabe einer unbekannten Benutzernummer die Außenstation für eine gewisse Zeit (z. B. 1 Stunde) sperrt. Man kann dann nämlich davon ausgehen, daß der Teilnehmer sich nicht etwa geirrt hat, sondern unbefugt das Terminal in Betrieb nehmen will. Mit der Benutzernummer kann man Privilegierungen koppeln, z. B. bezüglich bevorrechtigter Abfertigung (besonders große Zeitscheiben), bezüglich der zur Verfugung gestellten Hauptspeicher- und Sekundärspeicherplätze, der Zugriffsmöglichkeiten in der Datenbank usw. Genauso kann man die Benutzungsmöglichkeit für die verschiedenen Betriebsmittel für eine bestimmte Benutzernummer einschränken. Die Benutzernummer wird weiter zur Abrechnung beanspruchter Leistungen, wie etwa verbrauchte Zeit der Zentraleinheit, Belegung von Speicherund Datenbankplatz, Einschaltdauer der Außenstation usw. verwendet.
3. Der Betrieb von Rechenanlagen — Teilnehmerbetrieb
47
Das Vorhandensein einer Datenbank verlangt ein großes Maß an Sicherheitsmaßnahmen. Dazu seien die folgenden Bemerkungen gemacht: Ein Problem ist der Schutz der Datenbank gegen Zerstörung, etwa bei Systemausfällen. Zu diesem Zweck speichert man z. B. wöchentlich den Inhalt der Datenbank auf Magnetbänder ab, die im Archiv aufbewahrt werden. Bei einer Zerstörung der Datenbank kann dann höchstens die Arbeit einer Woche verloren gehen. Wenn das als zu hoch erscheint, kann man täglich oder in noch kleineren Intervallen die jeweils entstandenen Änderungen des Datenbankinhaltes archivieren. Man verliert dann maximal die Arbeit eines Intervalls, denn der Stand der Datenbank bei Beginn des Intervalls läßt sich aufgrund der archivierten Änderungen rekonstruieren. Die Benützung des Großspeichers geschieht so, daß jedem Teilnehmer auf Anforderung ein oder mehrere Speicherbereiche zur Verfügung gestellt werden. Für jeden Speicherbereich kann der Teilnehmer festlegen, ob der Informationsinhalt auch anderen Teilnehmern zugänglich sein soll oder nicht, zu welchen Tageszeiten und an welchen Wochentagen. Weiter kann der Teilnehmer zulassen, daß andere Teilnehmer nicht nur den Inhalt eines Bereichs einsehen (lesen) dürfen, sondern auch verändern (schreiben) dürfen. Besonders wertvolle Informationen kann man in Speicherbereichen ablegen, für die der Benutzer einen besonderen, nur ihm bekannten Namen (Paßwort) vereinbart. Damit kann jemand, der von der Existenz der betreffenden Information Kenntnis hat, sich selbst dann keinen Zugang verschaffen, wenn er sich unter dem Namen des Eigentümers meldet, weil er ja im allg. das Paßwort nicht kennt.
3.7 Zusammenfassung Teilnehmerrechensysteme erlauben es, die Rechenleistung einer Rechenanlage in einer besonders bequemen und einfachen Form mehreren oder vielen Benutzern zugänglich zu machen. Dies geschieht über Außenstationen der Rechenanlagen (Terminals). Sie ermöglichen den Verkehr mit auch entfernt aufgestellten Rechenanlagen großer Leistungsfähigkeit, die im allg. durch einen großen Datenspeicher (Datenbank) ergänzt werden. Außenstationen gibt es in verschiedenen Ausstattungsstufen. Die Bearbeitung der über die Außenstationen zum Rechner kommenden Aufträge kann im Abschnittsmodus erfolgen. Die wesentlich modernere Form ist jedoch der Gesprächsmodus, der einen Dialogverkehr Mensch—Maschine ermöglicht und besondere Vorteile bringt. Die Benutzung von Rechenanlagen im Teilnehmerbetrieb erfordert neue Methoden zur Kostenabrechnung der beanspruchten Leistungen. Weiter sind besondere Sicherheitsmaßnahmen notwendig, um die in der Maschine abgelegten Informationen und Daten jedes Teilnehmers gegen versehentliche, unerlaubte oder mißbräuchliche Benutzung, Abänderung oder Zerstörung durch andere Teilnehmer zu schützen.
48
4.1 Das Umsetzen eines Problems in ein P r o g r a m m
Literatur [1] [2] [3] [4]
Dworatschek, S.: Einführung in die Datenverarbeitung. 4. Aufl. Berlin 1971. Wilkes, M. V.: Time-Sharing-Betrieb bei digitalen Rechenanlagen. München 1970. Müller, R.: Teilnehmerrechensysteme. In: Elektronische Datenverarbeitung 11 (1969), S. 4 5 5 - 4 6 3 und S. 536-540. Schreiber, F.: Klassifizierung von Außenstationen und Übermittlungsnetzen für Datenfernverarbeitung. In: Elektronische Rechenanlagen 12 (1970), H. 1, S. 20-25.
4. Die verschiedenen Ebenen der Programmierung Von Hans-Jochen Schneider
4.1 Das Umsetzen eines Problems in ein Programm In diesem ersten Abschnitt soll dargestellt werden, wie man von der Stellung eines Problems über die Systemanalyse und die Programmierung zur Lösung des Problems kommt. Man kann folgende Teiltätigkeiten unterscheiden: a) Systemanalyse, genaue Festlegung und formelmäßige Darstellung des Problems b) Wahl des günstigsten Verfahrens oder Algorithmus, Festlegung der Arbeitsvorschriften c) Aufstellung eines Fluß- oder Struktur- oder Block- oder Programmablaufdiagramms d) Eigentliche Programmierung e) Ablochen des Programms f) Testen des Programms mit Testdaten g) Aktuelle Läufe des Programms mit den tatsächlichen Daten h) Deutung der Ergebnisse, Prüfung an der Realität i) Programm-Dokumentation Im folgenden sollen anhand eines Beispiels diese Tätigkeiten näher beschrieben werden. Es wird hier als ein triviales Beispiel die Berechnung eines Ausdruckes gewählt. Dieses Beispiel müßte kein mathematisches sein, es könnte auch die Berechnung einer Lohnsteuertabelle oder das Sortieren von Artikelnummern eines Artikelsortiments zum Inhalt haben. Zu a): Als erster Schritt muß eine genaue Analyse des Problems vorgenommen werden. Dabei müssen oft physikalische und technische Zusammenhänge durch mehr oder weniger starke Idealisierungen vereinfacht werden,
4.1 Das Umsetzen eines Problems in ein Programm
49
um die gestellte Aufgabe überhaupt bewältigen zu können. Die dem zu analysierenden System innewohnende Struktur ist freizulegen und soweit als möglich formelmäßig festzuhalten. Bei obengenanntem Beispiel muß etwa beachtet werden, daß für bestimmte Werte der Größen c und d c + d = 0 werden kann, das Dividieren durch 0 aber verboten ist. Zu b): Nach der Definition des Problems unter a) müssen die eigentlichen Arbeitsvorschriften angegeben werden. Es muß festgelegt werden, welches Verfahren unter den gegebenen Voraussetzungen mit eventuell vorhandenen Nebenbedingungen das günstigste ist. Dabei kann diese Wahl z. B. davon abhängig sein, ob die Programmierung kürzer ist, ob die Rechenzeit kürzer ist oder ob weniger Speicherplatz benötigt wird. Die Berechnung des obengenannten Beispiels nach der Formel a/(c + d) + b/(c + d) würde z. B. länger dauern als (a + b) / (c + d). Zu c): Schwierigere, nicht so leicht durchschaubare Probleme erfordern als Hilfsmittel sog. Flußdiagramme. Das Aufstellen von Flußdiagrammen ist mit der unter b) beschriebenen Festlegung von Arbeitsvorschriften eng verbunden, diese beiden Tätigkeiten müssen oft nebeneinander hergehen. Die zu verwendenden Symbole sind genormt und in der DIN-Norm 66001 beschrieben. Einige wichtige Elemente werden unten beschrieben. Operation allgemein, Verarbeitungsblock (es können Formeln oder in Worte geschriebene Anweisungen eingesetzt werden). Ein Eingang und ein Ausgang. Verzweigungs- oder Entscheidungs-Block. Ein Eingang und mehrere Ausgänge, x wird mit y entsprechend den an den Ausgängen angegebenen Vergleichsoperatoren verglichen. Andere Möglichkeit: Fragesatz, an den Ausgängen steht ja bzw. nein.
j •j "
Unterprogramm-Aufruf Ablauflinie (Vorzugsrichtungen sind a) von oben nach unten b) von links nach rechts. Zur Verdeutlichung: Pfeilspitze)
Zusammenführung JL
4
9
Ausgang durch Pfeilspitze kennzeichnen. (Zwei sich kreuzende Linien bedeuten keine Zusammenführung.) Übergangsstelle (Konnektor) Der Übergang kann von mehreren Stellen aus, aber nur zu einer Stelle hin erfolgen. Zusammengehörige Übergangsstellen müssen dieselbe Bezeichnung haben.
Hieber, Einf. i. Teflgeb. d. Informatik I
4 . Die verschiedenen E b e n e n der Programmierung
50
/ l
•
)
A
J
Grenzstelle
(Für A kann z. B-. Beginn, Ende oder Zwischenhalt geschrieben werden.)
Nachdem das Flußdiagramm aufgestellt ist, sollte es nochmals genauestens überprüft werden; möglichst viele Sonderfälle sollten mit Testbeispielen durchgegangen werden. Das Flußdiagramm besitzt den Vorteil der zweiten Dimension gegenüber dem Programmtext. Es bietet aus diesem Grund eine sehr große Hilfe für spätere Abänderungen am Programm. Es legt die logische Struktur des Problems frei. Das Flußdiagramm gibt die Statik des Programms wieder; es beinhaltet die gesamten Möglichkeiten des Programms. Aktuell wird dann nur ein „Zweig" durchlaufen, wenn vielleicht auch öfters. Dieser Tatbestand wird von der Dynamik eines Programms erfaßt. Die Dynamik beschreibt das wirkliche Durchlaufen des Flußdiagramms bei einem speziellen Lauf des Programmes. Sie zeigt auf, welche Anweisungen dynamisch nacheinander abgearbeitet werden. Beispiel:
(a + b) / (c + d)
(oder
Abb. 4-1 Flußdiagramm
Für ein weiteres nichtnumerisches Beispiel ergibt sich ein komplizierteres Flußdiagramm mit sog. Zyklen oder Schleifen.
4. Die verschiedenen Ebenen der Programmierung
51
Beispiel: Ein kleiner Junge steht auf.
Abb. 4-2 Flußdiagramm
Zu d): Nach der Festlegung des Verfahrens kann die Programmierung in einer Programmiersprache, z. B. in einer problemorientierten Programmiersprache erfolgen. Dabei ist eine vollständige Folge von Anweisungen an die Rechenanlage notwendig, welche die Behandlung jedes möglichen Sonderfalles enthält. Zuf): Zum Testen des Programms empfiehlt es sich, speziell ausgesuchte Testdaten zu verwenden. Weiter sollte man die Problemlösung für diese Testdaten kennen, um dann die Ergebnisse überprüfen zu können. Zu g): Hierbei werden nun die tatsächlichen Daten verwendet, die im allg. wesentlich umfangreicher sind. Zu h): Man darf dem Programm nicht blindlings vertrauen, man muß die Ergebnisse entweder an der Realität prüfen oder durch Fehlerabschätzungen verifizieren. Zu i): Bei umfangreicheren Programmen sollte unbedingt eine Programmbeschreibung (Dokumentation) angefertigt werden. Dies ermöglicht z. B., daß Änderungen am Programm leichter vorgenommen werden können oder daß andere Personen sich leichter mit dem Programm vertraut machen bzw. es benutzen können. 4'
52
4.2 Die Ebene der Maschinen- und Assemblersprachen
4.2 Die Ebene der Maschinen- und Assemblersprachen Nach den einführenden allgemeinen Bemerkungen über das Programmieren wird nun an einigen Beispielen angedeutet, auf welchen Ebenen die Kommunikation Mensch—Maschine stattfindet und wie die Verkehrssprachen = Programmiersprachen strukturiert sind. Rechenautomaten verstehen nur ganz spezielle Programmiersprachen. Man teilt diese Programmiersprachen gewöhnlich in drei Klassen ein ([1], [2]): a) Maschinensprachen b) Maschinenorientierte Sprachen oder Assemblersprachen [3] c) Problemorientierte Sprachen [5], [3], [2] A priori versteht der Rechenautomat nur die Maschinensprache (den sogenannten Interncode). Die Befehle der Maschinensprache bestehen im allgemeinen nur aus Bitmustern und sind deshalb meist schlecht im Gedächtnis zu behalten (es fehlen die Assoziationen). Der erste Teil des Bitmusters wird Operationsteil und der zweite Teil Adreßteil genannt [4]. Die Vielfältigkeit der Informationsverarbeitung resultiert aus den vielen Interpretationsmöglichkeiten dieser Bitmuster. Um das Manipulieren mit Bitmustern zu erleichtern, verschlüsselt man den Operationsteil der Befehle mnemotechnisch und stellt den Adreßteil dezimal oder symbolisch dar. Für das Bitmuster „Addieren" wählt man z. B. die Buchstabenkombination ADD, für „Bringen" wählt man B, fiir „Speichern" wählt man SP. Sprachen, die solche Verschlüsselungen verstehen und außerdem sogenannte symbolische Adressen verarbeiten können, heißen maschinenorientierte oder Assembler-Sprachen. Mit Hilfe der Maschinensprache wird ein Übersetzungsprogramm (Assembler) geschrieben; die Maschine versteht nun ein in der maschinenorientierten Sprache geschriebenes Programm. Ehe ein Beispiel eines Maschinenprogramms vorgestellt wird, ist es zweckmäßig, zuerst etwas über Übersetzungen von einer Sprache in eine andere zu sagen. In der Informatik ist der Sprachgebrauch so, daß ein Übersetzer immer aus einer Ursprungssprache oder Quellsprache (source language) in eine Zielsprache oder Objektsprache (object language) übersetzt. Die Syntax und Semantik dieser Sprachen müssen dabei vollständig festliegen. (Es können daher keine „lebendigen" Sprachen sein, so wie es z. B. die deutsche Umgangssprache ist.) Man spricht von einer syntaktischen Beschreibung einer Sprache, wenn sich die Beschreibung nur auf die möglichen Gruppierungen der Grundzeichen der Sprache, also auf ihre Grammatik, und nicht auf ihre Bedeutung bezieht. Die Syntax sagt nichts darüber aus, ob die Gruppierung sinnvoll ist.
4. Die verschiedenen E b e n e n der P r o g r a m m i e r u n g
53
Die Semantik gibt den Bedeutungsinhalt der Zeichengruppierungen an. Es kann sehr wohl vorkommen, daß ein syntaktisch richtiger Satz semantisch unzulässig ist und umgekehrt. Beispiel: „Das Auto strickt einen Baum" wäre ein syntaktisch zulässiger Satz. Aus den „Grundzeichen" der deutschen Sprache a, b , . . ., z, A, B, . . . Z sind mögliche Gruppierungen zu „Worten" Auto, Baum, das, einen, strickt gebildet worden. Aus den Worten sind mögliche Gruppierungen zu dem oben genannten „Satz" gebildet worden. Nun ein Beispiel eines Maschinenprogramms, welches den arithmetischen Ausdruck berechnen soll: (2+ 3 ) * 4 + 7 Voraussetzung: Die Zahlen 2, 3, 4 und 7 stehen in Speicherzellen mit den Adressen 2000, 2001, 2002 und 2003. Das Programm befinde sich in den Speicherzellen mit den Adressen 1000, 1001, 1002, 1003, 1004. Das Ergebnis soll nach 2004 abgelegt werden. Die Zahl 10 1 ) bedeute „Bringe den Inhalt einer Speicherzelle aus dem Speicher in das Rechenwerk", 30 . . . „Addiere", 40 . . . „Multipliziere" und 20 . . . „Speichere ab".
Speicheradresse
Operationsteil
Adressteil
1000
10
2000
Bringe den Inhalt der Speicherzelle mit der Adresse 2000 in das Rechenwerk
1001
30
2001
Addiere im Rechenwerk den Wert aus der Speicherzelle mit der Adresse 2001. Das Ergebnis bleibt im Rechenwerk (der 1. Operand war schon im Rechenwerk)
Bedeutung
1002
40
2002
Multipliziere mit Inhalt von 2002
1003
30
2003
Addiere Inhalt von 2003
1004
20
2004
Speichere den Inhalt des Rechenwerkes (= Ergebnis) in die Zelle mit der Adresse 2004
Dasselbe Programm in einer maschinenorientierten Sprache könnte folgendermaßen lauten. ' ) Die Bitmuster werden aus Darstellungsgründen hier als dezimale Zahlen wiedergegeben.
54
4.3 Die Ebene der problemorientierten Sprachen
Voraussetzung: Die Zahlen 2 , 3 , 4 und 7 stehen in den Speicherzellen mit den symbolischen Adressen zwei, drei, hans, lore. Das Ergebnis soll nach x abgelegt werden. Operationsteil
Adressteil
Bedeutung
B
zwei
Bringe den Inhalt der durch die symbolische Adresse zwei bezeichneten Speicherzelle in das Rechenwerk.
A
drei
Addiere im Rechenwerk den Wert aus der Speicherzelle drei. Das Ergebnis bleibt im Rechenwerk. (Der 1. Operand war schon im Rechenwerk)
M
hans
Multipliziere mit hans
A
lore
Addiere lore
SP
X
Speichere den Inhalt des Rechenwerks ( = Ergebnis) in die Zelle mit der symbolischen Adresse x. (Reihenfolge der Befehle normalerweise: von oben nach unten, einer nach dem anderen).
Das Programmieren in einer maschinenorientierten Sprache ist zwar unseren menschlichen Denkschemata schon angepaßter als bei einer Maschinensprache, es ist aber doch noch ziemlich umständlich und langwierig, wie obige Beispiele zeigen. Es gibt sehr viele Fehlermöglichkeiten, das Korrigieren ist umständlich, und die Programmierzeit ist viel zu hoch. Es zeigte sich, daß der Programmierer mit strukturell einfachen Sprachen mehr Schwierigkeiten hat als mit komplizierteren. Daher die Entwicklung problemorientierter Sprachen.
4.3 Die Ebene der problemorientierten Sprachen Diese Sprachen werden ausführlicher unter Teil 5 beschrieben. Die Strukturunterschiede der problemorientierten Sprachen zu den maschinenorientierten Sprachen sind im allg. wesentlich größer als von den maschinenorientierten Sprachen zu den Maschinensprachen, die Übersetzungsprogramme heißen zur Unterscheidung hier Compiler. Heutzutage gibt es nahezu 2000 meist problemorientierte Programmiersprachen [5], wovon 200 weitere Verbreitung gefunden haben. In ALGOL 60 heißen obige Anweisungen z. B. nur noch: X := (2 + 3) * 4 + 7. ALGOL 60 (ALGOrithmic Language 1960) ist eine problemorientierte Programmiersprache, die sich sehr weit der konventionellen mathemati-
4. Die verschiedenen Ebenen der Programmierung
55
sehen Formelsprache angepaßt hat. Sie war eine der ersten genau definierten Programmiersprachen [3], Vergleicht man die beiden Programmteile, hier in problemorientierter Sprache und dort in maschinenorientierter Sprache, so bemerkt m a n , daß sich der Anweisungsumfang mit zunehmender Einsicht des C o m p u t e r s verringert. Das heißt, das Programm wird kürzer, weil der R e c h e n a u t o m a t durch den Compiler mehr „Einsicht" hat. Der Compiler n i m m t dem Programmierer programmtechnische Kleinarbeit ab.
Vorteile von Programmen, welche in einer problemorientierten Sprache geschrieben sind, gegenüber solchen, welche in einer maschinenorientierten Sprache geschrieben sind: a) Zeitersparnis beim Programmieren und dadurch schnellere Problemlösung. b) Austauschbarkeit zwischen Maschinen verschiedener Firmen (anlagenunabhängig). c) Gute Lesbarkeit, z. B. beim nachträglichen Korrigieren, Änderungsdienst dadurch einfacher. Das Programm ersetzt einen Großteil der Dokumentation, welche bei in Assemblercode geschriebenen Programmen notwendig ist. d) Die Sprache ist leichter zu erlernen
Nachteile: a) Die Compiler k ö n n e n beim Erzeugen der Objektprogramme im allgemeinen gewisse Raffinessen der speziellen Maschine nicht ausnützen. b) Manche Probleme sind gar nicht oder nur sehr umständlich lösbar. c) Zusätzliche Rechenzeit für die Übersetzung. d) Längere Rechenzeiten, mehr Speicherbedarf (also ineffizientere Objektprogramme). e) Die Programme erfordern zusätzliche Testhilfen. Ein Hauptunterschied zwischen problemorientierten und maschinenorientierten Sprachen besteht darin, daß die problemorientierten Sprachen im Gegensatz zu den maschinenorientierten ihre eigenen Sprachelemente nicht verändern k ö n n e n . Dieser Unterschied ist aber in der bisherigen Entwicklung der Programmiersprachen k a u m von Bedeutung.
Literatur [1J [2]
Bauer, F. L., K. Samuelson und R. Sauer: Moderne Rechenanlagen. Stuttgart 1964. Schneider, H. J. und D. Jurksch: Programmierung von Datenverarbeitungsanlagen. 2., erw. Aufl. Berlin 1970.
56 [3] [4] |5]
5.1 Einleitung und Überblick Bayer, G.: Einfuhrung in das Programmieren, Bd. I und II. Berlin 1969. (Bd. I erschien in 2., verb. Aufl. unter dem Titel: Einführung in das Programmieren in ALGOL. Berlin 1971.) Löbel, G„ H. Schmid und P. Müller: Lexikon der Datenverarbeitung. 1969. Sammet, J. E.: Programming Languages: History and Fundamentals. Englewood Cliffs, N. J. 1969.
5. Problemorientierte Programmiersprachen Von Claus Unger
5.1 Einleitung und Überblick Soll ein Problem, das bisher ohne Computer bearbeitet wurde, mit Hilfe eines Computers gelöst werden, so ergibt sich die Aufgabe, den Lösungsgang in einer Programmiersprache zu formulieren. Man wird eine Sprache suchen, deren Möglichkeiten der Problemstellung angepaßt sind und in die sich die gewohnte Form des Lösungsweges leicht übertragen läßt. So entspricht etwa der mathematischen Formel (a + b) 3 in der Programmiersprache FORTRAN der arithmetische Ausdruck (a + b) ** 3. Im Laufe der Zeit entstand eine große Anzahl problemorientierter Programmiersprachen. Da jede Sprache für jeden Computertyp ein eigenes Übersetzungsprogramm erfordert, stehen an einer Anlage oft nur wenige Sprachen zur Verfügung und der Benutzer kann nur unter diesen die geeignetste wählen. Um einerseits die Anzahl der Sprachen klein zu halten, andererseits dem Benutzer die Programmierarbeit weitgehend zu erleichtern, sind an vielen Anlagen für die einzelnen Sprachen umfangreiche Programmbibliotheken vorhanden; diese enthalten Programmteile zur Lösung häufig auftretender Teilaufgaben, die der Benutzer sehr einfach bausteinartig in sein Programm einbauen kann: Soll etwa ein Programm erstellt 1 werden, welches das Integral J e o
dx berechnet, so kann der Benutzer
an vielen Anlagen auf einen Programmteil zurückgreifen, der das Integral einer vorgegebenen Funktion über einem vorgegebenen Intervall bestimmt; lediglich Integrationsgrenzen und Form des Integranden müssen in der gewählten Sprache noch beschrieben werden, die Programmierung des eigentlichen Integrationsalgorithmus bleibt dem Benutzer erspart. Da diese Bibliotheksprogramme vielfach im Maschinencode programmiert werden, besteht so die Möglichkeit, den Anwendungsspielraum der betreffenden Sprache zu erweitern.
5. Problemorientierte Programmiersprachen
57
Vielfach wird eine vorhandene Sprache durch Hinzufügen einiger weniger neuer Sprachelemente einem neuen Problemkreis angepaßt. Hierbei besteht jedoch die Gefahr, daß für die neue Problemstellung unnötige Sprachelemente als Ballast in die „neue" Sprache mit übernommen werden und die Güte der vom Übersetzer erzeugten Objektprogramme beeinträchtigen. Einen umfassenden Überblick über die gebräuchlichen problemorientierten Programmiersprachen findet man im Buch von Sammet [1], das auch ein sehr umfangreiches Literaturverzeichnis enthält. Sammet schlägt die folgende Klasseneinteilung für problemorientierte Programmiersprachen vor (in Klammern jeweils einige typische Vertreter): -
Sprachen für numerisch wissenschaftliche Probleme (ALGOL 60, FORTRAN) Sprachen für kaufmännische Datenverarbeitung (COBOL) Sprachen zur Listen- und String-Manipulation (LISP, SLIP) Sprachen zur Verarbeitung mathematischer Formeln (FORMAC, SYMBAL) Vielzwecksprachen (ALGOL 68, PL/I) Sprachen für spezielle Anwendungen (APL, EXAPT, SIMULA)
Diese Einteilung ist insofern etwas willkürlich, als sich viele Sprachen verschiedener Klassen in ihren Möglichkeiten überlappen. So können in sehr vielen Sprachen etwa die arithmetischen Grundoperationen beschrieben werden. Ähnlich problematisch ist die Abgrenzung der Vielzwecksprachen, die die Möglichkeiten verschiedener Sprachen in sich vereinen. Die folgenden Abschnitte sollen anhand einiger elementarer Problemstellungen das Anwendungsspektrum problemorientierter Programmiersprachen umreißen, sie geben keinen Überblick über die Möglichkeiten der einzelnen Sprache. Da der Platz nicht einmal zu einer strengen syntaktischen Definition der einzelnen Sprachen ausreicht, werden die einzelnen Programmbeispiele verbal „erklärt", um so die Korrespondenz zwischen Aufgabenstellung und Programm deutlich zu machen. Es wurden ferner nur Sprachen ausgewählt, für die dem Verfasser ein Übersetzer zur Verfügung stand. So fehlen Beispiele für eine Listen- sowie für eine Vielzwecksprache. Viele Sprachen haben ihre eigene typische Nomenklatur, in der sie definiert oder beschrieben werden; so werden gleichartige Sprachelemente vielfach unterschiedlich bezeichnet: Eine FORTRAN-Typanweisung etwa entspricht in ihrer Bedeutung genau einer ALGOL 60-Typvereinbarung. In den folgenden Abschnitten werden jedoch inhaltlich gleiche Zusammenhänge stets mit demselben Namen bezeichnet, um in der Wirkung ähnliche Sprachelemente auch gleich zu benennen.
58
5.2 ALGOL 60, FORTRAN
5.2 ALGOL 60, FORTRAN ALGOL 60 und FORTRAN sind wohl die für numerisch-wissenschaftliche Probleme meistbenutzten Sprachen. Da an vielen Anlagen nur wenige Sprachen zur Verfugung stehen, werden sie überdies oft als Vielzwecksprachen eingesetzt. Sie dienen in erster Linie zur Formulierung numerischer Rechenvorschriften und Verfahren und ermöglichen es, mathematische Notationen mit nur geringfügigen Änderungen zu übernehmen. Ein typisches ALGOL 60- bzw. FORTRAN-Programm ist rechenintensiv, weniger Eingabe/Ausgabe-intensiv. Beide Sprachen besitzen viele ähnliche Sprachelemente, wobei ALGOL 60 die flexiblere Sprache ist. Dafür ist das Objektprogramm eines FORTRAN-Programms in vielen Fällen schneller als das eines entsprechenden ALGOL 60-Programms. Die Aufgabe bestehe darin, fünf auf einer Lochkarte abgelochte reelle Zahlen einzulesen, auszudrucken, aufzusummieren und das Ergebnis wiederum auszudrucken. Das — nicht optimal programmierte — ALGOL 60-Programm hat dann etwa die folgende Form (die Zeilenzählung gehört nicht zum Programm): Zeile: 1 'BEGIN' 'COMMENT' EINLESEN UND ADDIEREN VON 5 ZAHLEN; 2 'REAL' 'ARRAY' ZAHL [1:5]; 3 'REAL' SUMME; 4 'INTEGER' I; 5 'FOR' I := 1 'STEP' 1 'UNTIL' 5 'DO' 6 INPUT (12, '('3DV2DT, ZAHL [I]); 7 OUTPUT (1,'('/'('EINGABEDATEN')'/')'); 8 'FOR' I := 1 'STEP' 1 'UNTIL' 5 'DO' 9 OUTPUT (1,'('3Z.2DB')\ ZAHL [I]); 10 SUMME := 0; 11 'FOR' I := 1 'STEP' 1 'UNTIL' 5 'DO' 12 13 SUMME := SUMME + ZAHL [I] OUTPUT (1,'('2/TSUMME = ')', 4ZD.2D')', SUMME); 14 15 'END'; Die fünf Zahlen seien abgelocht in der Form 3711300112032150000200146 Das angegebene Programm erzeugt den Ausdruck EINGABEDATEN 371.13 1.12 32.15 .02 1.46 SUMME = 405.88
5. Problemorientierte Programmiersprachen
59
Es folgt eine kurze Erläuterung des Programms: Jedes ALGOL 60-Programm enthält u. a. Konstanten (0,5,'('3DV2DT), Sprachkonstanten ('BEGIN', 'END', 'FOR'),Standardnamen (INPUT, OUTPUT), sowie vom Benutzer frei wählbare Variablennamen (ZAHL, SUMME, I). Vertreter dieser Klassen finden wir in jeder Sprache wieder; es würde den Rahmen dieses Abschnitts sprengen, genaue syntaktische Definitionen für die einzelnen Elemente anzugeben. Zeile 1 und Zeile 15 kennzeichnen Beginn und Ende des Programms. Zeile 2 enthält einen Kommentar zur Dokumentation der Aufgabe, der vom Übersetzer nicht ausgewertet wird. Zeile 3—5 bilden den Vereinbarungsteil; er enthält Angaben über sämtliche im späteren Programm benutzten Variablen, deren Namen vom Benutzer frei gewählt wurden. So wird in Zeile 3 ein Zahlsatz vereinbart, in dem 5 Elemente unter dem Sammelnamen ZAHL zusammengefaßt werden. Auf ein einzelnes Element dieses Zahlsatzes kann durch Angabe des Namens sowie eines Indexes zugegriffen werden. Der mathematischen Notation ZAHL [3] entspricht die ALGOL 60-Notation ZAHL [3]; die Sprachkonstante 'REAL' gibt an, daß der Zahlsatz zur Aufnahme reeller Zahlen vorgesehen ist. Zeile 4 vereinbart eine einfache Variable SUMME, ebenfalls zur Aufnahme einer reellen Zahl, Zeile 5 eine einfache Variable I zur Aufnahme einer ganzen Zahl. In Zeile 6 beginnt der Anweisungsteil. Während der Vereinbarungsteil lediglich Informationen für den Übersetzer enthält, erzeugt der Übersetzer anhand der Anweisungen das spätere Objektprogramm, bzw. führt diese Anweisungen aus (siehe [5.7]). Zeile 6 und 7 enthalten eine Laufanweisung zum Einlesen der 5 vorgegebenen Zahlen. Die Variable I nimmt nacheinander die Werte 1, 2, 3, 4, 5 an. Für jeden Wert I werden 5 Zeichen von der Lochkarte eingelesen, als Zahl interpretiert und in der Variablen ZAHL [I] abgelegt. Die Formatangabe 3DV2D legt dabei fest, daß jeweils 5 Zeichen zu einer Zahl gehören, wobei nach den ersten 3 Zeichen ein Dezimalpunkt einzufügen ist. Zeile 8 bewirkt den Ausdruck EINGABEDATEN, Zeile 9 und 10 dienen analog zu Zeile 6 und 7 zum Ausdruck der eingelesenen Zahlen, diesmal in gut lesbarer Form. Zeile 10—11 enthalten die Summation. Der Variablen SUMME wird der Wert 0 zugewiesen, anschließend werden nacheinander die Werte ZAH L [1 ] , . . . ZAHL [5] zum jeweils letzten Wert von SUMME hinzuaddiert. Zeile 14 schließlich bewirkt den Ausdruck des Ergebnisses. Zum Schluß sei das entsprechende FORTRAN-Programm angegeben, das in seiner Struktur große Ähnlichkeit mit dem ALGOL 60-Programm aufweist:
60 Zeile 1 2 3 4 5 6 7 8 9 10 11
5.3 COBOL
C
EINLESEN UND ADDIEREN VON 5 ZAHLEN DIMENSION ZAHL(5) READ(12,100) (ZAHL(I), 1=1,5) 100 FORMATdOF5.2) SUMME =0. DO 10 1=1,5 10 SUMME = SUMME+ ZAHL(I) WRITE(1,101) (ZAHL(I), 1=1,5), SUMME 101 FORMAT(/13H EINGABEDATEN/, 1H ,5(F6.2,X),2/, 19H SUMME = ,F8.2) END
Der Vereinbarungsteil besteht lediglich aus Zeile 2, da einfache Variablen, wenn sie gewissen Konventionen genügen, nicht explizit vereinbart werden müssen, sondern als implizit vereinbart gelten. Eine Ausgabe bzw. Eingabe wird jeweils mit Hilfe zweier Anweisungen beschrieben, von denen die erste (etwa Zeile 3) angibt, welche Werte aus- bzw. eingegeben werden sollen, während die zweite Anweisung die Form beschreibt, in der die Ausbzw. Eingabe erfolgen soll. Eine nähere Erläuterung des Programms wird übergangen, wie auch in den folgenden Abschnitten jeweils nur wesentlich neue Sprachelemente besprochen werden.
5.3 COBOL COBOL ist wohl die überhaupt bekannteste Programmiersprache. Sie ist überdies im Wesentlichen die einzige Sprache, die speziell für kaufmännische Belange entwickelt wurde. COBOL bietet im Gegensatz zu ALGOL 60 und FORTRAN die Möglichkeit, sehr komplexe und umfangreiche Datenstrukturen zu definieren, zu verwalten und zu verarbeiten. Ein typisches COBOL-Programm enthält im allgemeinen nur relativ einfache, dafür aber oft angewendete Rechenvorschriften. Um einen Eindruck von einem COBOL-Programm zu geben, sei im folgenden ein Programm angegeben und kurz erläutert, das dasselbe leistet wie die Programme aus 5.2: Zeile 1 2 3 4 5 6 7 8 9
IDENTIFICATION DIVISION. PROGRAM-ID. COBOL-TR4-BEISPIEL. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. TR 4. OBJECT-COMPUTER. TR 4. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT KARTE ASSIGN TO CARD-READER.
5. Problemorientierte Programmiersprachen Zeile 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
61
SELECT PRINT ASSIGN TO ON-LINE-PRINTER SDR 162. DATA DIVISION. FILE SECTION. FD KARTE LABEL RECORDS OMITTED DATA RECORD IS ZFELD. 01 ZFELD. 02 ZAHL PICTURE 9(3)V99 OCCURS 5. FD PRINT LABEL RECORDS OMITTED DATA RECORDS ARE PROTOKOLL ERGEBNIS. 01 PROTOKOLL. 02 P PICTURE 9(3).99B OCCURS 5. 01 ERGEBNIS. 02 TEXT PICTURE X(10). 02 SUMME PICTURE Z9(4).99. WORKING-STORAGE SECTION. 01 I PICTURE 99 COMPUTATIONAL. 01 SU PICTURE 9(5)V99 COMPUTATIONAL. PROCEDURE DIVISION. START. MOVE 0 TO I SU OPEN INPUT KARTE OPEN OUTPUT PRINT MOVE'EINGABEDATEN'TO ERGEBNIS WRITE ERGEBNIS AFTER 1 LINES READ KARTE RECORD AT END GO TO FEHLER. SCHLEIFE. ADD 1 TO I IF I LESS 6 ADD ZAHL (I) TO SU MOVE ZAHL (I) TO P (I) GO TO SCHLEIFE. WRITE PROTOKOLL AFTER 2 LINES MOVE 'SUMME= ' TO TEXT MOVE SU TO SUMME WRITE ERGEBNIS AFTER 2 LINES. ENDE. CLOSE KARTE PRINTSTOP RUN. FEHLER. MOVE 'NICHT VORHANDEN' TO ERGEBNIS WRITE ERGEBNIS AFTER 2 LINES GO TO ENDE.
Jedes COBOL-Programm besteht aus vier Programmteilen. Der Identifikationsteil (Zeile 1—2) dient zu Dokumentationszwecken und zur Benennung des Gesamtprogramms.
62
5.4 SYMBAL
Der Maschinenteil (Zeile 3—10) beschreibt die Korrespondenz zwischen den physikalischen Einheiten des Computers und den logischen Einheiten des COBOL-Programms. Es wird der Computer angegeben, auf dem das Programm übersetzt und gerechnet werden soll, ferner werden Dateien benannt und E/A-Geräten zugeordnet (Zeile 9—10). Im Datenteil (Zeile 1 1 - 2 8 ) werden sämtliche Dateneinheiten, auf die sich das COBOL-Programm bezieht, definiert und in ihrer Struktur beschrieben. So enthält der Datenteil u. a. die Formatvorschriften für die Ein-/Ausgabe. Einzelheiten möge der interessierte Leser einem COBOL-Handbuch entnehmen. Den Schluß des Programms bildet der Anweisungsteil (Zeile 29—47), der die eigentlichen Rechenvorschriften enthält. Zeile 3 3 - 3 4 bewirken die Ausgabe des Textes EINGABEDATEN, Zeile 35 das Einlesen der Datenkarte. Da COBOL eine Laufanweisung (eines der am häufigsten benutzten Sprachelemente in ALGOL und FORTRAN) nicht kennt, tritt — beim Aufsummieren der fünf Zahlen - an ihre Stelle eine ausprogrammierte Schleife (Zeile 37—39). Zeile 40—44 schließlich bewirken den Ausdruck der Eingabedaten sowie des Ergebnisses. Zeile 4 5 - 4 7 erzeugen den Fehler-Ausdruck NICHT V O R H A N D E N , falls keine Eingabedaten vorliegen. Der Ausdruck selbst entspricht genau dem Ausdruck der Programme aus 5.2.
5.4 SYMBAL Mit Hilfe der bisher beschriebenen Sprachen können Programme formuliert werden, die mit Hilfe vorgegebener Zahlenwerte und Rechenvorschriften numerische Ergebnisse berechnen. Schon die einfache Aufgabe, zwei Polynome in der Unbekannten x miteinander zu multiplizieren, ist in diesen Sprachen nicht formulierbar. (Man möchte etwa p i ( x ) = 1 + 2x und p 2 ( x ) = 3 + 5x miteinander multiplizieren und als Ergebnis das Polynom p(x) = p i ( x ) • P 2 M = 10x 2 + 1 l x + 3 erhalten). Dabei kann das Umformen oder Aufstellen algebraischer Formeln genau so mühselig und fehleranfällig sein wie das numerische Auswerten vorgegebener Formeln oder Algorithmen. Eine Möglichkeit, algebraische Formeln zu manipulieren, bietet SYMBAL. Gestellt sei die Aufgabe, nacheinander die Ausdrücke (1 + x) 1 , i = 1, 2, 3, 4 in Form von Polynomen i-ten Grades darzustellen. Ferner interessiert die Ableitung des letzten Polynoms.
5. Problemorientierte Programmiersprachen
63
Das SYMBAL-Programm hat die Form Zeile 1 'BEGIN' 'NEW'PROD, ABLX; 2 3 MODE [5] := 0; MODE [1] := 1000; 4 5 PROD := 1; 'FOR' N := 1:4 'DO' 6 7 PROD := PROD * (1+X); 8 ABLX : = ' D ' X : 1 PROD; 'END' 9 Das Programm liefert folgenden Ausdruck: MODE [5] := 0; 0.0.149 MODE [1] := 1000; 0.0.152 PROD := 1; 0.0.157 PROD := 1 + X; 0. 0.168 PROD := 1 + 2«X+ Xt2; 0.0.185 PROD := 1 + 3*X + 3*Xt2 + Xt3; 0.0.212 PROD := 1 + 4*X + 6*Xt2 + 4«Xt3 + Xt4; 0. 0.246 ABLX := 4 + 12»X + 12*Xt2 + 4*Xt3; 0. 0.275 EXECUTION COMPLETE 0. 0.278 Offensichtlich ähnelt das Programm in seinem Aussehen sehr einem ALGOL-Programm. Wir unterscheiden wieder einen Vereinbarungsteil (Zeile 2) und einen Anweisungsteil (Zeile 3 - 8 ) . Zeile 3 - 4 steuern die Anwendung des distributiven Gesetzes, sie bewirken, daß der Ausdruck (1 + x) 1 ausmultipliziert wird und nicht in der kompakten Form stehenbleibt. Die Variable PROD erhält den Wert 1 (Zeile 5) und wird anschließend mit Hilfe einer Laufanweisung viermal mit dem Ausdruck (1 + x) multipliziert, wobei für x kein Wert bekannt ist (Zeile 6—7). Anschließend wird in Zeile 8 das entstandene Polynom 4. Grades nach x einmal differenziert. Das Programm wird vom Übersetzer interpretativ abgearbeitet (siehe 5.7). Im Ausdruck erscheint - wenn nicht unterdrückt - jede Rechenoperation protokolliert unter Angabe der bisher verbrauchten Rechenzeit (auf einer CD 6600) in Millisekunden. Es wird jetzt dasselbe Programm betrachtet, in das außer Zeile 3 lediglich die Zeile 6 eingefügt wurde: Zeile 1 'BEGIN' 2 'NEW'PROD, ABLX; 3 MODE [3] := 1; 4 MODE [5] := 0;
64
5.5 SIMULA-67
Zeile 5 MODE [1] := 1000; 6 X := 5/7; 7 PROD := 1; 8 PROD := PROD*( 1+X ); 9 ABLX := 'D' X: 1 $ PROD; 10 'END' Im Gegensatz zum ersten SYMBAL-Programm wird jetzt der Variablen X in Zeile 6 ein Wert zugewiesen und anschließend PROD jeweils mit der rationalen Zahl 12/7 multipliziert. Man erhält den Ausdruck: MODE [3] := 1; MODE [5] := 0; MODE [1] := 1000; X := 5/7; PROD := 1; PROD := 12/7; PROD := 144/49; PROD := 1728/343; PROD := 20736/2401; - I V A R IN DIFF ABLX := 0 EXECUTION COMPLETE
0.0.169 0.0.174 0.0.179 0.0.184 0.0.189 0.0.195 0. 0.203 0.0.212 0.0.221 0. 0.224 0. 0.227 0. 0.230
SYMBAL kennt nur rationale Zahlen, numerische Ergebnisse werden exakt in Form rationaler Zahlen dargestellt; damit werden Rundungsfehler grundsätzlich vermieden. Zwei rationale Zahlen werden nicht miteinander multipliziert, es wird vielmehr zwei Zeichenketten, die die beiden Zahlen darstellen, mit Hilfe logischer Operationen eine neue Zeichenkette zugeordnet, die das Ergebnis darstellt. Die „Multiplikationszeit" ist damit sehr stark abhängig von der Länge der beteiligten Zeichenketten, beim angegebenen Programm ist sie um den Faktor 1000 größer als die eigentliche Gleitkomma-Multiplikationszeit der CD 6600. Durch die dadurch bedingten sehr großen Rechenzeiten werden dem Einsatz von SYMBAL für umfangreiche numerische und natürlich auch algebraische Aufgaben enge Grenzen gesetzt. 5.5 SIMULA-67 SIMULA-67 gehört zur Klasse der Simulationssprachen und dient u. a. zur Beschreibung von Systemen, in denen eine Reihe diskreter Ereignisse stattfindet. Ein Simulationsprogramm kann etwa dazu dienen, ein physikalisches System auf einem Digitalrechner nachzubilden, um durch systematisches Verändern der Systemparameter des Modells den optimalen Entwurf
5. Problemorientierte Programmiersprachen
65
des zugrunde liegenden physikalischen Systems zu ermöglichen. SIMULA-67 ist eine reine Erweiterung von ALGOL 60. Dem folgenden Programm liegt die Aufgabe zugrunde, einen Schalter zu simulieren, an dem zu zufälligen Zeitpunkten Kunden eintreffen, deren Bedienzeiten ebenfalls zufällig sind. Die Bedienzeiten wie auch die Zeitabstände zwischen dem Eintreffen zweier Kunden seien exponentiell verteilt mit den Mittelwerten 6.7 bzw. 10. Ein entsprechendes SIMULA-67-Programm hat die folgende Form: Zeile 1 ' 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 5
SIMULATION 'BEGIN' 'BOOLEAN'FREI; ' R E A L ' S C H A L T E R F R E I , GESPRAECH; 'INTEGER'U,l; PROCESS ' C L A S S ' KUNDE(N); ' I N T E G E R ' N; 'BEGIN' OUTINT(N,4); O U T T E X T C EINGETROFFEN"); OUTFIX(TIME,3,11; O U T I M A G E ; M: ' I F ' 'NOT' F R E I ' T H E N ' 'BEGIN' OUTINT(N,4); O U T T E X T C W A R T E T "); OUTFIX(TIME,3,11); O U T I M A G E ; HOLD(SCHALTERFREI-TIME); 'GOTO' M; ' E N D ' S C H A L T E R BESETZT; FREI :='FALSE'; OUTINT(N,4); O U T T E X T C WIRD B E D I E N T " ) ; OUTFIX(TIME,3,11); O U T I M A G E ; GESPRAECH := NEGEXP(0.15,U); S C H A L T E R F R E I := T I M E + GESPRAECH; HOLD (GESPRAECH); FREI :='TRUE'; OUTINT(N,4); O U T T E X T C IST F E R T I G " ) ; OUTFIX(TIME,3,11); O U T I M A G E ; ' E N D ' KUNDE; F R E I := ' T R U E ' ; U := 3; O U T T E X T C K U N D E NR. ZUSTAND ZEIT"); O U T I M A G E ; OUTTEXTC "); O U T I M A G E ; ' F O R ' I := 1 'STEP' 1 ' U N T I L ' 5 ' D O ' 'BEGIN' ' A C T I V A T E ' 'NEW' KUNDE(I); HOLD(NEGEXP(0.1,U));
Hieber, Einf. i. Teilgeb. d. Informatik I
5.5 SIMULA-67
66 Zeile 35 'END' I; 36 HOLDdOOOO); 37 'END'
Es erfolgt der Ausdruck: KUNDENR. 1 1 2 2 3 3 1 2 3 4 4 2 3 4 5 5 3 4 5 4 5 5
ZUSTAND EINGETROFFEN WIRD BEDIENT EINGETROFFEN WARTET EINGETROFFEN WARTET IST FERTIG WIRD BEDIENT WARTET EINGETROFFEN WARTET IST FERTIG WIRD BEDIENT WARTET EINGETROFFEN WARTET IST FERTIG WIRD BEDIENT WARTET IST FERTIG WIRD BEDIENT IST FERTIG
ZEIT 0.000 0.000 19.125 19.125 29.030 29.030 32.080 32.080 32.080 32.284 32.284 34.606 34.606 34.606 37.352 37.352 45.870 45.870 45.870 46.899 46.899 64.396
Im Programm unterscheiden wir wiederum einen Vereinbarungsteil (Zeile 1 - 2 6 ) und einen Anweisungsteil (Zeile 27-36). Der Vereinbarungsteil enthält seinerseits ein Unterprogramm (Zeile 6 - 2 6 ) , das das Verhalten des Kunden am Schalter beschreibt und wiederum Anweisungen besitzt. Das Hauptprogramm beginnt mit seinen Anweisungen in Zeile 27. Die Variable FREI, die anzeigt, ob der Schalter frei oder besetzt ist, erhält den Boole'schen Wert 'TRUE'. Zeile 29—30 bewirken den Ausdruck der Überschrift über der Ergebnistabelle. In Zeile 31—35 beschreibt eine Laufanweisung das Ankommen neuer Kunden. Sofort nach dem Eintreffen wird das oben erwähnte Unterprogramm KUNDE aufgerufen (Zeile 33). Ist dieses durchlaufen worden, wird eine Zufallszahl erzeugt (Zeile 34), die das Eintreffen des nächsten Kunden angibt. Die HOLD-Anweisung bestimmt, für wielange das Programm an dieser Stelle zu unterbrechen ist; sie bewirkt einen
5. Problemorientierte Programmiersprachen
67
Eintrag des Endes der Unterbrechung in eine interne Tabelle, sucht in dieser Tabelle den niedrigsten Eintrag, löscht diesen und setzt das Programm an der entsprechenden Unterbrechungsstelle f o r t . Das Unterprogramm unterscheidet, nach einem Ausdruck in Zeile 8—9, zwei Zustände des Schalters. Ist der Schalter frei (FREI = ' T R U E ' , Zeile 17—25), so wird der Schalter durch den neuen Kunden belegt (Zeile 17—19). Mit Hilfe einer Zufallszahl wird für diesen Kunden eine Bediendauer (Zeile 20) und damit der Zeitpunkt, zu dem der Schalter wieder frei wird, festgelegt (Zeile 21). Anschließend wird das Programm für die Dauer des Gesprächs unterbrochen, anschließend ist der Schalter frei (Zeile 23), es erfolgt ein entsprechender Ausdruck (Zeile 2 4 - 2 5 ) und das Hauptprogramm wird in Zeile 34 fortgesetzt. Ist der Schalter besetzt (Zeile 10—17), so erfolgt der entsprechende Ausdruck (Zeile 1 2 - 1 3 ) und das Programm wird an dieser Stelle solange unterbrochen, bis der Schalter wieder frei ist (Zeile 14, TIME liefert bei seinem Aufruf jeweils die aktuelle Modellzeit, die mit der Uhrzeit nichts zu tun hat). Nach Fortsetzung des Programms erfolgt ein Sprung auf die Marke M (Zeile 10). Der Ausdruck ermöglicht es, den Verkehr am Schalter und den dynamischen Ablauf des Programms zu verfolgen. Durch weitere Anweisungen ließen sich Modellparameter, wie mittlere Wartezeit eines K u n d e n , Anzahl gleichzeitig wartender K u n d e n etc. bestimmen und mit ihrer Hilfe k ö n n t e das Modell, etwa durch A n n a h m e eines weiteren Schalters, den Anforderungen der Kunden besser angepaßt werden.
5.6 EXAPT EXAPT ist ein Beispiel für eine Sprache, die für einen sehr speziellen Anwendungsbereich e n t w o r f e n wurde und nur innerhalb desselben einsetzbar ist. Werkzeugmaschinen werden vielfach durch Lochstreifen gesteuert. Die manuelle Erstellung eines derartigen Steuerlochstreifens ist mühsam und fehleranfällig, da ein Fertigungsablauf, etwa das Drehen einer Welle, in sehr viele Einzelschritte zerlegt werden m u ß . Der EXAPT-Übersetzer selbst ist im Wesentlichen in F O R T R A N geschrieben und arbeitet das Quellprogramm interpretierend ab (siehe 5.7). Der A u f b a u eines EXAPT-Programms sei mit Hilfe der folgenden Aufgabe erklärt (mit freundlicher Genehmigung des Instituts für Steuerungstechnik der Werkzeugmaschinen und Fertigungseinrichtungen an der Universität Stuttgart): 5
68
5.6 EXAPT
In einen quaderförmigen Block soll eine elliptische Tasche gefräst werden (siehe Abb. 5-1).
Abb. 5 - 1
Das zugehörige EXAPT-Programm lautet: Zeile 1 2 3 4 5 6 7 8 9 10 11
PARTNO/AUSFRAESEN EINER ELLIPTISCHEN TASCHE MACHIN/PP PART/M ATE RL,6 P PO IN T/70,30,0 E ELLIPS/CENTER,P,35,17,30 KON = CONTUR/ELMENT,E,-25,RGTLIM GOTO/P A FACMIL/SO,TOOL,1,2,MEANDR,INCRES WORK/A CUT/OUT,KON,0 FINI
Das Programm besteht aus drei Teilen: Teil 1 (Zeile 1—3) enthält allgemeine Angaben über die Art der Aufgabe (Zeile 1), die benutzte Werkzeugmaschine (Zeile 2) sowie das Material des Werkstücks (Zeile 3). Teil 2 (Zeile 4—6) dient zur geometrischen Beschreibung des zu fertigenden Werkstücks. In Zeile 4 wird der Mittelpunkt P der Ellipse definiert, in Zeile 5 die Ellipse E selbst. Zeile 6 schließlich definiert eine Kontur durch Angabe der Ellipse, durch Angabe der Bodenfläche der Tasche sowie durch die Festlegung, daß rechts von der Ellipse (im mathematisch positiven Sinn) das Material stehen bleiben soll.
5. Problemorientierte Programmiersprachen
69
Teil 3 (Zeile 7 - 1 1 ) schließlich beschreibt den eigentlichen Bearbeitungsablauf. Der Fräser soll zum Punkt P verfahren werden (Zeile 7) und von dort aus mit dem Werkzeug 1,2 meanderförmig von innen nach außen die Tasche ausfräsen (Zeile 8 - 1 0 ) . FINI beendet das Programm. Der Aufruf des Programms bewirkt das Ausstanzen des Steuerlochstreifens.
5.7 Verarbeiten eines Quellprogramms Man unterscheidet im Wesentlichen zwei Methoden der Übersetzung, die compilierende und die interpretierende; entsprechend heißen die zugehörigen Programme Compiler bzw. Interpreter. Ein Compiler erzeugt grundsatzlich mit Hilfe des Quellprogramms ein Objektprogramm im Maschinencode, das eventuell noch von einem Lader rechenbereit gemacht werden muß (Abb. 5-2).
Abb. 5 - 2 Abarbeiten eines Quellprogramms mit Hilfe eines Compilers
Das gestartete Objektprogramm liest seinerseits seine Daten ein und erzeugt die gewünschten Ergebnisse. Übersetzung und Lauf des Programms erfolgen also nacheinander. Syntaktische Fehler im Quellprogramm können vor Start des Objektprogramms erkannt werden, für erneute Programmläufe kann auf das Objektprogramm zurückgegriffen werden, das Quellprogramm muß nicht erneut übersetzt werden. Der Interpreter interpretiert eine Anweisung und führt sie direkt anschließend aus (Abb. 5-3), so daß nach dem Abarbeiten der letzten Anweisung der Lauf des gesamten Programms gleichfalls beendet ist. Syntaktische Fehler in einer Anweisung machen unter Umständen die gesamte vorher geleistete Rechenarbeit wertlos. Wird ein Programmteil dynamisch mehrfach durchlaufen, so muß er ebenso oft übersetzt werden; natürlich erfordert jeder Lauf des Gesamtprogramms ebenfalls eine erneute Übersetzung.
70
6.1 Stapelverarbeitung
Von den genannten Sprachen werden EXAPT und SYMBAL interpretierend, die übrigen Sprachen im allgemeinen compilierend übersetzt.
Abb. 5 - 3 Abarbeiten eines Quellprogramms mit Hilfe eines Interpreters
Literatur (1]
Summet, J. E.: Programming Languages: History and Fundamentals. Englewood Cliffs, N. J . 1969.
Nähere Angaben zu den erwähnten Programmiersprachen entnimmt man am besten den Handbüchern der entsprechenden Rechenanlagen.
6. Programmiersprachen bei Stapelverarbeitung bzw. Dialogbetrieb Von Werner Dirlewanger Es gibt aus der Sicht des Benutzers von Rechenanlagen zwei sich wesentlich unterscheidende Betriebsformen: Einerseits die heute noch in den meisten Rechenzentren angewendete Stapelverarbeitung (Abschnittsmodus), und andererseits die neuere, bei Teilnehmersystemen mögliche Form des Dialogs Mensch—Maschine (Gesprächsmodus). Die verwendete Betriebsform bleibt nicht ohne Einfluß auf die Art der zu benutzenden Programmiersprachen. Inwieweit sich die üblichen Programmiersprachen für beide Betriebsformen eignen und wie die Programmiersprachen aussehen, die insbesondere für den Dialogbetrieb geeignet sind, ist Thema der nachfolgenden Abschnitte.
6.1 Stapelverarbeitung Bei der Stapelverarbeitung wird (s. Abschnitt 2.5) die Aufgabe jedes Benutzers in eine Warteschlange eingereiht. Ist die Aufgabe an der Reihe,
6. Programmiersprachen bei Stapelverarbeitung b z w . Dialogbetrieb
71
dann wird sie der Rechenanlage zur Bearbeitung übergeben. Im Programm selbst ist die Vorschrift niedergelegt, wie die Daten zu verarbeiten sind. Daneben sind aber, um eine konkrete Aufgabe zu lösen, Anweisungen an die Maschine notwendig, die die Durchführung des Programmes durch die Maschine steuern. Alle diese zum Ablauf der Bearbeitung notwendigen Anweisungen an das Betriebssystem der Anlage müssen bereits vorher in die Benutzeraufgabe mit eingefugt worden sein. Sie sind als „Steueranweisungen" (Steuerkarten) in der meist in Form eines Kartenpaketes vorliegenden Benutzeraufgabe enthalten. Die Steueranweisungen stellen die formale Sprache dar, in der der Benutzer seine Anweisungen an die Maschine formuliert. Der Benutzer hat bei der Stapelverarbeitung keine Möglichkeit zu einer Einflußnahme auf den Bearbeitungsablauf, die über das hinausgeht, was mittels Steuerkarten schon vorher festgelegt war. Die heute meistverwendeten Programmiersprachen (FORTRAN, COBOL, ALGOL, PL 1 u. a.) sind entsprechend diesem Betriebsmodus entworfen worden. Sie dienen zur Formulierung einer Rechen- oder Datenverarbeitungsvorschrift (Programm), das nach seinem Start von der Maschine ohne weiteres Zutun des Programmierers durchgeführt werden soll. Abb. 6 - 1 zeigt ein typisches
(T) Anfangskarte. Angabe des Benutzernamens (2) Starten des Übersetzungsvorgangei (3) Erzeugen eines startfahigen Maschinenprogramms (3) Starten des Programmes (B) Endekarte
Abb. 6 - 1 Beispiel einer Benutzeraufgabe (Rechenanlage TR 440 AEG-Telefunken)
72
6.2 Der Dialog Mensch-Maschine
Beispiel für den Aufbau einer Benutzeraufgabe, die im Abschnittsmodus verarbeitet werden soll: Ein FORTRAN-Programm soll eingegeben, übersetzt und dann gestartet werden.
6.2 Der Dialog Mensch—Maschine Im Dialogbetrieb hat der Benutzer die Möglichkeit, seine Probleme der Maschine direkt zu stellen und erhält, falls die Bearbeitung nicht sehr umfangreich ist, sofort die Antwort. Sofort bedeutet im Rahmen der Antwortzeit des Systems, die üblicherweise den Wert von wenigen Sekunden nicht überschreitet. Hat die Maschine eine größere Aufgabe eines Benutzers zu bearbeiten, dann kann der Benutzer in den Bearbeitungsablauf eingreifen, und zwar spontan oder als Reaktion auf eine Anfrage der Maschine. Die ersten Versuche zu Dialogen auf der Ebene höherer Programmiersprachen würden in den USA etwa 1960 unternommen. Ein erstes System war das in Cambridge, Mass. 1962 in Betrieb genommene BBN-System (s. [1]). Ein bereits sehr komfortables System war das CTSS-System, das am M.I.T. 1963 in Betrieb genommen wurde (s. [ 1 ]). Dieses und das von der RANDCorporation 1964 in Betrieb genommene JOSS-System waren richtungsweisend für die Entwicklung von dialogfähigen Systemen (s. [2]). Der Dialog mit der Maschine ist eine problemorientierte Konversation, in der der Rechner jeden Teilschritt untersucht und kommentiert. Im Fehlerfall kann der Benutzer seine Anweisung an den Computer verbessern. Beim Programmlauf kann die Wirkung jedes Rechenschrittes verfolgt werden (Testen auf Quellebene zur Objektzeit). Das Arbeiten im Gesprächsmodus hat gegenüber dem Abschnittsmodus (Stapelbetrieb) eine Reihe von Vorteilen: Schnelleres Lernen der Programmierung Schnellere Programmerstellung Schnelleres Austesten von Programmen Kürzere Gesamtzeit bis zur Lösung eines Problems Die zum Dialog verwendbaren problemorientierten Sprachen lassen sich wie folgt klassifizieren: 1. Neuentwicklungen (z. B. BASIC, APL). 2. Erweiterung bekannter Sprachen (z. B. ALGOL 60, COBOL, FORTRAN). Die Erweiterung entsteht im Wesentlichen durch Hinzufügen von speziellen Ein-/Ausgabeanweisungen und von Elementen zum Dialog zur Objektzeit. 3. Sonderentwicklungen, z. B. Sprachen für den graphischen Dialog. Um mittels einer dialogfähigen problemorientierten Sprache ein Gespräch mit der Maschine führen zu können, muß das Betriebssystem der Anlage für den Teilnehmerbetrieb eingerichtet sein und geeignete Steueranweisungen (Kommandos) besitzen.
6. Programmiersprachen bei Stapelverarbeitung bzw. Dialogbetrieb
73
Betreibt man eine Anlage im Gesprächsmodus, dann wendet man für eine bestimmte Aufgabe im allg. etwas mehr Maschinenzeit auf als im Stapelbetrieb. Die zusätzlich angewendete Maschinenzeit bringt jedoch eine Verringerung der Arbeitszeit der Benutzer. Die Maschine wird damit ein noch wirkungsvolleres Hilfsmittel des Menschen als im Stapelbetrieb.
6.3 Arten des Dialogs Es gibt verschiedene Möglichkeiten für die Art und Weise, wie der Dialog mit der Maschine ausgeführt werden kann. Die komfortabelste Art ist durch folgende Merkmale gekennzeichnet: 1. Zeilenweise Programmeingabe mit sofortigem Syntax-Test. 2. Markierung von Zeilen (z. B. durch automatisches Numerieren). 3. Kommandos zum Ändern, Einfügen, Löschen usw. einzelner Zeichen, Zeilen oder Zeilengruppen im eingegebenen Text. 4. Sofortige Ausführung jeder eingegebenen Programmzeile oder von Programmteilen auf Wunsch. 5. Spezielle Dialogkommandos und Eingriffsmöglichkeiten in den Programmlauf. 6. Fehlerkommentare bei Bedienungsfehlern. In dieser Art arbeitet z. B. das APL-System der Fa. IBM und das in Abschnitt 6.2 erwähnte JOSS-System. Ein Beispiel für einen Dialog, wie er in JOSS und ähnlichen Systemen etwa aussieht, wird im folgenden gegeben. Es zeigt sehr schön, wie schnell ein Anfänger fast ohne Anleitung die Bedienung des Terminals erlernen kann, indem er einfach einen Programmlauf versucht. Die dauernden Rückfragen und Hinweise bei Fehlern bewirken einen sehr hohen Lerneffekt. Im Beispiel sollen die beiden Lösungen einer Gleichung 2. Grades berechnet werden. Die mit einem Pfeil gekennzeichneten Zeilen sind Antworten des Computers. Die Abkürzung „sqrt" bedeutet das Wurzelzeichen, „**" bedeutet „hoch". Beispiel 1: 1.1 Es sei x(l)=[-b+sqrt(b*2-4ac)]/[2a]. 1.2 Es sei x(2)=[-b-sqrt(b*2-4-a-c)]/[2-a]. 1.3 Drucke x( 1 ),x(2) im Format 1. Setze b=-l. Setze c=-6. Führe Teil 1.1 aus. Wie bitte? Führe Teil 1.1 aus. -*• Fehler: Teile können nur mit ganzen Zahlen zwischen 0 und 10**9 bezeichnet werden. Führe Teil 1 aus.
74
6.3 Arten des Dialogs
-»• Fehler im Schritt 1.1: a ist Undefiniert. Setze a=0. Starte. -* Fehler im Schritt 1.1: Ich muß durch 0 dividieren. Setze a=-l. Starte. Fehler im Schritt 1.1: Ich habe negatives Argument für die Quadratwurzel. Setze a=l. Starte. -*• Fehler im Schritt 1.3: Ich kann das verlangte Format nicht finden. Format 1: a= b= c= Lösungen: . . Starte. -*• Fehler in Schritt 1.3: Ich habe weniger Variable, als Format 1 verlangt. 1.3 Drucke a,b,c,x( l),x(2) im Format 1. Starte. Fehler im Schritt 1.3: Ich kann die Werte im angegebenen Format nicht drucken. Format 1: a= b= c= Lösungen: . . Starte. -»• Fehler im Schritt 1.3: Im angegebenen Format überlappen sich die Ausgabefelder. Format 1: a= b= c= Lösungen: . . Starte. -> a=l b=-l c=-6 Lösungen: 3.0000 -2.0000 Führe Teil 1 für c=-l bis - 4 in Schritten von -1 aus. a=l b=-l c=-l Lösungen: 1.6180 -.6180 a=l b=-l c=-2 Lösungen: 2.0000 -1.0000 a=l b=-l c=-3 Lösungen: 2.3028 -1.3028 c=-4 a=l b=-l Lösungen: 2.5616 -1.5616 2.1 Führe Schritt 2.1 für i=l bis 100 in Schritten von 1 aus. Führe Schritt 2.1 aus. Ich benötige mehr Speicherplatz. Lasse den Schritt 2.1 weg. Starte. -* Fehler: Niemand hat mir gesagt, was ich tun soll. Führe Teil 1 für c=-5 durch. b=-l c=-5 Lösungen: 2.7913 -1.7913 -*• a=l ende
6. Programmiersprachen bei Stapelverarbeitung bzw. Dialogbetrieb 75 Der Nachteil dieser komfortablen Art des Dialogs ist die langsame Programmausführung, da die Compiler im allg. interpretierend arbeiten müssen. Deshalb wird oft eine abgewandelte Art des Dialogs verwendet, die die compilierende Übersetzung der Programme gestattet. Es ergeben sich dann wesentlich schnellere Objektlaufzeiten. Eine solche Dialog-Art wird fast immer bei Verwendung der Programmiersprachen ALGÖL, FORTRAN, BASIC, COBOL u. ä. eingesetzt. Ihre Merkmale sind: 1. Eingabe des gesamten Programmes mit anschließendem Syntax-Test 3 }(wie bei der oben beschriebenen Dialog-Art) 4. (entfällt) 6 }(wie bei der oben beschriebenen Dialog-Art) Ein Beispiel für diese Art des Dialogs ist im folgenden gegeben (FORTRAN unter dem Betriebssystem CP 67/CMS einer IBM 360/67-Anlage). Darin sind die mit großen Buchstaben geschriebenen Zeilen Antworten des Computers, während die vom Benutzer eingegebene Information mit kleinen Buchstaben geschrieben wird. Das Beispiel enthält der Übersichtlichkeit halber nur wenig Fälle von Bedienungsfehlern und Schreibfehlern des Teilnehmers. Die gestellte Aufgabe lautet: Es sollen die Quadrate der natürlichen Zahlen 1, 2 . . . m berechnet werden, wobei m der Maschine eingegeben wird. Der Dialog verläuft in diesem Beispiel folgendermaßen: Nach dem Start („login") des Terminals wird vom Benutzer der Nachweis seiner Benutzerberechtigung verlangt („PASSWORD"). Dann möchte der Benutzer wissen, wieviele Teilnehmer momentan aktiv sind („query users") und wie sie heißen („query names"). Dann macht der Benutzer eine Angabe zur Art des Betriebssystems („ipl 190"), das er verwenden will. (An dieser Anlage stehen mehrere Betriebssysteme zur Auswahl.) Mit „edit beispiel fortran" und anschließendem „file" wird der Programmtext eingegeben und abgespeichert. „R;" bedeutet, daß die Maschine diese Schritte ausgeführt hat. Danach folgt eine Angabe über die in diesen Schritten verbrauchte Rechenzeit. Nun stellt der Benutzer fest, daß die Ausgabeanweisung im Programm PRINT 2,1,1 statt PRINT 2,I,J heißt, korrigiert den Fehler und speichert das geänderte Programm ab („edit beispiel fortran", „locate", „change", „file"). Mit „fortran beispiel" wird nun verlangt, daß das Programm übersetzt werden soll. Die Maschine findet einen Syntaxfehler in einer Format-Anweisung. Der Benutzer korrigiert den Fehler, läßt sich den Programmtext in der korrigierten Form ausdrucken („edit beispiel fortran", „locate", „change", „top", „print 20") und speichert die neue Programmversion ab („file"). Mit „fortran beispiel" und „beispiel" wird das Programm übersetzt und gestartet. Die Maschine verlangt die Angabe von m. Hierfür gibt der Benutzer den Wert 2 an und das Programm berechnet die Quadrate der Zahlen 1 und 2. Nun merkt der Benutzer, daß
76
6.3 Arten des Dialogs
er sich vertippt hat, denn er wollte die Quadrate der Zahlen 1 bis 12 berechnen lassen. Er startet also das Programm ein zweites Mal mit „beispiel" und gibt diesmal den richtigen Wert von m an. Dann beendet er das Gespräch mit „logout". Zum Abschluß druckt die Maschine Angaben über das Gespräch aus, z. B. daß es 36 Minuten und 46 Sekunden gedauert hat (CONNECT) und dabei insgesamt 18.16 Sekunden Zentraleinheitszeit (TOT CPU) verbraucht worden waren. Beispiel 2:
login urzstutt ENTER PASSWORD:.7geheim READY AT 09.53.23 ON 02/22/71 CP querry users INVALID CP REQUEST query users 16 USERS query names - 0^9 BAUM - 05*i, G5A GIÀ OUC, CE - 055 Gì» A - 05E - OUE, OPERA - 053, DOS DSCON DS2 Z AD OUJ - 051, GLATZER - 052 G2A - 0W>, G3A - OUB G7A - OUA - Oi*F, G6A OS - OIF, URZSTUTT - Okk ipl 190 CMS..VERSION 3.0 (17/02/71) edit beispiel fortran NEU FILE. INPUT: c programmbeispiel, berechnung der quadr. c der zahlen 1 bis m read 3,m do 1 1=1,111 j= i *• 2 1 print 2,i,i 2 format (2F1-ÓD0)
6. Programmiersprachen bei Stapelverarbeitung bzw. Dialogbetrieb
3
77
format (12) call exit end
EDIT: file R; T = 0 . 0 9 / 0 . 0 9 . 5 9 . i » 9 edit beispiel fortran EDIT: locate /i,i/ 1 PRINT 2,1,1 change /i,i/i,j/ 1 PRINT 2,1,J EDIT: file R; T=0.06/0.28 10.01.^3 fortran beispiel 000it 2 E(00008);
FORMAT (2F10)
01) IEY0131 SYNTAX T=0.27/0.81 10.20.35
$
edit beispiel fortran EDIT: locate / 2fl0/ 2 FORMAT (2F10) change /2fl0/2il0/ 2 FORMAT (2110) top print 20 C C
2 1
PROGRAMMBEISPIEL, BERECHNUNG DER QUADR. DER ZAHLEN 1 BIS M READ 3, M DO 1 1=1,M 3 = I 2 FORMAT (2110) PRINT 2,1,J
78
6.3 Arten des Dialogs
3
FORMAT (12) CALL EXIT END
EOF: file R; T=0.11/D.Q£i 10.2if.32 fortran beispiel R; T=0.27/0.83 10.2if.53 $ beispiel EXECUTION BEGINS... 2 1 1 2 k R; T=0.32/0.95 10.27.06 $ beispiel EXECUTION BEGINS... 12 1 1 it 2 9 3 16 if 25 5 36 6 if9 7 6if 8 81 9 100 10 121 11 lit it 12 R; T=0.36/1.26 10.29.£»6 logout T= if.26/18.16 10.29.59 CP ENTERED, REQUEST, PLEASE. CP logout C0NNECT= 00.36. ^ 6 VIRTCPU= 000.0if.26 T0TCPU= 000.18.16 LOGOUT AT 10.30.09 ON 02/22/71
6. Programmiersprachen bei Stapelverarbeitung bzw. Dialogbetrieb
79
6.4 Der graphische Dialog Eine neue Anwendung des Computers ergibt sich bei Verwendung von Bildschirmen, die nicht nur beliebige Figuren anzeigen können, sondern auch zur Eingabe von graphischen Gebilden, Zeichnungen usw. verwendet werden können. Man nennt solche Geräte im Gegensatz zu den alphanumerischen Bildschirmen (s. Abschnitt 3.2) „graphische Bildschirme mit Lichtgriffel". Zur Verarbeitung und Manipulation graphischer Gebilde in Datenverarbeitungsanlagen wurde eine Reihe problemorientierter Sprachen geschaffen, die in den meisten Fällen dialogfahig sind. Beispiele sind (s. z. B. [1], [2], [3]) GRAF (erweitertes FORTRAN) und PICTURE CALCULUS (eine spezielle Sprache für graphisches Arbeiten). Die Daten in solchen Sprachen sind graphische Elemente (Gerade, Linie, Kreis, Punkt, Quadrat, Quader, Kugel,. ..). Die Programmanweisungen dienen zur Manipulation solcher Daten, z. B. Erzeugen eines Kreises Bewegen einer Linie Vergrößern, Verkleinern Mitziehen einer Ecke Abspeichern Holen aus dem Speicher Gebilde mit Lichtgriffel eingeben Drehen von 3-dimensionalen Gebilden Kopieren, Vervielfachen Zum graphischen Dialog wird neben der dialogfähigen graphischen Sprache ein Betriebssystem benötigt, das die für diesen Dialog notwendigen Steueranweisungen (Kommandos) bereitstellt. Der graphische Dialog hat ein breites Anwendungsspektrum. Anwendungen sind z. B. computerunterstütztes Entwerfen und Zeichnen, Konstruieren, Aufbereitung graphischer Daten, wie etwa chemische Strukturformeln von organischen Stoffen usw. Um eine Vorstellung davon zu geben, wie ein graphischer Dialog ablaufen kann, wird in Abb. 6 - 2 das Aufbauen eines komplizierteren Gebildes (hier einer Bienenwabe) aus elementaren Elementen gezeigt. Das Beispiel betrachtet der Einfachheit halber nur ein ebenes Gebilde. Viele interessante und nützliche Anwendungen des graphischen Dialogs befassen sich jedoch mit dreidimensionalen Gebilden, zu deren Manipulation eine ganze Reihe graphischer Sprachen imstande ist.
6.5 Zusammenfassung Dem bisherigen Rechenzentrumsbetrieb lag die Stapelverarbeitung zugrunde. Mit Aufkommen der Teilnehmer-Rechen-Systeme tritt der Dialog Mensch-Maschine immer mehr in den Vordergrund. Es entsteht eine problemorientierte Konversation, die eine dialogfähige Sprache zur Voraus-
80
6.5 Zusammenfassung 1.
2.
3.
U.
5.
1. Zeichnen eines „Kreises" und Angabe des Mittelpunktes, dann w i r d der Kreis rund gemacht 2. Einschreiben eines Sechseckes und Verschieben der Figur ins Z e n t r u m der Bildfläche 3. Gleichseitigmachen des Sechseckes und Entfernen des Kreises 4. Verkleinern 5. Kopieren, Drehen, Zusammenschieben
Abb. 6 - 2 Zeichnen einer Bienenwabe
Setzung hat. Sie bringt eine große Zeitersparnis für den Anwender, sowohl beim Lernen der Programmierung als auch beim Programmieren und Austesten. Der Aufwand hierfür ist eine wesentlich höhere Belastung der Rechenanlage. Dialogsprachen sind entweder bereits bekannte problemorientierte Sprachen, die zur Dialogfähigkeit weiterentwickelt wurden (z. B. Dialog-ALGOL, -FORTRAN) oder spezielle Entwicklungen (z. B. JOSS, APL, BASIC). Eine Sonderform der Konversation mit der Maschine ist der graphische Dialog, der über einen Bildschirm abgewickelt wird. Beispiele fiir eine höchst effektive Anwendung sind etwa Entwurfs- und Konstruktionsarbeiten im Automobil- und Flugzeugbau und in der Architektur. Um den Dialog durchführen zu können, genügt es aber nicht, daß die verwendete Programmiersprache dialogfähig ist. Es muß eine leistungsfähige Kommandosprache hinzukommen, die es gestattet, in einfacher Weise die während des Dialogs nötigen Anweisungen an den Rechner zu geben.
Literatur [1] [2] [3]
Wilkes, M. V.: Time-Sharing-Betrieb bei digitalen Rechenanlagen. München 1970. Orr, W. D.: Conversational Computers. New York 1968. Mattebrein, R. und P. Dobrowolski: Aufsätze in: W. Händler (Hrsg.): Teilnehmerrechensysteme. München - Wien 1968.
7. Analog- und Hybrid-Rechnen
81
7. Analog- und Hybrid-Rechnen Von K.-U. Dobler
7.1 Allgemeines Alle bisherigen Themen stellten den Digitalrechner in den Mittelpunkt der Betrachtungen. Mit dem Analogrechner wird nun ein vollkommen anders aufgebautes und anders arbeitendes Gerät vorgestellt. Dazu soll zunächst an einem konkreten Beispiel der Unterschied zwischen analoger und diskreter Arbeitsweise klar gemacht werden.
7.2 Unterschied ANALOG - DIGITAL Setzen wir voraus, daß es uns gelungen ist, eine geschlossene Beschreibungsform für den zeitlichen Verlauf einer physikalischen Größe abzuleiten. Denken wir dazu etwa an den zeitlichen Verlauf der Spannung U in einem elektrischen Netz. Dieser Verlauf kann durch eine Sinusschwingung beschrieben werden. Es interessiert nun der tatsächliche Wert der Spannung zum Zeitpunkt t j . Wir müssen jetzt unsere Bestimmungsgleichung für t = t j lösen. Als Ergebnis erhalten wir einen Zahlenwert. Tragen wir nun für viele Zeitpunkte tj die erhaltenen Zahlenwerte in einem Diagramm auf, so können wir uns aus diesen Lösungspunkten einen Überblick über den etwaigen zeitlichen Verlauf der Spannung machen (siehe Abb. 7 - 1 ) . Interu
t Abb. 7 - 1 Diskrete Lösung
essiert uns der Zahlenwert an einer Stützstelle, die zwischen t j und t2 liegt, so können wir diesen durch Lösung unserer Bestimmungsgleichung eindeutig bestimmen. Anders wird der Fall aber, wenn wir ein Prozeßrechnergeführtes System betrachten, wie es etwa in der Kraftwerksautomatisierungstechnik gebräuchlich ist. Der Prozeßrechner gibt in äquidistanten Zeitintervallen einen Meßbefehl. Hier soll zum Beispiel in den Zeitpunkten t der Wert der Netzspannung U gemessen werden. Der Wert der Spannung muß also in einen Zahlenwert gewandelt werden. Er wird quantisiert. Der Zahlenwert der Spannung wird dann in irgendeiner Form binär verschlüsselt. Dazu kennt man in der Datenverarbeitung die verschiedenartig6
Hieber, Einf. i. Teilgeb. d. Informatik I
82
7.2 Unterschied A N A L O G - DIGITAL
sten Codes. Ein sehr häufig verwendeter Code ist zum Beispiel der Dualcode. Hier wird eine Zahl als eine Summe von Zweierpotenzen dargestellt. Der übersichtlichen Schreibweise wegen verzichtet man auf das Schreiben der Zweierpotenz. Beispiel: 5 => 1 • 2 2 + 0 • 2 1 + 1 • 2° => 101 Interessiert uns später aus irgendwelchem Grunde plötzlich der Spannungswert zum Zeitpunkt t = t ^ A t * , so kann dieser nicht eindeutig angegeben werden, wenn t kein Meßpunkt war. Wir können zwar aus den Spannungswerten in den Meßpunkten gewisse Rückschlüsse auf den Verlauf der Spannung in Zwischenbereichen ziehen. Eindeutige Aussagen über den Verlauf der Spannung können wir nicht machen, da wir durch die gemessenen Stützstellen endlich viele Interpolationspolynome legen können. Haben wir mit einem Schreiber, der mit einem Meßgerät verbunden ist, den zeitlichen Verlauf der Spannung aufgenommen, dann haben wir später die Möglichkeit, den Wert der Spannung zu jedem beliebigen Zeitpunkt eindeutig zu bestimmen. Ein solcher geschlossener Kurvenzug bietet deshalb unter Umständen wesentlich mehr Aussagekraft. Beim Analogrechner (AR) werden wir, wie wir später sehen werden, gerade diesen geschlossenen Kurvenzug als Ergebnis erhalten. Wir können aus dieser Aussage bereits das Hauptanwendungsgebiet des AR erkennen. Vorteilhaft werden wir ihn dort einsetzen, wo wir kontinuierlich ablaufende Vorgänge untersuchen. Für die Untersuchung von Stückprozessen, wo es gilt, diskrete Ergebnisse zu erfassen, verwenden wir vorteilhafter den Digitalrechner. Eine anschauliche Darstellung für diesen Tatbestand liefert Abb. 7-2.
Abb. 7 - 2 a Kontinuierlicher Prozeß
Abb. 7 - 2 b Stückprozeß
Nach welchem Prinzip arbeitet nun der AR und wie geht der Lösungsvorgang vor sich? Gehen wir davon aus, daß wir einen in der Natur ablaufenden Vorgang untersuchen müssen. Wir wissen vielleicht, wie wir ihn mathematisch beschreiben können. Wir versuchen nun, unser mathematisches Modell in ein analoges elektrisches Modell zu überführen.
7. Analog- u n d H y b r i d - R e c h n e n
83
7.3 Aufbau des Analogrechners Der Analogrechner ist aus einer Anzahl von gleichartigen Bausteinen aufgebaut, die nach ihrer Funktion unterschieden werden. So kennt man neben den Elementen für die Grundrechenarten Addition, Subtraktion, Multiplikation und Division auch Elemente für höhere Grundrechnungsarten wie Integration, Funktionsbildung oder Koordinatentransformation. Alle diese Bausteine arbeiten gleichzeitig. Wir können deshalb den AR als Vielfachparallelmaschine bezeichnen. Dies hat auf die Problem-Rechenzeit natürlich entscheidenden Einfluß. Vorgänge können auf dem AR in Echtzeit untersucht werden, d. h. sie laufen unter zeitlich gleichen Bedingungen wie in der Natur ab. Beim Digitalrechner besitzen wir heute in der Regel nur ein Rechenwerk, das die Operationen zeitlich nacheinander ausfuhrt. Die Problem-Rechenzeit hängt hier von der Ausführungszeit für die einzelnen Rechenoperationen ab. Diese kann kürzer oder länger als die Echtzeit sein. Wie wir bei der Programmierung des AR später sehen werden, kann man Vorgänge auch hier schneller oder langsamer als in Echtzeit ablaufen lassen.
7.4 Aufbau der Bausteine des Analogrechners 7.4.1
Allgemeines
Wichtigstes Einzelteil der Bausteine ist hier der Gleichspannungsverstärker. Dies ist ein Element, das eine eingegebene Spannung um einen Faktor v verstärkt. Bei guten Rechenverstärkern liegt der Verstärkungsfaktor in der Größenordnung v = 10 8 , d. h., bei einer Eingangsspannung U e = 1 jiV liegt am Ausgang U a = 100 V. Verwendet man als Eingangsgröße eine sinusförmige Wechselspannung, so bleibt der Verstärkungsfaktor bis zur Grenzfrequenz des Verstärkers ungefähr konstant, sinkt dann aber rapide ab (siehe Abb. 7 - 4 ) .
Abb. 7 - 3 Der ideale Gleichspannungsverstarker
6'
Abb. 7 - 4 Verstärkung des Gleichspannungsverstärkers in Abhängigkeit von der Frequenz
84
7.4 Aufbau der Bausteine des Analogrechners
Damit wir bei der Rechnung keine wesentlichen Fehler machen, müssen wir also dafür sorgen, daß die Änderung der einzelnen Rechengrößen keine wesentlichen Frequenzanteile enthält, die oberhalb der Grenzfrequenz liegen. Dies läßt sich, wie wir später sehen werden, durch Zeitnormierung erreichen. Beschälten wir nun den Gleichspannungsverstärker mit äußeren Netzwerken Z ei und Z R , dann erhalten wir den beschalteten Rechenverstärker, der die Grundrechenoperationen ermöglicht (Abb. 7 - 5 ) .
Zeo
Iii
|u„(t)
U.
u0(«)
Abb. 7 - 5 Beschal teter Gleichspannungsverstärker
Mit Z ei bezeichnen wir die Eingangswiderstände unserer Schaltung. Z R sei als Rückkopplung bezeichnet. Gehen wir davon aus, daß unser Gleichspannungsverstärker ideal arbeitet, d. h. keinen Strom aufnimmt. Weiter muß wegen der hohen Verstärkung unseres Verstärkers die Eingangsspannung U ev sehr klein sein. In Zukunft wollen wir diese Spannung immer vernachlässigen. Unter diesen Voraussetzungen gilt dann aber: = T 1R --
n U• h : 2 Hü!
T
i=0
i=0 ¿ e i
a ZR
(1) (2)
Am Eingang des Verstärkers muß die Kirchhoffsche Knotenregel erfüllt sein, deshalb muß gelten:
oder
II=-IR
(3)
Ua=S (-^Uei) i=0 ¿ei
(4)
Das Verhältnis von Ausgangsspannung zu Eingangsspannung wird in erster Näherung lediglich von der äußeren Beschaltung des Gleichspannungsverstärkers bestimmt. 7.4.2 Der Summierer Wie wir aus (4) entnehmen können, erhält man ein Summierglied, wenn wir das Eingangsnetzwerk und die Rückkopplung mit ohm'sehen Wider-
7. Analog- und Hybrid-Rechnen
85
ständen aufbauen. Das Widerstandsverhältnis =S ist fest und bewirkt eine ^ei multiplikative Bewertung der Eingänge. Bei modernen AR verwirklicht man standardmäßig die Bewertungsfaktoren 1(Z R = Z ei ), 10(Z R = 10 Z^) sowie evtl. 5(Z R = 5 Z ei ). Betrachten wir (4), dann könnten wir glauben, daß am Ausgang eine beliebig große Spannung auftreten könnte. Dem ist aber nicht so. Die größtmögliche Ausgangsspannung ist sicherlich die Maschineneinheitsspannung UOI auf die wir (4) beziehen müssen: also UQ
i=o Z e i
U0
(5 )
Wird eine Rechengröße größer als eins, dann übersteuert der AR. Dies wird durch eine Warnlampe am betreffenden Rechenverstärker angezeigt. Damit ist aber das Ergebnis unserer Rechnung sicher falsch! Durch geschickte Programmierung muß dieser kritische Zustand immer vermieden werden. Andererseits sind die Widerstände Z R bzw. Z e j nur mit einer gewissen Toleranz herstellbar. Dadurch bringen wir in unsere Summation aber einen statischen Fehler. Dieser statische Fehler liegt bei Präzisionsanalogrechnern bei etwa 10"4. Damit der Einfluß dieses Fehlers auf das Ergebnis klein bleibt, müssen wir dafür sorgen, daß die Ausgangsgröße eines Verstärkers möglichst groß ist. Auch dies ist eine technische Randbedingung, die bei der Programmierung des AR beachtet werden muß. 7.4.3 Der Integrierer Wählen wir als Rückkopplung eine Kapazität, dann erhalten wir einen Integrator. Dies können wir uns physikalisch leicht ableiten. Der Strom I R ruft auf der Kapazität eine Ladung Q (t) hervor. Q(t) = / l o
R
d t = CUc(t)
(6)
Die Spannung U c (t) ist aber gleich unserer Ausgangsspannung U a (t). Formen wir (6) weiter um, dann erhalten wir unsere endgültige Form. (Z e j ist wiederum ein ohm'scher Widerstand.) M - I S i / ^ . g i dt) (7) u0 c i= o o ¿ei u o Den Ausdruck 1/C Z ei bezeichnen wir als Konstante Kj. Durch geschickte Wahl von C und Z e i sorgen wir dafür, daß die Konstante Kj einen der Werte 1, 5 oder 10 annimmt. Damit erhält man aus (7) die gesuchte Lösung: U ftl " 'U • M =- 2 k i ( / ^ d t ) (8a) u„ i=o o U„
7.4 A u f b a u der Bausteine des Analogrechners
86
Gelingt es uns, durch ein Relais (H) das Eingangsnetzwerk vom Rechenverstärker abzutrennen u n d statt dessen einen anderen ohm'schen Widerstand mit dem Rechenverstärker über ( R ) zu verbinden, dann k ö n n e n wir auf dem Integrator auch Anfangswerte aufbringen. Dieser andere Eingangswiderstand m u ß mit dem Rechenverstärker immer verbunden sein, solange nicht gerechnet wird. Dann lädt sich die Kapazität auf den Wert U A F am Anfangswertaufnahmenetzwerk auf. Am Ausgang des Integrators finden wir dann den Anfangswert - U A F (siehe Abb. 7 - 6 ) . Aus ( 8 a ) erhält man:
u
n
U„
i=0
o
(8a)
U„
£
R
_L
H
H b• c
|u,
(t)
AR
Abb. 7 - 6 Der Integrator Für die Anfangswertaufnahme müssen wir mindestens T p = 4 • (RC) warten, dann ist der Kondensator bis auf 9 8 % aufgeladen. Die sog. „Pausenzeit" hängt also nur von den beim A u f b a u des Integrators verwendeten Bausteinen ab. Ist also eine Machinengröße. Moderne Analogrechner besitzen i. d. R. mehrere auswählbare Kapazitäten. Dadurch k ö n n e n variable Bewertungskoeffizienten K j (z. B. 1, 10, 100, 1000) und variable Pausenzeiten T p erreicht werden. Nach Ablauf der Rechenzeit T R bleibt der AR im Zustand Halt stehen. Dabei halten die Integratoren die aufgebrachten Spannungen. Wir k ö n n e n hiermit die einzelnen Rechengrößen überprüfen. Zustand
R
H
Ausgang
Anfangswertauf n.
Ua = - U A n f .
Rechnen
n t Ua(t) = - U A n f . - S kjl/Uejdt) 0 i= 0
Halt
- ( / o -
U a = U a Ende Rechnen
Abb. 7 - 6 a Zustandstabelle
7. Analog- und Hybrid-Rechnen 7.4.4
87
Multiplikation
7.4.4.1 Multiplikation mit konstantem Faktor Müssen wir einen konstanten Faktor 0 < IXl < 1 verwirklichen, dann verwenden wir ein Koeffizientenpotentiometer, dessen Wirkungsweise Sie Abb. 7 - 7 entnehmen können. Faktoren zwischen 1 < IXl < 10 kann man mit einem Koeffizientenpotentiometer und der Eingangsbewertung des nachfolgenden Rechenelementes erreichen.
T I
X-Ue
Abb. 7 - 7 Potentiometer
7.4.4.2 Multiplizierer Benötigen wir in unserer Rechnung das Produkt zweier Variablen, so benutzen wir dazu heute meist überwiegend Diodenmultiplizierer. Dazu formen wir das Produkt x • y wie folgt um: x y
(9)
Mit Hilfe von Diodenfunktionsgebern bilden wir das Quadrat für 0 < IZI < 1 nach. Am Ausgang eines nachgeschalteten Summierers erhalten wir unser gesuchtes Ergebnis.
7.5 Schaltzeichen Für alle häufig benutzten Rechenelemente werden Schaltzeichen verwendet, vgl. Abb. 7-8.
7.6 Betriebsarten des Analogrechners 7.6.1 Allgemeines Sämtliche Relais des AR werden von einem gemeinsamen Steuerwerk aus betrieben. Damit befinden sich aber alle Rechenverstärker jeweils in derselben Betriebsart (Abb. 7-9). 7.6.2 Pause Die Integrierer nehmen während dieses Zeitabschnittes evtl. Anfangsbedingungen auf. Alle übrigen Rechnerbausteine sind im Zustand Rechnen. Die Pausenzeit muß solange dauern, bis alle Anfangsbedingungen aufgenommen sind.
88
7.7 Anwendungen des Analogrechners
Bezeichnung
mathematische Operation
Symbol a
Koeffizientengeber
X O—
XA=oX mitO^a^l
D XA
X, oSummierer
kj \ k n /
X20-
Xn X ! O - kl x2 o — - k 2 k„
Multi pi izierer
° XA
o
XA
X A = - ( k i - X i + k 2 X 2 +••• + k n X n )
X A = - Ì