Multi-programming system
202308301340
Status: #idea
Tags: OS
Multi-programming system
- A process does IO while another does CPU
- Keeps multiple runnable jobs
- Overlaps IO of one with compute of another
- Benefits from I/O devices that can operate asynchronously
- Optimises system throughput at the cost of response time
flowchart LR subgraph Queue direction LR J1\n0 --- J2\n1 --- J3\n2 --- J1\n12 --- J2\n18 --- J3\n15 end subgraph CPU direction LR J1\n0-8 --- J2\n8-13 --- J3\n13-15 --- J1*\n15-18 --- J3*\n18-24 --- J2*\n24-33 end
Decision Points
- Job completion
- Process leaves for I/O
- Job arrival (if the CPU is idle)
Problems
- If there is a CPU-bound job, IO bound jobs will starve