Multiprogramming
Multiprogramming systems provided increased utilization
- keeps multiple runnable jobs loaded in memory
- overlaps I/O processing of a job with computes of another
- benefits from I/O devices that can operate asynchronously
- requires the use of interrupts and DMA
- tries to optimize throughput at the cost of response time