Motivation
• Operating systems (and application programs) often need to be able to handle multiple things happening at the same time – Process execution, interrupts, background tasks, system maintenance • Humans are not very good at keeping track of multiple things happening simultaneously • Threads are an abstraction to help bridge this gap