domingo, 5 de junio de 2016

Sistema Operativo EXEC 8

EXEC 8


EXEC 8 era el sistema operativo UNIVAC desarrollado para el UNIVAC 1108 en 1964. Se combinan las mejores características de los sistemas operativos anteriores: EXEC I y EXEC II. EXEC 8 fue uno de los primeros sistemas operativos de multiprocesamiento con éxito comercial. Soportaba cargas de trabajo mixto simultáneo que comprendían procesamiento por lotes, tiempo compartido y en tiempo real. Soportaba un sistema de archivos con un tipo de estructura a través de muchos tambores y/o cabezales. Soportaba un sistema de procesamiento de transacciones muy bien recibido. Unisys continúa vendiendo y ofreciendo asistencia técnica a los sistemas basados en el 1108 original y en diseños del EXEC 8.
Exec 8
EXEC 8 (referido a veces como EXEC VIII) era el sistema operativo de UNIVAC desarrollado para el UNIVAC 1108 en 1964. Se combina las mejores características de los sistemas operativos anteriores, EXEC I y EXEC II, que se utilizaron en la UNIVAC 1107. EXEC 8 era uno de los primeros de éxito comercial multiprocesamiento sistemas operativos. Se apoyó cargas de trabajo mixtas simultáneas que comprenden por lotes, tiempo compartido y en tiempo real. Su único sistema de archivos tenía un sólo tipo de estructura a través de muchos tambores y cabezales. También apoyó un bien recibido sistema de procesamiento de transacciones.

Los sistemas anteriores eran todos los sistemas en modo real sin soporte de hardware para la protección y la separación de los programas y el sistema operativo. Si bien había sido el apoyo a la multiprogramación en los sistemas anteriores, se ha limitado a la ejecución de una tarea de un usuario simultáneamente con múltiples funciones de apoyo se sabe que son de buen comportamiento, como el lector de tarjetas, una impresora de tarjetas perforadas colas de impresión.

El sistema operativo Exec 8 fue diseñado desde el principio para ser un sistema operativo multiprogramación y multiproceso porque el 1108 fue diseñado para tener hasta cuatro CPU. La memoria y el almacenamiento masivo fueron las limitaciones de los sistemas primarios. Mientras que la Serie 1100 fue concebida como un mercado objetivo más general, el procesamiento extrema en tiempo real era una exigencia principal. [5]

Las especificaciones para Exec 8 se elaboraron antes de diciembre de 1964 como programadores preliminares Manual de Referencia (guía del usuario) y el trabajo comenzó en mayo de 1965. [6] [7]

Exec 8 comenzó como un tiempo real, sistema operativo con el uso temprano sobre todo en el trabajo científico y de ingeniería en general, pero también se utiliza en la conmutación de mensajes, control de procesos, simulación y control de lanzamiento de misiles. Fue diseñado para funcionar en sistemas que a menudo sólo tenían palabras 128K (576 bytes K-menor que el tamaño máximo de memoria para el IBM PC XT), y se centró en tiempo real y el procesamiento por lotes. Mientras que los niveles de liberación más tempranos hicieron obra en 128kW, lo que aumenta la funcionalidad en versiones posteriores que hizo insostenible, ya que no deja suficiente espacio para los programas de tamaño útil. La capacidad máxima de memoria de un 1108 era 256KW (1.148 KB) por lo que el uso eficiente de la memoria era la limitación más importante, ya que la memoria del núcleo era la parte más cara del sistema.

Almacenamiento masivo constaba de 6 pies de largo tambores giratorios que contenían 256KW (en el FH-432) a 2 MW (en el FH-1782). El almacenamiento masivo de capacidad más alta fue la FASTRAND tambor, que celebró 22 MW (99 MB). La fragmentación de archivos fue tratado por un proceso llamado "guardar archivo", que por lo general se realiza una vez por día, por la noche. Se trataba de rodar todos los archivos a unidades de cinta, al reiniciar el sistema de archivos tambor, entonces la lectura de los archivos de nuevo.

Con las limitaciones de memoria pesadas de uso en tiempo real, manteniendo sólo una única copia del código cargado en el núcleo era un requisito. Desde el 1108 ha sido diseñado para realizar múltiples tareas, el sistema era totalmente "reentrada" (seguro para hilos). Cada módulo de reentrada accede a los datos del programa a través de una memoria única "dirección base", que era diferente para cada instancia de datos de ejecución. Cambio de contextos de ejecución se podría hacer en una sola instrucción simplemente mediante el establecimiento de una dirección bases diferentes en un único registro. El sistema utiliza el bloqueo de grano fino para proteger las estructuras de datos compartidos. Los ejecutivos, compiladores, servicios públicos, e incluso aplicaciones de usuario sofisticadas que podrían tener múltiples copias que se ejecutan simultáneamente se escriben de forma que su código podría ser compartido. Esto requiere la carga de una sola copia en la memoria, ahorrando espacio y el tiempo que se tardó en cargar el código.

Otra razón para código independiente y datos en diferentes entidades de carga era que la memoria se implementa como dos bancos independientes (armarios físicos separados) llama IBank y DBank (instrucciones y datos). Cada uno tenía su propio camino de acceso, por lo que la CPU podía leer ambos bancos al mismo tiempo. Al cargar el código ejecutable en un banco de memoria y los datos en el otro, el tiempo de ejecución de muchos programas podría ser casi a la mitad.

Código reentrante tenía que ser hilo de seguridad (se ejecuta solamente); código mutante no estaba permitido. Para otros programas, modificar el código ejecutable en tiempo de ejecución seguía siendo una técnica de programación aceptable en el momento de los ordenadores de la serie 1100, pero los usuarios se les animó a no hacerlo debido al impacto en el rendimiento. Prestaciones de seguridad se promociona, pero no muy valorados porque la piratería mayoría de las aplicaciones de la serie 1100 no aportaría ningún beneficio para nadie, y porque unos piratas informáticos eran malévola a continuación.

Exec 8 era ante todo un proceso por lotes sistema que dio aplicaciones (llamadas "tareas") un control muy preciso de la prioridad de la CPU para la programación de sus hilos (llamado "actividades"). Procesador de conmutación era preventiva, con hilos de mayor prioridad hacerse con el control del procesador está ejecutando actualmente el subproceso de prioridad más baja de cualquier programa. Salvo en los sistemas de tiempo real, incluso las tareas de prioridad más baja consiguieron un poco de tiempo de procesador. Era un sistema operativo multiprogramación y multiprocesamiento con la gestión de procesador totalmente simétrica. Una instrucción de prueba-y-conjunto integrado en el hardware permitió muy eficiente y finamente granulada de bloqueo tanto en el sistema operativo y en las aplicaciones de subprocesos múltiples.

En Exec 8, se organiza el trabajo en puestos de trabajo, llamado "carreras", que se programan en base a su prioridad y necesidad de recursos con llave como unidades de cinta Uniservo o archivos de tambor Fastrand. La sintaxis del lenguaje de control utiliza el símbolo "@" (que Univac llama "el espacio maestro") como el símbolo de reconocimiento sentencia de control. Fue seguido inmediatamente por el comando o el nombre del programa, a continuación, una coma y los interruptores de opciones. Después de un carácter de espacio, el resto de la declaración difería para los comandos particulares. Un comando para compilar un programa FORTRAN se vería como "SourceFile @FOR [, opciones], objectFile". Los datos de entrada para una aplicación podrían ser leídos desde un archivo (en general, imágenes de la tarjeta), o siguen inmediatamente el comando @ en el flujo de ejecución. Todas las líneas hasta que el comando centinela "@END" se supone que los datos de entrada, así que olvidar colocar condujo al compilador de interpretar los comandos posteriores como los datos del programa. Por esta razón, es preferible para procesar datos en archivos en lugar de introducir en el flujo de ejecución.

En 1968, se inició la adición de tiempo compartido capacidad de Exec 8. Se entrega con el nivel 23 de la ejecutiva en 1969. El tiempo compartido (llamado demanda modo) tenía las mismas capacidades que los procesos por lotes y en tiempo real. Todo lo que se podía hacer en el lote se podría hacer desde un terminal ASCII. En el modo de demanda, flujo de trabajo de E / S se unió a una imagen de la carta (entrada) y los archivos de cola (salida) manejador de terminal en lugar de. El mismo lenguaje de control de ejecución se utilizó para ambos. Unos años más tarde, se añadieron comandos más específicos de tiempo compartido, y algunas sentencias de control podrían ser emitidos de forma asíncrona para su procesamiento inmediato, aun cuando ni el programa en ejecución ejecutiva o estaban esperando datos. Esos comandos, que sólo se podía entrar desde un terminal, comenzaron con "@@". Ya que podrían llevarse a cabo sin detener otros trabajos en curso desde el mismo terminal, fueron llamados comandos transparentes. Al principio se trataba sólo declaraciones para matar el programa actual o redirigir la salida del terminal en un archivo, pero con el tiempo, casi todas las sentencias de control se les permitía ser "inmediata".


Ambos experimentos de lotes y la demanda terminan con una sentencia @FIN, y si la demanda de un usuario termina su sesión mientras carrerilla está activo, el Exec se termina automáticamente la carrera sin requerir @FIN.


0 comentarios:

Publicar un comentario