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