# IBM System/370

El IBM System/370 (también conocido como S/370) fue un modelo de los mainframes de IBM anunciado el 30 de junio de 1970 como sucesor de la familia System/360. La serie mantiene la retrocompatibilidad con el S/360, lo que facilita a los clientes la migración, además de mejorar el rendimiento.

## Nuevas características

Las nuevas características que difieren de la S/360 son:
* Capacidad estándar de doble procesador.
* Soporte total para la memoria virtual
* Aritmética de coma flotante de 128 bits.

### Evolución

El System/370 recibió varias mejoras en su arquitectura durante sus más o menos 20 años de vida. El primer y más importante cambio fue la introducción de la memoria virtual, que estuvo por primera vez disponible en 1972 con el “IBM's "System/370 Advanced Function". IBM había decidido inicialmente no incluir la memoria virtual en la familia S/370.
El anuncio del 2 de agosto de 1972 incluye:
* Dirección de re-ubicación de hardware en todos los S/370s, salvo de los modelos originales 155 y 165.
* El nuevo S/370-158 y -168.
* Cuatro nuevos sistemas operativos:
** DOS / VS (DOS con almacenamiento virtual).
** OS/VS1 (OS / MFT con almacenamiento).
** OS/VS2 (OS / MVT con almacenamiento virtual) Release 1, denominada SVS (Single Virtual Storage), y Release 2, denominada MVS (Multiple Virtual Storage).
** VM/370 - la re-aplicación de CP / CMS.
Poco después de ese anuncio del 2 de agosto de 1972, se actualizó el DAT (dirección de hardware) para el S/370-155 y S/370-165, pero únicamente estaban disponibles para su compra por parte de los clientes que ya poseían un modelo 155 o 165. Después de la actualización, estos modelos se conocen como S/370-155-II y la S/370-165-II. Estas actualizaciones son sorprendentemente caras ($200 000 y $400 000 respectivamente) y, desde hacía mucho tiempo, el retraso en la fecha de envío de los pedidos después de haber sido ordenados por un cliente, provocaba que la mayoría de estos optaran por arrendar sus sistemas a través de empresas. Esto condujo a la original serie S/370-155 y S/370-165, modelos que se describen como anclas de barco. El proceso de actualización, necesario para ejecutar OS/VS1 o OS/VS2, no era rentable para la mayoría de los clientes por el tiempo que tardaba IBM en entregar e instalar, por lo que muchos clientes estaban atascados con estas máquinas ejecutando MVT hasta que terminara el arrendamiento.
Más tarde, los cambios en la arquitectura afectaron principalmente a la memoria –virtual y física,- para que pudieran soportar mayores cargas de trabajo y se fomentara que los clientes realizaran más pedidos. Al igual que con todos los mainframes de IBM de desarrollo, preservar la compatibilidad con versiones anteriores era primordial.
En octubre de 1981, los procesadores 3033 y 3081 añadieron el “direccionamiento ampliado”, que permitió el direccionamiento para el almacenamiento físico de 26-bit (24-bit para cualquier otro tipo de almacenamiento). Esta capacidad apareció más tarde en otros sistemas, como el 4381 y 3090.
La arquitectura S/370-XA, por primera vez disponible en los procesadores 3081 y 3083, produjo una serie de mejoras:
* La ampliación de espacio de direcciones de 24-bits a 31-bits.
* Facilitar la circulación de datos entre dos direcciones.
* Un completo rediseño de la arquitectura de I/O.
La arquitectura ESA/370 incluyó también registros de 32 bits, modos de direccionamiento y facilidades para trabajar con varios espacios de direcciones simultáneamente.

### Ampliando el espacio de direcciones

Como se ha descrito anteriormente, el S/370 ha sido sometido a un cambio arquitectónico importante: la ampliación de su espacio de direcciones de 24 a 31 bits.
La evolución del direccionamiento del S/370 fue siempre complicada por el conjunto base de instrucciones del S/360 y su gran base instalada de código, que se basó en uno de 24 bits (dirección lógica).
La estrategia fue la de implementar la expansión de direcciones en 3 etapas:
* En primer lugar a nivel físico (para permitir memoria por sistema).
* Luego, a nivel de sistema operativo (para permitir que el software de sistema acceda a múltiples espacios de direcciones y utilice espacios de direcciones más grandes).
* Por último, a nivel de la aplicación (para permitir nuevas solicitudes de acceso en más grandes espacios de direcciones).
Desde que el núcleo S/360, conjunto de instrucciones dirigidas, es de 24 bits, para este tercer paso sería necesaria una ruptura con el statu quo; existen aplicaciones en lenguaje ensamblador, de hecho, que no se benefician, y los nuevos compiladores necesitarían primero que las aplicaciones no-ensambladas fueran migradas primero.
Esta aplicación (que se repite en z / Arquitectura) abordaron la solución de los problemas más urgentes en primer lugar: hacer frente a la memoria real que se necesita antes que hacer frente a la memoria virtual.

### 31 bits vs 32 bits

La elección de IBM de 31 bits (frente a 32-bits) para hacer frente a S/370-XA afectan a diversos factores. El S/360-67 ha incluido un modo con direccionamiento total de 32 bits, pero esta función no se llevó adelante en la serie S/370, que comenzó con solamente 24 bits. Cuando más tarde IBM S/370 amplió el espacio de direcciones en S/370-XA, varias razones se citan para la elección de 31 bits:
1.El deseo de mantener el bit de mayor peso como de “control o escape”.
2.La interacción entre los de 32-bit y direcciones de dos instrucciones (BXH y BXLE) que tratan a sus argumentos como los números de firmado (y que según se dijo, era la razón por la SAT utiliza 31-bits en abordar el S/360-67).
3.Entrada de clave inicial en S/360-67, que se habían debatido las alternativas durante el periodo de diseño inicial del sistema, y había recomendado 31 bits (en lugar de los 32-bits que fue elegido en última instancia).

## Series y Modelos

La siguiente tabla resume los principales modelos de la serie S/370. En la columna central se enumeran los principales asociados con la arquitectura de cada serie.
<td43xx
| Año Fabricación | Arquitectura | Mercado level | Serie | Modelo |
| 1970 | System/370 (no DAT) | high-end | System/370-xxx | -155, -165, -195 |
| 1970 | System/370 (DAT) | mid-range | System/370-xxx | -145 and -135 |
| 1972 | System/370 | high-end | System/370-xxx | -158 and -168 |
| 1972 | System/370 | entry | System/370-xxx | -115 and -125 |
| 1972 | System/370 | mid-range | System/370-xxx | -138 and -148 |
| 1977 | System/370-compatible | high-end | 303x | 3031, 3032, 3033 |
| 1979 | System/370-compatible | entry/mid | 4331, 4341, 4361 |
| 1980 | System/370-compatible | high-end | 308x | 3081, 3083, 3084 |
| 1981 | System/370-XA | high-end | 308x | 3081, 3083, 3084 |
| 1983 | System/370-XA | mid-range | 4381 | 4381 |
| 1986 | System/370-XA | high-end | 3090 | -120 to -600 |
| 1986 | System/370-compatible | entry | 937x | 9370,... |
| 1988 | ESA/370 | high-end | ES/3090 | ES/3090 |
| 1988 | ESA/370 | mid-range | ES/4381 | -90, -91, -92 |

## Sustitución del S/370

El System/370 fue sustituido por el System/390 en el decenio de 1990, y la arquitectura también fue cambiado el nombre de ESA/370 a ESA/390. Es esencialmente un cambio de nombre solamente por razones de comercialización, en lugar de grandes cambios arquitectónicos.
En 2000, el System/390 fue sustituido por el zSeries. Los mainframes zSeries presentó el 64-bit z / Arquitectura, la más importante mejora de diseño desde los 31 bits. Todos han conservado la retrocompatibilidad con la arquitectura S/360 y conjunto de instrucciones.

## Linux en el S/370

En la colección de compiladores de GNU había uno para S/370, pero se convirtió en obsoleto y finalmente se sustituirá por el del S/390. A pesar de que el S/370 y S/390 son esencialmente los mismos (y han sido coherentes desde la introducción de la S/360), el apoyo a los sistemas más antiguos se considera obsoleto. Actualmente está disponible para máquinas de apoyo el conjunto de instrucciones de System/390 Generación 5 (G5), la plataforma de hardware para la versión inicial de Linux/390.
* Datos: Q1586139
* Multimedia: IBM System/370 / Q1586139