La multiprogramación es una forma de organizar la ejecución de varios programas en una computadora.
Multiprogramación separada en sistemas por lotes, sistemas en tiempo real y sistemas de tiempo compartido.
El procesamiento por lotes se utiliza para lograr la máxima eficiencia en el uso de los recursos informáticos al realizar tareas informáticas mediante la carga equilibrada de sus componentes, como ALU e IUV . Las tareas programadas para su ejecución se denominan paquete. El cambio entre tareas en el modo por lotes lo inicia la tarea que se está ejecutando actualmente, por lo que los intervalos de ejecución de una tarea en particular no están definidos.
Los sistemas de tiempo compartido se utilizan para ejecutar "simultáneamente" múltiples programas de forma interactiva. A diferencia del modo por lotes, todos los programas tienen una cierta cantidad de tiempo para ejecutarse, luego el sistema inicia un cambio. Los intervalos de tiempo asignados pueden ser iguales para todas las tareas o pueden estar determinados por sus prioridades.
Los sistemas en tiempo real difieren de los sistemas de tiempo compartido en que deben ser predecibles en las siguientes situaciones [1] :
Además, un sistema en tiempo real puede desperdiciar más recursos (ser menos eficiente o tener menos ancho de banda ) debido a mayores requisitos para la programación de tareas [2] , así como no usar los recursos por completo en momentos de carga promedio [3] .