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?
Answers were Sorted based on User's Feedback
Answer / kunal
Actually processes access virtual memory space, not physical
memory. Applications never access RAM directly but only
through the memory management interface of the processor.
All processes have a 4GB virtual address space. The upper
2GB is common to all processes and is used by the system.
The lower 2GB is private to each process and is inaccessible
to all others. This is completely independent of the size of
RAM or the page file. The system maps physical memory into
this virtual address space according to both need and
availability.
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.
Is This Answer Correct ? | 6 Yes | 1 No |
Answer / rek
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?" NT-based OSes split memory into user and
kernel space. The amount of memory usable is dependent on
the exact flavor of the OS and whether the processor is
32-bit or 64-bit. In the 32 bit world, XP and Win2K both
support 4GB, Win2K Advanced Server supports 8GB and Win2K
Datacenter Server supports up to 32GB. XP and W2K's 4GB gets
split 50/50, with 2GB being available for a process and the
remaining 2GB being held for the kernel. (Note that this
last space isn't just for the OS -- all the hardware devices
use this space as well, so that killer graphics card you got
with gobs of video RAM uses up portions of the kernel space
as well. This is the same in 32- or 64-bit procs.) XP Pro
and Win2003 Server can use the /3GB switch in boot.ini to
make 3GB available to the user side. The 2GB limit isn't a
Windows limit, it's a 32-bit processor limit and hits Linux,
Solaris, etc. (I'm sure Macs don't have this problem because
Macs are the perfect system and have no limitations
whatsoever. Ask any Mac user.) 64 bit Windows supports up to
16 terrabytes (woo hoo, gimme one o' dem filled up!) but
still split memory 50/50 between user and kernel. 32 bit
applications are still limited to 2GB user space. 64-bit
Windows versions don't support the /3GB switch. So yes, a
process's max memory is different than the system's total
virtual memory. System design is impacted if you're trying
to create a system using very large data structures,
particularly if your software's running on a system with
other apps. Your design needs to make careful use of memory
to make sure you're not going to run out of virtual memory.
Furthermore, since virtual memory is a combination of
physical memory and swapfile space, you need to take care to
avoid paging -- or at least minimize it as much as possible.
This means you should have an understanding of the
environment your software's going to run in. At the minimum,
you should have good documentation explaining your
assumptions, estimated system requirements and projected
system impacts. The first chapter in Bentley's Programming
Pearls is a great discussion on careful use of system
memory, plus it shows the benefit of ensuring you know what
problem you're really trying to solve. The story opening the
problem relates a conversation Bently had with a friend. The
short version is that what Bently first thought was a simple
sort of a large file on disk turned out to be a horse of a
different color. The "real" problem required some creative
thought to get around
Is This Answer Correct ? | 2 Yes | 0 No |
Caret means to you
how to hide prompts
What is the language used for Artificial Intelligence?
what is difference between java and c#
Write 5 differences between Memory Reference Instruction and Register Reference Instruction.
Mainly Related to Oracle, DBMS , Oracle Stored Procedures, Functions, Oracle 9i Architecture, Redo logs..., Views,
0 Answers Indian Overseas Bank,
write a query that returns one row for each department and the number of employees in that department. Given two tables EMPLOYEE and DEPARTMENT, where there can be multiple employees per department.
There are 2 tables: EMP : EmpId, Ename, Sal, DeptId DEPT : DeptId, Dname Write a query to find out emp names and their department names. if any emp has null in Deptid the it shows ?No Department?. Write a query to find out those department names which has no employee. Write a query to find out those employees whose salary is greater than their department?s average salary.
what is mutex?
4 Answers Axiom, Blue Star, SQL Star,
HOW TO BREAK THE FIREWALL?
Data Structure: Show that if k is the smallest integer greater than or equal to n+ (log2n)-2, k comparisons are necessary and sufficient to find the largest and second largest elements of a set of n distinct elements. (k comparisons are required to find what you are looking for, but no more than that are needed)
Can we write a method in JSP.If so how?