01 Jul
Conceptos Clave en Sistemas Distribuidos
Definiciones Fundamentales
RPC (Remote Procedure Call)
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.
Propósito del RPC
Su propósito es la transferencia sincrónica de datos y control entre dos partes de un programa distribuido a través de espacios de direcciones disjuntas.
Objetivos del RPC
- El servidor ofrece procedimientos que el cliente llama como si fueran procedimientos locales.
- Evitar que el programador tenga que interactuar directamente con la interfaz de Sockets.
- Proporcionar un middleware que simplifique el desarrollo de aplicaciones distribuidas.
- Se busca ofrecer un entorno de programación lo más similar posible a un entorno no distribuido.
Interfaz
La interfaz que proporciona el servidor se refiere a la forma de las llamadas exportadas por el servidor. Una interfaz es el principal acuerdo entre el componente de software y el cliente. Para la comunicación entre el servidor y el cliente, se trabaja con interfaces, que deben ser implementadas por el servidor y/o cliente, para que los stubs puedan realizar la transparencia para ambos. Además, esto evita que deba existir una definición local real de la clase remota; es decir, en el cliente solo debe estar definida la interfaz, no la clase remota.
STUB
Se encarga de empaquetar los parámetros y la solicitud, enviarlos al intermediario en el servidor, y luego esperar la respuesta, desempaquetarla y entregarla a la aplicación.
Sección Crítica
Porción de código que permite el acceso a un recurso compartido por varios procesos. Cuando un proceso requiere leer o actualizar ciertas estructuras de datos compartidas, primero entra a una sección crítica (SC) para lograr la exclusión mutua, asegurándose de que ningún otro proceso utilice las mismas.
Componentes en la Comunicación RPC
Stub del lado del cliente (Ca.Stub)
En el lado cliente, el representante del servidor se denomina stub. Es quien proporciona transparencia en la invocación del cliente. Debe poseer llamadas con la misma declaración (forma) que el servidor. El cliente invoca las llamadas del stub como si fuese el servidor. A través de un protocolo RPC y con unos mecanismos de empaquetamiento, envía un mensaje al extremo remoto solicitando la ejecución real de la llamada. A través de un protocolo RPC y con unos mecanismos de desempaquetamiento, recibe un mensaje del extremo remoto y recupera el resultado de la invocación.
Skeleton del lado del servidor (Ca.Skeleton)
Es quien proporciona transparencia en el lado del servidor. Debe conocer las llamadas ofrecidas por el servidor. A través de un protocolo RPC y con unos mecanismos de desempaquetamiento, recibe un mensaje del extremo remoto solicitando la ejecución real de la llamada. Invoca la llamada del servidor como si fuese el cliente. A través de un protocolo RPC y con unos mecanismos de empaquetamiento, envía un mensaje al extremo remoto indicando el resultado de la invocación. Cada procedimiento que el servidor exporte a través de RPC requiere su propio skeleton.
Conceptos de Concurrencia
Exclusión Mutua
Es una operación de control que permite la coordinación de procesos concurrentes, y que tiene la capacidad de prohibir a los demás procesos realizar una acción cuando un proceso haya obtenido el permiso.
Elección
Son los algoritmos para la elección de un proceso coordinador, iniciador, secuenciador, etc. El objetivo de un algoritmo de elección es garantizar que, iniciada una elección, esta concluya con el acuerdo de todos los procesos con respecto a la identidad del nuevo coordinador.
Algoritmos de Elección
Grupos de Algoritmos de Elección
Los algoritmos pueden agruparse dentro de los dos siguientes grupos:
Algoritmos no basados en paso de mensajes
Estos algoritmos requieren dos o más rondas sucesivas de mensajes entre los nodos. Se basan en una aseveración porque un nodo puede entrar a su sección crítica de procesamiento (SC) cuando una aseveración en sus variables se vuelve verdadera. Se fuerza la exclusión mutua porque la aseveración es verdadera en un solo nodo en un determinado momento.
Algoritmos basados en paso de mensajes
En estos algoritmos, un Token único (también llamado mensaje de privilegio) se comparte en todos los nodos. Se permite que un nodo entre a su sección crítica (SC) si posee el Token y lo mantiene hasta que termine la ejecución de su SC.
Algoritmos Específicos de Elección
El Algoritmo del Grandulón o de García-Molina
Un proceso P inicia una elección cuando observa que el coordinador ya no responde a las solicitudes. P realiza una elección de la siguiente manera:
- Envía un mensaje ‘elección’ a los demás procesos con un número mayor.
- Si nadie responde, asume que gana la elección y se convierte en el nuevo coordinador.
- Si un proceso con un número mayor responde, toma el control y el trabajo de P termina.
Un proceso puede recibir en cualquier momento un mensaje ‘elección’ de otros procesos con un número menor:
- Envía de regreso un mensaje ‘OK’ al emisor para indicar que está vivo y que tomará el control.
- Realiza una elección, salvo que ya esté haciendo alguna.
Un Algoritmo de Anillo
Se supone que los procesos tienen un orden físico o lógico, es decir, que cada proceso conoce a su sucesor.
Deja un comentario