13

I'm having trouble understanding the difference between Wired Memory and Active Memory in OS X.

Do not talk about the four types of memory (don't talk about free or inactive memory, because I already know what these are). Just compare and contrast wired memory to active memory so that I can understand those two better.

26

Gentle reminder: To provide a better answer for the rest of the community, please don’t say something like “Do not talk about the four types of memory”.  Even if you know it well, there may be a thousand and one citizens of the Internet arriving here hoping for a collateral answer. :)

“Paging” is the accurate term for the following action. “Swapping” is used colloquially for “paging”, quite interchangeably these days, though. “Swapping” originally referred to the moving of a program’s memory space completely onto “secondary storage” (as opposed to “main storage”, which is an archaic term for... RAM, in a way). The boundary between paging and swapping is considerably blurred by Windows and Unix systems calling the paging space swaps.

And then, one must know about paging in order to understand the concept of active, wired and inactive memory. Paging means that the memory page is moved out of random access memory (i.e., the RAM) and onto the hard disk or other secondary storage device. This allows the running application to request more memory than the total amount of system RAM available.

Note that although paging out means a huge performance penalty to access that particular bit of information again, paging can occur in two different cases: (Quoting myself: Disadvantages of not having a swap partition)

  1. When there is not ENOUGH memory for all applications – in the case where this happens to a system without swap space, it will cause a failure to allocate memory for new applications requesting new memory pages – and this usually results in termination of the program.
  2. When some memory pages (memory is divided into “pages”) is used some time ago, but is no longer used now, it would be transferred to the swap file and the remaining memory can be used to do something else which could be more useful (e.g., even caching!) – when this happens in a system without swap space, this will result in idle pages staying in memory. This is nothing too serious though, as we have a pretty large amount of memory these days.

The four types of memory are classified as follows:

  • Wired: Used by an application that claims that the chunk of allocated memory must stay physically in RAM, and not be swapped onto disk, no matter whether it is recently used or not, i.e., another application may NOT request that particular chunk of memory. Examples are part of the memory utilized by the system, and that used by virtual machines.

  • Active & Inactive: These are memory used usually by user-mode applications, in which they are swappable onto disks. “Active” means that it was recently used, and “Inactive” means that it was not recently used. The operating system thus would swap out inactive pages first, and then active pages later if necessary.

  • Free memory: Memory that isn’t used. This is used for other purposes such as caching of the hard disk.

If your question is, “In a dire situation where memory is inadequate, in what order would the system try to allocate memory to a new application?”, then the sequence would be to allocate

free memory → inactive memory → active memory

In a sense, even recently used memory could be paged.  The “wired” part is what would not be paged out at all costs.

In modern systems, though, it is rather unlikely that active memory gets paged out as we have plenty of RAM available.

  • Now you made this question more complicated than it had to be by talking about the other types of memory. So now I have to ask about active vs. inactive memory. I heard that inactive memory is actually free memory. What's that about. Is active memory also free memory? Compare and contrast active memory to inactive memory. – tony_sid Jul 3 '11 at 7:53
  • 1
    I heard that inactive memory is simply cache in case a program that was closed is started up again. If that's true then why does it need to be put onto the disk? – tony_sid Jul 4 '11 at 1:12
  • 1
    You heard something wrong. Closed application will have its memory freed unless something is seriously wrong with the memory architecture. – bubu Jul 4 '11 at 2:38
  • 2
    fantastic answer! +1 – posdef Mar 25 '13 at 10:24
  • 1
    @tony_sid an old discussion but what you have heard is correct. As mentioned on Apple support "However, if you open Mail before its Inactive memory is used by a different application, Mail will open quicker because its Inactive memory is converted to Active memory, instead of loading it from the slower drive." – Gaurav Sep 5 '14 at 4:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.