Resumen Tema 2 SOM PDF
Document Details
Tags
Summary
Este documento resume el tema 2 sobre sistemas operativos monousuario (SOM). Se describen diversos conceptos relacionados con la gestión de hardware y software por parte de los sistemas operativos, incluyendo la evolución histórica de los sistemas operativos, recursos y funciones de un sistema operativo, gestión de memoria, procesos y el procesador, multiprogramación y memoria virtual, y gestión de entrada/salida.
Full Transcript
UNIDAD 2 CONCEPTO DE SO/VIRTUALIZACIÓN Sistema Operativo: Conjunto de programas, servicios y funciones que gestionan y coordinan el funcionamiento del hardware y del software. Clasificación seún la gestión que hacen del hardware y del software: Sistemas Oper...
UNIDAD 2 CONCEPTO DE SO/VIRTUALIZACIÓN Sistema Operativo: Conjunto de programas, servicios y funciones que gestionan y coordinan el funcionamiento del hardware y del software. Clasificación seún la gestión que hacen del hardware y del software: Sistemas Operativos monousuario (SOMO). Solo un usuario. Sistemas Operativos multiusuario (SOMU). Varios usuarios utilizan potencialmente el software y el hardware. Sistemas Operativos en red (SORED). 2.Evolución histórica de los SO Sistemas Operativos Monolíticos: Casi imposible modificar una vez instalado en un sistema informático. Cualquier modificación por pequeña que sea implica reconfigurarlo. Era mas fácil rediseñarlo que modificarlo. 1ª GENERACIÓN: Válvulas de vacío. Programadas en lenguaje máquina. Gran tamaño. Elevado consumo de energía. Muy lentas. Las operaciones se reducción a simple cálculos matemáticos. 2ª GENERACIÓN: Transistores. Mas pequeños que las anteriores. Mas baratos. Consumen menos. Despiden menos calor. Procesamiento por lotes. 3ª GENERACION: Circuitos integrados. Se reduce el consumo. Se reduce el tamaño. Más barato. Más rápidos. Consumen menos energía. Generan menos calor. Operaciones lógicas y/o aritméticas. SOMU= varios procesos a la vez Ej.IBM 360. 4ª GENERACION: Microprocesadores. Memorias de semiconductores. Complejos técnicas de mioniturización e integración de componentes. Dispositivos de almacenamiento externo. 3. Recursos y funciones de un SO. El sistema operativo coordina la utilización que se hace del hardware. Interfaz de Usuario (UI): Es el punto de interacción y comunicación humano-computadora en un dispositivo. También es la forma en que un usuario interactúa con una aplicación o un sitio web. Puede ser de interfaz de línea de comandos (CLI) o interfaz gráfica de usuario (GUI). La INTERFAZ permite la comunicación entre los distintos niveles. LOS SERVICIOS: Son programas (Scripts) que se ejecutan en segundo plano para realizar tareas específicas que no requieren interacción directa del usuario, proporcionando funcionalidad o soporte a otras aplicaciones o al sistema operativo general. Según se instalen a partir de una aplicación o vengan integrados en el sistema tendrán ubicaciones diferentes. Proporcionan a los usuarios formas de poder utilizar los recursos del SO. Se instalan junto al SO. 4. Gestión de recursos de un SO. 4.1 La Memorias Es el dispositivo que retiene, memoriza o almacena datos informáticos durante algún periodo de tiempo. Proporciona una de las principales funciones de la computación moderna: el almacenamiento de información y conocimiento. EL ADMINISTRADOR DE MEMORIA: Es la parte del S.O que administra la memoria. Lleva un registro de las partes de memoria que se están utilizando y las que no. Reserva espacio y libera. Gestiona el intercambio de datos entre memoria y disco (procesos grades). Hace una labor muy importante para SO multitarea ya que trabajan con varios procesos a la vez. ¿Como trabaja el administrador de memoria? Gestión eficiente de memoria dinámica, archivos mapeados, memoria compartida y copia en escritura. 4.2 Los procesos y el procesador. Un proceso es un programa en ejecución. Características de un proceso: Debe residir en memoria y tener asignados todos los recursos que necesite. Ningún proceso puede acceder o modificar la zona de memoria asignada a otro proceso. Puede ser: Usuario (restricciones al acceso Hardware), Kernel o privilegiado (acceso a cualquier recurso). BCP (Bloque Central de Proceso) donde almacena info a cerca del proceso. Pueden comunicarse, sincronizarse y colaborar entre si. Un proceso se le asigna un espacio de direcciones lógicas (SO 32 bits). Un proceso siempre esta cargado en memoria junto a los datos. Un proceso se divide en trozos de igual tamaño (páginas o frames). Cuando un proceso se carga en memoria se utilizan técnicas como memoria virtual, segmentación u otras para pasar de la memoria virtuall a la memoria real. Un proceso en ejecución compite con el resto de procesos que se están ejecutando de forma concurrente en el sistema, por el uso de los recursos hardware y a veces por los recursos software. Cuanto mayor sea el numero de instrucciones que puede procesar un procesador, mayor será el velocidad el sistema. MULTIPROGRAMACIÓN: Reparto de recursos del sistema entre los distintos procesos y su ejecución concurrente. MEMORIA VIRTUAL: Técnica que permite al software usar mas memoria principal que la que posee el ordenador en realidad. 4.3 Gestión de Entrada/Salida. La CPU tiene como tarea relacionar y comunicar los periféricos con los componentes internos del equipo (memoria, procesador y buses). Suele ir integrada en la placa base en circuitos llamados chipset o a través de una tarjeta controladora, la cual hará de intermediario entre el dispositivo y la placa base del ordenador. INTERFACES: Tipo texto. Interfaz de línea de comandos (CLI). Tipo gráfico. Interfaz gráfica de usuario (GUI). Mixta. Muestra características de ambas interfaces. 5. Arquitectura y componentes. Los SO pueden funcionar en varias arquitecturas o plataformas gracias a la abstracción que se hace del hardware. Cada maquina virtual tiene una copia exacta del hardware real que gestiona el propio SO e incluye el nivel núcleo, ejecutivo, supervisor y usuario. Ventajas: Ante un bloqueo el hardware real no se bloquea. Cada proceso corre en diferente maquina virtual. La interacción entre el usuario y la máquina se produce cuando el proceso termina. 6. Modo de explotación del sistema. Sistemas operativos multiusuario (SOMU)= ira destinado ciclos de CPU secuencialmente a cada proceso, para intentar que todos tengan la misma prioridad. No todos los procesos que se lanzan están en ejecución, puede que alguno este en espera. CLASIFICACIÓN DE LOS SSOO DE FORMA GENERAL: a.) Proceso por lotes. Los procesos se ejecutan secuencialmente (uno tras otro). El usuario no obtiene los resultados de forma inmediata y no existe interacción con el usuario. El tiempo de respuesta en los sistemas operativos que utilizan este método, no es importante, siendo bastante elevado. Una utilidad pudiera ser la realización de copias de seguridad del sistema, cualquier tarea que efectúe a un número grande de archivos. b.) Proceso en tiempo real: La respuesta se obtiene al momento. El proceso es: introducir, procesar y visualizar los datos. CLASIFICACIÓN DE LOS SSOO EN TIEMPO REAL: SEGUN EL NUMERO DE USUARIOS: a.) Monousuario: todo el hardware esta a disposición de un solo usuario. b.) Multiusuario: varios usuarios pueden utilizar simultáneamente los recursos del sistema. SEGUN EL NUMERO DE PROCESOS: a.)Monotarea o Monoprogramación: El sistema solo puede ejecutar un solo programa a la vez. Recursos del sistema dedicados al programa hasta que finalice ejecución. Solo puede gestionar un SOLO microprocesador. Monotarea no implica multiusuario, b.) Multitarea o Multiprogramación: El SO puede ejecutar varios procesos a la vez. El SO puede gestionar mas de un microprocesador. Se puede utilizar en sistemas con un procesador con varios. SEGUN EL NUMERO DE PROCESADORES a.) Monoprocesador: El ordenador consta de un solo procesador. El ordenador con este SO puede ser monousuario o multiusuario. El ordenador con este SO puede ser monotarea o multitarea. b.) Multiprocesador: El ordenador tiene más de un procesador. Tipos: ◦ Multiproceso simétrico (SMP) = utiliza procesadores de igual forma. ◦ Multiproceso asimétrico (AMP) = reparte las tareas entre los distintos procesadores. SEGUN EL TIEMPO DE RESPUESTA: Tiempo en obtener los resultados después de lanzar un programa a ejecución. a.) Tiempo real: respuesta inmediata o casi inmediata. b.) Tiempo compartido: cada proceso utiliza ciclos de la CPU hasta que finalice. SEGUN SU TRABAJO EN RED: Dependiendo de la forma en que el sistema informático puede trabajar y utilizar los recursos de la red. a.) Centralizados: El equipo informático NO comparte ningún recurso ni utiliza recusos de otros ordenadores por la red. b.) En red: Permiten compartir recursos y conectar varios equipos entre sí. c.) Distribuidos: funcionan de manera que para los usuarios la existencia de la red resulta trasparente, facilitando el acceso a los recursos de la red del sistema, ya que el usuario los utiliza como si se tratase de recursos locales. Facilitan la gestión y acceso a los usuarios, 7. Sistemas Operativos más usuales. Los SSOO actuales son abiertos y segmentados. Fácil modificarlos. El conjunto de programas están divididos en bloques y cada uno controla una parte del sistema. Se estructura en niveles: Cada nivel se encarga de una función distinta. Los SSOO por niveles se les llama también SSOO por capas. Existen otros SSOO llamados virtuales: Tienen un núcleo que les permite emular el hardware. Cada proceso o programa que se lanza a ejecución se ejecuta en un espacio de memoria totalmente independiente. Cada proceso que se lanza dispone de una copia “Virtual” del hardware. Ante cualquier bloqueo, el resto de programas no se ve afectado. 8. Virtualización. Ya vimos como uno de los objetivos de los sistemas operativos consiste en la abstracción (separar los programas en funcionamiento del hardware del equipo). Decíamos entonces que los sistemas operativos consegúian realizar este objetivo creando una serie de máquinas virtuales en las que se ejecutaban las aplicaciones. Cada una de estas máquinas virtuales generadas por el sistema operativo ofrece a las aplicaciones una serie de recursos virtuales (almacenamiento, impresora, video…) de modo que un error en la aplicación no afecte al hardware real del sistema informático, si no a este hardware virtual. Sin embargo, estas máquinas no se comportan realmente como máquinas completas, ya que solo ofrecen a las aplicaciones algunos recursos, no replican todos los recursos existentes en una máquina real. El concepto de virtualización nace cuando a alguien se le ocurre crear una máquina virtual que replique completamente a una máquina real, de modo que sobre dicha máquina ficticia podamos correr un sistema operativo al cual se le estaría “engañando” ya que este piensa que se esta ejecutando sobre una máquina normal cuando en realidad lo hacemos sobre una máquina virtual. 8.1 Anfitrión (Host) y Huésped (Guest). El Aftr. o Host es el sistema operativo del ordenador en el cual instalamos nuestro programa de virtualización, que prestará algunos recursos de su hardware a la máquina virtual que nosotros creemos. El Invta. o Huéstped es el sistema operativo que instalaremos en el ordenador virtual que hemos creado mediante nuestro programa de virtualización y le hemos dotado de algunos determinados recursos. 8.2 Requisitos Hardware. Para construir la máquina virtual tenemos que asignar determinados recursos de hardware, como son espacio de disco duro, memoria RAM, número de procesadores, etc. que el anfitrión compartirá con el invitado. Es conveniente como mínimo contar con 8GB de Ram, suficiente espacio en disco duro, y lo más importante un microprocesador potente que pueda dividir su tiempo de proceso entre los dos SSOO. La extensión de Intel para virtualización de la arquitectura de 32 y 64 bits se llama IVT (Intel Virtualization Technology). Está disponible para todos los procesadores de última generación de Intel (Quad Core, i3, i5, i7, i9) y en algunos modelos de los procesadores anteriores. La extensión de virtualización AMD para la arquitectura de 64 bits y x86 (32 bits) se llama AMD Virtualization (abreviada AMDV). Los procesadores AMD que usan Socket AM5, AM4, AM3, AM2, Socket S1 y Socket F incluyen AMD-V (prácticamente todos los micros AMD tienen estas extensiones). 8.3 Tipos de máquinas virtuales. 8.3.1 Máquinas virtuales de sistema. Las máquinas virtuales de sistema, también llamadas máquinas virutales de hardware, permiten a la máquina física dividirse entre varias máquinas virtuales, cada una ejecutando su propio sistema operativo. A la capa de software que permite la virtualización se la llama monitor de máquina virtual, ”hipermonitor” o ”hipervisor” y pueden ser de dos tipos: DE TIPO 1: El hipervisor o monitor corre directamente sobre nuestro hardware y nos permite crear máquinas virtuales, por lo tanto desaparece la necesidad de contar con un sistema operativo anfitrión, solo tendremos sistemas huéspedes y el anfitrión sera directamente nuestro hipervisor. A esto se le llama HIPERVISOR NATIVO. DE TIPO 2: Es el que hemos visto anteriormente, en el cual un sistema operativo corre sobre el hardware del sistema, montamos un monitor o hipervisor sobre dicho sistema operativo anfitrión, y este monitor crea los sistemas operativos invitados. A este se le llama HIPERVISOR ALOJADO. 8.3.2 Máquinas virtuales de proceso. Una máquina virtual de proceso, a veces llamada “máquina virtual de aplicación”, se ejecuta como un proceso normal dentro de un sistema operativo y soporta un solo proceso. La máquina se inicia automáticamente cuando se lanza el proceso que se desea ejecutar y se detiene para cuando éste finaliza. Su objetivo es el de proporcionar un entorno de ejecución independiente de la plataforma de hardware y del sistema operativo, que oculte los detalles de la plataforma subyacente y permita que un programa se ejecute siempre de la misma forma sobre cualquier plataforma. La más común de este tipo es la máquina virtual de Java. 8.4 Técnicas de Virtualización. 8.4.1 Virtualización Nativa. Cada máquina virtual puede ejecutar cualquier sistema operativo soportado por el hardware real del sistema. Así los usuarios pueden ejecutar dos o más sistemas operativos distintos simultáneamente en computadoras siempre que dichos sistemas operativos puedan funcionar en la arquitectura hardware de la máquina física. Si tenemos una arquitectura x86 solo podríamos correr sistemas con esa arquitectura. 8.4.2 Virtualización NO nativa. Las máquinas virtuales también pueden actuar como “emuladores de hardware”, permitiendo que aplicaciones y sistemas operativos concebidos para otras arquitecturas de procesador se puedan ejecutar sobre un hardware que en teoría no soportan. 8.4.3 Paravirtualización. Consiste en permitir que los sistemas operativos que corren en las máquinas virtuales ataquen en algunos casos directamente el hardware del sistema, de modo que las instrucciones llegan directamente al hardware de nuestra maquina real o anfitrión, sin tener que ser traducidas y gestionadas por el hipervisor. El gran problema de la paravirtualización es que los sistemas operativos no están preparados para funcionar dentro de una máquina virtual, de modo que el sistema operativo “guest o invitado” tiene que ser modificado íntegramente para poder ser utilizado. Evidentemente esto lo podemos hacer si el SO tiene una licencia de software abierto, como Linux por ejemplo, pero es imposible realizarlo con SO de licencias cerradas como Windows o Mac OS, lo que implica que en las máquinas virtuales que se monten con este sistema de paravirtualización no podremos emular ningún sistema operativo 8.5 Ventajas de la virtualización. La adopción por gran parte de las empresas se debe sin lugar a dudas a las ventajas que este tipo de tecnología ofrece como puede ser el ahorro de costes, la posibilidad de crear entornos de pruebas, entornos aislados seguros u olvidarnos de los problemas de compatibilidad de los programas cuando no trabajamos con Windows Ahorro de costes: Es una de las cuestiones por las cuales más se han interesado las empresas, puesto que donde antes necesitaban dos equipos ahora sólo uno. Podemos ganar mucho más tiempo gracias a la facilidad de administración o clonación de los discos duros. Entornos de prubas: Para los que no pueden esperar a que salga la versión definitiva de unb programa y estamos probando versiones beta o instalando programas de software que pensamos que nos serán útiles, tal vez nos interesa virtualizar nuestro propio sistema para realizar todas estas instalaciones en el sistema virtual y dejar nuestro sistema anfitrión “limpio”. Entornos aislados de seguridad: Si estáis obsesionados con la seguridad seguro que os interesa crear un sistema aislado donde las únicas conexiones con internet se harán en entornos seguros y la navegación se realizará con mucho más cuidado. Compativilidad de programas: Cuando utilizas un sistema operativo Linux o Mac a veces no es posible encontrar el programa que necesitamos para estas plataformas, por lo que o tenemos instalado Windows o nos buscamos otra alternativa. Rápida incorporación de nuevos recursos: Para los servidores virtualizados, es muy fácil asignar hardware nuevo a una máquina virtual. Reducción de los costes de espacio y consumo energético: Necesario de forma proporcional al índice de consolidación logrado (Estimación media 10:1). Administración global centralizada y simplificada. Nos permite gestionar nuestro CPD: Como un pool de recursos o agrupación de toda la capacidad de procesamiento, memoria, red y almacenamiento disponible en nuestra infraestructura. Aislamiento: Un fallo general de sistema de una máquina virtual no afecta al resto de máquinas virtuales. Un fallo en la máquina física se solventa sustituyendo la máquina completa Reduce los tiempos de parada necesarios: Migración en caliente de máquinas virtuales (sin pérdida de servicio) de un servidor físico a otro, eliminando la necesidad de paradas planificadas por mantenimiento de los servidores físicos. Balanceo dinámico de máquinas virtuales: garantizando que cada máquina virtual ejecute en el servidor físico más adecuado y proporcionando un consumo de recursos homogéneo y óptimo en toda la infraestructura. Posibilidad de migración: De toda nuestra infraestructura de una localización a otra de forma muy simple. Simplificación de la administración de sistemas: Posibilidad de que el administrador cuente con toda la infraestructura clonada para fines de prueba y aprendizaje. 8.6 Soluciones de Virtualización. 8.6.1 Virtualización con VirtualBox. VirtualBox va por la versión 7 en el momento de escribir estos apuntes y es un programa para facilitar la virtualización completa de sistemas operativos que podremos instalar tanto en Windows, Mac como Linux. La sencillez es una de las mayores ventajas para el usuario que quiera comenzar a conocer la virtualización. Oracle nos ofrece su producto bajo licencia PUEL (Personal Use and Evaluation License), totalmente funcional y que podemos utilizar a nivel doméstico para nuestros propósitos de virtualizar un sistema operativo en nuestros equipos de casa. Es importante instalar las Guest Addition de VirtualBox, que nos permitirán realizar una transición entre equipo invitado y anfitrión sin tener que estar pulsando la tecla “Control” para cambiar la opción de usar teclado y ratón entre sistemas anfitrión e invitado. Además nos posibilita la opción de cortar y pegar texto entre documentos de los distintos sistemas y varias mejoras gráficas bastante apreciables. 8.6.2 Virtualización con VM Ware. Al contrario que VirtualBox, que es un único programa, VMware presenta varias soluciones para la virtualización, enumeremos algunas de ellas: vCenter Converter: Esta herramienta nos permite virtualizar nuestro propio equipo o hacerlo con cualquier otro de nuestra red. Muy interesante cuando se realiza una migración a sistemas virtuales y no se quiere perder ninguna funcionalidad. GRATUITO. VMware Workstation Player: Es un hipervisor de tipo 2 de virtualización completa o nativa al igual que VirtualBox. Nos permite crear y ejecutar máquinas virtuales. Es ligero y tiene un rendimiento estupendo, reconoce muy bien los usb facilitando el transpaso de carpetas. De PAGO. VMware ThinApp: No es un hipervisor, sino una máquina virtual de proceso. Sirve para que preparemos una aplicación de modo que funcione en cualquier ordenador, independientemente del sistema operativo que dicho ordenador use. Es un software de PAGO. VMware Fusión: Es un hipervisor de tipo 2 para sistemas operativos Mac. Es un software de pago. El equivalente del Workstation para Apple. vSphere Hypervisor: Es un hipervisor de tipo 1 de virtualización completa o nativa. VMware ESXi se com#porta como si fuera un sistema operativo en sí mismo y hace innecesario tener instalado en el servidor ningún sistema operativo para que haga las funciones de anfitrión. GRATUITO. VMware vSphere Client: software que nos permite gestionar los servidores ESXi de nuestra empresa, de forma centralizada. GRATUITO. VMware vCenter server: parecido a vSphere Client, pero mucho más poderoso. Tiene más opciones a la hora de controlar los servidores ESXi y las máquinas virtuales que corren en ellos. De PAGO. VMware vSphere: Cuando se habla de vSphere, se suele hacer referencia al conjunto resultante de usar servidores ESXi, vSphere Client y en su caso vCenter. Es un nombre genérico, y no nombra ningún componente concreto. 8.6.3 Virtualización con KVM (Code abierto). KVM se encuentra integrado en el núcleo de Linux a partir de la versión 2.6.20 del Kernel. Esta aplicación necesita soporte de hardware para ejecutar la virtualización, ya sea con procesadores de Intel o de AMD. En caso de que nuestro procesador no soporte dichas tecnologías de virtualización será inútil intentar instalarlo KVM es un software que ofrece un buen rendimiento en máquinas virtuales, pero que presenta los problemas de no ser multiplataforma (solo funciona en Linux) y de una interfaz algo más engorrosa que la de las otras soluciones propuestas. 8.6.4 Virtualización con XEN. Sistema de código abierto que permite utilizar directamente la paravirtualización. Xen consigue realizar una paravirtualización realmente eficaz que permite ejecutar las máquinas virtuales con un rendimiento bastante alto, pero obliga a “portar” los sistemas operativos completos a las API de Xen, lo que vendría a ser como modificar en gran parte el código fuente del sistema operativo y volver a compilarlo. De momento esto se ha conseguido hacer con sistemas operativos Linux y BSD, y aunque se han hecho pruebas portando sistemas Windows, el tema de licencias hace imposible hacer uso de ellas. Mirar bien Xen en los apuntes.! 8.6.4 Virtualización con Hyper-V. Microsoft decidió que quería contar con una solución de virtualización más potente y lanzó Hyper-V con el Windows 2008. La versión individual (standalone) de Hyper-V solo puede ser administrada desde su propio CLI (Command Line Interface), y no necesita ningún sistema operativo previo instalado en el ordenador. (Es un hipervisor de tipo 1). La versión incluida conjuntamente con Windows Server 2008 R2 se activa y administra como un “rol” más del servidor, al igual que podemos activar el rol de servidor de ficheros o el rol de controlador de dominio. Hyper-V trabaja mediante lo que denomina particiones. Una partición es un contenedor lógico, creada por el hipervisor, en el que se ejecuta un sistema operativo virtualizado.