What’s the point?
OS should provide efficient use of the hardware resource:
- By managing the programs executing on the hardware
If there is only one program executing at any point in time, we can’t utilize hardware resources effectively.
We want to allow multiple programs to share the hardware.
How can we accomplish this?
Allow users to switch between running programs, A and B.
To do this, info regarding A execution has to be stored.
We need to swap in information to run B.
To describe a running program, we provide a abstraction aka a process.
Info describing an executing program
Deciding which process get to execute
Inter-process communication + syncing
passing info between processes
Thread (alternative to process)
Light weight process aka Thread