Este documento describe los conceptos de multiprogramación y concurrencia. La multiprogramación permite ejecutar múltiples procesos de forma pseudo-paralela en una sola CPU mediante el intercambio rápido entre ellos. Esto mejora la utilización de la CPU y permite el servicio simultáneo a varios usuarios. Las interrupciones son llamadas forzosas a procedimientos que permiten la multiprogramación y E/S asincrónicas. La concurrencia causa dificultades como la protección de recursos compartidos y la asignación óptima de