What is a process?

A process is basically a container that holds all of the stuff that a program needs to run, including, references to the system resources available to the process.

Each process has an address space, a list of memory locations from 0 to some maximum that the process can read from and write to. The address space is important because it contains the executable program, the program data, and a stack.

What is a thread? WIP