liveBook · Manning

Address space

As explained in Grokking Concurrency

An address space is the range and mapping of memory addresses available to a process or other execution context.

Think of an address space as the memory map a running program can see. Each process has its own address space, which holds data the process reads or writes and helps keep it independent from other processes. section 4.2 section 4.3

A process’s address space is part of its execution context, alongside its executable and other resources. Child processes have separate address spaces, so they cannot directly access one another’s data. Threads within a process share its address space, making shared data easier to access but requiring synchronization. section 4.3 section 4.5 section 4.7

Child processes

A Python program can start three child processes. Each has its own process ID and separate address space, so the children run independently rather than sharing the parent’s memory. section 4.5

How Grokking Concurrency covers it

How deep it goes
Defines accessible process memory and contrasts separate process spaces with threads’ shared space; defers communication mechanisms.
Examples
Uses child processes with separate memory and threads reading and writing shared process memory.
What you can do after
Understand how separate or shared memory affects isolation and communication between processes and threads.
How it connects
Connects address spaces to processes, threads, execution context, process communication, and synchronization.

Also explained in

Compare how 3 books explain address space →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Grokking Concurrency. The section links point to the parts of the book it draws on.