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:
Orientados hacia las conexiones:
Antes de intercambiar los datos, el emisor y el receptor:
Establecen en forma explícita una conexión.
Probablemente negocien el protocolo a
utilizar.
Al finalizar, deben terminar la conexión.
El teléfono es un sistema de comunicación
orientado hacia la conexión.
Sin 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:
No se necesitan coordenadas globales.
Pueden repetirse los nombres de los procesos
en distintas máquinas.
Una variante utiliza machine.local-id
en vez de machine.process:
local-id generalmente es un entero aleatorio de 16 o 32 bits.
Un proceso servidor se inicia mediante una llamada al sistema para
indicarle al núcleo que desea escuchar a local-id.
Cuando se envía un mensaje dirigido a machine.local-id el núcleo sabe a cuál proceso debe dar el
mensaje.
2.1.2 COMUNICACION CON RPC
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.
2.1.3 COMUNICACION EN GRUPO
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 FALLAS
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:
Asíncrono: no hay
coordinación en el tiempo.
Síncrono: se suponen
límites máximos para el retraso de mensajes.
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.
2.2.1 RELOJES FÍSICOS
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.

2.2.2 RELOJES LOGICOS
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
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.
2.2.3 USOS DE
LA SINCRONIZACION MANEJO DE CACHE, COMUNICACION EN GRUPO EXCLUSION MUTUA
ELECCION TRANSACCIONES ATOMICAS E INTERBLOQUEO
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.
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.
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).
2.3.1 NOMINACION CARACTERISTICAS Y ESTRUCTURAS
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:
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.
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.
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:
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.
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.
2.3.3 RESOLUCION Y DISTRIBUCION
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.
2.3.4 SERVIDORES Y AGENTES DE NOMBRES
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:
Facilidad centralizada de
nombramiento
Facilidad replegada de
nombramiento
Facilidad descentralizada
de nombramiento
Facilidad distribuida de
nombramiento
Facilidad jerárquica de
nombramiento
Nasa en vivo
Live broadcast by Ustream
No hay comentarios:
Publicar un comentario