/*----------------------------------------------------- Script for AdSense -----------------------------------------------------*/ /* */ /* Footer ----------------------------------------------- */ #footer { clear: both; text-align: center; color: #333333; } #footer .widget { margin:.5em; padding-top: 20px; font-size: 85%; line-height: 1.5em; text-align: left; } /** Page structure tweaks for layout editor wireframe */ body#layout #header { width: 750px; } -->

Friday, April 23, 2010

Virtual Address Space.

Every process is given its very own virtual address space. For 32-bit processes, this address space is 4 GB, since a 32-bit pointer can have any value from from 0 to (2^32)-1

For 64-bit processes, this address space is 16 EB (exabytes), since a 64-bit pointer can have any value from 0 to (2^64) - 1
Since every process receives its very own private address space, when a thread in a process is running, that thread can access memory that belongs only to its process.

Virtual Address Space Mapping (partitioned) in 32-bit processor.

VAS 1 |---vvvv-------vvvvvv---vvvv----vv---v----vvv--|
mapping |||| |||||| |||| || | |||
file bytes app1 app2 kernel user system_page_file
mapping |||| |||||| |||| || |
VAS 2 |--------vvvv--vvvvvv---vvvv-------vv---v------|

Source: Wikipedia and my summary notes from my diary.

No comments: