Processes

What is a process?

The OS's abstraction of a running program. A process is a program in execution.

Simplest case:

What's "in" a process?

Consists of (at least)

Address Space

Remember stack grows down (ie push decrements ESP, pop increments ESP). Stack contains all runtime frames.

A processes address space (idealized):

+----------------------+ <- 0x7FFFFFFF
|        Stack         |
|   (dynamic memory)   |
+----------------------+ <- ESP
|          |           |
|          v           |
|                      |
|          ^           |
|          |           |
+----------------------+
|        Heap          |
|   (dynamic memory)   |
+----------------------+
|        Data          |
|   (data segment)     |
+----------------------+
|        Code          | <- EIP
|   (text segment)     |
+----------------------+ 0x00000000

OS Process Namespace