# System/360

System/360 oder kurz S/360 bezeichnet eine Großrechnerarchitektur der Firma IBM aus dem Jahre 1964. Zuvor wurden von IBM die 700/7000 series gebaut. Dem System/360 folgte das im Jahr 1970 angekündigte System/370.

## Geschichte

Anfang der 1960er Jahre beherrschte IBM zwar den Computermarkt, die Systeme waren aber meist untereinander inkompatibel und nicht aus einer einheitlichen Linie, so dass sich ein großer Aufwand für den Support der unterschiedlichen Produktfamilien aufbaute. Dem sollte mit dem System/360 abgeholfen werden, mit dem IBM 1964 ein einziges einheitliches und leicht erweiterbares System auf dem Mainframe-Markt vorstellte.
Mit den Entwicklungskosten von insgesamt 5 Milliarden Dollar für das Projekt (das zweifache des jährlichen Umsatzerlöses von IBM 1962) riskierte IBM-Chef Thomas J. Watson Jr. den Bestand der Firma, das System beherrschte aber bald nach Einführung den Markt der Mainframes. In den 1970er Jahren waren über 70 Prozent der Mainframes von IBM und damit Abkömmlinge der 360-Produktfamilie. Der Umsatz von IBM stieg hauptsächlich ihretwegen von 3,6 Milliarden Dollar 1965 auf 8,3 Milliarden 1971, noch 1982 machten sie über die Hälfte des Umsatzes der Firma aus. Es war eines der bisher erfolgreichsten Computersysteme.
Die von IBM veröffentlichten Spezifikationen erlaubten es außerdem auch anderen Anbietern, Peripheriegeräte für das System/360 anzubieten, häufig kostengünstiger. Umgekehrt begannen andere Firmen wie Amdahl und Univac zum 360-System kompatible Computer zu entwickeln. Ebenso wie die Hardware wurde mit dem System/360 auch die Software vereinheitlicht und kompatibel gemacht.
Die Hauptarchitekten waren Frederick P. Brooks, Gerrit Blaauw, Gene Amdahl. Die Gesamtleitung hatte Bob O. Evans. Beteiligt war auch u. a. Erich Bloch. Brooks, Bloch und Evans erhielten dafür 1985 die National Medal of Technology and Innovation.

## Designkriterien

Die wichtigsten Designkriterien waren:
* Vielseitiger Verwendungszweck. Vor der S/360 waren Computer entweder für kaufmännische oder für naturwissenschaftlich-technische Zwecke optimiert.
* 8 Bit Zeichengröße. Im Gegensatz zu zeitgenössischen Architekturen, welche mit 6-Bit-Einheiten arbeiteten, wurden Bytes zu 8 Bits verwendet.
* 32- oder 64-Bit-Gleitkommaworte mit hexadezimaler Basis.
* Vorzeichen bei Ganzzahlwerten ist 1 Bit
* Möglichkeit zu gepackt gespeicherten Dezimalzahlen: Jede Ziffer belegt dabei ein halbes Byte (4 Bit, Binär codierte Dezimalzahlen), das Vorzeichen belegt im letzten Byte die letzten 4 Bits.
* Variabel lange Zeichenketten haben ein Längenfeld und werden nicht mit einem Spezialzeichen abgeschlossen.
* Verzicht auf einen Stack. Dies macht Linkage-Konventionen erforderlich, da bei Unterprogrammaufrufen der Status gesichert werden muss.
* Grundsätzlich indizierte Adressierung unter Verwendung eines Basisregisters. Programme sind so grundsätzlich unabhängig von physischen Adressen.
* Binäre Adressierung
* Alle 16 Register sind Universalregister, die sowohl als Akkumulatoren als auch – mit Ausnahme des Registers 0 – zur Adressierung verwendet werden können. Es wird jedoch empfohlen, als Basisregister (Adressierung) nur die Register ab Nr. 3 (bis max. 8) zu verwenden, da die Register 1 und 2 von bestimmten Befehlen (z. B. TRT) zwangsweise verwendet werden. Die Register 12 bis 15 werden für den Aufruf von Unterprogrammen verwendet, einige benötigt man auch noch für andere Zwecke. Ein Register reicht, um einen Speicherbereich von 4096 Bytes (4k Bytes) zu adressieren. In den Maschinenbefehlen stehen für eine Speicheradresse nur 2 Bytes zur Verfügung, 4 Bits für die Registernummer und 12 Bits für das Displacement.
* Die Universalregister sind 32 Bit breit, zur Adressierung werden die rechten 24 Bit verwendet, was einen Adressraum von 16 Megabyte ermöglicht. Bei den Befehlen BAL und BALR (Branch and Link) wird die Rücksprungadresse in ein Register gespeichert, dabei wird in den linken 4 Bits des Registers der Condition-Code gerettet. Aufgrund dieser Besonderheiten war es bei den Nachfolgesystemen nicht so einfach möglich, den Adressraum über die 16 MB hinaus zu erweitern.
Ab dem Modell 67 wurden auch wesentliche Elemente von Virtuellem Speicher implementiert, nachdem dies zuvor aus dem Entwurf der Anfangsversionen wieder entfernt worden war. Das fand sich ab 1972 auch in der Nachfolgemodellreihe System/370 wieder.
Die S/360-Architektur wurde im Laufe der letzten vierzig Jahre kontinuierlich weiter entwickelt (System/370, System/390) und gipfelt zurzeit in der System-z-Architektur.

## Betriebssysteme

Mit dem System/360 erschienen drei Betriebssysteme, TOS/360 für Installationen ohne Festplatten, DOS/360 für kleinere und OS/360 für größere Installationen mit Festplatten. OS/360 ist der Vorläufer des aktuellen z/OS.
Eine Besonderheit stellte das System 360/20 dar. Es war ursprünglich als reine Lochkartenanlage zur Ablösung von Tabelliermaschinen konzipiert und hatte nur einen eingeschränkten Instruktionssatz (Maschinenbefehle). Die Registerbreite betrug 16 Bit bei 8 statt 16 Registern.
Einige der Betriebssysteme für System/360 ermöglichten Multiprogrammierung: MFT (Multiprogramming with a fixed number of tasks) und MVT (Multiprogramming with a variable number of tasks). Aus MFT entwickelte sich OS/VS1 im System/370 und aus MVT entwickelte sich MVS bei System/370. Mit dem Model 67 bot IBM auch erste Time Sharing-Systeme TSS an.

## Kritik

Kritisiert wurde das Gleitkomma-Zahlenformat. Die wissenschaftlichen Vorläuferrechner der IBM 700/7000 series verfügten über eine Gleitkommazahlenarchitektur mit Basis 2 mit einer Mantisse von 27 Bits. Durch den Übergang auf 32 bits und die Verwendung der Basis 16 wurde die Genauigkeit der Gleitkomma-Zahlen effektiv auf 21 bits verringert.

## Emulation

Neben der ursprünglichen System/360-Hardware kann auch das Betriebssystem OS/360 heute auf Windows- und Linux-Systemen mit dem freien Hercules-Emulator ausgeführt werden.

## Namensbedeutung

Das System hatte den Anspruch allumfassend zu sein. Daher wählte man die Zahl 360 im Sinne von 360°. Der Anspruch konnte allerdings nicht erfüllt werden, sodass im Nachhinein die Zahl anders definiert wurde: 3 wurde als IBM-Standard gewertet und 60 für ein in den 1960ern entwickeltes Produkt. Daher hießen die Nachfolger S/370 und S/390.
System/360 Series (Quelle: IBM-Archiv) :
| Modell | verfügbar | Arbeitsspeicher |
| 20 | ab 1966 | 4 KB |
| 22 | ab 1971 | 24–32 KB |
| 25 | ab 1968 | 16–48 KB |
| 30 | ab 1965 | 16–64 KB |
| 40 | ab 1965 | 32–256 KB |
| 44 | ab 1966 | 32–256 KB |
| 50 | ab 1965 | 128 KB–8 MB |
| 65 | ab 1965 | 256 KB–8 MB |
| 67 | ab 1966 | 256 KB–1 MB |
| 75 | ab 1966 | 256 KB–8 MB |
| 85 | ab 1969 | 512 KB–4 MB |
| 91 | ab 1967 | 2–6 MB |
| 95 | ab 1968 | 1–6 MB |
| 1950 | ab 1971 | 1–4 MB |

## Klone

Im RGW wurden drei Reihen von Rechnersystemen entwickelt. ESER der Reihe I waren weitgehend identisch mit dem IBM System/360. Hierzu zählten die Anlagen R40/EC 1040 (VEB Kombinat Robotron DDR) oder EC 1022 (EC EWM/Sowjetunion).