Paralelismo Hilos
Paralelismo Hilos
Paralelismo Hilos
2020
Paralelismo
Concurrencia
Imagen tomada de Internet
Paralelismo
• Un procesador, varios procesos
Modelos
procesador procesador procesador
• Un procesador, Un proceso
Procesos Ejecución Serial
Hay paralelismo?
procesador
Tiempo
Proceso
procesador
PL1 PL2
Proceso
1 a = b + c; a = b + c;
2 x = y + pow(z, 3); x = a + pow(z, 3);
3 d = a * x; d = a * x;
1 2 1 Quora
2
3 Paralelismo a Nivel de Instrucciones
3
https://superuser.com/questions/584900/how-distinguish-between-multicore-and-
multiprocessor-systems
https://software.intel.com/content/www/us/en/develop/articles/
software-techniques-for-shared-cache-multi-core-systems.html?
wapkw=smart+cache
Multicores: paralelismo a nivel de Hw
https://www.ingenuityworking.com/discussions/f/161/t/2244.aspx
https://www.slideshare.net/ZackTudu/multicore-processors-and-its-advantages
Cómo explotar el paralelismo a nivel de Hw?
• Un procesador, un Dual core
proceso core core
procesador
Procesos
Proceso
core core
Hay paralelismo?
Paralelismo a Nivel de Aplicaciones
Funcional
Cómo explotar el paralelismo a nivel de Hw?
• Un proceso lo podemos dividir en muchos hilos
procesador
Proceso
Hilos
Paralelismo a Nivel de Software (Implementado por Librerías o por el
Sistema Operativo) Core 0 Core 1
PL1 PL2 PL1 PL2
Core 2 Core 3
Procesadores Físicos
(Multicores) y Lógicos
PL1 PL2 PL1 PL2
I1P1 I2P1…
Preguntas a Responder:
1. Cómo se implementan los hilos?
2. El proceso amarillo será multihilos?
Cocina comunal (CPU)
Cada familia puede usar el espacio Coloca la ropa en un minuto y
Para hacer lo que requiera en turnos no puede hacer mas nada,
de 5 minutos pierde los otros 4minutos.
Sale y pasa la siguiente
familia.
http://decoracionydisegno.blogspot.com/2013/08/lavadora-
en-la-cocina.html
Dura los 5 minutos picando
verduras y cocinará en los
próximos 5 minutos.
procesos
http://decoracionydisegno.blogspot.com/2013/08/lavadora-
en-la-cocina.html
Esta familia lleva a mas
Cocina comunal (CPU) integrantes uno pela las
Cada familia puede usar el espacio verduras, el otro mete la
Para hacer lo que requiera ropa, el otro friega la loza. Así
Solo 5 minutos aprovechan mejor los 5min
(paralelismo)
ejecutable
proceso
Hilos a Nivel de Usuario (ULT)
• Como no se involucra al kernel, las operaciones sobre
los hilos son más rápidas. La librería actúa como un
mini-kernel que controla la ejecución de los hilos.
• Las operaciones de creación, destrucción,
sincronización, etc., son llamadas a rutinas de librería.
Cuando un hilo se suspende, la librería toma el control,
salva su contexto y permite la ejecución de otro hilo
dentro del mismo proceso.
Ventajas de los Hilos a Nivel de Usuario
• El cambio de hilo se hace a nivel de proceso usuario, no hay un cambio
de modo. Esto ahorra el overhead que producen los dos cambios de
modo.
• Se pueden diseñar (si la librería lo permite) estrategias de planificación
adecuadas a la aplicación.
• Se pueden ejecutar en cualquier sistema operativo. Cualquier aplicación
puede programarse para ser multihilos a través del uso de una librería
de hilos
Desventajas
• Si un hilo hace una llamada al sistema bloqueante, se bloquearán
todos los hilos del proceso a menos que se use la técnica del
revestimiento.
• No se obtienen ventajas con el multiprocesamiento.
El hilo hace
una
llamada al
(a) (b)
Thread 1 Thread 2 Thread 1 Thread 2 sistema
Ready Running Ready Running Ready Running Ready Running
bloqueant
Hilos a nivel de
usuario Blocked Blocked Blocked Blocked
e.
Process B Process B
Ready Running Ready Running
Blocked Blocked
(c) (d)
Thread 1 Thread 2 Thread 1 Thread 2
Ready Running Ready Running Ready Running Ready Running
Process B Process B
Ready Running Ready Running
Blocked Blocked
Colored state
is current state
Figure 4.6 Examples of the Relationships Between User -Level Thread States and Process States
Desventajas
• Si un hilo hace una llamada al sistema bloqueante, se bloquearán
todos los hilos del proceso a menos que se use la técnica del
revestimiento.
Revestimiento
• Convierte una llamada al sistema
bloqueante en una no bloqueante.
La librería demora la solicitud de
servicio al SOP
Uno-a-uno
• Ejemplos
- Windows 95/98/NT/2000
- Linux
Hilos a Nivel del Kernel (KLT)
• El núcleo gestiona los hilos. No hay código de gestión de hilos en la
aplicación, sólo la interfaz (API) para acceder a las utilidades de los
KLT.
• Cualquier aplicación puede programarse para ser multihilo. Todos
los hilos de una aplicación se mantienen en un solo proceso
(entidad que posee los recursos)
• El SOP mantiene toda la información de cada hilo y realiza la
planificación.
Ventajas
• Varios hilos de un mismo proceso se pueden planificar en
distintos procesadores.
• Si se bloquea un hilo de un proceso, el SOP puede planificar
otro hilo del mismo proceso.
• Las rutinas del SOP pueden ser en si misma multihilos
(demonios).
Figure 4.3 - Concurrent execution on a single-core system.
Table 4.1
Thread and Process Operation Latencies (s)
Desventajas
Vinculado= KLT
45
Procesos e Hilos
Comunicación
Diferencias
en Cambios de
Contexto
Comunicación (Procesos)
• Por pertenecer a diferentes espacios de
direcciones, la comunicación
entre procesos sólo es posible
utilizando llamadas al sistema.
Mecanismos de Comunicación entre procesos
Comunicación (Hilos)
• Cada hilo dentro de un
proceso es una entidad
independiente, pero dado
que los hilos forman parte
de un mismo proceso o
espacio de direcciones, la
comunicación entre hilos
es mucho más rápida y
simple.
Comunicación (Hilos)
• Debido a que los threads son parte del mismo proceso, el
compartir datos entre ellos es muy fácil; todo los hilos tienen
acceso a los datos globales.
• La comunicación entre varios hilos se lleva a cabo a través
de recursos del proceso usuario, no a través de los recursos
del kernel.
• No se necesitan llamadas al sistema para su comunicación,
sencillamente se acceden los datos. Esto vale para hilos a nivel de
usuario y a nivel de kernel.
int main(){
}
pthread_exit(NULL);
}
Cambios de Contexto: Cambio de Hilo o
Cambios de Proceso.