Está en la página 1de 2

Resumen Video 5

Arquitectura Multicore
Hace años atrás la velocidad del CPU tendía a duplicarse cada
año y medio, esto dejo de ser así después de pasar la
frecuencia de los 2.8 GHz, ya que la potencia requerida
aumentaba significativamente y de manera no proporcional
con la frecuencia, por esto los investigadores se dieron cuenta
que con menor velocidad de reloj, se permitía ahorrar potencia
para aumentar los núcleos.

En este grafico se puede explicar mejor, podemos ver


como si hacemos un over-clocking y le aumentamos
mucho la potencia, se gana muy poco en rendimiento,
pero si hacemos un under-clocking y bajamos casi la
mitad de la potencia, se pierde muy poco rendimiento,
por lo que a los investigadores se les ocurrió poner un
segundo núcleo con menor potencia, logrando ganar
así un gran aumento de rendimiento, sin consumir
mucha potencia entre los dos núcleos.

Aplicación de los multihilos en una arquitectura Multicore

En una aplicación serial que hace uso intensivo del CPU, un solo hilo no puede sacar provecho, de
una arquitectura donde haya múltiples CPUs disponibles, pero si modificamos el programa para
haya múltiples hilos en ejecución, cada hilo puede ejecutar un proceso en un core diferente, y se
aprovecha el paralelismo.
Resumen Video 6
Hilos Posix
Gestión de hilos básica (Posix)
Un hilo es dinámico si se puede crear en cualquier momento de la ejecución.
En Posix se usan las siguientes funciones:

 Pthread_create. Para crear hilos dinámicamente


 Pthread_exit Para terminar un hilo
 Pthread_join Para que el hilo principal espere a todos los hilos
Ejemplo:
Aquí tenemos un programa, donde podemos ver como el hilo principal llega a la función
Pthread_create, por lo que empieza a crear un nuevo hilo en tfunc, y al estar en bucle for,
esto se repite hasta terminar el bucle, después el hilo principal llega a la función
Pthread_join, donde el hilo principal debe esperar a que terminen los hilos creados,
cuando termine de crearse un hilo, el hilo principal vuelve a la función Pthread_join, por
estar en un ciclo for, y vuelve a esperar por que termine de crearse otro hilo, y asi hasta
que termine el for, y así termina la ejecución.

Para compilar un programa con Hilos Posix,


necesitamos agregar la librería pthread.
-lpthread

También podría gustarte