Informally, the definition of the process is just a running program.

Virtualizing the CPU

One would often want to run more than a program at once, but that would “need” multiple CPU to work simultaneously. However, the OS can promote the illusion that many virtual CPUs exist when in fact there is only one physical CPU. This technique is known as time sharing, which allow users to run as many concurrent processes as they would like.

Time sharing: by allowing the resource to be used for a little while by one entity, and then a little while by another and so forth, the resource in question can be shared by many.

Space sharing: a resource is divided(in space) among those who wish to use it

The Abstraction: A Process

The abstraction provided by the OS of a running program is called a process. And machine state is what a program can read or update when it is running.

Why do we use processes?

Processes API

Process Creation

A little more detail about how the OS get a program up and running