- Process: An instance of a program in execution. Or the “execution context” of a running program.
- Traditionally a process executes a single set of instructions in its allotted address space
- Modern OSs allow processes with multiple execution flows (multiple sequences of instructions executed in the same address space)
- Now in multiprocessing/multiprogramming capable computers (2 or more CPUs) all CPUs share system resources such as RAM.
- Therefore it is possible for multiple CPUs to execute code from the same address space
- On uniprocessor systems only one process can hold the CPU and only one execution flow can occur at any time
- Scheduler: Chooses the process which can progress
- If the processes is “nonpreemptable” it means the scheduler is only invoked when the process voluntarily stops using CPU
- All processes in multiuser systems must be preemptable
- The scheduler will be invoked periodically
- Scheduler: Chooses the process which can progress
- Unix is multiprocessing and uses preemptable processes and adopts a process/kernel model
- Process/kernel Model:
- Each process believes its the only process on the machine and has exclusive rights to all resources
- System calls change process from user to kernel mode allowing access to only required resources for execution and then reverts back to user mode