Download Máquinas virtuales - Redes y Comunicaciones

Document related concepts
no text concepts found
Transcript
Capítulo 3: Estructura del sistema
 Para asegurar la funcionalidad y escalabilidad de los
sistemas operativos, se diseñan por módulos.
 Cada módulo es una porción bien definida del sistema,
con entradas salidas y función cuidadosamente
establecidas.
Sistemas Operativos 6a. Edición
3.1
Silberschatz, Galvin y Gagne ©2003
Estructura simple
 Existen sistemas operativos comerciales que no cuentan con
una estructura bien definida.
 MS-DOS – fue diseñado para proporcionar la mayor
funcionalidad en en el menor espacio de memoria.
 No está separado en módulos.
 Tiene cierta estructura pero sus interfaces y niveles de
funcionalidad no están bien separados. Por ejemplo: los programas
de aplicación pueden acceder a las rutinas básicas de
entrada/salida para escribir directamente en la pantalla y las
unidades de disco.
Sistemas Operativos 6a. Edición
3.2
Silberschatz, Galvin y Gagne ©2003
Estructura de MS-DOS
Sistemas Operativos 6a. Edición
3.3
Silberschatz, Galvin y Gagne ©2003
Estructura del Sistema Operativo UNIX
 UNIX – en sus primeras versiones, estaba limitado por la
funcionalidad del hardware. El sistema operativo UNIX
original tenía una estructura limitada. Estaba compuesto
por dos partes separables:
 Programas del sistema.
 El kernel
 Consiste en el programa que está por debajo de las
llamadas al sistema y por encima del hardware.
 Proporciona el sistema de archivos, planificación del
CPU, administración de la memoria y otras funciones del
sistema. Muchas funciones en un solo nivel.
 Las nuevas versiones de UNIX, descomponen el sistema
en piezas más pequeñas y apropiadas para un mejor y
más seguro manejo del hardware así como escalabilidad
mejorada.
Sistemas Operativos 6a. Edición
3.4
Silberschatz, Galvin y Gagne ©2003
Estructura del sistema operativo UNIX
Sistemas Operativos 6a. Edición
3.5
Silberschatz, Galvin y Gagne ©2003
Enfoque por capas
 La modularización de un sistema se puede lograr con el enfoque
por capas.
 Con el enfoque por capas, el sistema operativo es dividido en
varias capas, cada capa construida sobre una capa inferior. La
capa inferior ( capa 0 ), es el hardware del sistema; la capa
superior ( capa N ) es la interfaz con el usuario.
 Con el esquema modular, cada capa del sistema operativo
unicamente utiliza funciones y servicios de la capa
inmediatamente inferior. De esta manera se simplifica el
desarrollo, depuración y verificación del sistema.
Sistemas Operativos 6a. Edición
3.6
Silberschatz, Galvin y Gagne ©2003
Una capa del sistema operativo
Sistemas Operativos 6a. Edición
3.7
Silberschatz, Galvin y Gagne ©2003
Estructura por capas de OS/2
Sistemas Operativos 6a. Edición
3.8
Silberschatz, Galvin y Gagne ©2003
Microkernels
 A medida que evolucionaron los sistemas operativos, el kernel se volvió
grande y difícil de manejar. En la Universidad Carnegie Mellon se
desarrolló un kernel modular eficiente con las mínimas funciones
básicas denominado Mach. Todos los elementos no esenciales fueron
removidos del kernel. Este tipo de kernel se denomina microkernel.
 La función principal del microkernel es proporcionar un módulo de
comunicaciones entre el programa del cliente y los diversos servicios
que están ejecutándose en el espacio del usuario. El programa cliente y
el servicio nunca interactúan de forma directa; se comunican
indirectamente intercambiando mensajes con el microkernel.
 Beneficios:




Más fácil realizar modificaciones al microkernel.
Se simplifica adaptarlo a otras arquitecturas de hardware.
Mas confiable ( menos líneas de código ).
Mayor seguridad.
 Desventajas:
 Tiempo utilizado en realizar el paso de mensajes entre los programas del
sistema y los programas de usuarios.
Sistemas Operativos 6a. Edición
3.9
Silberschatz, Galvin y Gagne ©2003
Microkernel
 Digital UNIX proporciona al usuario una interfaz UNIX,
implementada sobre un kernel Mach.
 MacOS X de Apple se basa en el kernel Mach.
 Windows NT emplea una estructura híbrida. Está diseñado para
ejecutar aplicaciones Win32 ( nativas de Windows ), OS/2 y
POSIX. El kernel coordina el paso de mensajes entre las
aplicaciones cliente y los servidores de aplicaciones.
Sistemas Operativos 6a. Edición
3.10
Silberschatz, Galvin y Gagne ©2003
Estructura Mac OS X
Sistemas Operativos 6a. Edición
3.11
Silberschatz, Galvin y Gagne ©2003
Estructura cliente – servidor de Windows NT
Sistemas Operativos 6a. Edición
3.12
Silberschatz, Galvin y Gagne ©2003
Máquinas virtuales
 Un sistema operativo puede crear la ilusión de que un proceso
tiene su propio procesador con su propia memoria ( virtual ).
 Una máquina virtual proporciona una interfaz que es idéntica al
hardware que está en la base.
 A cada proceso se le presenta una copia ( virtual ) de la
computadora base.
 Los recursos de la computadora física son compartidos para
crear las máquinas virtuales.
 La planificación del CPU puede hace que cada proceso crea tener
su propio CPU.
 El sistema de archivos y dispositivos de entrada/salida puede crear
dispositivos de almacenamiento y de entrada/salida virtuales.
Sistemas Operativos 6a. Edición
3.13
Silberschatz, Galvin y Gagne ©2003
Modelos de sistemas
Máquina no virtual
Sistemas Operativos 6a. Edición
Máquina virtual
3.14
Silberschatz, Galvin y Gagne ©2003
Ventajas/desventajas de las máquinas virtuales
 La máquina virtual suministra protección a los recursos
del sistema debido a que las máquinas virtuales están
aisladas unas de otras. Sin embargo, este aislamiento no
permite compartir recursos.
 Una máquina virtual es un medio ideal para el desarrollo
e investigación de sistemas operativos. El desarrollo de
un sistema se lleva a cabo en una máquina virtual y por
lo tanto no perturba las operaciones del sistema
operativo normal.
 La máquina virtual requiere de capacidad extra por parte
del CPU anfitrión para crear duplicados del hardware.
Sistemas Operativos 6a. Edición
3.15
Silberschatz, Galvin y Gagne ©2003
Arquitectura VMware
Sistemas Operativos 6a. Edición
3.16
Silberschatz, Galvin y Gagne ©2003
Java
 Java es una tecnología introducia por Sun Microsystems en
1995. La tecnología consta de tres componentes:
 Especificación del lenguaje de programación.
 Interfaz para programación de aplicaciones ( API ).
 Especificación de la máquina virtual.
 Lenguaje de programación: programación multihilos, orientado a
objetos, distribuido e independiente del hardware.
Los objetos Java se especifican con la construcción class; un
programa Java consta de una o más clases.
El compilador Java genera un archivo ( . class ) en código de
bytes ( bytecode )
independiente del hardware que corre sobre la máquina virtual
de Java ( JVM ).
Sistemas Operativos 6a. Edición
3.17
Silberschatz, Galvin y Gagne ©2003
Java
 Interfaz para el programador de aplicaciones.
 La API básica proporciona soporte en lenguaje básico para graficar,
E/S, servicios y redes. Ejemplo de la API básica son java.lang,
java.awt, java.io y java.net.
 La extensión estándar API incluye soporte para empresas, comercio,
seguridad y medios.
 La Máquina Virtual Java ( JVM ) consta de:
 Cargador de clases.
 Intérprete de Java.
 Un compilador Java ( just – in – time JIT ) convierte los códigos
al lenguaje de máquina nativo de la computadora anfitriona..
 La plataforma Java consta de la JVM y la API de Java.
Sistemas Operativos 6a. Edición
3.18
Silberschatz, Galvin y Gagne ©2003
La máquina virtual de Java
Sistemas Operativos 6a. Edición
3.19
Silberschatz, Galvin y Gagne ©2003
La plataforma Java
Sistemas Operativos 6a. Edición
3.20
Silberschatz, Galvin y Gagne ©2003
Archivo .class de Java en plataformas
cruzadas
Sistemas Operativos 6a. Edición
3.21
Silberschatz, Galvin y Gagne ©2003
Entorno de desarrollo Java
Sistemas Operativos 6a. Edición
3.22
Silberschatz, Galvin y Gagne ©2003
Final del capítulo 3 – parte b.
Sistemas Operativos 6a. Edición
3.23
Silberschatz, Galvin y Gagne ©2003