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