Week 3, Stacks and Heaps
Week 3, Stacks and Heaps
• Calling program
• Push arguments & return address onto stack
• After return, pop result off stack
• Called routine
• Push registers and return address onto stack
• Push temporary storage space onto stack
Virtual heap
(dynamically allocated)
address space
static data
program code
PC
0x00000000 (text)
thread 3 stack
SP (T3)
Virtual
address space heap
static data
0x00000000 PC PC (T2)
code
PC (T1)
(text)
PC (T3)
CS-3013 C-term 2008 Stacks and Heaps 14
Heap
Virtual heap
(dynamically allocated)
address space
static data
program code
PC
0x00000000 (text)
thread 3 stack
SP (T3)
Virtual
address space heap
Heap
static data
0x00000000 PC PC (T2)
code
PC (T1)
(text)
PC (T3)
CS-3013 C-term 2008 Stacks and Heaps 20
Stacks in Multi-threaded Address Space
thread 1 stack
SP (T1)
0xFFFFFFFF
thread 2 stack
SP SP (T2)
thread 3 stack
SP (T3)
Virtual
?
address space heap t his
at ’s
W h
static data
0x00000000 PC PC (T2)
code
PC (T1)
(text)
PC (T3)
CS-3013 C-term 2008 Stacks and Heaps 21
Questions?