Multitasking Kernel App Modes

Multiprogramming (batch system)

Multiprogramming - the idea of running multiple processes concurrently

Timesharing (multitasking)

Timesharing or multitasking - is the idea of switching jobs so fast the user can interact with all of them at the same time

Dual-Mode

If user-defined programs can fail,
then we need to make sure we can tell the difference between the OS and that user code.

So hardware can tell this difference.
The computer is ether in Kernel Mode or User Mode.