Sistemas Operativos
Ramonitalabrador17 de Noviembre de 2013
5.140 Palabras (21 Páginas)275 Visitas
UNIDAD VII: SISTEMAS OPERATIVOS DISTRIBUIDOS Los sistemas distribuidos están basados en las ideas básicas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad. Sin embargo estos aspectos son en parte contrarios, y por lo tanto los sistemas distribuidos han de cumplir en su diseño el compromiso de que todos los puntos anteriores sean solucionados de manera aceptable. Transparencia: El concepto de transparencia de un sistema distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, independientemente de la posición del usuario. Queda como labor del sistema operativo el establecer los mecanismos que oculten la naturaleza distribuida del sistema y que permitan trabajar a los usuarios como si de un único equipo se tratara. En un sistema transparente, las diferentes copias de un archivo deben aparecer al usuario como un único archivo. Queda como labor del sistema operativo el controlar las copias, actualizarlas en caso de modificación y en general, la unicidad de los recursos y el control de la concurrencia. El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del sistema, pero el sistema operativo debe controlar que tanto los usuario como los programadores vean el núcleo del sistema distribuido como un único procesador. El paralelismo es otro punto clave que debe controlar el sistema operativo, que debe distribuir las tareas entre los distintos procesadores como en un sistema multiprocesador, pero con la dificultad añadida de que ésta tarea hay que realizarla a través de varios ordenadores. Eficiencia: La idea base de los sistemas distribuidos es la de obtener sistemas mucho más rápidos que los ordenadores actuales. Es en este punto cuando nos encontramos de nuevo con el paralelismo. Para lograr un sistema eficiente hay que descartar la idea de ejecutar un programa en un único procesador de todo el sistema, y pensar en distribuir las tareas a los procesadores libres más rápidos en cada momento. La idea de que un procesador vaya a realizar una tarea de forma rápida es bastante compleja, y depende de muchos aspectos concretos, como la propia velocidad del procesador, pero también la localidad del procesador, los datos, los dispositivos, etc. Se han de evitar situaciones como enviar un trabajo de impresión a un ordenador que no tenga conectada una impresora de forma local. Flexibilidad: Un proyecto en desarrollo como el diseño de un sistema operativo distribuido debe estar abierto a cambios y actualizaciones que mejoren el funcionamiento del sistema. Esta necesidad ha provocado una diferenciación entre las dos diferentes arquitecturas del núcleo del sistema operativo: el núcleo monolítico y el micronúcleo. Las diferencias entre ambos son los servicios que ofrece el núcleo del sistema operativo.
Mientras el núcleo monolítico ofrece todas las funciones básicas del sistema integradas en el núcleo, el micronúcleo incorpora solamente las fundamentales, que incluyen únicamente el control de los procesos y la comunicación entre ellos y la memoria. El resto de servicios se cargan dinámicamente a partir de servidores en el nivel de usuario. Núcleo monolítico: Como ejemplo de sistema operativo de núcleo monolítico está UNIX. Estos sistemas tienen un núcleo grande y complejo, que engloba todos los servicios del sistema. Está programado de forma no modular, y tiene un rendimiento mayor que un micronúcleo. Sin embargo, cualquier cambio a realizar en cualquier servicio requiere la parada de todo el sistema y la recompilación del núcleo. Micronúcleo: La arquitectura de micronúcleo ofrece la alternativa al núcleo monolítico. Se basa en una programación altamente modular, y tiene un tamaño mucho menor que el núcleo monolítico. Como consecuencia, el refinamiento y el control de errores son más rápidos y sencillos. Además, la actualización de los servicios es más sencilla y ágil, ya que sólo es necesaria la recompilación del servicio y no de todo el núcleo. Como contraprestación, el rendimiento se ve afectado negativamente. En la actualidad la mayoría de sistemas operativos distribuidos en desarrollo tienden a un diseño de micronúcleo. Los núcleos tienden a contener menos errores y a ser más fáciles de implementar y de corregir. El sistema pierde ligeramente en rendimiento, pero a cambio consigue un gran aumento de la flexibilidad. Escalabilidad: Un sistema operativo distribuido debería funcionar tanto para una docena de ordenadores como varios millares. Igualmente, debería no ser determinante el tipo de red utilizada (LAN o WAN) ni las distancias entre los equipos, etc. Aunque este punto sería muy deseable, puede que las soluciones válidas para unos cuantos ordenadores no sean aplicables para varios miles. Del mismo modo el tipo de red condiciona tremendamente el rendimiento del sistema, y puede que lo que funcione para un tipo de red, para otro requiera un nuevo diseño. La escalabilidad propone que cualquier ordenador individual ha de ser capaz de trabajar independientemente como un sistema distribuido, pero también debe poder hacerlo conectado a muchas otras máquinas. Fiabilidad: Una de las ventajas claras que nos ofrece la idea de sistema distribuido es que el funcionamiento de todo el sistema no debe estar ligado a ciertas máquinas de la red, sino que cualquier equipo pueda suplir a otro en caso de que uno se estropee o falle. La forma más evidente de lograr la fiabilidad de todo el sistema está en la redundancia. La información no debe estar almacenada en un solo servidor de archivos, sino en por lo menos dos máquinas. Mediante la redundancia de los principales archivos o de todos evitamos el caso de que el fallo de un servidor bloquee todo el sistema, al tener una copia idéntica de los archivos en otro equipo.
Otro tipo de redundancia más compleja se refiere a los procesos. Las tareas críticas podrían enviarse a varios procesadores independientes, de forma que el primer procesador realizaría la tarea normalmente, pero ésta pasaría a ejecutarse en otro procesador si el primero hubiera fallado. Comunicación: La comunicación entre procesos en sistemas con un único procesador se lleva a cabo mediante el uso de memoria compartida entre los procesos. En los sistemas distribuidos, al no haber conexión física entre las distintas memorias de los equipos, la comunicación se realiza mediante la transferencia de mensajes. Dada la creciente disponibilidad de computadores personales y minicomputadores económicas pero potentes, se ha producido una tendencia al alza del procesamiento de datos distribuidos (DDP). El uso de DDP permite dispersar los procesadores, datos y otros elementos del sistema dentro de una organización. La dispersión ofrece un sistema más sensible a las necesidades del usuario, capaz de ofrecer tiempos de respuesta mejores y de minimizar los costes de las comunicaciones, en comparación con los métodos centralizados. Un sistema DDP trae consigo una división de las funciones de computación y puede venir acompañado por una organización distribuida de las bases de datos, el control de los dispositivos y el control de las interacciones (en la red). En muchas organizaciones existe una dependencia muy fuerte en computadores personales conectados a una gran instalación central de proceso de datos. Los computadores personales se vienen usando para respaldar toda una variedad de aplicaciones fáciles de utilizar, como proceso de textos, hojas de cálculo y gráficas de presentación. El computador central (mainframe) alojará las bases de datos corporativas junto a sistemas sofisticados de gestión de bases de datos y sistemas de información. Se necesitará enlazar los computadores personales entre si' y con el computador central. Varios métodos son de uso común para el enlace de los micros con el computador central, desde tratar al computador persona! como un simple terminal hasta conseguir un alto grado de integración entre las aplicaciones de los computadores personales y las bases de datos del computador central. La tendencia en estas aplicaciones ha sido apoyada por la evolución de las capacidades distribuidas del sistema operativo y de las utilidades de soporte. Se ha explorado un amplio espectro de posibilidades, como se expone a continuación:
• Arquitectura de Comunicaciones: El software que soporta una red de computadores independientes. Ofrece respaldo a las aplicaciones distribuidas, como correo electrónico, transferencia de archivos y acceso remoto de terminales. Sin embargo, los computadores conservan una identidad distintiva para los usuarios y las aplicaciones, quienes deben comunicarse con otros computadores haciendo referencias explícitas. Cada
computador posee su propio sistema operativo y será posible disponer de una combinación heterogénea de computadores y sistemas operativos, siempre que todas las máquinas utilicen la misma arquitectura de comunicaciones. • Sistema Operativo de Red: Es la configuración en que existe una red de máquinas de aplicación, generalmente puestos de trabajo (workstations) monousuario y una o más máquinas "servidoras". Las máquinas servidoras ofrecen servicios de red o aplicaciones, como almacenamiento de archivos y gestión de impresoras. Cada computador posee su propio sistema operativo. El sistema operativo de red es simplemente un añadido al sistema operativo local que permite a las máquinas de aplicación interactuar con los servidores. El usuario siempre es consciente de que existen múltiples computadores independientes y opera con ellas explícitamente. Normalmente, se usa una arquitectura común de comunicaciones para dar soporte a estas aplicaciones de la red. • Sistemas operativos distribuidos: Es un sistema operativo común compartido por una red de computadores. Aparece ante los usuarios como un sistema
...