Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
(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 – 64 Bits
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 los resultados)
2. 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 total. Mida cuanto tiempo emplea la versión secuencial
para contar unos cuantos ficheros grandes y cuánto tarda 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
Solución
Código fuente:
Salida:
Tiempo (seg.)
Tamaño de la matriz
Proceso principal 4 hilos
100 x 100 =
10000
500 x 500 =
250000
1000 x 1000 =
1000000
10000
8000
Tiempo (seg)
6000
4000
2000
0
0 200000 400000 600000 800000 1000000 1200000
celdas
No concurrente Concurrente
5. 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: