10 Zurück zu den Ursprüngen

Werbung
10 Zurück zu den Ursprüngen
„Betriebssysteme wurden in den 1960er Jahren erfunden“
bs-10
1
Die Situation am Ende der 1950er Jahre:
Stapelbetriebssysteme ohne Spooling (bei Großrechnern)
typisch:
IBM 7090 + IBM 1401 + Magnetbänder
(1.2.2)
Verarbeitungs-
Rechner
IBM 7090
IBM
1401
IBM
1401
bs-10
Eingaberechner
2
Ausgaberechner
Technik
HW-Ressource
virtualisiert
Prozessor
Prozess/Faden
Arbeitsspeicher
Adressraum
Ein/Ausgabegerät
Ein/Ausgabestrom
reale Maschine
virtuelle Maschine
(Idee - Realisierung)
Mehrprozessbetrieb
(1959 -1962)
Teilnehmerbetrieb
(1959 - 1965)
Virtueller Speicher
(1960 - 1967)
Spooling
(1960 - 1963)
Virtuelle Maschinen
(1967 - 1969)
bs-10
3
10.1 Mehrprozessbetrieb
Großbritannien 1959:
Christopher Strachey: Time-sharing in large fast computers.
(Proc. Int. Conf. on Information Processing, Paris, 1959)
Dieser Aufsatz erläutert Prinzipien und Einsatzmöglichkeiten
des Mehrprozessbetriebs. Achtung: „Time-sharing“ meint
hier tatsächlich Mehrprozessbetrieb, in den 60er Jahren
dann zunehmend als multiprogramming bezeichnet.
bs-10
4
Niederlande 1959:
Edsger W. Dijkstra: Communication with an automatic computer.
Doctoral Dissertation, Vrije Universiteit Amsterdam, 1959
Diese Dissertation ist die erste grundsätzliche
Auseinandersetzung mit der Unterbrechungstechnik,
die seit den 50er Jahren in den meisten Rechnern zu
finden ist. Dijkstras spätere Arbeiten zum Prozessbegriff
und zur Synchronisation von Prozessen haben hier ihre Wurzeln.
bs-10
5
USA 1964:
Clark Oliphint: Operating system for the B 5000.
Datamation Magazine 10.5, May 1964
Beschreibung eines der ersten kommerziellen Stapelsysteme
mit Mehrprozessbetrieb (für die Burroughs B 5000).
Die B 5000 war die erste Maschine mit Kellerarchitektur,
und das Betriebssystem wurde in Extended Algol geschrieben!
bs-10
6
USA 1966:
J.B. Dennis, E.C. van Horn: Programming semantics for
multiprogrammed computations.
Comm. of the ACM 9.3, March 1966
Einer der klassischen Aufsätze zu MULTICS. Ausführlich
diskutiert wird der Begriff Prozess, der Mitte der 60er
Jahre gebräuchlich wurde.
bs-10
7
Niederlande 1967/68:
Edsger W. Dijkstra: Cooperating sequential processes.
In F. Genuys (ed.): Programming Languages.
Academic Press 1968
Grundlegender Aufsatz zur nichtsequentiellen Programmierung
mit Semaphoren.
bs-10
8
Niederlande 1967/68:
Edsger W. Dijkstra: The structure of the THE multiprogramming
system.
Comm. of the ACM 11.5, May 1968
Beschreibung der Entwurfsprinzipien eines Stapelsystems (!)
mit Mehrprozessbetrieb: funktionale Hierarchie, Korrektheit
A. Nicolas Habermann: On the harmonious cooperation of
abstract machines. Doctoral Thesis, Technische Hogeschool
Eindhoven, 1967
Theoretische Fundierung der Korrektheit (hauptsächlich
Verklemmungsfreiheit) des THE-Systems.
bs-10
9
Dänemark 1970:
Per Brinch Hansen: The nucleus of a multiprogramming system.
Comm. of the ACM 13.4, April 1970
Beschreibung eines eleganten Konzepts für Mehrprozessbetrieb
und Interprozesskommunikation. Das System wurde für die
dänische Regnecentralen RC 4000 konstruiert.
bs-10
10
10.2 Teilnehmerbetrieb
USA 1959:
John McCarthy: A time-sharing operator program for our
projected IBM 709. Memorandum to P.M. Morse,
M.I.T. 1959
Ein Vorschlag, am M.I.T. ein Teilnehmersystem für die
IBM 709 zu bauen; die erste genauere Beschreibung,
was unter „time-sharing“ zu verstehen sei.
bs-10
11
USA 1962:
F.J. Corbató et al.: An experimental time-sharing system.
Spring Joint Computer Conference 1962
Beschreibung des CTSS (Compatible Time-Sharing System),
des ersten, rudimentären Teilnehmersystems, entwickelt am
M.I.T. für die IBM 7090. Das Prinzip des Mehrprozessbetriebs
war zu diesem Zeitpunkt noch nicht sehr gut verstanden.
Zu jedem Zeitpunkt befand sich ein Benutzerprogramm im
Arbeitsspeicher; zum Ein/Auslagern wurden anfangs
Magnetbänder benutzt! Das System unterstützte 3 Benutzer!
bs-10
12
USA 1965-68:
F.J. Corbató, V.A. Vyssotsky: Introduction and overview of the
Multics system.
Fall Joint Computer Conference 1965
Dieser Aufsatz behandelt den Nachfolger des CTSS am M.I.T.,
das erheblich ehrgeizigere MULTICS-System. Zum Einsatz
kam eine leistungsfähige Hardware, die General Electric 645
mit Paging und Segmentierung. MULTICS ist nicht nur als
erstes leistungsfähiges Teilnehmersystem berühmt geworden,
sondern auch wegen seines virtuellen Speichers, seines
hierarchischen Dateisystems und seiner Verdienste um die
Prägung des Prozessbegriffs (s.o.).
bs-10
13
USA 1969-74:
R. A. Meyer, L. H. Seawright: A virtual machine time-sharing system.
IBM Systems Journal 9.3, September 1970
Originaltext zum CP-67/CMS (9.2.3) [Vorgänger: CP-40, 1967!]
Dennis Ritchie, Ken Thompson: The Unix time-sharing system.
Comm. of the ACM 17.7, July 1974
bs-10
Das heute noch lesenswerte Unix-Papier! Unix war das erste
weltweit erfolgreiche Teilnehmersystem - obwohl es lange
Jahre keinerlei kommerzielle Unterstützung dafür gab und
es nur auf der PDP-11-Architektur lief; allerdings war die
Lizenz (von den Bell Labs) praktisch kostenlos zu haben.
Das Erfolgsrezept von Unix: bewährte Ideen aus anderen
Systemen vereinfachen (MULTICS!) und geschickt kombinieren.
14
10.3 Virtueller Speicher
Großbritannien 1961:
Tom Kilburn, Bruce Payne, David Howarth: The Atlas supervisor.
Proc. AFIPS Computer Conference, 1961
Bemerkenswerter Aufsatz über das weltweit erste PagingSystem. Atlas war ein Gemeinschaftsprojekt der Ferranti Ltd.
und der Universität Manchester. Als Auslagerungsbereich
für die Seiten wurde eine Magnettrommel benutzt.
Das System realisierte Stapelbetrieb.
bs-10
15
USA 1965-68:
F.J. Corbató, V.A. Vyssotsky: Introduction and overview of the
Multics system.
Fall Joint Computer Conference 1965
(siehe oben unter 10.2)
Die Kombination von Paging und Segmentierung in MULTICS
war wegweisend für alle späteren Virtuelle-Speicher-Systeme.
Auch der Einsatz von Capabilities für die flexible und sichere
Adressierung wurde im MULTICS-Kontext erstmalig
erforscht.
bs-10
16
10.4 Spooling
Großbritannien 1961:
Tom Kilburn, Bruce Payne, David Howarth: The Atlas supervisor.
Proc. AFIPS Computer Conference, 1961
(siehe oben 10.3)
Atlas hat nicht nur den Verdienst, der Paging-Pionier zu sein,
auch die Machbarkeit von Spooling (unter Verwendung der
Magnettrommel) wurde hier zum ersten Mal überzeugend
demonstriert. Somit war eine rudimentäre Form von
Mehrprozessbetrieb gegeben.
bs-10
17
10.5 Zusammenfassung
bs-10
18
USA
Großbritannien
Niederlande
BR Deutschland
1959
McCarthy: „time-sharing"
Strachey: „multiprogramming“*
Dijkstra: Ph.D. on
interrupts
Atlas: paging/VM,
1961
spooling (drum)
1962-63 CTSS: time-sharing
(7090 + tapes)
1963-64
1962-65
TR 4 (batch, tapes)
Dijkstra: semaphores,
processes
1965-69 Multics: file system (+VM),
processes
1969
CP/CMS: virtual machine
THE (Dijkstra)
hierarchy, correctness
1969
bs-10
TR 440 (BS1/3, BSM)
* originally called "time-sharing" by Strachey
19
Herunterladen