Un programa no es sino un conjunto estático de instrucciones, mientras que la ejecución del programa es una actividad dinámica cuyas propiedades cambian con el paso del tiempo. La actividad de ejecutar un programa bajo el control del SO se conoce como proceso. Con el proceso está asociado el estado actual de la actividad, lo que se denomina estado de proceso, que es una instantánea de la máquina en un momento determinado.
Las tareas asociadas con la coordinación de la ejecución de los procesos son gestionadas por el planificador y el despachador dentro del núcleo del sistema operativo. El planificador mantiene un registro de los procesos presentes en la computadora y se encarga de introducir nuevos proceso en dicho registro y de eliminar de él los procesos completados.
Para poder controlar todos los procesos existentes, el planificador mantiene en la memoria principal un bloque de información denominado tabla de procesos. Cada vez que se solicita la ejecución de un programa, el planificador crea una nueva entrada para dicho proceso en la tabla de procesos. Esta entrada contiene informaciones tales como el área de memoria signada al proceso, si el proceso esta listo o a la espera, etc. Un proceso está listo si se encuentra en un estado en el que puede continuar progresando; estará a la espera si su progreso está actualmente detenido hasta que tenga lugar algún suceso externo, como la terminación de una operación de escritura en almacenamiento masivo, la pulsación de una tecla del teclado o la llegada de un mensaje enviado por otro proceso.
El despachador es el componente del núcleo que supervisa la ejecución de los procesos planificados. En un sistema de tiempo compartido/multitarea, esta tarea se lleva a cabo mediante multiprogramación; es decir, dividiendo el tiempo en cortos segmentos, cada uno de los cuales se denomina franja temporal y luego conmutando la atención del procesador entre los distintos procesos, a medida que se permite que cada de uno de ellos se ejecute durante una franja temporal. El procedimiento de cambiar de un proceso a otro se denomina conmutación de procesos.
Cada vez que el despachador concede una franja temporal a un proceso, inicia un circuito temporizador que indicará el final de la franja temporal, generando una señal conocida como interrupción. Cuando el procesador recibe una señal de interrupción, completa su ciclo de máquina actual, anota su posición dentro del proceso actual y comienza a ejecutar un programa, denominado rutina de tratamiento de interrupciones, que esta almacenado en una posición predeterminada de la memoria principal. Esta rutina forma parte del despachador y se encarga de describir cómo debe responder el despachador a la señal de interrupción.
El aspecto clave para el buen funcionamiento de un sistema de multiprogramación es la capacidad de detener un proceso y reanudarlo posteriormente.