Un sistema operativo gestiona recursos hardware, aplicaciones y proporciona una interfaz entre el usuario y el ordenador. Los procesos son instancias de programas en ejecución, caracterizados por su contador de programa y estado, y pueden transicionar entre varios estados como ejecución, listo y bloqueado. En programación concurrente, múltiples procesos se ejecutan posiblemente en paralelo, y se requiere un manejo efectivo del cambio de contexto y la memoria.