Articulo de referencia

OS/360 y sucesores

OS/360 , conocido oficialmente como IBM System/360 Operating System , [1] [2] es un sistema operativo de procesamiento por lotes discontinuado desarrollado por IBM para su enton...

OS/360 , conocido oficialmente como IBM System/360 Operating System , [1] [2] es un sistema operativo de procesamiento por lotes discontinuado desarrollado por IBM para su entonces nueva computadora mainframe System/360 , anunciada en 1964; fue influenciado por los paquetes anteriores IBSYS/IBJOB y Input/Output Control System (IOCS) para los procesadores IBM 7090/7094 [ cita requerida ] y aún más por el sistema operativo PR155 para los procesadores IBM 1410 / 7010. [ cita requerida ] Fue uno de los primeros [NB 1] sistemas operativos en requerir que el hardware de la computadora incluyera al menos un dispositivo de almacenamiento de acceso directo .

Aunque OS/360 fue descontinuado, los sistemas operativos sucesores, incluido el almacenamiento virtual MVS y el z/OS de 64 bits , todavía se ejecutan en 2023 y mantienen la compatibilidad a nivel de aplicación con OS/360. [update]

Descripción general

IBM anunció tres niveles diferentes de OS/360, generados a partir de las mismas cintas y que compartían la mayor parte de su código. IBM finalmente cambió el nombre de estas opciones e hizo algunos cambios de diseño significativos:

  • Programador secuencial único (SSS)
    • Opción 1
    • Programa de Control Primario (PCP)
  • Programadores secuenciales múltiples (MSS)
    • Opción 2
    • Multiprogramación con un número fijo de tareas (MFT)
    • MFT II
  • Programadores de prioridades múltiples (MPS)
    • Opción 4
    • VMS [Nota 2]
    • Multiprogramación con un número variable de tareas (MVT)
    • Modelo 65 Multiprocesamiento (M65MP)

Los usuarios a menudo acuñaban apodos, por ejemplo, "Big OS", "OS/MFT", pero ninguno de estos nombres tenía reconocimiento oficial por parte de IBM.

IBM proporcionó OS/360 como un conjunto de bibliotecas en cinta que la instalación tenía que restaurar en DASD para poder realizar una generación del sistema . IBM también ofrecía un conjunto de cintas de origen opcionales que la instalación podía utilizar para modificar y ensamblar módulos que IBM normalmente proporcionaba como código objeto. Además, IBM ofrecía microfichas que tenían una lista de ensamblaje del material básico del programa y del servicio posterior. [NB 3] IBM continuó distribuyendo código fuente hasta que impuso una política de código objeto únicamente [3] (OCO) para el software con licencia.

El otro sistema operativo importante para el hardware del System/360 fue DOS/360 .

OS/360 es de dominio público [4] y se puede descargar de forma gratuita. Además de ejecutarse en el hardware real de System/360, se puede ejecutar en el emulador gratuito Hercules , que funciona en la mayoría de los sistemas UNIX y similares a Unix , incluidos Linux , Solaris y macOS , además de Windows . Existen CD listos para usar de OS/360 que proporcionan sistemas OS/360 21.8 pregenerados y listos para ejecutarse en Hercules.

Origen

IBM originalmente pretendía que System/360 tuviera solo un sistema operativo orientado a lotes [NB 4] , OS/360, [2] capaz de ejecutarse en máquinas tan pequeñas como 32 KiB. [NB 5] También pretendía suministrar un sistema operativo de tiempo compartido independiente , TSS/360 , para el System/360 Model 67. Hay al menos dos explicaciones de por qué IBM finalmente decidió producir otros sistemas operativos orientados a lotes más simples:

  • porque encontró que las "aproximadamente 1,5 millones de instrucciones que permiten que el sistema funcione prácticamente sin intervención manual" [5] que componen OS/360 no cabrían en la memoria limitada disponible en los modelos System/360 más pequeños; [6] o
  • porque se dio cuenta de que el desarrollo de OS/360 tomaría mucho más tiempo de lo esperado.

IBM introdujo una serie de medidas provisionales para evitar que las ventas de hardware del System/360 colapsaran: primero Basic Programming Support (BPS) y BOS/360 (Basic Operating System, para las máquinas más pequeñas con memorias de 8K bytes), luego TOS/360 (Tape Operating System, para máquinas con memorias de al menos 16K bytes y solo unidades de cinta), y finalmente DOS/360 (Disk Operating System), que se convirtió en un sistema operativo generalizado y es el antecesor del ampliamente utilizado VSE n de la actualidad . [6] [7]

IBM lanzó tres variantes de OS/360: PCP (Programa de Control Primario), una solución provisional que podía ejecutar sólo un trabajo a la vez, en 1966; MFT ( Multiprogramación con Número Fijo de Tareas) para las máquinas de gama media, y MVT (Multiprogramación con Número Variable de Tareas) para las de gama alta. [8] MFT y MVT se utilizaron hasta al menos 1981, [9] una década después de que se lanzaran sus sucesores. [10] La división entre MFT y MVT surgió debido a las limitaciones de almacenamiento y las restricciones de programación. Inicialmente IBM sostuvo que MFT y MVT eran simplemente "dos configuraciones del programa de control de OS/360 ", aunque más tarde IBM los describió como "versiones separadas de OS/360". [2] [ especificar ] [11]

IBM escribió originalmente OS/360 en lenguaje ensamblador . Más tarde, IBM escribió parte del código de OS/360 en un nuevo lenguaje, Basic Systems Language (BSL), [12] derivado de PL/I. Una gran parte del código TSO en la versión 20 se escribió en BSL.

El TSS/360 se lanzó tan tarde y era tan poco fiable que IBM lo canceló, aunque más tarde IBM suministró tres versiones del TSS/370 PRPQ. Para entonces, el CP-67 funcionaba lo suficientemente bien como para que IBM lo ofreciera sin garantía como una instalación de tiempo compartido para unos pocos clientes importantes. [13]

Variantes de OS/360

Estas tres opciones ofrecían facilidades tan similares que portar aplicaciones entre ellas normalmente requería un esfuerzo mínimo; las mismas versiones de la mayoría de los [NB 6] productos de programa de IBM , software de aplicación y utilidades se ejecutaban en ambas. El texto a continuación trata principalmente a PCP , MFT y MVT como simples nombres nuevos para los SSS , MSS y MPS originales , aunque hubo algunos cambios de diseño. Además, el texto no distingue entre M65MP y MVT.

Oficialmente, PCP, MFT y MVT no son sistemas operativos independientes de OS/360, [2] son ​​sólo opciones de configuración en el momento de la instalación; en palabras actuales, tres variantes diferentes de OS Nucleus y Scheduler. Sin embargo, debido a que su comportamiento y requisitos de memoria son muy diferentes, los usuarios suelen considerarlos de facto sistemas operativos independientes y se refieren a ellos como "OS/360 temprano", "OS/MFT" y "OS/MVT", respectivamente. MFT se diferencia de MVT principalmente en la forma en que administra la memoria: al instalar MFT, los clientes especifican en la generación del sistema (SysGen) un número fijo [NB 7] de particiones , áreas de memoria con límites fijos, en las que se pueden ejecutar programas de aplicación simultáneamente. [11]

PCP

El programa de control primario (PCP) estaba pensado para máquinas con memorias pequeñas. Es similar a MFT [NB 8] con una partición . La experiencia indicó que no era aconsejable instalar OS/360 en sistemas con menos de 128 KiB de memoria, aunque era posible un uso limitado en producción en máquinas mucho más pequeñas, como 48 KiB de memoria. IBM abandonó la opción PCP en las versiones finales de OS/360, dejando solo MFT II y MVT, que requerían más memoria.

También conocido como SYS=MIN en expansiones de macro que dependían del sistema.

MFT

La multiprogramación con un número fijo de tareas (MFT) se diseñó para funcionar como una solución provisional hasta que la multiprogramación con un número variable de tareas (MVT), la configuración prevista para OS/360, estuviera disponible en 1967. Las primeras versiones de MVT tenían muchos problemas, por lo que la más sencilla MFT siguió utilizándose durante muchos años. Después de introducir nuevas máquinas System/370 con memoria virtual en 1972, IBM desarrolló MFT 2 para convertirla en OS/VS1 , el último sistema de esta línea en particular.

La primera versión de MFT [14] compartía gran parte del código y la arquitectura con PCP, y estaba limitada a cuatro particiones . Era muy complicado ejecutar varias particiones. Muchas instalaciones utilizaban Houston Automatic Spooling Priority (HASP) para mitigar la complejidad.

La versión II de MFT (MFT-II) [15] compartía mucho más código del programa de control y del planificador con MVT y su ejecución era mucho más flexible. El número máximo de particiones aumentó a 52.

Las modificaciones posteriores de MFT-II agregaron subtareas , de modo que el número fijo de tareas ya no era fijo, aunque el número de particiones siguió siendo una limitación.

La experiencia indicó que no era aconsejable instalar MFT en sistemas con menos de 256 KiB de memoria, [16] lo que en la década de 1960 era una cantidad bastante grande.

También conocido como SYS=INT en expansiones de macro que dependían del sistema.

MVT

La multiprogramación con un número variable de tareas (MVT) [17] fue la más sofisticada de las tres configuraciones disponibles del programa de control de OS/360 , y una de las dos configuraciones disponibles en las versiones finales. [18] La MVT estaba pensada para las máquinas más grandes de la familia System/360. Introducida en 1964, no estuvo disponible hasta 1967. Las primeras versiones tenían muchos problemas y la más sencilla MFT siguió utilizándose durante muchos años. La experiencia indicó que no era aconsejable instalar la MVT en sistemas con menos de 512 KiB de memoria.

MVT trataba toda la memoria no utilizada por el sistema operativo como un único conjunto desde el cual se podían asignar regiones contiguas según fuera necesario, por un número ilimitado [NB 9] de programas de sistemas y aplicaciones simultáneos. Este esquema era más flexible que el de MFT y en principio utilizaba la memoria de forma más eficiente, pero era propenso a la fragmentación : después de un tiempo, uno podía descubrir que, aunque había suficiente memoria libre en total para ejecutar un programa, estaba dividida en fragmentos separados, ninguno de los cuales era lo suficientemente grande. [11] System/360 carecía de hardware de reubicación de memoria, por lo que no se podía utilizar la compactación de memoria para reducir la fragmentación. Una función llamada Rollout/Rollin podía transferir un trabajo en ejecución a un almacenamiento secundario para que su memoria estuviera disponible para otro trabajo. Sin embargo, el trabajo transferido tendría que ser transferido a las ubicaciones de memoria originales cuando volvieran a estar disponibles. [19]

En 1971 , se agregó la opción de tiempo compartido (TSO) para su uso con MVT como parte de la versión 20.1. TSO se volvió ampliamente utilizado para el desarrollo de programas porque proporcionaba un editor, la capacidad de enviar trabajos por lotes, recibir notificaciones de su finalización y ver los resultados sin esperar informes impresos, y depuradores para algunos de los lenguajes de programación utilizados en System/360. TSO en OS/360 [NB 10] se comunicaba con terminales mediante el método de acceso de telecomunicaciones (TCAM). El nombre de TCAM sugiere que IBM esperaba que se convirtiera en el método de acceso estándar para las comunicaciones de datos, pero de hecho TCAM en OS/VS2 se utilizó casi en su totalidad para TSO y fue reemplazado en gran medida por el método de acceso de telecomunicaciones virtuales (VTAM) a mediados y fines de la década de 1970.

También conocido como SYS=VMS en las invocaciones de algunas macros que dependían del sistema.

M65MP

El multiprocesamiento modelo 65 (M65MP) es una variante de MVT. Se ejecuta en un 360/65 en modo multisistema [20]. M65MP captura el uso de la instrucción Establecer máscara de sistema (SSM) para serializar el código deshabilitado entre las dos CPU. En general, un sistema M65MP tiene el mismo comportamiento e interfaces que cualquier otro sistema MVT.

El parámetro de palabra clave SYS=VMS incluía M65MP así como también MVT con un solo procesador.

Funciones compartidas

PCP, MFT y MVT ofrecen facilidades similares desde el punto de vista de los programas de aplicación:

  • La misma interfaz de programación de aplicaciones (API) y la misma interfaz binaria de aplicación (ABI), por lo que los programas de aplicación se pueden transferir entre MFT y MVT sin necesidad de modificarlos, volver a ensamblarlos o compilarlos .
  • El mismo JCL (Job Control Language, para iniciar trabajos por lotes), que era más flexible y fácil de usar, aunque más complejo, que el de DOS/360 .
  • Las mismas facilidades ( métodos de acceso ) para leer y escribir archivos y para comunicaciones de datos:
    • Los conjuntos de datos secuenciales normalmente se leen o escriben un registro a la vez, de principio a fin, mediante BSAM o QSAM . Esta era la única técnica que se podía utilizar para unidades de cinta , lectores/perforadoras de tarjetas e impresoras.
    • En los archivos indexados ( ISAM ), una sección específica de cada registro se define como una clave que puede usarse para buscar registros específicos.
    • En los archivos de acceso directo ( BDAM ), el programa de aplicación tiene que especificar el número de bloque relativo, el track and record (TTR) relativo o la ubicación física real (MBBCCHHR) [NB 11] en un dispositivo de almacenamiento de acceso directo (DASD) de los datos a los que quería acceder, o el punto de partida para una búsqueda por clave. La programación de BDAM no era fácil y la mayoría de las organizaciones nunca la usaron; pero era la forma más rápida de acceder a los datos en discos y muchas empresas de software la usaban en sus productos, especialmente sistemas de gestión de bases de datos como ADABAS , IDMS y DL/I de IBM . También está disponible en OS/360 Fortran. Los conjuntos de datos BDAM no están bloqueados, con un registro lógico por registro físico.
    • Una estructura de archivo adicional, particionada y método de acceso ( BPAM ), se utiliza principalmente para administrar bibliotecas de programas. Aunque los archivos particionados deben comprimirse para recuperar espacio libre, esto tiene un impacto menor que un requisito similar para la biblioteca de imágenes principales de DOS/360 , porque MFT y MVT permiten múltiples conjuntos de datos particionados y cada proyecto generalmente tiene al menos uno.
    • Los grupos de datos de generación (GDG) se diseñaron originalmente para respaldar los procedimientos de copia de seguridad abuelo-padre-hijo : si se modificaba un archivo, la versión modificada se convertía en el nuevo hijo, el hijo anterior se convertía en el padre, el padre anterior se convertía en el abuelo y el abuelo anterior se eliminaba. Pero se podían configurar GDG con más de 3 generaciones, y algunas aplicaciones usaban GDG para recopilar datos de un gran número de fuentes y enviar la información a un programa: cada programa de recopilación creaba una nueva generación del archivo y el programa final leía todo el grupo como un único archivo secuencial (al no especificar una generación en el JCL).
    • El BTAM , un sistema de comunicación de datos, era primitivo y difícil de utilizar para los estándares actuales. Sin embargo, podía comunicarse con casi cualquier tipo de terminal, lo que suponía una gran ventaja en una época en la que apenas existía una estandarización de los protocolos de comunicación.
  • El sistema de nombres de archivos permite gestionar los archivos como jerarquías con nombres de 8 caracteres como máximo en cada nivel, por ejemplo, PROYECTO.USUARIO.NOMBREDEARCHIVO. Esto está vinculado a la implementación del catálogo del sistema (SYSCTLG) y los volúmenes de control (CVOL), que utilizaban registros con claves de 8 bytes.

Funciones compartidas excluyendo PCP

Algunas funciones solo estaban disponibles para MFT y MVT:

Sistemas operativos System/370 y memoria virtual

Cuando se anunció el System/370 en 1970, ofrecía esencialmente las mismas funciones que el System/360, pero con una velocidad de procesador aproximadamente cuatro veces superior a la de las CPU System/360 de precio similar. [21] Luego, en 1972, IBM anunció las Funciones Avanzadas del System/370 , cuyo elemento principal era que las futuras ventas del System/370 incluirían la capacidad de memoria virtual y que ésta también podría adaptarse a las CPU System/370 existentes. Por lo tanto, IBM también se comprometió a ofrecer sistemas operativos mejorados que pudieran soportar el uso de memoria virtual. [22] [23]

Sistema operativo/360

IBM proporcionó una opción SYSGEN de OS/360 para soporte S/370, que no admitía DAT pero sí:

  • Registros de control de soporte
  • Admite E/S mejorada [NB 12]
  • Proporcionar un controlador de verificación de máquina S/370
  • Proporcionar soporte limitado para las nuevas funciones del temporizador.

Sistema operativo/VS1

OS/VS1 es el sucesor de MFT y ofrece funciones similares con varias incorporaciones, como RES y memoria virtual. VSAM (ver más abajo) estuvo inicialmente disponible como una versión de componente independiente (ICR) y luego se integró en la base de OS/VS1. [11] IBM lanzó mejoras bastante menores de OS/VS1 hasta 1983, y en 1984 anunció que no habría más. AIX/370 , AIX/ESA , DPPX , IX/370 , OS/VS1 y TSS/370 son los únicos sistemas operativos System/370 que no tienen descendientes modernos.

SVS y MVS de OS/VS2

La versión 1 de OS/VS2 era solo MVT más memoria virtual y VSAM (ver más abajo). [11] Esta versión finalmente fue renombrada OS/VS2 SVS , por Single Virtual Storage, cuando se presentó OS/VS2 Release 2, también conocida como MVS, por Multiple Virtual Storage. SVS fue concebido como un trampolín desde MVT a MVS, y hoy solo tiene interés histórico.

En 1974, IBM lanzó lo que describió como OS/VS2 Release 2, pero que en realidad era un nuevo sistema operativo compatible con OS/VS2 Release 1. El Supervisor del nuevo sistema había sido reescrito en gran parte en un nuevo dialecto de BSL, PL/S ; [24] [25] BSL y PL/S eran dialectos de PL/I con extensiones diseñadas para transcribir código de lenguaje ensamblador , incluidas las instrucciones privilegiadas necesarias para controlar la computadora como un todo. Los componentes del sistema operativo sensibles al tiempo, como el OS Dispatcher y el IOS , en particular, entre muchos otros, permanecieron codificados en lenguaje ensamblador , que se había mejorado para OS/VS en el ensamblador IFOX00 [NB 13] (del antiguo ensamblador OS/360 IEUASM).

La característica más notable de la nueva versión era que admitía múltiples espacios de direcciones virtuales: las diferentes aplicaciones pensaban que estaban usando el mismo rango de direcciones virtuales, pero las funciones de memoria virtual del nuevo sistema las asignaban a diferentes rangos de direcciones de memoria real. El espacio de direcciones de cada aplicación consta de tres áreas: sistema operativo (una instancia compartida por todos los trabajos); un área de aplicación que era única para cada aplicación; área virtual compartida utilizada para varios propósitos, incluida la comunicación entre trabajos. IBM prometió que las áreas de aplicación siempre serían de al menos 8 MB. Este enfoque eliminó el riesgo de fragmentación de memoria que estaba presente en MVT y SVS, y mejoró la seguridad interna del sistema. [11] El nuevo sistema rápidamente se hizo conocido como " MVS " (Multiple Virtual Storages), el OS/VS2 original se conoció como "SVS" (Single Virtual Storage) e IBM aceptó esta terminología y etiquetó a los sucesores de MVS como "MVS/ xxx ". [26]

MVS introdujo un nuevo enfoque para la gestión de la carga de trabajo, que permite a los usuarios definir objetivos de rendimiento para trabajos por lotes de alta prioridad. Esto les permitió dar a sus sistemas más trabajo que antes sin afectar el rendimiento de los trabajos de mayor prioridad. [27]

MVS fue el primer sistema operativo convencional de IBM en el System/370 [NB 14] que admitía lo que IBM llamaba multiprocesamiento estrechamente acoplado , en el que 2 (más tarde, hasta 12, para los mainframes de IBM, y hasta 16, para los mainframes de Amdahl ) CPU compartían acceso simultáneo a la misma memoria (y una única copia del sistema operativo y los dispositivos periféricos), lo que proporcionaba una mayor potencia de procesamiento y un grado de degradación elegante si una CPU fallaba (lo que, afortunadamente, se convirtió en un evento cada vez más raro, a medida que el tiempo de funcionamiento del sistema aumentaba de horas a días y, luego, a años ).

Inicialmente, MVS se suministraba con un gestor de cola de trabajos llamado JES2 (Job Entry Subsystem 2), que descendía de HASP ( Houston Automatic Spooling Priority ) y también soportaba la entrada remota de trabajos desde estaciones de trabajo ubicadas en otros lugares. JES2 solo puede gestionar trabajos para una CPU (que podría ser un sistema multiprocesador estrechamente acoplado). En 1976, IBM proporcionó otra opción, JES3 (Job Entry Subsystem 3), un descendiente de ASP ( Attached Support Processor ), que permite a una CPU gestionar una única cola de trabajos que alimenta trabajo a varias CPU físicamente distintas y, por lo tanto, permite que la consola de un operador gestione el trabajo de todas esas CPU. [28] Nota: JES1 era el gestor de cola de trabajos para OS/VS1 (ver arriba).

VSAM

IBM esperaba que el método de acceso al almacenamiento virtual (VSAM) reemplazara sus métodos de acceso secuencial, indexado y directo anteriores, ya que proporcionaba versiones mejoradas de estos: [29] [30]

  • Los conjuntos de datos de entrada secuenciada (ESDS) proporcionan funciones similares a las de los conjuntos de datos secuenciales y BDAM (directos), ya que pueden leerse desde el principio hasta el final o directamente especificando un desplazamiento desde el inicio.
  • Los conjuntos de datos secuenciados por clave (KSDS) son una importante actualización de los ISAM de IBM: permiten claves secundarias con valores no únicos y claves formadas concatenando campos no contiguos en cualquier orden; reducen en gran medida los problemas de rendimiento causados ​​por los registros de desbordamiento utilizados para gestionar inserciones y actualizaciones en ISAM; y reducen en gran medida el riesgo de que una falla de software o hardware en medio de una actualización de índice pueda dañar el índice. VSAM proporciona una interfaz ISAM / VSAM que permite que las aplicaciones basadas en ISAM utilicen VSAM KSDS sin reprogramación. [31]
  • Los conjuntos de datos de registros relativos (RRDS) son un reemplazo de los conjuntos de datos de acceso directo ( BDAM ), que permiten que las aplicaciones accedan a un registro especificando un número de registro relativo. A diferencia de ESDS y KSDS, RRDS no admite registros de longitud variable.

Estos formatos VSAM se convirtieron en la base de los sistemas de gestión de bases de datos de IBM , IMS/VS y DB2 (normalmente ESDS para el almacenamiento de datos real y KSDS para los índices).

VSAM también proporciona una nueva implementación de la función de catálogo que permite a las aplicaciones acceder a los archivos por nombre, sin necesidad de saber en qué unidad(es) de disco se encuentran. Los conjuntos de datos VSAM deben definirse en un catálogo VSAM antes de ser utilizados, y los conjuntos de datos que no sean VSAM también pueden incluirse en un catálogo VSAM. El catálogo maestro de MVS debe ser un catálogo VSAM. [30] Los catálogos se proporcionaron originalmente en OS/360 en forma de CVOL; MVS agregó una estructura de catálogo separada para VSAM; más tarde, IBM agregó un tercer tipo de catálogo conocido como catálogo ICF. [32] (IBM eliminó el soporte para los catálogos CVOL y VSAM a partir de 2000, ya que no eran compatibles con Y2K; por lo tanto, en z/OS, solo se admiten los catálogos ICF). [33]

SNA

En 1974, IBM anunció la arquitectura de sistemas de red , cuyo objetivo era reducir el coste de funcionamiento de grandes redes de terminales, principalmente mediante el uso de líneas de comunicación de forma mucho más eficiente. Esta arquitectura solo está disponible para los sistemas operativos de memoria virtual de IBM, ya que su componente de software para mainframe, VTAM , solo está disponible con estos sistemas operativos.

Versiones posteriores y mejoras de MVS

En 1977 IBM anunció MVS/System Extensions, un producto de programa (es decir, que costaba más dinero) que mejoraba el rendimiento de MVS y añadía funcionalidad. [34]

Los descendientes del MVS original todavía se utilizan en los últimos descendientes de System/360, System/390 y zSeries ; se le cambió el nombre a OS/390 para System/390, y la versión de 64 bits para zSeries se denominó z/OS .

Estructura, interfaz y lógica

Por razones de tamaño, esta sección se concentra en la opción MVT de OS/360; PCP y MFT son muy similares; con cambios en la nomenclatura y algunas diferencias menores. OS/VS1 y SVS tienen una estructura muy similar a MFT II y MVT, mientras que MVS , aunque conserva gran parte de la lógica de MVT, tiene mejoras importantes que se abordarán mejor en un artículo aparte. Este artículo se adhiere al uso que hace IBM del término almacenamiento en lugar de memoria .

Asignación de CPU

OS/360 asigna procesadores a tareas, que son análogas a los procesos o subprocesos livianos de otros sistemas. Cada tarea tiene un bloque de control de tareas (TCB) y una pila de bloques de solicitud [NB 15] (RB). Una tarea puede o no puede enviarse [NB 16] y un RB puede estar en espera [NB 17] o no esperar. El despachador selecciona la tarea despachable de mayor prioridad cuyo RB actual no esté en espera.

MVS asigna procesadores a espacios de direcciones , que son análogos a los procesos, y a bloques de solicitud de servicio (SRB) y tareas dentro de los espacios de direcciones. Cada espacio de direcciones tiene un bloque de control de espacio de direcciones (ASCB), una cola de SRB y una cola de TCB.

Disposición del almacenamiento

En OS/360, todo el almacenamiento es visible para todo el código, aunque la protección de búsqueda puede impedir el acceso de código sin privilegios a algunos bloques de control o entre trabajos. El almacenamiento principal para MVT se divide en un área del sistema ( fija ) en la parte inferior del almacenamiento real, un área común en la parte superior y un área privada en el medio. Estas contienen las siguientes áreas.

Área fija
Esta área comienza en la ubicación absoluta 0 y contiene
El Núcleo.
Esta es una sección de almacenamiento en la ubicación 0, cargada desde SYS1.NUCLEUS(IEANUCxx), donde xx normalmente es 01. Para el Modelo 65 MP (M65MP), hay una copia separada del prefijo (ubicaciones 0-4095) para cada procesador [35] : 72  y el término dirección absoluta se refiere a la dirección realmente enviada a la memoria después de cualquier prefijo mientras que el término dirección real se refiere a la dirección antes de que se aplique cualquier prefijo. El núcleo contiene manejadores de interrupciones, bloques de control, rutinas SVC de tipo 1 y tipo 2 , área transitoria SVC, rutinas que pueden ser llamadas directamente por código no privilegiado y rutinas que solo pueden ser llamadas por código privilegiado.
Área de cola del sistema (SQA).
Esta es un área desde la cual el sistema adquiere almacenamiento compartido entre trabajos.
Área privada.
Esta es un área en la que MVT adquiere almacenamiento para regiones. Los tipos de regiones incluyen:
Trabajo
Asignado por el iniciador para trabajos por lotes enviados por, por ejemplo, lector de tarjetas, CRJE, RJE, TSO
Primer plano
Contiene una sesión TSO intercambiada . Creada por la tarea de control de tiempo compartido (TSC).
Montar
Asignado por el Control de tareas iniciadas (STC) para el comando MOUNT del operador .
Tarea iniciada
Asignado por el Control de tareas iniciadas (STC) para el comando INICIO del operador .
Área común

'Esta es una sección de almacenamiento en la dirección física más alta. Contiene

Área BLDL para residentes
Esta es un área que almacena en caché entradas de directorio seleccionadas.
Región del Programador Maestro
El Programador Maestro y la tarea de Comunicación se ejecutan en esta región, que NIP asigna.
Área de paquetes de enlaces [NB 18] (LPA)
Esta es un área en la que MVT carga rutinas de método de acceso reentrante y otros programas en el momento de la IPL que posteriormente pueden ser compartidos por todos los trabajos.

Disposición del almacenamiento de SVS

SVS es similar excepto que el área del sistema está en la parte superior e inferior del almacenamiento virtual en lugar del almacenamiento real, el núcleo está en el almacenamiento virtual=real (V=R), el área privada contiene un área de cola del sistema local (LSQA) para cada región y el LPA se divide en:

Área de paquetes de enlaces paginables (PLPA)
Esta es un área que contiene todos los módulos en SYS1.LPALIB; el conjunto de datos de la página que lo respalda se conserva entre las IPL, excepto cuando se especifica la opción de crear LPA (CLPA).
Área de paquetes de enlaces modificados (MLPA)
Esta es un área que contiene módulos enumerados en un miembro IEALPAxx de SYS1.PARMLIB y que reemplaza módulos en el PLPA durante la duración de una IPL.
Área de paquetes de enlaces fijos (FLPA).
Esta es un área que contiene módulos fijos en la página enumerados en un miembro IEAFIXxx de SYS1.PARMLIB y que reemplazan módulos en la PLPA durante la duración de una IPL.

Disposición de almacenamiento del MVS/370

En MVS todos los espacios de direcciones comparten el área del sistema [NB 19] pero no el área privada. MVS agrega:

Área de almacenamiento común (CSA)
Esta es un área desde la cual MVS puede asignar dinámicamente almacenamiento compartido por todos los espacios de direcciones.
Área de trabajo del sistema (SWA)
Esta es un área que contiene bloques de control que en OS/360 y SVS estaban contenidos en SYS1.SYSJOBQE.

Disposición de almacenamiento de MVS/XA, MVS/ESA y OS/390

En MVS/XA y posteriores, hay áreas del sistema, privadas y comunes debajo delLínea de 16  Mi B (2 24 bytes) y áreas extendidas entre16  Mi B yGi B (2 31 bytes).

Disposición del almacenamiento en z/OS

En z/OS , el diseño de almacenamiento [36] es similar al de MVS/XA, MVS/ESA y OS/390; el almacenamiento por encima del La barra B de 2  Gi es administrada por servicios diferentes a los del almacenamiento debajo de la barra.

Proceso de IPL

Cuando los operadores seleccionan inicialmente LOAD, el sistema envía un READ IPLcomando al dispositivo seleccionado, leyendo 24 bytes del cilindro 0, pista 0, registro 1, en la ubicación de almacenamiento 0. [35] : 22  bytes 8-23 leídos y transferidos al registro de arranque [37] cilindro 0, pista 0, registro 2, que a su vez lee y transfiere al cargador IPL. El cargador IPL realiza el mantenimiento inicial, ubica el núcleo solicitado y lo carga con reubicación; el manejador de interrupciones csect siempre está en la ubicación 0 y el programa de inicialización de núcleo csect siempre es el último, de modo que eventualmente puede descartarse. El programa de inicialización de núcleo (NIP) inicializa varios componentes del sistema.

Inicialmente, NIP debe proporcionar los servicios que necesita. Sin embargo, a medida que inicializa varias funciones del sistema operativo, comienza a utilizar servicios estándar; por ejemplo, utiliza la OBTAINmacro para leer un bloque de control de conjunto de datos (DSCB) de una tabla de contenido de volumen (VTOC).

NIP lee miembros del SYS1.PARMLIBconjunto de datos para obtener diversos datos operativos. Estos miembros pueden estar especificados de forma predeterminada, por el operador o por parámetros en otros miembros.

NIP finalmente crea una región de Programación Maestra a partir del área privada y la transfiere a IEEVIPL para inicializar el Programador Maestro y la Tarea de Comunicación, lo que completa la Inicialización del sistema.

Unidades de trabajo similares a puestos de trabajo

Además de los trabajos por lotes, OS/360 admite varias categorías de trabajo que maneja de manera similar a los trabajos por lotes. En todos los casos, el sistema tiene que procesar JCL, asignar una región, asignar dispositivos e iniciar el programa de pasos del trabajo. Para un trabajo por lotes, el lector/intérprete procesa JCL desde un dispositivo externo; para STARTcomandos, MOUNTcomandos y TSO LOGON , el sistema genera JCL invocando un procedimiento catalogado.

Interfaces

API

OS/360 tiene un bloque de control conocido como Tabla de vectores de comunicaciones (CVT), que contiene punteros a otros bloques de control y a varias rutinas. Algunas de las macroinstrucciones de OS/360 hacen referencia a campos de la CVT y de otros bloques de control.

OS/360 tiene macros para proporcionar asignaciones de dsect de algunos bloques de control, aunque muchas macros tienen desplazamientos codificados en lugar de los nombres en las macros de asignación.

Los servicios de OS/360 normalmente tienen parámetros en el registro 1; algunos usan los registros 0 y 1 y otros usan los registros 0, 1 y 15.

Las macros de servicio de OS/360 suelen tener tres formas:

Formulario de ejecución
Realizar la función utilizando una lista de parámetros proporcionada
Formulario de lista
Genere una lista de parámetros con parámetros preestablecidos que puedan usarse en una macro de formulario de ejecución.
Formulario estándar
Genere cualquier lista de parámetros requerida y realice la función.

Muchos de los servicios importantes se implementan en rutinas SVC y conservan los registros 2 a 14. Otros se implementan como subrutinas directamente invocables, con direcciones de entrada en bloques de control del sistema y requieren que el registro 13 apunte a un área de almacenamiento estándar; estos suelen conservar los registros 2 a 13. En cualquier caso, el registro 15 al salir normalmente contiene un código de retorno; muchos servicios devuelven datos adicionales en los registros 0 y 1.

Consolas de operador

OS/360 requiere al menos una consola de operador; hay dos niveles de soporte

Primario
Este es un nivel básico de soporte que permite solo una consola principal y una consola alternativa opcional.
Compatibilidad con múltiples consolas (MCS)
MCS permite una consola maestra y hasta 31 consolas secundarias. Cualquiera de las 32 consolas puede tener una consola alternativa para recibir su tráfico de mensajes en caso de que falle. MCS permite registrar el tráfico de mensajes en un registro impreso, que puede ser una consola secundaria o el registro del sistema (SYSLOG) en DASD. MCS incluye compatibilidad con consolas de operador de pantalla independiente del dispositivo (DIDOCS), un marco unificado para admitir consolas basadas en CRT.

Cada mensaje emitido por un Operador de escritura a (WTO) o un Operador de escritura a con respuesta (WTOR) tiene asociado uno o más códigos de enrutamiento. El operador puede limitar una consola para que muestre únicamente códigos de enrutamiento específicos. Un uso típico de esto sería colocar una consola en una biblioteca de cintas y mostrar únicamente mensajes relevantes para el bibliotecario de cintas en ella. El código de enrutamiento especial 7 hace que el texto del mensaje se incluya en el registro de mensajes del trabajo.

Cada mensaje también tiene un descriptor que controla cómo se procesa.

Uno de los comandos del operador clave es REPLY, que proporciona una respuesta a la WTORmacro. El operador solo puede responder a un WTOR en una consola que recibió el texto del mensaje.

Un comando clave para consolas de visualización, por ejemplo, 2250 , 2260 , 3270 , es CONTROL ( K ), que establece opciones de procesamiento para, por ejemplo, el desplazamiento.

Liga de Campeones Juveniles

Cronología

Estos datos se han extraído de IBM 360 Operating Systems Release History, System/370 Market Chronology of Products & Services, IBM. "Fechas de lanzamiento, disponibilidad y retirada de z/OS, z/OS.e y OS/390". Archivado desde el original el 14 de marzo de 2008.y cartas de anuncio de IBM.

Véase también

Notas

  1. ^ Solo unos años después de Atlas Supervisor , Burroughs MCP y GECOS
  2. ^ VMS no estaba relacionado con el sistema VMS para el DEC VAX .
  3. ^ Las correcciones temporales del programa no estaban disponibles como código fuente.
  4. ^ IBM finalmente proporcionó facilidades interactivas para OS/360, por ejemplo, CRJE, ITF, TSO .
  5. ^ IBM no logró cumplir este objetivo y OS/360 requirió 44 KiB incluso para una producción limitada.
  6. ^ Por ejemplo, HASP no pudo ejecutarse en PCP.
  7. ^ El operador podía cambiarlos manualmente ingresando un comando DEFINE desde una consola de operador, pero el sistema no los ajustaba automáticamente para que coincidieran con la carga de trabajo.
  8. ^ Pero no a MFT II
  9. ^ Sujeto a la disponibilidad de recursos, por ejemplo, memoria para una región, clave de protección para una región de aplicación.
  10. ^ Posteriormente IBM agregó la capacidad de usar VTAM para TSO, pero solo en MVS.
  11. ^ El conjunto de datos debe tener el atributo inamovible.
  12. ^ Pero no IDAL
  13. ^ También se envía con DOS/VS y VM/370 .
  14. ^ OS/360 M65MP y TSS/360 admiten SMP.
  15. ^ El bloque de solicitud de servicio de MVS no está asociado con un TCB específico, a pesar del nombre.
  16. ^ Es decir, tiene uno o más indicadores de no capacidad de despacho establecidos en el TCB.
  17. ^ Es decir, tiene un recuento de espera distinto de cero.
  18. ^ También conocido como cola de paquetes de enlaces.
  19. ^ Excepto que hay una copia separada del PSA para cada procesador.

Referencias

Citas

  1. ^ Conceptos y funciones del sistema operativo IBM/360 (PDF) . IBM. 1965. C28-6535-0.
  2. ^ abcd INTRODUCCIÓN.
  3. ^ "DISTRIBUCIÓN DE PROGRAMAS CON LICENCIA DE IBM Y MATERIALES DE PROGRAMAS CON LICENCIA Y ACUERDO MODIFICADO PARA PROGRAMAS CON LICENCIA DE IBM". Cartas de anuncio. IBM . 8 de febrero de 1983. LTR ENUS283-016 . Consultado el 18 de noviembre de 2022 .
  4. ^ "SISTEMA OPERATIVO IBM OS/360". Enciclopedia Británica . Consultado el 11 de marzo de 2019 .
  5. ^ "System/360 Model 91". Archivos de IBM . IBM. 23 de enero de 2003. Archivado desde el original el 10 de marzo de 2005.
  6. ^ ab Johnston (1 de abril de 2005). "VSE: Una mirada a los últimos 40 años". z/Journal (abril/mayo de 2005). Thomas Communications, Inc. Archivado desde el original el 4 de marzo de 2009.
  7. ^ Chuck Boyer. "La revolución 360" (PDF) .
  8. ^ INTRO, p. 50, Configuración del programa de control.
  9. ^ TY Johnston. "Pasar a un entorno de VM total" (PDF) . Stanford Linear Accelerator Center .
  10. ^ "La encuesta SHARE de mediados de los años setenta". Archivado desde el original el 12 de mayo de 2008.
  11. ^ abcdef Auslander, MA ; Jaffe, JF (1973). "Estructura funcional de los sistemas operativos de almacenamiento virtual de IBM, Parte I: Influencias de la traducción dinámica de direcciones en la tecnología de los sistemas operativos". IBM Systems Journal . 12 (4). IBM: 368–381. doi :10.1147/sj.382.0340.
  12. ^ Especificaciones del lenguaje BSL (PDF) . IBM. Z28-6642-0.
  13. ^ "El IBM 360/67 y CP/CMS".
  14. ^ Sistema operativo IBM System/360: conceptos y consideraciones sobre multiprogramación con un número fijo de tareas (MFT) (PDF) . Primera edición. IBM. Octubre de 1966. GC27-6926-0.
  15. ^ Planificación para multiprogramación con un número fijo de tareas versión II (MFT II) (PDF) . Primera edición. IBM. Octubre de 1967. C27-6939-0.
  16. ^ Ray Saunders. "MVS... ¿Y antes de OS/360?". Archivado desde el original el 20 de diciembre de 2007.
  17. ^ Guía MVT del sistema operativo IBM System/360, versión 21 del SO (PDF) . Quinta edición. IBM. Marzo de 1972. GC28-6720-4.
  18. ^ INTRO, págs. 50-51, Configuración del programa de control "existen dos configuraciones del [programa de control de OS/360: ... La configuración de multiprogramación con un número variable de tareas (MVT)"
  19. ^ IBM Corporation (1973). Sistema operativo, generación 21 (PDF) . pág. 182.
  20. ^ "Apéndice A. Sistema de multiprocesamiento". Características funcionales del IBM System/360 Model 65 (PDF) . Cuarta edición. IBM. Septiembre de 1968. Págs. 30–34. A22-6884-3.
  21. ^ "Anuncio del System/370". IBM. 30 de junio de 1970. Archivado desde el original el 16 de enero de 2005.
  22. ^ "Cronología del DPD (1970–1974)". IBM. 23 de enero de 2003. Archivado desde el original el 23 de octubre de 2009.DPD = División de Procesamiento de Datos, responsable de los sistemas medianos y grandes de IBM.
  23. ^ Pugh, EW; Johnson, LR; Palmer, JH (1991). Sistemas IBM 360 y primeros 370. MIT Press. ISBN 0-262-16123-0.
  24. ^ Guía de listados generados por PL/S . Primera edición. IBM. Julio de 1972. GC28-6786-0.
  25. ^ Guía de PL/S II (PDF) . Primera edición. IBM. Mayo de 1974. GC28-6794-0.
  26. ^ "3033 Nota de prensa técnica". Archivado desde el original el 20 de abril de 2005.
  27. ^ Implementación de la gestión de carga de trabajo de MVS
  28. ^ Automatización del subsistema de entrada de trabajo 3 (JES3)
  29. ^ VSAM Demystified (PDF) (Tercera edición). Marzo de 2013.
  30. ^ por Jay Moseley (17 de enero de 2015). "Tutorial de VSAM".
  31. ^ Jay Moseley. «Interfaz ISAM/VSAM» . Consultado el 3 de junio de 2023 .
  32. ^ Sawyer, Peter (3 de marzo de 1989). SVC 26 y lo que puede hacer. COMPARTIR.
  33. ^ Pryor, Steve (febrero de 2003). "¿Dónde están los datos? Obtención de información a partir del catálogo" (PDF) . Soporte técnico . NaSPA . Consultado el 5 de marzo de 2017 .
  34. ^ "3033 Comunicado de prensa". Archivado desde el original el 20 de abril de 2005.
  35. ^ ab IBM System/360 Principles of Operation (PDF) . Biblioteca de referencia de sistemas IBM (octava edición). Septiembre de 1968. A22-6821-7 . Consultado el 23 de mayo de 2022 .
  36. ^ Memoria virtual de z/OS (PDF) . SHARE Phoenix 2019. SHARE Inc. 13 de marzo de 2019. Número de sesión: 24662 . Consultado el 16 de agosto de 2022 .
  37. ^ IPL, p. 3, El cargador de programa inicial.

Manuales de OS/360

DMMAC
Instrucciones de macro de gestión de datos del sistema operativo - Versión 21.7 (PDF) . Biblioteca de referencia de sistemas IBM (segunda edición). IBM . Junio ​​de 1973. GC26-3794-1 . Consultado el 7 de junio de 2022 .
Sociedad de Medicina Veterinaria y Veterinaria (SVMV)
Guía de servicios de macros de administración de datos del sistema operativo - Versión 21.7 (PDF) . Biblioteca de referencia de sistemas IBM (tercera edición). IBM . Julio de 1973. GC26-3746-2 . Consultado el 7 de junio de 2022 .
Sistema de gestión de datos de DMSY
Gestión de datos del sistema operativo para programadores de sistemas - Versión 21 (PDF) . Biblioteca de referencia de sistemas IBM (duodécima edición). IBM . Abril de 1973. GC28-6550-11 . Consultado el 7 de junio de 2022 .
INTRO
Introducción a OS/360 (PDF) . Biblioteca de referencia de sistemas (cuarta edición). IBM . 1972. GC28-6534-3 . Consultado el 7 de julio de 2022 .
Boletín Técnico GN28-2512 . 15 de enero de 1972.
Referencia JCL
IBM System/360 Operating System: Job Control Language Reference - OS Release 21.7 (PDF) . Biblioteca de referencia de sistemas IBM (quinta edición). IBM . Agosto de 1976. GC28-6704-4 . Consultado el 7 de junio de 2022 .
JCLUSER
IBM System/360 Operating System: Job Control Language User's Guide (PDF) . Biblioteca de referencia de sistemas IBM (tercera edición). IBM . Junio ​​de 1971. GC28-6703-2 . ​​Consultado el 7 de junio de 2022 .
Me gustó
IBM OS - Linkage Editor and Loader - Program Numbers 360S-ED-510 - 360S-ED-521 - 360S-LD-547 (PDF) . Biblioteca de referencia de sistemas IBM (undécima edición). IBM . Abril de 1973. GC28-6538-10 . Consultado el 7 de junio de 2022 .
MFT
Sistema operativo IBM System/360: Guía MFT - SO Release 21.7 (PDF) . Biblioteca de referencia de sistemas IBM (undécima edición). IBM . Agosto de 1974. GC27-6939-10 . Consultado el 7 de junio de 2022 .
MVT
Sistema operativo IBM System/360: Guía MVT - SO Release 21.7 (PDF) . Biblioteca de referencia de sistemas IBM (sexta edición). IBM . Agosto de 1974. GC28-6720-5 . Consultado el 7 de junio de 2022 .
SMF
OS SMF (PDF) . IBM Systems Reference Library (octava edición). IBM . Abril de 1973. GC28-6712-7 . Consultado el 7 de junio de 2022 .
SORBER
Sistema operativo versión 21 - IBM System/360 Operating System - Supervisor Services and Macro Instructions (PDF) . Biblioteca de referencia de sistemas IBM (octava edición). IBM . Septiembre de 1974. GC28-6646-7 . Consultado el 7 de junio de 2022 .
Sistema de control de sistemas
Sistema operativo IBM System/360: Bloques de control del sistema (PDF) . Biblioteca de referencia de sistemas IBM (décima edición). IBM . Abril de 1973. GC28-6628-9 . Consultado el 7 de junio de 2022 .
SISTEMA
Versión 21.8 de la generación del sistema operativo (PDF) . Biblioteca de referencia de sistemas IBM (decimocuarta edición). IBM . Agosto de 1974. GC28-6554-13 . Consultado el 7 de junio de 2022 .
SISTEMA DE GESTIÓN DE INSTALACIONES
Sistema operativo IBM System/360: Guía del programador del sistema (PDF) . Biblioteca de referencia de sistemas IBM (novena edición). IBM . Junio ​​de 1971. GC28-6550-9 . Consultado el 7 de junio de 2022 .
Operador de sistema de transmisión
IBM System/360 Operating System: Time Sharing Option Guide - OS Release 21.7 (PDF) . Biblioteca de referencia de sistemas IBM (octava edición). IBM . Abril de 1973. GC28-6698-7 . Consultado el 7 de junio de 2022 .
TSOCMD
Sistema operativo IBM System/360: Opción de tiempo compartido - Referencia del lenguaje de comandos - Versión del SO 21.7 (PDF) . Biblioteca de referencia de sistemas IBM (quinta edición). IBM . Abril de 1973. GC28-6732-4 . Consultado el 7 de junio de 2022 .

Manuales de lógica de OS/360

IOS 2da edición
Sistema operativo IBM System/360 - Supervisor de entrada/salida - Número de programa 360S-CI-535 (PDF) . Lógica de programas (segunda edición). IBM . Abril de 1967. GY28-6616-1 . Consultado el 7 de junio de 2022 .
iOS
OS I/O Supervisor Logic - Versión 21 - Número de programa 360S-CI-535 (PDF) . Program Logic (Décima edición). IBM . Febrero de 1972. GY28-6616-9 . Consultado el 7 de junio de 2022 .
LPI
Sistema operativo IBM System/360 - Cargador de programa inicial y programa de inicialización de Nucleus - Número de programa 360S-CI-535 (PDF) . Lógica de programas (sexta edición). IBM . Marzo de 1972. GY28-6661-5 . Consultado el 7 de junio de 2022 .
PCP TRABAJO
Sistema operativo IBM System/360: Gestión de trabajos, - Manual de lógica de programas, - Número de programa 360S-CI-505 (PDF) (Sexta edición). IBM . Junio ​​de 1970. GY28-6613-5 . Consultado el 7 de junio de 2022 .
TRABAJO MVT
Sistema operativo IBM System/360: Manual de lógica de programas de gestión de trabajos MVT, número de programa 360S-CI-535, versión 21 del SO (PDF) (décima edición). IBM . Marzo de 1972. GY28-6660-9 . Consultado el 7 de junio de 2022 .
MVTSUP
Sistema operativo IBM System/360 - Supervisor MVT (PDF) . Lógica de programas (octava edición). Mayo de 1973. GY28-6659-7 . Consultado el 7 de junio de 2022 .

Lectura adicional

Manuales

  • IBM, "Guía MVT" - GC28-6720-4, R21, marzo de 1972
  • IBM, "MVT Supervisor PLM" - GY28-6659-7, Manual de lógica de programas, marzo de 1972
  • IBM, "OS I/O Supervisor PLM" - GY28-6616-1, Manual de lógica de programas, abril de 1967
  • IBM, "OS I/O Supervisor PLM" - GY28-6616-9, Manual de lógica de programas, R21.7, abril de 1973

Libros

Artículos

  • "La creación del mainframe System/360 casi destruyó a IBM". IEEE Spectrum . 2019-04-05 . Consultado el 2022-05-02 .
  • Sistema operativo/360 1965–1972
  • MVS... Larga historia en archive.org
Retrieved from "https://en.wikipedia.org/w/index.php?title=OS/360_and_successors&oldid=1247940108#MFT"