next up previous contents
Next: La organización de DOS Up: DOS como aplicación de Previous: Las aplicaciones en NeXTSTEP

Emulación vs simulación

La parte central para un soporte de DOS en NeXTSTEP es trabajar este Sistema Operativo como un proceso que se ejecuta en modo de operación virtual 8086 del i486. Este soporte se apoya en la forma en que se realizan los llamados al sistema DOS, la organización de la memoria física de una máquina DOS, y la forma en que se manejan las excepciones generadas por las instrucciones especiales.

Considerando la discusión hecha en el primer capítulo, veremos que la ejecución de DOS como una aplicación de NeXTSTEP se basa en el desarrollo de una MV 8086 y su MMVH (además de contar con características de MMV de tipo II) ya que todas las instrucciones privilegiadas de simulan5.1 y además corre como un sistema operativo huésped5.2. Para tener la MV 8086 se utiliza un hilo que, al trabajar en el modo virtual 8086, hace que los procesadores 80486 en adelante, emulen al 8086. Es decir, trabajamos con una emulación y no con una simulación, ya que se aprovecha el hecho que un conjunto de instrucciones de DOS se ejecutan libremente en el CPU donde corre el sistema anfitrión: NeXTSTEP. En la simulación el Sistema Operativo tiene la apariencia de ejecutarse sobre una máquina que no existe, y en la emulación el procesador 80486 se comportará como si fuera un 8086.

Debido a que, en este caso, el emulador constituye un MMVH, se utilizan algunas técnicas de simulación del hardware, aprovechando los servicios del sistema operativo, para el manejo de instrucciones especiales y el manejo de dispositivos de entrada y salida, esto se aprecia en la tabla 5.1:


 
Table 5.1: Comparación entre el proceso de simulación y emulación de un SO
Dispositivo Simulador Emulador Emulador con Mach y NeXTSTEP
CPU Proceso CPU CPU en modo virtual v86
Arq. trap Señales Señales Manejo de excepciones
Instrucciones privilegiadas Simulación Simulación o ejecución directa Simulación
E/S Archivos especiales Archivos especiales Archivos especiales / Objetos
  

Esta tabla muestra las equivalencias e igualdades que se tienen con la simulación y emulación clásica de un sistema operativo, contra la emulación que se pretende realizar.

Cuando se simula un CPU se utiliza la abstracción de proceso, sin embargo, para la emulación el CPU trabaja en otro modo de operación, como el modo que nos interesa: el modo de operación virtual 8086 del i486. Con la emulación se obtiene un mayor rendimiento en la ejecución de programas que con la simulación, ya que muchas instrucciones se ejecutan directamente sobre el CPU.

Un simulador trabaja la arquitectura trap con el uso de señales del sistema operativo, en nuestro caso particular utilizamos las facilidades que nos brinda Mach para este propósito: el manejo de excepciones.

Las instrucciones privilegiadas se manejan igual en ambos casos, se sustituyen por un conjunto de funciones que realizan las tareas de las distintas instrucciones privilegiadas (es decir, se simula su comportamiento).

Los dispositivos de entrada y salida se manejan con archivos especiales (que proprociona el servidor de UNIX que tiene Mach), y los objetos gráficos de NeXTSTEP.


next up previous contents
Next: La organización de DOS Up: DOS como aplicación de Previous: Las aplicaciones en NeXTSTEP
Amilcar Meneses
2002-10-03