Here is the mem_map for a process:
| Virtual | Physical | Length | |
|---|---|---|---|
| Text | 0 | 0x151A | 2 |
| Data | 0 | 0x151C | 1 |
| Stack | 0x20 | 0x153C | 1 |
pa = bpa * csize + va - bva * csize
Example 1:
csize = 4096 = 0x1000 (bytes)
va = 0x00000a48 (bytes)
Segment: Data
bva = 0 (clicks)
bpa = 0x151C (clicks)
pa = 0x151C * 0x1000 + 0x00000a48 - 0 * 0x1000 = 0x0151CA48
Example 2:
csize = 4096 = 0x1000 (bytes)
va = 0x00020DE8 (bytes)
Segment: Stack
bva = 0x20 (clicks)
bpa = 0x153C (clicks)
pa = 0x153C * 0x1000 + 0x00020DE8 - 0x20 * 0x1000 = 0x0153CDE8