next up previous contents
Next: Diseño Padre-hijo con memoria Up: Diseños del monitor y Previous: Diseño Padre-Hijo

Diseño de parte baja de la memoria

La idea principal de este diseño es cargar el código del proceso monitor en una localidad de memoria después del primer megabyte de direcciones, como
  
Figure 6.3: Diseño de parte baja de la memoria.
\begin{figure}
\epsfxsize=280pt
\hspace{.25in}
\epsffile{dsg_mem_baja.eps}
\end{figure}

se aprecia en la figura 6.3A. Así, cuando el proceso monitor inicialice el proceso V86, debe construir la máquina DOS en el primer megabyte de su espacio de direcciones, dar de alta el hilo V86, el puerto de excepciones y poner en ejecución al hilo V86. Este método se implantó con mucho éxito en el trabajo realizado por Malan, Rashid, Golub, y Baron [9].

Este esquema tiene la facilidad de que no crea un nuevo proceso, en vez de esto, sólo crea un hilo extra (hilo V86) y construye un bloque de memoria (en vez de crear la tarea V86). Además el proceso monitor puede actualizar directamente la parte baja del espacio de direcciones para llevar acabo la simulación de las instrucciones especiales, debido a que son direcciones de memoria de su propia tarea Mach.

Esta parece ser la solución idónea, sin embargo, en la versión de Mach que se esta trabajando, el sistema operativo NeXTSTEP reserva la primera página de memoria (llamada PAGE_ZERO) para almacenar las instrucciones y estructuras de los MachObjects6.4 y para atender a los apuntadores cuando tienen el valor NULL, como se aprecia en la figura 6.3B. Esta página de memoria tiene permisos de lectura escritura y ejecución sólo para el sistema operativo, el usuario no puede cambiar estas protecciones.


next up previous contents
Next: Diseño Padre-hijo con memoria Up: Diseños del monitor y Previous: Diseño Padre-Hijo
Amilcar Meneses
2002-10-03