Entradas populares
-
Sistemas monolíticos Los sistemas monolíticos son aquellos en los que su centro es un grupo de estructuras fijas, las cuales funcionan...
-
Exokernel Exokernel : se refiere a un sistema creado con fines de investigación en el Instituto Tecnológico de Massachusetts sobre Opens...
-
Sistemas por capas El primer sistema que tuvo esta estructura fue el sistema THE construido en la Technische Hogeschool Eindhoven d...
-
Modelo cliente-servidor La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entr...
miércoles, 10 de septiembre de 2014
Dado que la memoria RAM es volátil y pequeña para todos los datos y programas quese precisan guardar, se utilizan discos para guardar la mayoría de la información. ElSistema operativo será el responsable de:• Administrar el espacio libre• Asignar la información a un determinado lugar• Algoritmos de planificación de disco (estos algoritmos deciden quien utiliza unDeterminado recurso del disco cuando hay competencia por él.
Proporciona una vista uniforme de todas las formas de almacenamiento, implementandoEl concepto de archivo como una colección de bytes. El Sistema Operativo deberáProveer métodos para:• Abrir, cerrar y crear archivos• Leer y escribir archivos.
Antes que nada, tener en cuenta que por protección nos referimos a los mecanismos porLos que se controla el acceso de los procesos a los recursos.En un sistema multiusuario donde se ejecutan procesos de forma concurrente se debenTomar medidas que garanticen la ausencia de interferencia entre ellos. Estas medidasDeben incorporar la posibilidad de definir reglas de acceso, entre otras cosas.
El sistema brindará un entorno de ejecución de programas donde se dispondrá de unConjunto de servicios. Los servicios principales serán:• Ejecución de programas (el SO deberá ser capaz de cargar un programa aMemoria y ejecutarlo. El programa deberá poder finalizar, de forma normal oanormal)• Operaciones de E/S (el SO deberá proveer un mecanismo de acceso ya que porEficiencia y protección los usuarios no accederán directamente al dispositivo)• Manipulación del Sistema de archivos (se deberá tener acceso al sistema deArchivos y poder, como mínimo, leer, escribir, borrar y crear).• Comunicación entre procesos (los procesos deberán poder comunicarse, ya seaQue estén en el mismo computador o el diferentes)• Manipulación de errores (el sistema deberá tomar decisiones adecuadas anteEventuales errores que ocurran, como fallo de un dispositivo de memoria, falloEn un programa, etc.)
Sistemas monolíticos
Los sistemas monolíticos son aquellos en los que su centro es un grupo de estructuras fijas, las cuales funcionan entre sí.
En los Sistemas Operativos Monolíticos, existen módulos grandes en el núcleo, los cuales interactúan entre sí, para poder tener esta estructura, las diferentes partes del kernel son compiladas por capas.
Los sistemas monoliticos se describen en 3 procesos principales:
- Un Programa principal que invoca el procedimiento de servicio solicitado.- Un Conjunto de procedemientos de servicio que llevan a cabo las llamadas del sistema.- Un Conjunto de procedimientos de utilería que ayudan a los procedimientos del servicio.En teoria un procedimiento dado puede invocar a ciertos servicios los cuales a su vez se verán ayudados por programas de utilería los cuales extraeran información importante para este.
SISTEMAS MONOLÍTICOS
Es una colección de procedimientos que se pueden llamar entre sí, cada procedimiento tiene una interfaz bien definida en términos de parámetros y resultados.Un sistema monolítico está compuesto por un grupo de estructuras fijas las cuales funcionan entre sí. Existen módulos grandes en el kernell, los cuales interactúan entre sí, para poder tener una estructura, las diferentes partes del Kernell son compiladas por capas. Se encarga del funcionamiento del PC como son comunicación entre procesos, planificación y gestión del espacio de direcciones.
Sistemas por capas
El primer sistema que tuvo esta estructura fue el sistema THE construido en la Technische Hogeschool Eindhoven de los Países Bajos por E. W. Dijkstra (1968) y sus estudiantes. El sistema THE era un sencillo sistema por lotes para una computadora holandesa, la Electrologica X8, que tenía 32K de palabras de 27 bits (los bits eran costosos en esos tiempos).Más arriba de la capa 0, el sistema consistía en procesos secuenciales, cada uno de los cuales podía programarse sin tener que preocuparse por el hecho de que múltiples procesos se estuvieran ejecutando en un solo procesador. En otras palabras, la capa 0 se encargaba de la multiprogramación básica del CPU.La capa 1 administraba la memoria, repartiendo espacio para los procesos en la memoria principal y en un tambor de 512K palabras que servía para contener partes de los procesos (páginas) para las que no había espacio en la memoria principal. Más arriba de la capa 1, los procesos no tenían que preocuparse por si estaban en la memoria o en el tambor; el software de esa capa se encargaba de que se colocaran en la memoria las páginas en el momento en que se necesitaban.La capa 2 manejaba la comunicación entre cada proceso y la consola del operador. Por encima de esta capa cada proceso tenía efectivamente su propia consola de operador.La capa 3 se encargaba de administrar los dispositivos de E/S y de colocar en buffers las corrientes de información provenientes de y dirigidas a ellos. Más arriba de la capa 3 cada proceso podía tratar con dispositivos de E/S abstractos con propiedades bonitas, en lugar de dispositivos reales con muchas peculiaridades. En la capa 4 se encontraban los programas de usuario, los cuales no tenían que preocuparse por la administración de procesos, memoria, consola o E/S. El proceso del operador del sistema estaba en la capa 5.Una forma más generalizada del concepto de capas estuvo presente en el sistema MULTICS. En vez de estar organizado en capas, MULTICS estaba organizado como una serie de anillos concéntricos, siendo los interiores más privilegiados que los exteriores.Aunque todo el sistema operativo formaba parte del espacio de direcciones de cada proceso de usuario en MULTICS, el hardware permitía designar procedimientos individuales (en realidad, segmentos de memoria) como protegidos contra lectura, escritura o ejecución.En tanto el esquema por capas del sistema THE era en realidad sólo una ayuda para el diseño, ya que todas las partes del programa en última instancia se vinculaban en un solo programa objeto, en MULTICS el mecanismo de anillo estaba muy presente en el momento de la ejecución y el hardware obligaba a ajustarse a él. La ventaja del mecanismo de anillo es que fácilmente puede extenderse para estructurar los subsistemas de usuario. Por ejemplo, un profesor podría escribir un programa para probar y calificar los programas de los estudiantes y ejecutar este programa en el anillo n, con los programas de los estudiantes ejecutándose en el anillo n + 1 para que los estudiantes no puedan modificar sus calificaciones. |
Microkernels |
El paradigma del micronúcleo, tuvo una gran relevancia académica durante los años ochenta y principios de los noventa, dentro de lo que se denominó self healing computing, esto es, sistemas independientes que fuesen capaces de superar por si mismos errores de software o hardware. En un principio pretendía ser una solución a la creciente complejidad de los sistemas operativos.Microkernel: es un tipo de núcleo de un sistema operativo que provee un conjunto de primitivas o llamadas mínimas al sistema para implementar servicios básicos como espacios de direcciones, comunicación entre procesos y planificación básica. Todos los otros servicios (gestión de memoria, sistema de archivos, operaciones de E/S, etc.), que en general son provistos por el núcleo, se ejecutan como procesos servidores en espacio de usuario.
Las principales ventajas de su utilización son la reducción de la complejidad, la descentralización de los fallos (un fallo en una parte del sistema no se propagaría al sistema entero) y la facilidad para crear y depurar controladores de dispositivos. Según los defensores de esta tendencia, esto mejora la tolerancia a fallos y eleva la portabilidad entre plataformas de hardware.Por otro lado, sus principales dificultades son la complejidad en la sincronización de todos los módulos que componen el micronúcleo y su acceso a la memoria, la anulación de las ventajas de Zero Copy y la integración con las aplicaciones. Además, los procesadores y arquitecturas modernas de hardware están optimizadas para sistemas de núcleo que pueden mapear toda la memoria. Sus detractores le achacan también y fundamentalmente, mayor complejidad en el código, menor rendimiento y limitaciones en diversas funciones.
Estructura de núcleo monolítico, micronúcleo y núcleo híbrido
Modelo cliente-servidor
La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.Una tendencia en los sistemas operativos modernos es llevar aún más lejos esta idea de trasladar código a capas superiores y quitarle lo más que se pueda al sistema operativo, dejando un kernel mínimo. El enfoque usual consiste en implementar la mayor parte de las funciones del sistema operativo en procesos de usuario. Para solicitar un servicio, como leer un bloque de un archivo, un proceso de usuario (ahora llamado proceso cliente) envía la solicitud a un proceso servidor, el cual realiza el trabajo y devuelve la respuesta.Este modelo se muestra en la Figura 8, lo único que el kernel hace es manejar la comunicación entre los clientes y los servidores. Al dividir el sistema operativo en partes, cada una de las cuales sólo se encarga de una faceta del sistema, como el servicio de archivos, de procesos, de terminales o de memoria, cada parte puede ser pequeña y manejable. Además, dado que todos los servidores se ejecutan como procesos en modo de usuario, y no en modo de kernel, no tienen acceso directo al hardware. Por tanto, si se activa un error en el servidor de archivos, es posible que el servicio de archivos se caiga, pero normalmente esto no hará que se caiga toda la máquina. |
Maquina virtual
En informatica una maquina virtual es un software que simula a una computadora y puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una maquina fisica". La acepcion del termino actualmente incluye a maquinas virtuales que no tienen ninguna equivalencia directa con un harware real.
uuna caracteristica esencial de las maquinas virtuales es que los procesos que ejecutan estan limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de una computadora virtual.
Uno de los usos domésticos más extendidos de las máquinas virtuales es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Mac OS X por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin miedo a que se desconfigure el sistema operativo primario.
Tipos de máquinas virtuales
Máquinas virtuales de sistema (en inglés System Virtual Machine)Máquinas virtuales de proceso (en inglés Process Virtual Machine).La máquina virtual puede proporcionar una arquitectura de instrucciones (ISA]) que sea algo distinta de la verdadera máquina. Es decir, podemos simular hardware.Varias máquinas virtuales (cada una con su propio sistema operativo llamado sistema operativo "invitado" o "guest"), pueden ser utilizadas para consolidar servidores.
-
Funcionamiento de VMWare
Máquinas virtuales de sistema
Las máquinas virtuales de sistema, también llamadas máquinas virtuales de hardware, permiten a la máquina física subyacente multiplicarse entre varias máquinas virtuales, cada una ejecutando su propio sistema operativo. A la capa de software que permite la vitalización se la llama monitor de máquina virtual o hypervisor.
Funcionamiento de la máquina virtual de Java
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. El ejemplo más conocido actualmente de este tipo de máquina virtual es la máquina virtual de Java. Otra máquina virtual muy conocida es la del entorno. De Microsoft que se llama "Common Lenguaje Runtime".
Inconvenientes de las máquinas virtuales
Uno de los inconvenientes de las máquinas virtuales es que agregan gran complejidad al sistema en tiempo de ejecución. Esto tiene como efecto la ralentización del sistema, es decir, el programa no alcanzará la misma velocidad de ejecución que si se instalase directamente en el sistema operativo "anfitrión" (host) o directamente sobre la plataforma de hardware. Sin embargo, a menudo la flexibilidad que ofrecen compensa esta pérdida de eficiencia.
sábado, 6 de septiembre de 2014
Exokernel
Exokernel: se refiere a un sistema creado con fines de investigación en el Instituto Tecnológico de Massachusetts sobre Opens y otros sistemas operativos similares. Su propósito es crear una especie de capa de software para otros sistemas virtuales.
Historia
El concepto de exonúcleo fue introducido en torno a los finales de 1994, pero aún en 2005 los exonúcleos siguen siendo un gran esfuerzo en investigación y no son usados en ningún sistema operativo comercial popular. Un sistema operativo que sigue la filosofía exonúcleo es Nemesis, escrito por la Universidad de Cambridge, la Universidad de Glasgow, Citrix Systems y el Instituto Sueco de Informática. El MIT también ha desarrollado varios sistemas exonúcleo, como el ExOS.
Exokernel es un sistema puesto a la solicitud de control.
Un sistema operativo se interpuso entre las aplicaciones y el hardware físico. Por lo tanto, su estructura tiene un impacto dramático en el desempeño y el alcance de las aplicaciones que pueden construirse en él.
Estructura de un sistema de exokernel. Que utilizan las aplicaciones de su propia biblioteca del sistema operativo (LibOS), que a su vez el uso exokernel para asignar recursos de hardware y liberar.
Desde su creación, el campo de los sistemas operativos ha estado tratando de identificar una estructura apropiada: los intentos anteriores incluyen el conocido monolítico y micro-kernel de los sistemas operativos, así como más exóticos basados en la lengua y la máquina virtual de sistemas operativos. Exokernels da un giro total con forme a lo que es micro-kernel y monolítico. Un exokernel elimina la noción de que un sistema operativo debe proporcionar abstracciones en las que se construyen las aplicaciones. En cambio, se concentra exclusivamente en la seguridad de multiplexación pura de hardware: desde las primitivas básicas de hardware, la aplicación a nivel de las bibliotecas y los servidores pueden aplicar directamente el sistema operativo tradicional abstracciones, especializados para la conveniencia y la velocidad.
El más reciente exokernel es XOK, que se ejecuta en el hardware de una PC, y ExOS, nuestra primera biblioteca del sistema operativo (libos). ExOS La biblioteca ofrece un nivel de usuario extensibles y aplicación de un sistema operativo UNIX. La mayoría de las aplicaciones UNIX como gcc, perl, telnet y compilar y trabajar sin cambios con ExOS. Además, las mediciones de rendimiento de las aplicaciones demuestran que ExOS realiza por lo menos, así como OpenBSD y FreeBSD y mucho mejor cuando se usa la libos especializados. Por ejemplo, el Cheetah servidor web incorporado en la parte superior de XOK realiza ocho veces más rápido que el de autoevaluación o de cosecha.
Suscribirse a:
Entradas (Atom)