Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ALFARO DE MANABI”
NOMBRES
TEMA
NIVEL
7 “B”
ASIGNATURA
SISTEMAS DISTRIBUIDOS
PROFESOR
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
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.
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.
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.
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.
9
Modo de operación del RPC
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.
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.
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
13