Principios de Concurrencia -...
Transcript of Principios de Concurrencia -...
![Page 1: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/1.jpg)
Principios de Concurrencia
Facultad de Cs. de la Computación
Juan Carlos Conde Ramírez
Distributed Computing
![Page 2: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/2.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Contenido
1 Características
2 Propiedades de Diseño
3 Procesos y Tareas
4 Procesos en UNIX
1 / 34
![Page 3: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/3.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Contenido
1 Características
2 Propiedades de Diseño
3 Procesos y Tareas
4 Procesos en UNIX
2 / 34
![Page 4: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/4.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Introducción
Como se recordará, el uso de memoria compartida es la base para distinguir unsistema paralelo de un sistema distribuido.
I Es decir, un sistema distribuidor se caracteriza por la ausencia de memoriacompartida.
I Por lo tanto, en un sistema distribuido es imposible conocer el estado global
del sistema (para cualquier procesador).
I En consecuencia es complicado observar cualquier propiedad global del sis-tema.
3 / 34
![Page 5: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/5.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Acoplamiento I
Tanto un sistema distribuido como un sistema paralelo pueden ser fuertemente
acoplado o débilmente acoplado.
Esto depende de la manera en que colaboran los múltiples procesadores.
4 / 34
![Page 6: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/6.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Acoplamiento II
Esto hace importante tener que hacer las siguientes consideraciones:
I La ausencia de un �reloj compartido� deriva en un sistema débilmenteacoplado.
I Lógicamente para un sistema geográ�camente distribuido es mucho másdifícil, por no decir imposible, sincronizar los relojes de diferentes proce-sadores.
5 / 34
![Page 7: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/7.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Acoplamiento III
I El retraso o delay de la comunicación entre procesadores es la razón principalde que sea imposible sincronizar los relojes de los procesadores que integranun sistema distribuido.
I En base a lo anterior, es comprensible que se tenga que prescindir del usode relojes físicos para la sincronización de sistemas distribuidos.
I Pese a que en un sistema paralelo es posible simular un reloj compartido, raravez es buena idea diseñar un sistema basado en una arquitectura fuertementeacoplada.
6 / 34
![Page 8: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/8.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Acoplamiento IV
I Debido a la perdida de rendimiento durante la sincronización, elegir unaarquitectura débilmente acoplada es una mejor opción.
I Por lo tanto, asumiremos que los sistemas con los que trataremos a partir
de ahora son débilmente acoplados.
7 / 34
![Page 9: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/9.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Sincronización
Def. Sincronización (del griego (syn) -> �unido� y (chrónos) -> �tiempo�),describe el ajuste temporal de eventos. Se habla de sincronización cuandodeterminados fenómenos ocurran en un orden prede�nido o a la vez.
8 / 34
![Page 10: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/10.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Clasi�cación
Los sistemas distribuidos pueden ser clasi�cados como:
I Sistemas Síncronos
I Sistemas Asíncronos
9 / 34
![Page 11: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/11.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Sistemas Asíncronos I
I Un sistema distribuido es asíncrono si no existe límite superior en el tiempode comunicación de los mensajes.
I La asincronía conduce hacía las soluciones más generales para varios prob-lemas.
I Sin embargo, las cosas se tornan difíciles en sistemas asíncronos cuando losprocesadores o las conexiones fallan.
10 / 34
![Page 12: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/12.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Sistemas Asíncronos II
I En un sistema distribuido asíncrono es imposible distinguir entre un proce-sador lento y uno que ha fallado.
I Esto conduce a complicaciones en el desarrollo de algoritmos para consenso,elección y otros problemas importantes del cómputo distribuido.
11 / 34
![Page 13: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/13.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Contenido
1 Características
2 Propiedades de Diseño
3 Procesos y Tareas
4 Procesos en UNIX
12 / 34
![Page 14: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/14.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Conceptos
Los resultados de muchos sistemas paralelos y distribuidos han demostrado quesu diseño debe considerar principalmente cuatro propiedades:
1. Tolerancia a fallos
2. Transparencia
3. Flexibilidad
4. Escalabilidad
13 / 34
![Page 15: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/15.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Tolerancia a fallos
I El software debe de �enmascarar� uno o más componentes del sistema in-cluyendo principalmente:- procesadores- memoria
- conexiones de red.
I Generalmente esto requiere de redundancia, la cual puede ser costosa de-pendiendo del grado de tolerancia.
I Por lo tanto, se requiere de un análisis costo-bene�cio para determinar unnivel apropiado de tolerancia a fallos.
14 / 34
![Page 16: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/16.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Transparencia I
Para que un sistema sea tan amigable como sea posible, se requiere que el usuariono tenga que tratar con detalles innecesarios.
Por ejemplo: en un sistema distribuido heterogéneo, la diferencia en larepresentación interna de los datos se oculta para el usuario, esto corresponde atransparencia de acceso.
15 / 34
![Page 17: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/17.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Transparencia II
Para que un usuario pueda utilizar un recurso:
I No se requiere que el usuario sepa donde está localizado -Transparencia de
localización.
I No se requiere que el usuario sepa si está replicado -Transparencia de repli-
cación.
I No se requiere que el usuario sepa si está compartido -Transparencia de
concurrencia.
I No se requiere que el usuario sepa si está almacenado en memoria volátil oen disco duro -Transparencia de persistencia.
16 / 34
![Page 18: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/18.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Flexibilidad
La Flexibilidad de un sistema radica en la facilidad para interactuar con otrosservicios y sistemas.
Para lograr una una buena interacción se requiere que el sistema adopte unconjunto �jo de reglas, preferiblemente un estándar. Esto se puede facilitar através de:
1. Una Lenguaje de De�nición de Interfaz (IDL) que especi�ca los serviciosproporcionados por el sistema.
2. Separar la con�guración (o política) del mecanismo.
17 / 34
![Page 19: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/19.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
IDL: Interface Description Language
También llamado lenguaje de de�nición de interfaz es un lenguaje informático utilizadopara describir la interfaz de componentes del software.
Describe una interfaz en un lenguaje neutral, que permite la comunicación entre com-ponentes de software desarrollados en diferentes lenguajes de programación y para difer-entes plataformas, como por ejemplo entre componentes escritos en C++ y otros es-critas en Java.
Son utilizadas con frecuencia en software con llamadas a procedimientos remotos (RPC,Remote Procedure Call). IDL ofrece un puente entre dos sistemas diferentes.
Algunos lenguajes de descripción o de de�nición de interfaz son:
I IDL speci�cation language, el IDL original.
I Microsoft Interface De�nition Language (MIDL).
I Open Service Interface De�nitions.
I Platform-Independent Component Modeling Language.
I WSDL, lenguaje de descripción de servicios web.
18 / 34
![Page 20: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/20.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Escalabilidad
La Escalabilidad es una propiedad importante si se piensa en rendimiento delsistema cuando el número de usuarios o recursos se incremente.
Por lo general, un sistema puede ser completamente descentralizado; usandoalgoritmos distribuidos, como parcialmente descentralizado; usando una jerarquíade servidores.
19 / 34
![Page 21: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/21.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Contenido
1 Características
2 Propiedades de Diseño
3 Procesos y Tareas
4 Procesos en UNIX
20 / 34
![Page 22: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/22.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Origenes
Se puede decir que los problemas de Concurrencia surgen incluso en computa-doras con un sólo CPU, ya que el sistema puede estar organizado como unacolección de procesos que cooperan entre sí.
De hecho, los tópicos de Sincronización e Interbloqueo (deadlock) tienen susraíces en el desarrollo de los primeros Sistemas Operativos.
No obstante, antes de profundizar en la construcción de la programación con-currente es necesario comprender la diferencia entre programa y proceso.
21 / 34
![Page 23: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/23.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Procesos I
Programa de computadora.- Se trata de un conjunto de instrucciones escritasen un lenguaje de alto nivel o en lenguaje de máquina.
Proceso.- Se obtiene al ejecutar un programa y es entonces que es posible obteneruno o más procesos.
programa secuencial = un proceso
programa concurrente = múltiples procesos
22 / 34
![Page 24: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/24.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Procesos II
Un proceso consiste de tres segmentos en memoria:
1. Código
2. Datos
3. Pila de ejecución.
I El CÓDIGO es la �máquina de instrucciones�.
I Los DATOS corresponden a la memoria ocupada por variables globales ymemoria asignada en tiempo de ejecución (heap) usada por el programa.
I La PILA se compone de variables locales y registros de activación para lasllamadas a función.
23 / 34
![Page 25: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/25.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Procesos III
Dado que cada proceso tiene su propia pila, cuando varios procesos compartenel espacio de direcciones (memoria), o sea código y datos, se conocen comoprocesos ligeros o hilos.
24 / 34
![Page 26: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/26.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Procesos IV
Cuando varios procesos tienen su propio código y sus propios datos se conocencomo procesos pesados o simplemente procesos. En este caso, los procesos pe-sados pueden compartir datos a través de archivos o enviando mensajes explícitosa cada otro.
Lenguaje
Cualquier lenguaje de programación que soporte concurrencia debe tener unaforma de especi�car:
I La estructura de un proceso.
I La comunicación entre varios procesos.
I La sincronización de cada proceso.
25 / 34
![Page 27: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/27.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Contenido
1 Características
2 Propiedades de Diseño
3 Procesos y Tareas
4 Procesos en UNIX
26 / 34
![Page 28: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/28.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Organización
Durante el curso se estudiaran las formas más populares para que un programaespeci�que la estructura de un proceso o la creación de nuevos procesos.
Un caso fundamental es la creación de procesos en sistemas basados en UNIX.Los procesos son organizados en forma de un árbol de procesos donde cadaproceso se identi�ca con un Identi�cador de Proceso que es único (PID).
UNIX proporciona llamadas a sistema de tipo:
I bifurcación (fork) para la creación de procesos ligeros.
I de espera (wait) para la sincronización de procesos ligeros.
27 / 34
![Page 29: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/29.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Llamada a sistema fork
I Cuando un proceso realiza un llamado de tipo fork se crea un proceso hijocon una copia del espacio de direcciones del proceso padre.
I La única diferencia entre el proceso padre y el hijo es el valor de retornoque se obtiene a partir del código para el fork.
I El proceso padre obtiene el PID del proceso hijo así como el código deretorno, y el proceso hijo se identi�ca con el valor 0 como se muestra en elsiguiente código.
28 / 34
![Page 30: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/30.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Llamadas a sistema forkejemplo
pid = fork();
if( pid == 0 )
{
// child process
cout � �child process�;
}
else
{
// parent process
cout � �parent process�;
}
29 / 34
![Page 31: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/31.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Llamada a sistema wait
I La llamada a wait es usada por el proceso padre para esperar la �nalizacióndel proceso hijo.
I Un proceso termina cuando se ejecuta la última instrucción del código ocuando se hace una llamada explícita a la función exit perteneciente alsistema.
I Cuando un proceso hijo termina, el proceso padre �despierta� si estabaesperando, y el PID del proceso hijo es retornado por la llamada wait.
I De esta forma el proceso padre puede determinar cuál de sus hijos ha ter-minado.
30 / 34
![Page 32: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/32.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Lanzamiento paralelo de procesos I
Otro tipo de programación para lanzar tareas paralelas es posible a través de lasentencias cobegin-coend (también llamadas parbegin-parend). Su sintaxis escomo sigue:
cobegin S1 || S2 coend
Este tipo de construcción signi�ca que S1 y S2 deben ejecutarse en paralelo.
Además si alguno de los procesos termina antes, este debe esperar a que termineel otro.
31 / 34
![Page 33: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/33.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
Lanzamiento paralelo de procesos II
Combinando las sentencias cobegin-coend con la secuenciación u operador deseries ';' es posible crear cualquier cantidad de tareas con estructura en serie-paralela.
S0; cobegin S1 || S2 coend; S3
se comienza con un proceso que ejecuta S0. Cuando S0 termina se tienen dosprocesos (o hilos) S1 y S2 que se ejecutan en paralelo. Cuando ambos procesosterminan, sólo resta ejecutar S3.
32 / 34
![Page 34: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/34.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
ACTIVIDAD: Ejercicios
1. Dar las ventajas y desventajas de un modelo de programación paralelacontra un modelo de sistema distribuido (basado en mensajes).
2. Codi�ca una clase en Java que permita la búsqueda paralela en un arreglode enteros. Se proporciona el siguiente método estático:
public static int parallelSearch( int x, int A[], int numThreads )
{
...
}
Éste método crea tantos hilos como especi�qué el parámetro numThreads,divide el arreglo A entre el número de hilos, se le asigna una parte del arreglo acada hilo para que busque x de forma secuencial. Si algún hilo encuentra x,entonces éste retorna un índice i tal que A[i] = x. En otro caso, el métodoretorna -1.
* Presentar tarea escrita a mano en la libreta y en limpio.** La comprobación del código en JAVA deberá presentarse en computadora.
33 / 34
![Page 35: Principios de Concurrencia - climate.cs.buap.mxclimate.cs.buap.mx/CondeJC/cursos/Material/Distribuido_/Notas/02... · ponentes de software desarrollados en diferentes lenguajes de](https://reader030.fdocuments.es/reader030/viewer/2022041223/5e0e6820bdd9bf00aa2ae6ca/html5/thumbnails/35.jpg)
Características Propiedades de Diseño Procesos y Tareas Procesos en UNIX
�El único lugar en el que Éxito viene antes queTrabajo es en el diccionario�
[Vidal Sassoon]
Juan Carlos Conde Ramí[email protected]
34 / 34