Para permitir la multiprogramación y la concurrencia, los sistemas operativos usan un modelo de procesos con bloques de control del sistema y del proceso. El bloque de control del sistema almacena información sobre los procesos y recursos, mientras que el bloque de control del proceso almacena información específica de cada proceso como su estado y uso de recursos. El planificador del procesador asigna tiempo de CPU a corto plazo a los procesos preparados para ejecutarse.