Content deleted Content added
mNo edit summary |
m WP:CHECKWIKI error fixes, added orphan tag using AWB (10687) |
||
Line 1:
{{Orphan|date=January 2015}}
'''Virtual Memory Compression''' is a [[memory management]] technique that utilizes [[data compression]] to reduce the size or number of [[paging]] requests to/from [[auxiliary memory]]. Virtual memory compression is distinct from [[garbage collection]] systems which remove unused memory blocks and in some cases consolidate used memory regions and reduce fragmentation for efficiency. Virtual memory compression is also distinct from [[context switching]] systems, such as Connectix’s RAM Doubler and Apple OS 7.1, in which inactive processes are suspended and then compressed. <ref name="PAT-5559978"/><ref name="PAT-5785474"/>▼
▲'''Virtual Memory Compression''' is a [[memory management]] technique that utilizes [[data compression]] to reduce the size or number of [[paging]] requests to/from [[auxiliary memory]]. Virtual memory compression is distinct from [[garbage collection]] systems which remove unused memory blocks and in some cases consolidate used memory regions and reduce fragmentation for efficiency. Virtual memory compression is also distinct from [[context switching]] systems, such as Connectix’s RAM Doubler and Apple OS 7.1, in which inactive processes are suspended and then compressed.
In a virtual memory compression system, paging requests are compressed and stored in [[primary storage]] (usually [[RAM]]) or sent as compressed to auxiliary storage. In both cases the original memory is marked inaccessible. The memory footprint of the memory being paged is reduced by the compression process; and, In the first instance, the freed memory is returned to the general memory pool, while the compressed portion is kept in RAM; in the second, the compressed data is sent to auxiliary storage but the resulting I/O operation is smaller and thus takes less time. Attempts to access a compressed page result in a reversal of the process -- the compressed data is optionally retrieved from secondary storage, and then decompressed.▼
▲In a virtual memory compression system, paging requests are compressed and stored in [[primary storage]] (usually [[RAM]]) or sent as compressed to auxiliary storage. In both cases the original memory is marked inaccessible. The memory footprint of the memory being paged is reduced by the compression process; and, In the first instance, the freed memory is returned to the general memory pool, while the compressed portion is kept in RAM; in the second, the compressed data is sent to auxiliary storage but the resulting I/O operation is smaller and thus takes less time. Attempts to access a compressed page result in a reversal of the
In some implementations such as in [[zswap]], [[zram]] and [[Helix Software Company]]’s Hurricane, the entire process is managed by the operating system. In other systems such as IBM’s MXT, the compression process occurs in a dedicated processor which handles transfers between a local cache and primary storage.
Line 7 ⟶ 9:
==Benefits==
Virtual memory compression can provide several benefits: performance improvement; an increase in available virtual memory; improved system lifespan.
===Performance improvement===
Line 36 ⟶ 38:
==History==
Virtual Memory Compression has gone in and out of favor as a technology. The price and speed of RAM and external storage have plummeted due to [[Moore’s Law]] and improved RAM interfaces such as [[DDR3]], thus reducing the need for virtual memory compression, while multi-core processors, server farms, and mobile technology together with the advent of flash based systems make virtual memory compression more attractive.
===Origin===
[[Helix Software Company]] pioneered virtual memory compression in 1992, filing a patent application for the process in October of that year.<ref name="PAT-5559978"/>
In 1995, RAM cost nearly $50/Megabyte, and [[Microsoft]]'s [[Windows 95]] listed a minimum requirement of 4 Megabytes.<ref name="WIN95-REQ"/> Due to the high memory requirement, several programs were released which claimed to use compression technology to gain “memory.” Most notorious was the [[SoftRAM]] program from Syncronys Softcorp. SoftRAM was revealed to be “placebo software” which did not include any compression technology at all.<ref name="SoftRAM"/> Other products, including [[RAMDoubler]] and [[MagnaRAM]], included virtual memory compression, but implemented only [[Run-length encoding]], with poor results, giving the technology a negative reputation.<ref name="PCMAG-PERF"/>
Line 49 ⟶ 51:
===Recent Developments===
In early 2008, a [[Linux]] project named [[zram]] (originally compcache) was released, and later incorporated into [[ChromeOS]].
In 2010, IBM released Active Memory Expansion (AME) for [[AIX]] 6.1 which implements Virtual Memory Compression.<ref name="IBM-AIX-AME"/>
In 2012 some versions of the POWER7+ chip included data compression support for Virtual Memory Compression.<ref name="IBM-POWER7+"/> In December 2012 the [[zswap]] project was announced and later added to the [[Linux Kernel]].
Line 162 ⟶ 164:
</references>
{{Memory management navbox}}
|