Sistemas operativos modernos
mada JVM (Máquina Virtual de Java; Java Virtual Machine). El compilador de Java produ ce código para la JVM, que por lo regular es ejecutado por un intérprete de JVM en software. La ventaja de este enfoque es que el código JVM puede enviarse por Internet a cualquier compu tadora que tenga un intérprete de JVM y ejecutarse allí. Si el compilador hubiera producido pro gramas binarios para SPARC o Pentium, por ejemplo, no se podrían haber enviado y ejecuta do en cualquier lugar con tanta facilidad. (Desde luego, Sun podría haber producido un compilador que produjera binarios para SPARC y luego distribuido un intérprete de SPARC, pero JVM es una arquitectura mucho más sencilla que se presta a la interpretación.) Otra ven taja de usar JVM es que si el intérprete se implementa como es debido, lo cual no es del todo trivial, es posible verificar que los programas JVM que lleguen sean seguros y luego ejecutar los en un entorno protegido para que no puedan robar datos ni causar perjuicios. 1.7.4 Exokerneis Con el VM/370, cada proceso de usuario obfiene una copia exacta de la computadora real. Con el modo 8086 virtual en la Pentium, cada proceso de usuario obtiene una copia exacta de una computadora disünta. Yendo un paso más lejos, investigadores del MIT han construido un sis tema que proporciona a cada usuario un clon de la computadora real, pero con un subconjun- to de los recursos (Engler et al., 1995). Así, una máquina virtual podría obtener los bloques de disco del O al 1023, la siguiente podría recibir los bloques del 1024 al 2047, y así en forma sucesiva. En la capa más baja, ejecutándose en modo de kernel, está un programa llamado exokernel. Su labor consiste en asignar recursos a las máquinas virtuales y luego examinar cualquier inten to de usarlos para garantizar que ninguna máquina utilice los recursos de otra. Cada máquina vir tual en nivel de usuario puede ejecutar su propio sistema operativo, como en el VM/370 y las 8086 virtuales de Pentium, sólo que cada una está limitada a los recursos que solicitó y le fue ron asignados. La ventaja del esquema de exokernel es que ahorra una capa de mapeo o correspondencia. En los otros diseños, cada máquina virtual cree que tiene su propio disco, cuyos bloques van desde el Ohasta algún máximo, lo que obliga al monitor de la máquina virtual a mantener ta blas para convertir las direcciones de disco (y todos los demás recursos). Con el exokernel no es necesario efectuar esta conversión, pues lo único que tiene que hacer es mantenerse al tan to de qué recursos se han asignado a cuáles máquinas virtuales. Este método sigue teniendo la ventaja de separar la muitiprogramación (en el exokernel) y el código de sistema operativo del usuario (en el espacio de usuario), pero con menos gasto extra porque la única tarea del exo- kemel es evitar que las máquinas virtuales se interfieran mutuamente. 1.7.5 Modelo cliente-servidor El VM/370 gana mucho, desde el punto de vista de la sencillez, al pasar una buena parte del código de sistema operativo tradicional (la implementación de la máquina extendida) a una ca pa superior, CMS. No obstante, sigue siendo un programa complejo porque la simulación de
RkJQdWJsaXNoZXIy MjI4NDcx