Unidad
2
“Comunicación
en los Sistemas Operativos Distribuidos”
2.1
Comunicación SOD
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.
ü 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
ü 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
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.
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.
2.1.2 Comunicación
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.
2.1.3 Comunicación 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 mensaje 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:
ü 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 esté 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:
ü Prevención
de fallos:
Se trata de evitar que se implementen sistemas que pueden introducir fallos.
ü Tolerancia
a fallos:
Se trata de conseguir que el sistema continué funcionando correctamente aunque
se presenten algunos fallos.
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 mantienen 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 Lógicos
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.
Las 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.
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 compatible.
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 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.
• 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.
SEGURIDAD EXTERNA:(llamada
comúnmente seguridad física), se encarga de regular el acceso al hardware del
sistema, incluyendo: discos, cintas, reguladores y no-break, 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.
2.3.3 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.
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.
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 consisten
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
.
RESUMEN DE LA
UNIDAD II
No hay comentarios:
Publicar un comentario