Actividad 1 - Threads-2

September 21, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Actividad 1 - Threads-2...

Description

 

Actividad 1: Taller (Hilos) (Actividad clase/extraclase) Código

Grupo

Apellidos

Nombres 31

Computadora de pruebas Marca y modelo

Toshiba Satellite C655

Procesador

Intel Core i3 2.3 Ghz

RAM

6 GB

Nombre y tipo del Sistema Operativo

Windows 7 – 7 – 64  64 Bits

1. 

Implemente un programa con 6 hilos de ejecución eje cución usando la siguiente información:

ID

Nombre

Numero de iteraciones (60 / ID)

Tiempo de espera por iteración (ID *1000 ms)

1 2 3 4 5 6

“A”  “B”  “C”  “D”  “E”  “F” 

60 30 20 15 12 10

1000 2000 3000 4000 5000 6000

Cada hilo de ejecución debe durar 60 segundos (aprox.) basado en el número de iteraciones y tiempos de espera establecidos. En cada iteración debe esperar el tiempo definido y después imprimir por pantalla el tiempo de espera (aprox.) desde el inicio del hilo (se calcula multiplicando el ID * el número de iteración) y el nombre del hilo.

Solución Código fuente

 

 

Salida (Llene la tabla con c on los resultados) Seg. 1 2 3 4

Esperada E sperada A AB

5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

2. 

Obtenida A AB CA ABD

Seg. 21 22 23 24

EA FACB A BAD CA EAB A FDCAB A BA ECA DAB A FCAB A EDAB

25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

Esperada

Obtenida CA AB A DFCBA

Seg. 41 42 43 44

EA BA CA DBA A EFCBA A DBA CA BA EA FDCBA A BA CA EDBA

45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

Esperada

Obtenida A FCBA A DBA ECA BA A FDCBA A EBA CA DBA A FCBA EA DBA CA BA A FEDCBA

Implemente un programa que lance cuatro hilos de ejecución donde cada uno de estos

incrementará un contador (variable compartida de tipo entero) 5000 veces y luego saldrá. No se preocupe de sincronizar los accesos a dicha variable. ¿Obtiene el resultado correcto? Ahora sincronice el acceso a dicha variable. 

Solución no sincronizada Código fuente:

Salida:

Solución sincronizada: Código fuente:

 

 

Salida:

3. 

Implemente un programa que reciba a través de sus argumentos una lista de ficheros y

cuente cuantas líneas, palabras y caracteres hay en cada fichero, así como el total entre todos los ficheros (el ‘wc’ de linux). Modifíquelo para que se cree un hilo de ejecución por cada fichero a contar, cuidando de obtener igualmente el e l total. Mida cuanto tiempo emplea la versión secuencial para contar unos cuantos ficheros grandes y cuánto tarda t arda la versión paralela para hacer lo mismo.

Solución Código fuente:

Salida: Cantidad de líneas Archivos

Líneas

Palabras

Caracteres

Tiempo (Seg)

No concurrente Concurrente

4. 

Implemente un programa secuencial que calcule el producto de dos grandes matrices.

Después modifíquelo para que esta tarea se realice entre e ntre cuatro hilos de ejecución, cada uno calcula ¼ parte de la matriz resultado. Mida el tiempo que emplea cada una de las ver versiones. siones.

Solución Código fuente:

Salida: 

Tamaño de la matriz

Tiempo (seg.) Proceso principal

4 hilos

100 x 100 = 10000 500 x 500 = 250000  

 

1000 x 1000 = 1000000

Multiplicación de dos matrices 12000 10000     ) 8000    g    e    s     (    o 6000    p    m    e    i    T 4000

2000 0 0

200000

400000

600000

800000

1000000

1200000

celdas

No concurrente

5. 

Concurrente

Implemente una barrera. Una barrera es un punto de sincronización entre varios hilos. Se

caracteriza porque los hilos que van llegando a ella esperan hasta que llega el último. Por ejemplo, se puede sincronizar N hilos y hasta que el último no llegue los demás no deben poder continuar. Pruébela con el código del primer problema, es decir lancé 4 hilos, cada uno que espere un tiempo proporcional a su identificador, que luego imprima un mensaje que lo identifique y que luego espere en la barrera por los otros hilos. Introduzca este esquema en un bucle para ver como evoluciona con el tiempo.

Solución Código fuente:

Salida:

 

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF