Unidad 1
"Sistemas Operativos en ambientes distribuidos"
1.1 Sistemas Distribuidos
Definición
Una colección de computadores conectados por una red de comunicaciones,
que el usuario percibe como un solo sistema (no necesita saber qué cosas están
en qué máquinas). El usuario accesa los recursos remotos de la misma manera en
que accesa recursos locales, o:un grupo de computadores que usan un software
para conseguir un objetivo en común.
Los sistemas
distribuidos deben de ser muy confiables, ya que si un componente del sistema
se descompone otro componente debe de ser capaz de reemplazarlo.
Objetivo: Compartir recursos fácilmente y eficazmente.
Definición
Sistemas cuyos componentes hardware y software, que
están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante
el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un esquema Cliente-Servidor.
Características
Concurrencia: Esta característica de los sistemas distribuidos
permite que los recursos disponibles en la red puedan ser
utilizados simultáneamente por los usuarios y/o agentes que interactúan en la
red.
Carencia de reloj global: Las coordinaciones para la
transferencia de mensajes entre los diferentes componentes para la realización
de una tarea, no tienen una temporización general, está
más bien distribuida a los componentes.
Fallos independientes de los componentes: Cada
componente del sistema puede fallar independientemente,
con lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el
logro de las tareas con mayor efectividad, pues el sistema en su conjunto
continua trabajando.
1.1.1 Ventajas Desventajas contra Sistemas Centralizados
Economía: es la razón número uno de la tendencia hacia los sistemas distribuidos ya que estos sistemas tienen en potencia una proporción precio/desempeño mucho mejor que la de un sistema centralizado.
Velocidad: un sistema distribuido puede tener mayor poder de cómputo que una mainframe.
Distribución inherente: otra razón para la construcción de un sistema distribuido es que ciertas aplicaciones son distribuidas en forma inherente; es decir, algunas aplicaciones utilizan máquinas que están separadas a cierta distancia.
Confiabilidad: un sistema distribuido ofrece mayor confiabilidad: al distribuir la carga de trabajo en muchas máquinas, la falla de un circuito descompondrá a lo más una máquina y el resto seguirá intacto.
Crecimiento por incrementos: si se necesita añadir poder de cómputo a la compañía, con un sistema distribuido, podrían añadirse sólo más procesadores al sistema, lo que permite un desarrollo gradual conforme surjan las necesidades.
Ventajas de los sistemas distribuidos con respecto de las PC independientes
Datos compartidos: Un sistema distribuido permite que varios usuarios tengan acceso a una base de datos común.
Dispositivos compartidos: De igual manera, se pueden compartir periféricos entre diversos usuarios como puede ser una impresora.
Comunicación: un sistema distribuido facilita la comunicación entre computadoras aisladas con el e-mail.
Flexibilidad: Un sistema distribuido difunde la carga de trabajo entre las máquinas disponibles en la forma más eficaz en cuanto a los costos.
Desventajas de los sistemas distribuidos
Software: No hay mucha experiencia en el diseño, implantación y uso del software distribuido, además existe poco software para los sistemas distribuidos en la actualidad.
Redes: Una vez que el sistema llega a depender de la red, la pérdida o saturación de ésta puede negar algunas de las ventajas que el sistema distribuido debía conseguir.
Seguridad: si las personas pueden tener acceso a los datos en todo el sistema, entonces también pueden tener acceso a datos con los que no tienen nada que ver.
1.1.2 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, que 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.
En esta arquitectura la capacidad de proceso está repartida entre
los clientes y los servidores, aunque son más importantes las ventajas de tipo
organizativo debidas a la centralización de la gestión de la información y la
separación de responsabilidades, lo que facilita y clarifica el diseño del
sistema.
La separación entre cliente y servidor es una separación de tipo lógico,
donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es
necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los
servidores del correo, etc. Mientras que sus propósitos varían de unos
servicios a otros, la arquitectura básica seguirá siendo la misma.
Características Arquitectura Cliente Servidor
Centralización del
control:
los accesos, recursos y la integridad de los datos son controlados por el
servidor.
Escalabilidad: se puede aumentar la
capacidad de clientes y servidores por separado. Cualquier elemento puede
ser aumentado (o mejorado) en cualquier momento, o se pueden añadir nuevos
nodos a la red (clientes y/o servidores).
Fácil mantenimiento: es posible reemplazar,
reparar, actualizar, o incluso trasladar un servidor, mientras que sus clientes
no se verán afectados por ese cambio (o se afectarán mínimamente).
Características del Cliente y Servidor
En la arquitectura C/S el remitente de una solicitud es conocido como Cliente.
Sus características son:
- Es quien inicia solicitudes o peticiones, tienen por tanto un
papel activo en la comunicación (dispositivo maestro o amo).
- Espera y recibe las respuestas del servidor.
- Por lo general, puede conectarse a varios servidores a la vez.
- Normalmente interactúa directamente con los usuarios finales
mediante una interfaz gráfica de
usuario.
- Al contratar un servicio de redes, se debe tener en cuenta la
velocidad de conexión que le otorga al cliente y el tipo de cable que utiliza,
por ejemplo: cable de cobre ronda entre 1 ms y 50 ms.
Al receptor de la solicitud enviada por el cliente se conoce como Servidor.
Sus características son:
- Al iniciarse esperan a que lleguen las solicitudes de los
clientes, desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo).
-Tras la recepción de una solicitud, la procesan y luego envían la
respuesta al cliente.
- Por lo general, aceptan conexiones desde un gran número de
clientes (en ciertos casos el número máximo de peticiones puede estar
limitado).
- No es frecuente que interactúen directamente con los usuarios
finales.
1.1.3 Características Hardware Sistemas Distribuidos
Los clientes en una red cliente-servidor son las máquinas o procesos que piden información, recursos y servicios a un servidor unido. Estas peticiones pueden ser cosas como proporcionar datos de una base de datos, aplicaciones, partes de archivos o archivos completos a la máquina cliente. Los datos, aplicaciones o archivos pueden residir en un servidor y ser simplemente accedidos por el cliente o pueden ser copiados o movidos físicamente a la máquina cliente.
Esta disposición permite a la máquina cliente ser relativamente pequeña. Para cada tipo de entorno de cliente, hay habitualmente software específico (y a veces hardware) en el cliente, con algún software y hardware análogo en el servidor. Los servidores pueden ser sistemas operativos diferentes como Windows NT, Windows 95, OS/2, Unix. Unix es popular porque, como sistema operativo de servidores, puede ser utilizado en muchos tipos de configuraciones sobre máquinas servidor, además de como servidores de archivos y servidores de impresión.
Los servidores en una red cliente-servidor son los procesos que proporcionan información, recursos y servicios a los clientes de la red. Cuando un cliente pide un recurso como, por ejemplo, un archivo, datos de una base de datos, acceso a aplicaciones remotas o impresión centralizada, el servidor proporciona estos recursos al cliente. Como se mencionó antes, los procesos del servidor pueden residir en una máquina que también actúa como cliente de otro servidor. Además de proporcionar este tipo de recursos, un servidor puede dar acceso a otras redes, actuando como un servidor de comunicaciones que conecta a otros servidores o mainframes o minicomputadoras que actúan como hosts de la red.
1.1.4 Caracteristicas Software Sistemas Distribuidos
Los sistemas distribuidos se pueden compartir otros recursos como programas y periféricos costosos.
Ejemplo:
Impresoras láser color, equipos de foto composición, dispositivos de almacenamiento masivo, etc.
Otra importante razón es lograr una mejor comunicación entre las personas.
Ejemplo:
Correo electrónico:Posee importantes ventajas sobre el correo por cartas, el teléfono y el fax (Velocidad, disponibilidad, generación de documentos editables, etc.)
El principal problema es el software, ya que el diseño, implantación y uso del software distribuido presenta numerosos inconvenientes.
La importancia del software supera frecuentemente a la del hardware.
La imagen que un sistema presenta queda determinada en gran medida por el software del S. O. y no por el hardware.
Los S. O. no se pueden encasillar fácilmente, como el hardware, pero se los puede clasificar en dos tipos:
- Débilmente acoplados.
- Fuertemente acoplados.
El software débilmente acoplado de un sistema distribuido:
- Permite que las máquinas y usuarios sean independientes entre sí en lo fundamental.
- Facilita que interactúen en cierto grado cuando sea necesario.
- Los equipos individuales se distinguen fácilmente.
Combinando los distintos tipos de hardware distribuido con software distribuido se logran distintas soluciones. No todas interesan desde el punto de vista funcional del usuario.
1.1.5 Direccionamiento Logico Fisico Sistemas Distribuidos
Una dirección generada por la CPU se denomina dirección lógica, en cambio a la que es percibida por unidad de memoria se denomina dirección física.
Los esquemas de vinculación de direcciones durante la compilación y durante la carga dan pie a un entorno en el que las direcciones lógicas y físicas son las mismas. En cambio, la ejecución del esquema de vinculación de direcciones durante la ejecución produce un entorno en el que las direcciones lógicas y físicas difieren. En este caso la dirección lógica suele llamarse dirección virtual.
El proceso desde que los datos son incorporados al ordenados hasta que se transmiten al medio se llama encapsulación. Estos datos son formateados, segmentados, identificados con el direccionamiento lógico y físico para finalmente ser enviados al medio. A cada capa del modelo OSI le corresponde una PDU (Unidad de Datos) siguiendo por lo tanto el siguiente orden de encapsulamiento: DATOS-SEGMENTOS-PAQUETES-TRAMAS-BITS
CAPA | I TRANSMITE |
APLICACIÓN | I DATOS |
PRESENTACIÓN | I |
SESIÓN | I |
TRANSPORTE | I SEGMENTOS |
RED | I PAQUETES |
ENLACE DE DATOS | I TRAMAS |
FÍSICA | I BITS |
Debido a que posiblemente la cantidad de los datos sean demasiados, la capa de transporte desde de origen, se encarga de segmentarlos para así ser empaquetados debidamente, esta misma capa en el destino se encargara de reensamblar los datos y colocarlos en forma secuencial, ya que no siempre llegan a su destino en el orden en que han sido segmentados, así mismo acorde al protocolo que se este utilizando habrá corrección de errores. Estos segmentos son empaquetados (paquetes o datagramas) e identificados en la capa de red con la dirección lógica o IP correspondiente al origen y destino. Ocurre lo mismo con la dirección MAC en la capa de enlace de datos formándose las tramas o frames para ser transmitidos a través de alguna interfaz.
1.2 Sistemas Operativos de Red
Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red mas usados son: Linux, Novell Netware, Personal Netware, LAN Manager, Windows NT Server UNIX, LA Ntastic?.
Características:
- Funciona como Cliente –
Servidor en un ambiente de red.
- Permite
desarrollar servicios de redireccionamiento para LAN.
- Soporta sistemas
de multiproceso.
- Cada aplicación
se encuentra ejecutando en un hilo tratado como una caja multiprocesadora.
- También cuenta con servicios básicos de redes y APIs para archivos, manejadores de impresión, manejo de mensajes y seguridad directa. Aplicacionespara redes digitales que pueden ejecutarse en diferentes plataformas.
Ejemplo:
Una red de estaciones de trabajo conectadas mediante una LAN.
- Cada usuario tiene una estación de trabajo para su uso exclusivo: Tiene su propio S. O.
- La mayoría de los requerimientos se resuelven localmente.
- Es posible que un usuario se conecte de manera remota con otra estación de trabajo mediante un comando de “login remoto”. Se convierte la propia estación de trabajo del usuario en una terminal remota enlazada con la máquina remota. Los comandos se envían a la máquina remota. La salida de la máquina remota se exhibe en la pantalla local. Para alternar con otra máquina remota, primero hay que desconectarse de la primera: En cualquier instante solo se puede utilizar una máquina.
- Las redes también disponen de un comando de copiado remoto de archivos de una máquina a otra. Requiere que el usuario conozca la posición de todos los archivos. El sitio donde se ejecutan todos los comandos.
- Una mejor solución consiste en un sistema de archivos global compartido, accesible desde todas las estaciones de trabajo una o varias máquinas soportan al sistema de archivos son los “servidores de archivos”.
- Los Servidores de Archivos aceptan solicitudes de los programas de usuarios y programas se ejecutan en las máquinas no servidoras, llamadas “clientes”.
- Las solicitudes se examinan, se ejecutan y la respuesta se envía de regreso. Generalmente tienen un sistema jerárquico de archivos. Las estaciones de trabajo pueden importar o montar estos sistemas de archivos se incrementan sus sistemas de archivos locales.
- Se pueden montar los servidores en lugares diferentes de sus respectivos sistemas de archivos las rutas de acceso a un determinado archivo pueden ser diferentes para las distintas estaciones. Los distintos clientes tienen un punto de vista distinto del sistema de archivos.
- El nombre de un archivo depende del lugar desde el cual se tiene acceso a él. De la configuración del sistema de archivos.
- El S. O. de este tipo de ambiente debe controlar las estaciones de trabajo en lo individual. Controlar a los servidores de archivo. Encargarse de la comunicación entre los servidores. Todas las máquinas pueden ejecutar el mismo S. O., pero esto no es necesario. Si los clientes y los servidores ejecutan diversos S. O., como mínimo deben coincidir en el formato y significado de todos los mensajes que podrían intercambiar. Esquemas como este se denominan “sistema operativo de red” cada máquina tiene un alto grado de autonomía.
1.3 Sistemas Operativos Distribuidos
Los sistemas distribuidos están basados en las ideas básicas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad.
Transparencia
Este 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.
Eficiencia
Aquí 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. 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.
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.
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
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.
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.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características de los Sistemas Operativos distribuidos
- Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software.
- Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.
- Objetivo clave es la transparencia.
- Generalmente proporcionan medios para la compartición global de recursos.
- Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.).
Referencias
- Sistemas Operativos Distribuidos. Prentice Hall Hispanoamericana, S.A., México, 1996.
- Sistemas Operativos 2.Josep Jorba