Multitasking Kernel App Modes
Multiprogramming (batch system)
Multiprogramming - the idea of running multiple processes concurrently
- It is needed since at times, a process may be waiting for an input, here the CPU can switch jobs
- Organises jobs so that the CPU is never idle
- Processes are selected to run via some kind of job scheduling
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
- If there are more programs than there is memory, a Virtual memory protocol is run
- Virtual memory moves unused memory into secondary storage
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.