When we try to run our computer, it has to run multiple program to deliver the display, the disk, the complex processing, and many thing else at the same time. We need to achieve this with processor core constraint, it can only process one program at a time. This problem bring us to process. To imagine process, I will simplify it as an identity of a running program. When program run, it will has additional information that bound with it, process store that in process code block. By making a running program have identity, we can manage them with scheduler. We can switch context without scared the system will forgot the state of the previous running process, because process store all state like the registers and last memory address.