Multitasking (Timesharing)
1. A logical extension of Batch systems– the CPU switches jobs so frequently that users can interact with each job while it is running, creating interactive computing
2. Response time should be < 1 second
3. Each user has at least one program executing in memory (process)
4. If several jobs ready to run at the same time CPU scheduling
5. If processes don't fit in memory, swapping moves them in and out to run
6. Virtual memory allows execution of processes not completely in memory