Friday, 6 July 2012

What is the maximum amount of memory any single process on Windows can address? Is this different than the maximum virtual memory for the system? How would this affect a system design?

Purpose:
  • This is an unrealistic question to ask but is an attempt to determine the extend to which a developer has had to deal with memory intensive applications.
  • Knowledge of this may indicate a good level of maturity in the developer but can also be a warning sign that they used an interview brain dump to prep for the interview, delve into past experiences with memory intensive applications.

Potential Answer:
On a 32 bit each single process can normally address 2GB memory. Some versions of Windows enable 3GB virtual address space. The maximum virtual memory for a 32-bit system is 4GB, 2GB of it is allocated to Kernel.

On a 64 bit each process has 2GB private address space unless it is compiled large address aware in which case it has 8TB of space.

At any given time the data in virtual memory space might be stored in RAM, on disk, or both. All of this is totally transparent to all applications. Frequently accessed data will be kept in RAM with the remainder left on disk.

These are all considerations for memory intensive applications.

No comments:

Post a Comment