Está en la página 1de 14

UNIVERSIDAD LAICA “ELOY

ALFARO DE MANABI”

FACULTAD DE CIENCIAS INFORMATICAS


CARRERA DE INGENIERIA EN SISTEMAS

NOMBRES

ORTÍZ MOREIRA LENIN FABRICIO

TEMA

CONCEPTOS BÁSICOS Y EJEMPLOS DE SISTEMAS DISTRIBUIDOS

NIVEL

7 “B”

ASIGNATURA

SISTEMAS DISTRIBUIDOS

PROFESOR

ING. WILIAN DELGADO MUENTES

AÑO LECTIVO

2020(2)
Índice
Fundamentación de hilos y comunicación de procesos en sistemas distribuidos.....................2
Procesos y Comunicación........................................................................................................2
¿Qué es un proceso?...............................................................................................................2
¿Qué es un hilo?......................................................................................................................2
Ventajas de hilos.....................................................................................................................3
Ejemplo de un hilo...................................................................................................................3
Estados y control de hilos........................................................................................................4
Estado new:.........................................................................................................................5
Estado running:....................................................................................................................5
Estado not running:.............................................................................................................5
Estado dead:........................................................................................................................5
Hilos en Java............................................................................................................................6
Control de hilos........................................................................................................................6
Arranque de un hilo.............................................................................................................6
Manipulación del hilo..........................................................................................................6
Parada de un hilo.................................................................................................................6
Suspensión de hilo...............................................................................................................6
Prioridades en hilos.............................................................................................................6
Identificación de hilos..........................................................................................................7
Explicación ejemplos de hilos: Un solo hilo y multihilo y comunicación: Cliente – servidor,
llamada a un procedimiento remoto (RPC), comunicación en grupo.........................................7
Modelo cliente - servidor........................................................................................................8
Deficiencias del modelo cliente - servidor..............................................................................8
Llamada de procedimiento remoto (RPC)...............................................................................8
Algunos puntos problemáticos del RPC son:.......................................................................9
Modo de operación del RPC................................................................................................9
Comunicación en grupo.......................................................................................................9
Bibliografía.................................................................................................................................12

1
Fundamentación de hilos y comunicación de procesos en
sistemas distribuidos.

Procesos y Comunicación
La comunicación entre procesos es el núcleo de todos los sistemas distribuidos
[Tanenbaum & Van Steen, 2008]. En los sistemas distribuidos tradicionalmente la
comunicación está basada en el paso de mensaje. Esta técnica proporciona
sincronización entre procesos y permite la exclusión recíproca, su principal
característica es que no requiere memoria compartida, por lo que resulta ser muy
importante en la programación de sistemas distribuidos.

¿Qué es un proceso?
Es un software ejecutándose dentro de su propia área de direcciones.
Son instrucciones de un software dirigidas a ser ejecutadas por el procesador.
Entonces un proceso es un inspector de hilo(s) de ejecución.

¿Qué es un hilo?
Es una sucesión de código en ejecución dentro del entorno de un proceso.
No consiguen ejecutarse ellos por si solos.
Solicitan la inspección de un proceso padre para ejecutarse.
Adentro de cada proceso hay un hilo o varios hilos ejecutándose.

2
La diferencia de estos radica en que los hilos comparten los mismos recursos del
software que las contiene, en tanto los procesos tienen de forma separada su código,
así como su información. Se conoce hilos de dos modelos de flujo:
Único: El software usa solamente un hilo para controlar su ejecución.
Múltiple: Son software que usan algunos entornos de ejecución para efectuar su
trabajo.

Ventajas de hilos
 Condición de poseer más de un camino de ejecución en un mismo software.
 Multihilos en aplicaciones Cliente-Servidor.
 Acelerar los tiempos de demora de la comunicación cliente-servidor.

Ejemplo de un hilo
Excel puede tener un hilo en background chequeando automáticamente la gramática
de lo que escribimos, mientras otro hilo puede estar guardando los cambios del
documento en el que se trabaja.

3
Los hilos a menudo son llamados procesos ligeros.
Los hilos dependen de un software padre en lo que se refiere a recursos de ejecución.
Los hilos siempre existen dentro de un proceso, lo necesitan.

4
Estados y control de hilos

La conducta de un hilo depende de la condición que este, este estado define su


manera de ejecución actual. Los estados en los que puede estar un hilo Java:
• New
• Running
• Not running
• Dead

5
Estado new: El hilo se encuentra aquí cuando se crea por primera vez hasta la llamada
del método start.
Estado running: El método run es llamado y el hilo entra en estado running.
Estado not running: Cuando un hilo esta paralizado pero listo para su uso y volver al
estado running, los hilos pasan a not running por varias sendas.
El método suspend ()
El método sleep ()
El método wait ()
El método interrupt ()
Estado dead: Los hilos no pueden ser ejecutados y estos entran en este por dos 2
posibles vías.
El método run acaba su ejecución.
El método stop es llamado.

Hilos en Java

6
Control de hilos

Arranque de un hilo
Start () método oculto en el hilo llamando al método run.
Manipulación del hilo
Run () compone el cuerpo del hilo en ejecución.
Parada de un hilo
Stop () origina que el hilo se concluya rápidamente. Habitualmente forma un
modo tosco de interrumpir un hilo, más si este se ejecuta sobre un hilo en
curso.
Suspensión de hilo
Suspend () elige el hilo y ocasiona que se detenga su ejecución sin destruir a
este por un tiempo indeterminado.
Resume () renace un hilo suspendido.

Prioridades en hilos
SetPriority (int) atribuye al hilo la prioridad dada por el valor pasado como
parámetro.

GetPriority () retorna la prioridad del hilo en ejecución siendo un valor


contenido entre 1 y 10.

Identificación de hilos
SetName (String) admite reconocer al hilo con un nombre facilitando la
depuración de software multihilo.
GetName () retorna el valor actual tipo cadena dado como nombre al hilo en
ejecución por intermedio de SetName ().
Boolean isAlive () devuelve true si el thread esta en el estado Alive, estando ya
iniciado y aun no termina.

7
Explicación ejemplos de hilos: Un solo hilo y multihilo y
comunicación: Cliente – servidor, llamada a un procedimiento
remoto (RPC), comunicación en grupo.
En un sistema multihilos, cada tarea se inicia y termina tan pronto como sea posible,
esto facilita la entrada de datos en sistemas en tiempo real, especialmente si estos
datos provienen de diferentes fuentes. Un hilo es una parte del programa que se
ejecuta independientemente del resto o la unidad de código más pequeña que se
pueda ejecutar en un entorno multitareas. El uso de hilos es muy valioso en entornos
interactivos en red, ya que permiten sincronizar la diferencia entre la velocidad de
transmisión de la red con las de procesamiento del CPU. La velocidad en el manejo del
sistema de archivos para lectura y grabación es más lenta comparada con la velocidad
de procesamiento de estos datos por el CPU, en este caso el uso de hilos ayuda mucho.

A) Software con un solo hilo, B) Software multihilos

Modelo cliente - servidor


Hace referencia a la comunicación en la que participan dos aplicaciones. Mientras los
servidores esperan pasivos, aceptan peticiones recibidas a través de la red, realizan el
trabajo y regresan el resultado o un código de error porque no se generó la
petición. Una operación general del funcionamiento del cliente - servidor se muestra
donde un servidor espera una petición sobre un puerto bien conocido que ha sido
reservado para cierto servicio.

8
La comunicación cliente - servidor puede ser implementada a través de librerías PVM
(Parallel Virtual Machine) o sockets que permiten implementar comunicaciones
bloqueantes y no bloqueantes, además de que también pueden usar TCP para tener
comunicaciones confiables.

Deficiencias del modelo cliente - servidor

El modelo de comunicación es la entrada/salida (E/S), ya que estos no son


fundamentales en el cómputo centralizado.

No permite la transparencia requerida para un ambiente distribuido.

El desarrollador debe de encargarse de la transferencia de mensajes tanto del lado del


cliente como del lado del servidor.

Llamada de procedimiento remoto (RPC)

Es una variación del modelo cliente - servidor y es una vía para implementar en la
existencia este modelo, y en este un software llama a un procedimiento localizado en
otra máquina. El desarrollador no se angustia por las transferencias de mensajes o de
las E/S. Para conseguir transparencia, el RPC usa un resguardo de cliente, que se
encarga de enfardar los parámetros en un comunicado y le solicita al núcleo que envíe
el comunicado al servidor, después se bloquea hasta que regrese la respuesta.

Algunos puntos problemáticos del RPC son:

Que se deben de utilizar espacios de direcciones distintos, sabiendo que se ejecutan en


ordenadores diferentes.
Como los ordenadores pueden no ser iguales, el traspaso de parámetros y resultados
puede dificultarse.
Ambos ordenadores pueden averiarse.

9
Modo de operación del RPC

Se presenta un llamamiento a un procedimiento remoto, el cual se considera los


siguientes pasos:

 El procedimiento cliente llama al resguardo del cliente de la manera usual.


 El resguardo del cliente construye un mensaje y realiza un señalamiento al
núcleo.
 El núcleo envía el mensaje al núcleo remoto.
 El núcleo remoto proporciona el mensaje al resguardo del servidor.
 El resguardo del servidor desempaca los parámetros y llama al servidor.
 El servidor realiza el trabajo y regresa el resultado al resguardo.
 El resguardo del servidor empaca el resultado en un mensaje y hace un
señalamiento mediante el núcleo.
 El núcleo remoto envía el mensaje al núcleo del cliente.
 El núcleo del cliente da el mensaje al resguardo del cliente.
 El resguardo desempaca el resultado y lo entrega al cliente.

Comunicación en grupo
En un sistema distribuido puede haber comunicación entre procesos de uno a muchos
o de uno a muchos. Los grupos son dinámicos, lo cual involucra que se pueden generar
nuevos grupos y arruinar grupos anteriores. Los métodos para establecer la
comunicación en grupos pueden ser:
 Transmisión de multidifusión (multicast)
 Transmisión completa
 Transmisión punto a punto

10
La comunicación en grupo se da entre un emisor (E) y varios receptores(R).

Con respecto a los aspectos de diseño de los grupos, se tienen las siguientes opciones
[Tanenbaum, 1996]:
Grupos cerrados: el procesamiento paralelo.
Grupos abiertos: el soporte de servidores redundantes.
Grupo de compañeros: Permite que las decisiones se tomen de manera
colectiva.

Ventaja: el grupo de compañeros es equilibrado y no tiene punto de fallo.

Desventaja: la toma de decisiones por votación es complejo, crea demora y es


caro.

Grupo jerárquico: Existe un conductor y algunos trabajadores.

Membresía de grupo:
• Autoriza crear, eliminar grupos, agregar o eliminar procesos de grupos.
• Utiliza técnicas como la del servidor del grupo o membresía distribuida.
• Existen problemas de detección cuando un miembro ha fallado.

Direccionamiento al grupo: Los grupos deben de poder direccionarse.


Estas pueden ser:
• Dirección única grupal
• Dirección de cada miembro del grupo
• Direccionamiento de predicados

Primitivas: Las primitivas de comunicación son:


• send y receive, de la misma forma que en una comunicación puntual
• group_send y grop_receive para comunicación en grupo

Atomicidad: Se refiere a que cuando se envía un mensaje a un grupo,


debe de llegarles a todos los asociados o ninguno, así como asegurar la
estabilidad.

Ordenamiento de mensajes: Está contigua con la atomicidad y admite


que la comunicación en grupo sea sencilla de entender y usar. Los
11
criterios son:

• Ordenamiento con respecto al tiempo global


• Ordenamiento consistente
• Ordenamiento con respecto a grupos traslapados

Escalabilidad: autoriza que el grupo siga operando, aun cuando


se añadan nuevos integrantes.

Bibliografía

12
López Fuentes. Sistemas distribuidos. 2015. Universidad Autónoma Metropolitana. México.
Pag. 55 a 68 http://dccd.cua.uam.mx/libros/archivos/03IXStream_sistemas_distribuidos.pdf

Andrew S. Tanenbaum, Maarten Van Steen. Sistemas Distribuidos Principios y Paradigmas


Segunda Edición 2008.PEARSON EDUCACIÓN, México

Reyes. (2020).Procesos, hilos y multihilos


http://aisii.azc.uam.mx/areyes/archivos/licenciatura/sd/U2/ConceptoHilos.pdf

13

También podría gustarte