Professional Documents
Culture Documents
Heap Caveats
Dont assume consecutive heap allocation result in continuous payloads!
Why?
Dont access uninitialized heap memory!
Why?
Do check if your memory intensive program has run out of heap memory!
How?
Heap
Uninit Data
Init Data
Code
Hardwares View
L0:
Registers
(in CPU)
L1: Cache
L2: Cache
L3: Cache
(SRAM)
L4: Main Memory
(DRAM)
L5: Local Secondary Storage
(HDD,SSD,DVD)
L6: Network Storage (NAS,Cloud)
Process 2
VAS
Process 3
VAS
OS
Page
Table
Secondary
Storage 1
Secondary
Storage 2
Virtual Memory
Stack
Physical Memory
L0:
Registers
(in CPU)
L1: Cache
L2: Cache
L3: Cache
(SRAM)
L4: Main Memory
(DRAM)
L5: Local Secondary Storage
(HDD,SSD,DVD)
L6: Network Storage (NAS,Cloud)
Memory Pages
Process 1
VAS
Main Memory
Process 2
VAS
Process 3
VAS
OS
Page
Table
Secondary
Storage 1
Secondary
Storage 2