
Nace para aprovechar los multiprocesadores

El scheduler asigna los recursos a diferentes procesos o hilos, a través de un algoritmo de scheduling.
El orden puede cambiar en las ≠ ejecuciones.
El objetivo como programadores es hacer que se ejecute de forma correcta en cualquier ejecución.
Es más dificil encontrar errores.



ej de 1) buffer en donde tengo 2 hilos: uno que llene y otro que consuma, necesito que se llene antes de consumir

Los procesos son aislados entre sí.

Estados: