topbella

miércoles, 29 de septiembre de 2010

UNIDAD II COMUNICACION EN LOS SISTEMAS OPERATIVOS DISTRIBUIDOS.


UNIDAD 2: COMUNICACIÓN  EN LOS  SISTEMAS OPERATIVOS  DISTRIBUIDOS
2.1.-COMUNICACIÓN sod
            La diferencia más importante entre un sistema distribuido y un sistema de un único procesador es la comunicación entre procesos.
En un sistema de un solo procesador la comunicación supone implícitamente la existencia de la memoria compartida:
Ej.: problema de los productores y los consumidores, donde un proceso escribe en un buffer compartido y otro proceso lee de él.
En un sistema distribuido no existe la memoria compartida y por ello toda la naturaleza de la comunicación entre procesos debe replantearse.
Los procesos, para comunicarse, deben apegarse a reglas conocidas como protocolos.
Para los sistemas distribuidos en un área amplia, estos protocolos toman frecuentemente la forma de varias capas y cada capa tiene sus propias metas y reglas.
  • Los mensajes se intercambian de diversas formas, existiendo muchas opciones de diseño al respecto; una importante opción es la “llamada a un procedimiento remoto”.
  • También es importante considerar las posibilidades de comunicación entre grupos de procesos, no solo entre dos procesos
.
Protocolos con Capas
  • Protocolos con Capas
  • Debido a la ausencia de memoria compartida, toda la comunicación en los sistemas distribuidos se basa en la transferencia de mensajes
  • Cuando el proceso “A” quiere comunicarse con el proceso “B”:
  • Construye un mensaje en su propio espacio de direcciones.
  • Ejecuta una llamada al sistema para que el S. O. busque el mensaje y lo envíe a través de la red hacia “B”.
  • Para evitar el caos, “A” y “B” deben coincidir en el significado de los bits que se envíen.
                                         REFERENCIAS HACIA EL MODELO OSI
  • Identifica en forma clara los distintos niveles.
  • Estandariza los nombres de los niveles.
  • Señala cuál nivel debe realizar cuál trabajo

El “modelo OSI” está diseñado para permitir la comunicación de los sistemas abiertos:
  • Son aquellos preparados para comunicarse con cualquier otro sistema abierto mediante reglas estándar:
ú  Establecen el formato, contenido y significado de los mensajes recibidos y enviados.
  • Constituyen los protocolos, que son acuerdos en la forma en que debe desarrollarse la comunicación

El “modelo OSI” distingue entre dos tipos generales de protocolos:
v  Orientados hacia las conexiones:
Antes de intercambiar los datos, el emisor y el receptor:
v  Establecen en forma explícita una conexión.
v  Probablemente negocien el protocolo a utilizar.
v  Al finalizar, deben terminar la conexión.
v  El teléfono es un sistema de comunicación orientado hacia la conexión.

  • Sin conexión:
ú  No es necesaria una configuración de antemano.
ú  El emisor transmite el primer mensaje cuando está listo.
ú  El depósito de una carta en un buzón es una comunicación sin conexión.
  • Cada capa proporciona una interfaz con la otra capa por encima de ella; la interfaz consiste de un conjunto de operaciones para definir el servicio que la capa está preparada para ofrecer a sus usuarios.
  • El protocolo de la capa “n” utiliza la información de la capa “n”.
  • Cada protocolo de capa se puede cambiar independientemente de los demás:
  • Esto es de fundamental importancia.
  • Confiere gran flexibilidad.
La colección de protocolos utilizados en un sistema particular se llama una “suite de protocolo” o “pila de protocolo”.

2.1.1-COMUNICACIÓN  CLIENTE –SERVIDOR SOCKETS
El “modelo cliente - servidor” tiene como idea fundamental la estructuración del S. O. como:
  • Un grupo de procesos en cooperación, llamados servidores, que ofrecen servicios a los usuarios.
  • Un grupo de procesos usuarios llamados clientes.
  • El “modelo cliente - servidor” se basa en un “protocolo solicitud / respuesta”:
  • Es sencillo y sin conexión.
  • No es complejo y orientado a la conexión como OSI o TCP / IP.
  • El cliente envía un mensaje de solicitud al servidor pidiendo cierto servicio.
  • El servidor:
  • Ejecuta el requerimiento.
  • Regresa los datos solicitados o un código de error si no pudo ejecutarlo correctamente.
  • No se tiene que establecer una conexión sino hasta que ésta se utilice.
  • La pila del protocolo es más corta y por lo tanto más eficiente.
Si todas las máquinas fuesen idénticas solo se necesitarían tres niveles de protocolos
                                                      
                                                  Direccionamiento en C - S
Para que un cliente pueda enviar un mensaje a un servidor, debe conocer la dirección de éste.
Un esquema de direccionamiento se basa en la dirección de la máquina destinataria del mensaje:
Es limitativo si en la máquina destinataria se ejecutan varios procesos, pues no se sabría para cuál de ellos es el mensaje.
Otro esquema de direccionamiento se basa en identificar los procesos destinatarios en vez de a las máquinas:
  • Elimina la ambigüedad acerca de quién es el receptor.
  • Presenta el problema de cómo identificar los procesos:

Una solución es una nomenclatura que incluya la identificación de la máquina y del proceso:
v  No se necesitan coordenadas globales.
v  Pueden repetirse los nombres de los procesos en distintas máquinas.
v  Una variante utiliza machine.local-id en vez de machine.process:
v  local-id generalmente es un entero aleatorio de 16 o 32 bits.
v  Un proceso servidor se inicia mediante una llamada al sistema para indicarle al núcleo que desea escuchar a local-id.
v  Cuando se envía un mensaje dirigido a machine.local-id el núcleo sabe a cuál proceso debe dar el mensaje.
RCP (REMOTE PROCEDURE CALL)
              El mecanismo general para las aplicaciones cliente-servidor se proporciona por el paquete Remote Procedure Call (RPC). RPC fue desarrollado por Sun Microsystems y es una colección de herramientas y funciones de biblioteca. Aplicaciones importantes construidas sobre RPC son NIS, Sistema de Información de Red y NFS, Sistema de Ficheros de Red. Es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos.
1. -El sub cliente reúne luego los parámetros y los empaqueta en un mensaje. Esta operación se conoce como reunión de argumentos
2.- En un sistema LAN con un servicio sin conexiones, la entidad de transporte probablemente sólo le agrega al mensaje un encabezamiento y lo coloca en la subred sin mayor trabajo
3.-En una WAN, la transmisión real puede ser más complicada.
Cuando el mensaje llega al servidor, la entidad de transporte lo pasa al stub del servidor
4.- que desempaqueta los parámetros. El sub servidor llama luego al procedimiento servidor
5.- pasándole los parámetros de manera estándar. El procedimiento servidor no tiene forma de saber que está siendo activado remotamente, debido a que se lo llama desde un procedimiento local que cumple con todas las reglas estándares. Únicamente el sub sabe que está ocurriendo algo particular.
Después que ha completado su trabajo, el procedimiento servidor retorna
6.- de la misma forma en que retornan otros procedimientos cuando terminan y, desde luego, puede retornar un resultado a un llamador. El sub servidor empaqueta luego el resultado en un mensaje y lo entrega a la interfaz con transporte
7.- posiblemente mediante una llamada al sistema, al igual que en el paso 2. Después que la respuesta retorna a la máquina cliente
8.- la misma se entrega al sub cliente
9.-  que desempaqueta las respuestas. Finalmente, el sub cliente retorna a su llamador, el procedimiento cliente y cualquier valor devuelto por el servidor en el paso 6, se entrega al cliente en el paso
10. El propósito de todo el mecanismo es darle al cliente (procedimiento cliente) la ilusión de que está haciendo una llamada a un procedimiento local. Dado el éxito de la ilusión, ya que el cliente no puede saber que el servidor es remoto, se dice que el mecanismo es transparente. Sin embargo, una inspección más de cerca revela algunas dificultades en alcanzar la total transparencia.

BROADCAST O  DIFUSION FORZADA: Transmisión de un paquete que será recibido por todos los dispositivos en una red.
MULTICAST:  Consiste en la entrega de paquetes a través de una red a varios destinos de forma simultánea evitando al máximo el duplicar los paquetes, esto es, se duplican paquetes exclusivamente cuando se bifurca el camino a los diferentes destinos finales.
UNICAST o POINTCAST: Un nodo emite y otro recibe, solo escucha aquel a quien se dirigió el msj  Una  clasificación adicional es la realizada en base a grupos

2.1.4 Tolerancia a Fallos
                La tolerancia a fallas es considerada la principal característica que debe de tener un sistema distribuido para alcanzar el principio de transparencia.
Para lograr la tolerancia a fallos se necesita de una buena comunicación entre procesos distribuidos y sobretodo de una correcta coordinación entre procesos
Un Sistema Distribuido en base a la coordinación de sus procesos puede ser:
v  Asíncrono: no hay coordinación en el tiempo.
v  Síncrono: se suponen límites máximos para el retraso de mensajes.
v  El primer factor a tomar en cuenta es que el canal de comunicación este libre de errores (canal confiable).
Para garantizar que el canal sea confiable se debe de realizar lo siguiente:
ü  Retransmisión de mensajes.
ü  Debe haber redundancia de canales
ü  La entrega de un paquete sea dentro de un tiempo límite especificado
En general, se considera que los canales de comunicación son fiables y que cuando falla la comunicación es debido a la caída del proceso.
Algunos fallos en el funcionamiento de un sistema pueden originarse por:
Ø  Especificaciones impropias o con errores.
Ø  Diseño deficiente de la creación del software o el hardware.
Ø  Deterioros o averías en al hardware.

Prevención y Tolerancia a Fallos
Existen dos formas de aumentar la fiabilidad de un sistema.
1. Prevención de fallos: Se trata de evitar que se implementen sistemas que pueden introducir fallos.
2. Tolerancia a fallos: Se trata de conseguir que el sistema continué funcionando correctamente aunque se presenten algunos fallos.

                                  2.2 SINCRONIZACIÓN  SISTEMAS DISTRIBUIDOS
La sincronización de procesos en los sistemas distribuidos resulta más compleja que en los centralizados, debido a que la información y el procesamiento se mantiene en diferentes nodos.
Un sistema distribuido debe mantener vistas parciales y consistentes de todos los procesos cooperativos.
Sincronización es la forma de forzar un  orden parcial o total en cualquier conjunto de evento.
Se utilizan algoritmos distribuidos para sincronizar el trabajo común entre los  procesos y estos algoritmos tienen las siguientes propiedades:
Inaceptable que se concentre en un nodo, a toda la información y procesamiento.

Los relojes físicos son relojes que: Deben ser iguales (estar sincronizados).
No deben desviarse del tiempo real más allá de cierta magnitud.
En ciertos sistemas es importante la hora real del reloj:
Se precisan relojes físicos externos (más de uno).
Se deben sincronizar: Con los relojes del mundo real.

El software del reloj lógico
ž  El software para el reloj toma generalmente la forma de un manejador de dispositivo, aunque no es un dispositivo de bloque.
ž  La principales funciones del software manejador del reloj son:
ž  Mantener la hora del día o tiempo real
ž  Evitar que los procesos se ejecuten durante más tiempo del permitido.
Mantener un registro del uso del CPU.
  • Controlar llamadas al sistema tipo "alarm" por parte de los procesos del usuario. 
  •  Proporcionar cronómetros guardianes de partes del propio sistema
  • Realizar resúmenes, monitoreo y recolección de estadísticas.
Ejemplo: Sincronización Lógico
Se aplica a que dos software o hardware se comuniquen a la "misma velocidad" ejemplos: dos Dimensiones (memoria) una de 100ns y otra de 133ns van a "sincronizar" automáticamente a la velocidad más baja para andar en paridad y así todo lo que se comunique, para no desestabilizar y que se torne incompatible con la velocidad del microprocesador y la unidad central de procesamiento CPU.

Sincronización
La sincronización es la coordinación de procesos que se ejecutan simultáneamente para completar una tarea, con el fin de obtener un orden de ejecución correcto y evitar así estados inesperados.
Comunicación  en los sistemas operativos distribuidos
Memoria Caché
En los sistemas de archivos convencionales, el fundamento para la memoria caché es la reducción de la E/S de disco (lo que aumenta el rendimiento), en un SAD el objetivo es reducir el tráfico en la red.
La copia de memoria caché.
Conservar allí los bloques de disco de acceso más reciente, para así manejar localmente los accesos repetidos a la misma información y no aumentar el tráfico de la red. La caché es un área de memoria utilizada para agilizar los procesos de lectura-escritura.
Exclusión mutua
La condición de exclusión mutua se aplica a los os que no pueden ser compartidos. Por ejemplo, varios procesos no pueden compartir simultáneamente una impresora.
Los archivos de sólo lectura son un buen ejemplo de recurso que puede compartirse. Si varios procesos intentan abrir un archivo de sólo lectura al mismo tiempo, puede concedérseles acceso al archivo de forma simultánea. Un proceso no necesita esperar nunca para acceder a un recurso compartible
Algoritmos de Elección
Son los algoritmos para la elección de un proceso coordinador, iniciador, secuenciador. El objetivo de un algoritmo de elección es garantizar que iniciada una elección ésta concluya con el acuerdo de todos los procesos con respecto a la identidad del nuevo coordinador.
Transacción atómica, transacción o acción atómica.
La principal propiedad de la transacción atómica es el “todo o nada”: O se hace todo lo que se tenía que hacer como una unidad o no se hace nada.
Un esquema para garantizar la adecuada sincronización de la información en sistemas centralizados como distribuidos es el uso de transacciones.
Las transacciones manejan 4 propiedades básicas: atómicas, consistentes, aisladas y durables (ACID por sus siglas en inglés).
Las primitivas de las transacciones son:
BEGIN_TRANSACTION (inicio de transacción)
END_TRANSACTION (fin de transacción)
ABORT_TRANSACTION (deshacer operación)
READ (leer datos de un archivo u objeto)
WRITE (escribir datos a un archivo u objeto)
                                                                       INTERBLOQUEO
Una situación de interbloqueo tiene lugar cuando ninguno de los procesos que compiten.
Por los recursos del sistema o interactúan entre sí puede avanzar por carecer de algún recurso o esperar a que se produzca algún tipo de evento.
El interbloqueo se define como el conjunto de procesos que compiten por los recursos  del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión de concurrente de procesos, para el caso general no existe una solución eficiente.
      Nominación: En los sistemas distribuidos los nombres hacen referencia a cualquier entidad, ya sea un archivo, un periférico, un proceso, etc. que se pueden encontrar en máquinas remotas.
      Los servidores de nombres ayudan a localizar fácilmente y hacer transparente el acceso a los recursos (transparencia de localización).

Un nombre es más que una cadena de caracteres. Representa un punto de acceso hacia un objeto.
La característica principal de un sistema de nombre es que no debe de presentar ambigüedades, para un momento dado, un nombre refiere a uno y sólo un recurso en el sistema.

                                  2.3.2 TIPOS DE NOMBRES USUARIO Y DE SISTEMA
         Identificadores de puertos y procesos.
         Nombres textuales de servicios.
         Identificadores de recursos.
         Nombres de archivos.
         Direcciones físicas y lógicas de redes.
         El nombre de un objeto, por ejemplo un recurso o servidor; especifica lo que busca un proceso.
         Una dirección especifica dónde se encuentra el objeto.
         Una ruta especifica cómo llegar ahí.
La modificación no autorizada del iPhone OS constituye una fuente muy importante de inestabilidad, interrupciones de los servicios y otros problemas.
Se pueden clasificar a las violaciones de seguridad en tres categorías:
v  Liberación no autorizada de información. Ocurre cuando una persona no autorizada tiene la posibilidad de leer y tomar ventaja de la información almacenada en una computadora. También se incluye el uso no autorizado de un programa.
v  Modificación no autorizada de información. Este tipo de violación se da cuando una persona tiene la posibilidad de alterar la información almacenada en un sistema computacional.
v  Bloqueo no autorizado de servicios. Se da cuando una persona no autorizada bloquea la capacidad de algún usuario autorizado, a accesar la información almacenada en un sistema computacional.
La seguridad en los sistemas computacionales puede dividirse en dos tipos: 
v  Seguridad externa (llamada comúnmente seguridad física), se encarga de regular el acceso al hardware del sistema, incluyendo: discos, cintas, reguladores y no-breaks, acondicionadores de aire, terminales, procesadores.
v  Seguridad interna se encarga del acceso y uso del software almacenado en el sistema. A diferencia de la seguridad física, existe el tema de autenticación, en el cual el usuario se registra (login) en el sistema para accesar a los recurso de hardware y software del mismo.
Servidor DNS
(1)   Traducir su nombre de dominio en una dirección IP
(2)   Asignar nombres a todas las máquinas de una red y trabajar con nombres de dominio en lugar de IPs.
Un servidor DNS permite acceder a un dominio en internet entre los millones existentes. Básicamente su función es atender a las peticiones hechas por los distintos programas que acceden a internet y resolver la dirección IP asociada al dominio consultado. Cuando el servidor recibe una consulta realiza una búsqueda en caso de que ese servidor no disponga de la respuesta, el servidor comienza la búsqueda a través de uno o varios Servidores DNS hasta encontrar una respuesta positiva o negativa.

Resolución de nombres de dominio
El mecanismo que consiste en encontrar la dirección IP relacionada al nombre de un ordenador se conoce como "resolución del nombre de dominio". La aplicación que permite realizar esta operación (por lo general, integrada en el sistema operativo se llama "resolución".
Cuando una aplicación desea conectarse con un host conocido a través de su nombre de dominio (por ejemplo, "es.kioskea.net"), ésta interroga al servidor de nombre de dominio definido en la configuración de su red. De hecho, todos los equipos conectados a la red tienen en su configuración las direcciones IP de ambos servidores de nombre de dominio del proveedor de servicios.
Entonces se envía una solicitud al primer servidor de nombre de dominio (llamado el "servidor de nombre de dominio principal"). Si este servidor de nombre de dominio tiene el registro en su caché, lo envía a la aplicación; de lo contrario, interroga a un servidor de nivel superior (en nuestro caso un servidor relacionado con el TLD ".net"). El servidor de nombre de nivel superior envía una lista de servidores de nombres de dominio con autoridad sobre el dominio (en este caso, las direcciones IP de los servidores de nombres de dominio principal y secundario para cómofunciona.net).
Entonces el servidor de nombres de dominio principal con autoridad sobre el dominio será interrogado y devolverá el registro correspondiente al dominio del servidor (en nuestro caso www).
Distribución
Una distribución de software basada en el núcleo Linux que incluye determinados paquetes de software para satisfacer las necesidades de un grupo específico de usuarios, dando así origen a ediciones domésticas, empresariales y para servidores. Por lo general están compuestas, total o mayoritariamente, de software libre, aunque a menudo incorporan aplicaciones o controladores propietarios.


En la actualidad, la ICANN está formalmente organizada como una corporación sin fines de lucro y de utilidad pública. Está administrada por una Junta de Directores, que está compuesta por seis representantes de las organizaciones de apoyo, sub-grupos que se ocupan de las secciones específicas de las políticas de ICANN en virtud de la competencia, ocho representantes independientes del interés público general, seleccionados a través de un Comité de nominaciones que representan a todas las circunscripciones de la ICANN, y el Presidente y Director Ejecutivo, nombrado por el resto de la Junta.
En la actualidad hay tres organizaciones de apoyo: la GNSO (Generic Names Supporting Organization) se ocupa de la formulación de políticas sobre dominios genéricos de nivel superior, ccNSO (Country Code Names Supporting Organization) se ocupa de la elaboración de políticas relativas a códigos de países en dominios de nivel superior, la ASO (Address Supporting Organization) se ocupa de la formulación de políticas en direcciones IP.
ICANN también se basa en algunos comités consultivos para recibir asesoramiento sobre los intereses y necesidades de los interesados que no participen directamente en las organizaciones de apoyo. Entre ellos figuran el Comité Asesor Gubernamental (GAC), que está integrado por representantes de un gran número de gobiernos nacionales de todo el mundo; el ALAC (At-Large Advisory Comité), que está integrado por representantes de organizaciones de los distintos usuarios de Internet de todo el mundo; el sistema DNS y TLG (Technical Liaison Group) compuesto por representantes de otras organizaciones técnicas internacionales de Internet.

2.3.5 MAPEO DE DIRECCIONES
El mapeo de direcciones corresponde en la relación de equivalencia entre un tipo de nombre a otro tipo de nombre; por ejemplo, de un nombre de usuario a un nombre de sistema.

2.3.6 MAPEO DE RUTAS
Ø  El mapeo de rutas consiste en la relación de equivalencia entre un tipo de ruta u otro tipo.
Ø  Recordar que las rutas consiste en la serie de ubicaciones para poder acceder a un recurso.
Ø  Otro nombre que recibe el mapeo de rutas es el de encaminamiento.

2.3.7        MODELO DE TERRY

El problema principal de cualquier sistema de nombre reside en encontrar de manera fácil, sencilla y rápida cualquier recurso a través del identificador (nombre) dado.
Para solucionar este problema, Terry y otros propusieron un modelo de facilidades que debe de poseer todo sistema de nombres, dichas características son las siguientes:
v  Facilidad centralizada de nombramiento
v  Facilidad replegada de nombramiento
v  Facilidad descentralizada de nombramiento
v  Facilidad distribuida de nombramiento
v  Facilidad jerárquica de nombramiento



.

Andreita Magaña Perez...........
RESUMEN DE LA UNIDAD II

2 comentarios:

JAZMIN ZARATE SOSA dijo...

Muy buuena informaciion! Gracias

Andrés Ruiz Garcia dijo...

Gracias, excelente información, SALUDOS del ITESS.

Publicar un comentario en la entrada

 
Andreytha© Diseñado por: Compartidisimo