El supervisor de entrada / salida ( IOS ) [1] es la parte del programa de control en el mainframe OS / 360 de IBM y los sistemas operativos sucesores que emite las instrucciones de E / S privilegiadas y supervisa las interrupciones de E / S resultantes para cualquier programa que solicite Operaciones del dispositivo de E / S hasta la conclusión normal o anormal de esas operaciones.
Propósitos
IOS tiene dos propósitos:
- Para manejar solicitudes de E / S, que son solicitudes para la ejecución de programas de canal.
- Para manejar las interrupciones de E / S, que resultan de la ejecución de programas de canal y de la intervención del operador.
Secciones del programa
Para facilitar el manejo de las solicitudes e interrupciones de E / S, IOS se divide en dos secciones principales del programa (CSECT):
- Ejecutar el supervisor del programa de canal ( EXCP en PCP, MFT / MFT-II y MVT; EXCP / EXCPVR , en SVS; STARTIO en MVS / 370 e instancias posteriores del SO)
- Supervisor de interrupción de entrada / salida
Estas secciones primarias residen en el almacenamiento principal y brindan soporte al programa de control para la ejecución normal de los programas de canal.
Las secciones de programas secundarios (también CSECT), denominadas Procedimientos de recuperación de errores (ERP), están, con una sola excepción, ubicadas en el almacenamiento externo y se llevan al almacenamiento principal para la recuperación de la ejecución anormal de programas de canal. En las primeras instancias del sistema operativo, estas secciones se llevaron al "área transitoria" del supervisor de entrada / salida, al igual que las "áreas transitorias" de la llamada del supervisor del programa de control OS / 360 . En instancias posteriores a MVT del sistema operativo, estas secciones están ubicadas en el área de paquete de enlaces paginable (PLPA) y están paginadas por demanda.
La única excepción es, por supuesto, el ERP para dispositivos de almacenamiento de acceso directo, que siempre debe permanecer residente para recuperarse de posibles errores de E / S en el volumen de IPL y en otros volúmenes que contienen conjuntos de datos que pueden estar concatenados con ciertos conjuntos de datos del sistema. .
Multiprogramación
IOS está diseñado en torno a un concepto de multiprogramación mediante el cual las operaciones en diferentes canales de E / S, unidades de control y dispositivos pueden gestionarse de forma simultánea y aparentemente simultánea. Esta simultaneidad y simultaneidad aparente está presente incluso en la versión más básica del sistema operativo, PCP, que por lo demás solo admite una tarea de usuario, ya que la arquitectura de hardware subyacente tiene un solo conjunto de instrucciones de E / S y una sola interrupción de E / S, por lo que acceder a los dispositivos y para acceder al estado del dispositivo resultante, respectivamente, disponible para admitir todos los dispositivos de E / S conectados, por lo tanto, todas las operaciones del dispositivo de E / S deben multiplexarse sincrónicamente en la media docena de instrucciones de E / S privilegiadas y demultiplexarse asincrónicamente fuera de la única interrupción de E / S por IOS [NB 1], sin embargo, todo este proceso, de principio a fin, parece estar sincronizado con la aplicación. Esencialmente, IOS es un sistema operativo de hipervigilancia construido sobre el propio sistema operativo, y completamente dentro de él, no como una función separable. Un hipervisor muy especializado , sin duda, ya que la hipervisación está restringida a varias instrucciones de E / S y una interrupción de E / S.
Multiprocesamiento
En MVS / 370 y en instancias posteriores del SO, IOS también está diseñado en torno a un concepto de multiprocesamiento mediante el cual todos los procesadores disponibles, hasta dos en MVS / 370 y hasta dieciséis en instancias posteriores del SO (doce fueron compatibles con IBM; dieciséis fueron respaldados por Amdahl), se utilizan de manera efectiva y eficiente. Y, para utilizar mejor esta capacidad de multiprocesamiento, la implementación de multiprogramación de IOS se dividió en unidades ejecutables más pequeñas, en particular aquellas que pueden ejecutarse bajo el control de un SRB .
Iniciación / Terminación
IOS no es invocado directamente por el programador. Por el contrario, IOS se invoca a través de "entradas de rama" para iniciar las solicitudes de E / S y mediante "controladores de interrupción" para completar las solicitudes de E / S.
Notas
- ^ Históricamente, este multiplexado / demultiplexado fue ayudado por un bloque de control especializado, privado para IOS y sus componentes, el llamado "doce estrellas" (abreviado, 12 *) en las encarnaciones anteriores a MVT de OS / 360 y así -llamado "dieciséis estrellas" (abreviado, 16 *) en MVT, pero todavía llamado "doce estrellas" en la mayoría de los casos. "Dieciséis estrellas" permanecieron en el procesador EXCP de MVS / 370 por motivos de compatibilidad, pero estos bloques de control privados se volvieron menos significativos a medida que más funciones de IOS se descargaban a los propios canales de E / S en las encarnaciones posteriores a MVS / 370 de la hardware y software.
Referencias
- ^ IBM Corporation (1967). Supervisor de entrada / salida del sistema operativo IBM System / 360 (PDF) .