Understanding memory management

I have a 4GB system. I have virtually nothing open. So why do I see:
Total:     3764MB
Cached  2527MB
Available: 2511MB
Free           35MB
-------------------------------
What is Free memory versus Available memory anyway. Is Microsoft just not happy making every
thing over complicated and hard to understand or is it me!

Free does not mean what its always meant Available? and how is it I have nothing open
really and its saying only 35 MB is free while 2,511 MB is available. Available for what???
I also found not  help documentation with Windows 7 to explain this at all.
My system is supposed to have 4GB. I now wonder if it is not 2GB and 2GB of video memory
How do I really find out what seems to be purposely made confusing!
LVL 2
Robert SilverSr. Software EngineerAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

LeeTutorretiredCommented:
From the help documentation for task manager:

Under Physical Memory (MB), Total is the amount of RAM installed on your computer, listed in megabytes (MB). Cached refers to the amount of physical memory used recently for system resources. Available is the amount of memory that's immediately available for use by processes, drivers, or the operating system. Free is the amount of memory that is currently unused or doesn't contain useful information (unlike cached files, which do contain useful information).

Under Kernel Memory (MB), Paged refers to the amount of virtual memory being used by the core part of Windows, called the kernel. Non-paged is the amount of RAM memory used by the kernel.

The System table includes five fields:

Handles. Number of unique object identifiers in use by processes. This value is mostly of interest to IT professionals and programmers.

Threads. Number of objects or processes running within larger processes or programs. This value is mostly of interest to IT professionals and programmers.

Processes. Number of individual processes running on the computer (you can also view this information on the Processes tab).

Up Time. Amount of time that has passed since the computer has been restarted.

Commit (MB). A description of virtual memory use (also known as paging file use). The paging file is space on your hard disk that Windows uses in addition to RAM. The first number is the amount of RAM and virtual memory currently in use, and the second number is the amount of RAM and virtual memory available on your computer.

To view advanced information about how much memory and CPU resources are being used, click the Resource Monitor button. Resource Monitor shows graphical summaries like those in Task Manager, but in greater detail. It also includes more details about resources, such as disk use and network use.

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
LeeTutorretiredCommented:
Some more info about this can be found on this web page:

http://pcwizkid.blogspot.com/2008/07/windows-task-manager.html
0
Todd GerbertIT ConsultantCommented:
Microsoft is not making it over complicated and hard to understand, system memory management is an extraordinarily complex topic - plus I think that screen in the Task Manager you're referring to isn't really intended for the casual user, and is only there because it just always has been.
Total memory is the amount of physical memory installed in your computer, 3,764MB (maybe ~300MB of 4GB for video, rest for Windows)
Cached is the memory used recently for system tasks.
Available is memory that was idle, so Windows decided to put it to use - should an application request memory, Windows can free it and allocate it from this pool
Free is free.
http://www.sevenforums.com/general-discussion/2265-windows-task-manager.html
http://articles.techrepublic.com.com/5100-10878_11-6162525.html
http://answers.yahoo.com/question/index?qid=20071227215740AAWekua 
0
IT Pros Agree: AI and Machine Learning Key

We’d all like to think our company’s data is well protected, but when you ask IT professionals they admit the data probably is not as safe as it could be.

LMiller7Commented:
Welcome to modern technology. Microsoft isn't trying to make memory management overcomplicated. In fact they have gone to considerable trouble trying to make it understandable. How well they have done is another matter entirely. The problem is that memory management in any modern operating system is extremely complex, and must be if it is to perform well. Linux memory management is equally complex.

Most people have a very outdated concept of how memory is, or should be, managed. In actual fact it is far more sophisticated than they have any concept of. People try to understand Task Manager according to their own conceptions, however inaccurate they might be. This results in considerable confusion.

In Microsoft terminology "Available" has never meant free. Available memory is that which can be immediately assigned to any process and may or may not be already in use for some other purpose. This is a completely normal situation and causes no problems. Free memory is a subset of available.

Available memory should be high. Free memory should be low.

To really understand Windows memory management requires a great deal of hard study. There are no shortcuts. The quick explanations found all over the internet usually contain numerous errors and you will learn little.
0
Robert SilverSr. Software EngineerAuthor Commented:
Okay so what is taking up the 1.5GB of Ram. I thought Windows 7 was not the memory hog Vista was. I have the Home Premium version by the way and am just evaluating it thus far
1.5GB is a lot of memory to be down to start with Task manager does not seem to account
for all of it
svchost and iexplore(IE8) seem t hog about 100K per tab while firefox takes up about 50K
70 processes at less than 10K per process come to 700K add in 100K by  for 3 additional
processors and you get 1000K. Clearly not 1.5GB

Note this was done in task manager by showing all processors from all users checked off.
Now since the memories Free, available and cached do not add up
e.g Cached + Available + Free do not add up to total memory
And while we are on the subject how does 4GB come out to 3764MB?
What happened to the rest of it

I would think the memory stats should add up e.g
free + availbale  or  cached
and while we are on the subject what is Commit MB?

Better yet from resource monitor
Why is the Total Memory different than the Installed Memory??
What stole my memory to begin with??

0
LeeTutorretiredCommented:
Did you read the link I gave you above?  That answers some of your questions.  As to what is taking away from your 4 gigabytes of memory:  This is a very popular question.  See the great replies posted by various experts in this Previously Answered Question at Experts Exchange:

http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/Windows/XP/Q_24113152.html
XP Pro computer with 4 GB memory only showing 3.25GB, how can I get it to show 4gb?
0
LMiller7Commented:
As with any modern operating system, Windows 7 will always try to find some use for as much memory as possible. Unused memory is wasted memory and Windows 7 hates waste. The ideal state would be for 100% memory usage at all times but this can not yet be achieved.

There is the popular misconception that Windows uses some amount of memory at startup and applications must fight over whatever is left over. Not even close. The system memory manager always maintains control over RAM and assigns it wherever it will do the most good. For this purpose applications and system processes are equal. At bootup the system is using a large amount of RAM because at the time there is no better use for it. But have no fear, when you load an application the memory will be reassigned as necessary. The OS has a complex and efficient system for just this purpose.

You can't add up process memory usage numbers and get meaningful results. Task Manager does not provide anywhere near enough information to even come close to accounting for all memory usage. Task Manager is only showing some of the more important items in a very complex system. It is by no means complete. There is a great deal going on that Task Manager doesn't even hint at.

The system cache will usually account for a large portion of memory usage.
0
Robert SilverSr. Software EngineerAuthor Commented:
I would have liked to see more explanations on what memory is absorbed for Windows 7 itself
Why 4GB ends up 3700MB instead of 4096MB
for 4GB and what is taking up the 1.5 GB to begin with
0
Robert SilverSr. Software EngineerAuthor Commented:
At the hardware level memory is complex when describing
memory and its allocations not really.
Some how  I see this like any resource management. I like to simplify things and
frankly the best simplification would have been

Total Memory           4GB
Windows 7 used     1.5GB  - See breakdown of processes with a totals
Memory Available     2.5GB - See breakdown
-------------------------------------------------------------------------------------------------
See how easy that is that?

Then under performance talk about the effects on memory from Cached memory  and indicate if the video card memory is part of that 4GB or not

(Oh and when will Microsoft let you export task manager lists and their properties to csv or excel spreadsheets ?)

It seems to me that is less confusing and clears up things nicely.
It works for both layman and exacting engineer or programmers alike

0
LMiller7Commented:
Your suggestion is indeed simple and easy to understand. But it has one major problem in that it does not reflect how Windows actually manages memory. It is not at all how you imagine it. To a programmer it would be completely useless. I know because I am one. Memory management in WIndows is indeed VERY complex. A large book could be written about the subject and you would still have to leave out a great deal.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Browsers

From novice to tech pro — start learning today.