This is the
talk page for discussing improvements to the
Memory paging article. This is not a forum for general discussion of the article's subject. |
Article policies
|
Find sources: Google ( books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
This article is rated C-class on Wikipedia's
content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||
|
To-do list for Memory paging:
|
Clearly there are portions of this article that assume the x86 architecture is understood. I say, remove these architecture-specific parts as the concepts in the article apply universally.
Add that this definition doesnt stand right with Windows. Because RAM is faster than auxiliary storage, paging is avoided until there is not enough RAM to store all the data needed
Windows starts to swap even when still has 30% or more RAM free. Even if you have ton of RAM (e.g. 2GB under XP) it still Swaps and slows down all operation and make system unstable if you turn it off. Should be noted to have worse swapping out of all and biggest swap file fragmentation. Linux and AmigaOS use partition as solution which is more efficient even it sound weird. —Preceding unsigned comment added by 79.175.123.185 ( talk) 22:47, 7 February 2011 (UTC)
I've separated out references to Paging and Page (computer science). I've also basically gotten rid of references to memory paging, replacing them with Page (computer science).
For now, Page (computer science) is a redirect to Paging, but I've kept them separate so that someone in the future can make a proper article for Page (computer science).
Anyone feel like starting on the article Page (computer science)?
SEEM'S REALLY FINE NOW.
I edited out the following line:
(in the Intel x86 family, for example, only i386 and higher CPUs possess MMUs)
That's wrong. The 286 lacked support for paging (used segmentation instead), but it did have an MMU.
The original article mixed in discussion of advantages and disadvantages that really applied to a discussion of operating system design, not the paging system. For example, one disadvantage listed stated that inter task communication was more difficult. This would only be the case if two tasks running in different address spaces wanted to share data in RAM.
Address space isolation is usually restricted to different users sharing the same computer, not two tasks run by the same user. A database system might have a task reading a file and another writing data from the file to the database. These two tasks would run in the same address space and would be able to see the entire RAM addressable by each other.
Large commercial installations will have many users sharing the computer simultaneously. In this case, each user would have its own address space. A task run by one user could not see the memory used by a task run by another user - it is totally invisible to them. A task can not generate a page fault trying to address memory used by a different address space; it simply can't do it.
-- Eric 14:13, 11 February 2007 (UTC)
I am not sure about a JAVA virtual machine running under windows; are you familiar with that?.-- Eric 16:12, 11 February 2007 (UTC)
My operating experience is with VM, IBM's multi user operating system and it was 15 years ago. That said, it was then and probably is now one of the most powerful multi user operating systems available.
After reading your latest comments, I think we are mostly in agreement about when there is a context switch and when not.
VM ran the kernel in real addressing mode and the code resided in low memory. The rest of the operating system resided in a shared segment that was mapped into every users virtual machine and ran within the user's address space.
DBMS systems ran partly in the user's virtual machine and partly in their own vitual machine each with their own discrete address space. The user virtual machine ran the code that created schemas, parsed SQL statements, generated stored procedures...
The DBMS virtual machine did the query optimization, ran the queries that materialized the set and ran any necessary stored procedures. It ran entirely in one address space. It handled concurrency as you suggested with semaphores. Communication between the user portion of the DBMS and the DBMS virtual machine was through message passing as I believe is the case with windows.
I don't have an in depth knowledge of UNIX, but I believe it does essentially the same thing.-- Eric 18:38, 15 February 2007 (UTC)
Thanks for the clarification; now I think we are on the same page:). -- Eric 19:28, 22 February 2007 (UTC)
Given two ratios: 2:10 and 8:10, which is high and whicn is low? —The preceding unsigned comment was added by Sailorman2003 ( talk • contribs) 14:51, 3 March 2007 (UTC).
"the graph will look like a hockey stick"? —The preceding unsigned comment was added by 71.202.164.218 ( talk)
Jacek Karpinski claimed the K-202 (his computer) was the first to use the paging. Was there any earlier one? Szopen 06:02, 21 May 2007 (UTC)
If one graphs the number of faults on one axis and working set size on the other, the graph will look like a hockey stick. Why don't we get an actual graph or pseudograph instead? I had a difficulty imagining that, because I imagined the "hockey stick" as pointing rightwards instead of pointing leftwards. For now, I'm just going to edit that so it reads "will look like a leftward pointing hockey stick." Miggyb 05:33, 24 August 2007 (UTC)
Since the bus speed of physical memory is far greater than that of virtual memory stored on hard-disks, why is virtual memory used long before physical memory is used. For example I have 1.5GB of RAM, yet only 512MB of that is used, whilest at the same time 300-500MB of virtual memory is used. It's NOT more effeciant because of the difference in speed, so why isn't most of my ram being used?
PS: I'm using Windows XP
anon 16:48 GMT 09/09/2007
I'm afraid that this article is once again blurring the term "swapping" (like virtual memory once did). Paging can mean two different things:
However, the term "swapping" is only applied to moving dynamic application memory from and to a pre-allocated pool in secondary storage, not memory that is already backed on the disk. From the practical perspective, one difference is that paging out disk-backed pages only involves writing if the page is marked dirty (in the general case, it's just read-only executable code). Swapping something out always involves writing to the disk.
Does this make sense? -- intgr [talk] 11:04, 5 October 2007 (UTC)
Sorry, I haven't found the time to do any useful work on this article, but I just noticed another awkward claim creep in: "there is a concept known as page cache, of using the same single mechanism for both virtual memory and disk caching."
I thought we already established that swapping is not the same as virtual memory? And page cache is in fact not related to swapping; you may or may not say that swapping and paging are related, but the page cache keeps track of the cache of pages that are already present on the disk with copies in the main memory. Obviously "swappable" memory is not already present on the disk, hence why it needs a preallocated storage space. And once it's written to the disk, it is deallocated from the main memory. -- intgr [talk] 01:33, 19 October 2007 (UTC)
I find this article confusing. All references to swapping should be removed from the main article. Swapping is a method of workload control, i.e. the operating system determines that the resources required by this task (CPU cycles, RAM, whatever) would be more productive if it were freed and applied to another task. Therefore, the workload will be stopped and its RAM contents copied to another media until resources are available for its continuation.
Paging is a mechanism for resource allocation, i.e. this collection of work needs more real RAM than is available. The operating system will provide a mechanism to allocate real RAM to active workloads and withdraw real RAM from less active or less important workloads. Ccalvin 13:19, 21 October 2007 (UTC)
I'm appending to this section as the discussion section for a {{
dubious}} template that I've added. The specific issues that I'm addressing are:
I can provide references for both points if that would not be TMI. Shmuel (Seymour J.) Metz Username:Chatul ( talk) 15:34, 21 November 2010 (UTC)
I suggest merging the " demand paging" article into a section of " paging" article.
Most of the "demand paging" article repeats information already covered in the "paging" article, so this merge will make the "paging" article a few sentences longer. Merging would also make it easier to compare and contrast demand paging with the alternatives. -- 68.0.124.33 ( talk) 15:35, 3 April 2008 (UTC)
Please see the discussion I started on Talk:Demand paging. -- intgr [talk] 13:09, 24 September 2008 (UTC)
Anticipatory paging is repeated in the form of Swap prefetch .I think both should be merged .
"The fragmentation of the pagefile that occurs when it expands is temporary" From context, that is talking about some version of Windows, but it's not particularly true. Specifically, a page file on Windows XP will probably be fragmented on a clean disk with free space, be it fixed size or system managed, even if it is not used, and even if the disk is entirely defragmented. Windows doesn't normally create a contiguous pagefile.sys. —Preceding unsigned comment added by 218.214.18.240 ( talk) 14:22, 5 June 2010 (UTC)
That is bull. Until recently I was wondering why my WindowsXP machine of 5+ years was running particularly slow, even taking into account my perception of speed having changed. It's page file was in 58 (fifty-eight) fragments. — Preceding unsigned comment added by 76.100.18.105 ( talk) 18:52, 17 May 2012 (UTC)
The Paging#Implementations section only discusses recent systems; should that section not mention at least these following notable instances?
I came here looking for information about the mechanisms of memory paging. I.e. the way in which memory is split into pages and noncontiguous areas of memory can be mapped into contiguous spaces different for each process. But instead, this article deals mostly with swapping pages between main memory and hard drives. There is no information at all about the paging mechanisms themselves. CodeCat ( talk) 23:36, 23 October 2011 (UTC)
this alogoritms only allow for pagging. — Preceding unsigned comment added by 117.199.181.3 ( talk) 09:56, 15 November 2011 (UTC)
I amended the article text as it did not clearly distinguish swap partitions as used in other systems and regular (filesystem) partitions set aside for swap files, which is doable in OS X. The reference did not (and I have seen no other reference which does) support the interpretation that an actual swap partition can be used with OS X. n.b. man fstab
(in OS X 10.5) does list swap (along with procfs and others) as a recognised vfstype, but that is not the same as it being directly usable. (I would however be delighted to see it done as it might be even faster than a separate non-journaled HFS+ or UFS partition.)
Anihl (
talk) 05:41, 31 January 2012 (UTC)
To answer a query from Guy Harris, The address space of early MVS was limited to 2^24 8-bit bytes and ultimately IBM supported processors with 2^25 octets, although MVS systems with less than 2^24 were common. With the advent of MVS/XA and MVS/ESA, the address space size became substantially larger than the physical memory limit.
I know of no Multics processor with a physical capacity anywhere near the size of an address space.
TSS/360 supported a 24-bit mode and a 32-bit mode. In 24-bit mode, the address space was close to the maximum physical memory, especially with LCS. In 32-bit mode, the address space was substantially larger. I don't know whether the TSS/370 PRPQ had 31-bit mode (there was no 32-bit mode on S/370.) Shmuel (Seymour J.) Metz Username:Chatul ( talk) 17:03, 14 November 2013 (UTC)
Regarding this, in the intro: "The main advantage of paging over memory segmentation is that it allows the physical address space of a process to be noncontiguous. Before paging came into use, systems had to fit whole programs into storage contiguously, which caused various storage and fragmentation problems."
I could certainly be wrong, but isn't it actually virtual memory which allows a process space to be noncontiguous? Paging adds the ability to map secondary storage to virtual memory, but once you have virtual memory you've already addressed contiguity. I read the linked source in Google Books, and it describes the Ferranti Atlas computer as introducing paging+virtual memory as a solution to the earlier practice of "overlaying." In other words, it may be misleading or incorrect to refer to paging as an alternative to memory segmentation. Proxyma ( talk) 03:12, 17 November 2013 (UTC)
I think that, at least conceptually, paging is the opposite of RAM drive. So RAM drive should appear at least in "See also". -- Edupedro ( talk) 08:06, 21 July 2014 (UTC)
"Before Windows 8,[dubious – discuss] the file used for paging in Windows NT was pagefile.sys." The implication is that it has changed. I don't claim much expertise in Win8, but a quick google search doesn't find anything to support such a change. JMP EAX ( talk) 02:22, 1 August 2014 (UTC)
Based on [1] it seems Win8 supports both paging (still to pagefile.sys) and swapping (to the new swapfile.sys), with the latter added exclusively for the Metro junk. JMP EAX ( talk) 02:27, 1 August 2014 (UTC)
A more authoritative article is here, with the nutshell about swapfile.sys being "This process is analogous to hibernating a specific app". JMP EAX ( talk) 02:32, 1 August 2014 (UTC)
I have added a slightly poor diagram that illustrates virtual memory paging with reference to pages of a book, and removed 'Computing diagram requested' tag. Egmason ( talk) 12:02, 22 February 2016 (UTC)
Windows 10 has both, so what is the difference? ZFT ( talk) 19:13, 11 April 2016 (UTC)
It's a little off. Windows NT does do something that's sort of like swapping, but it isn't as drastic as VMS's; it's done gradually by shrinking the working set limit, a step at a time. Nor is there a specific inswap; if the process ever needs to be brought in again it's demand-paged in just like always.
The last sentence is problematic also. In systems that support memory-mapped files, the memory-mapped files themselves are usually the backing store, so no separate "swapfile" is required. In Windows, if the pages in question are copy-on-write pages and they get modified, then the pagefile is used as the backing store for the modified pages and that's still called paging.
I don't know how to fix this quickly. Jeh ( talk) 07:06, 4 June 2016 (UTC)
It's a little suprising that this article has no coverage at all of address translation. Address translation faults (page faults) are what drive a virtual memory manager. The "paging enabled" bit in the x86/x64 control registers actually just enables pagetable-based address translation; actually moving stuff between RAM and backing store is the OS's job. Virtual memory on most platforms includes three mechanisms: Address translation; paging; and file mapping. Jeh ( talk) 07:11, 4 June 2016 (UTC)
The problem described in Paging#Swap death is simply thrashing, described in Paging#Thrashing. The discussion in Paging#Linux should simply link to Paging#Thrashing, note the difference in nomenclature and give any information specific to Linux. Shmuel (Seymour J.) Metz Username:Chatul ( talk) 20:06, 2 July 2017 (UTC)
I propose that Swappiness be merged into Paging. Swappiness is a single parameter of the Linux kernel related to swap usage. The Linux kernel has hundreds of such parameters. Moreover, half of the Swappiness article is a general tutorial on how to set a Linux sysctl parameter. Arguably swappiness is more important than other kernel parameters and deserves a mention, but I don't think it deserves a whole article, rather a few lines in this more general article.
For comparison, here is what I did on the French Wikipedia, which had a Swappiness article translated from the English one, after duly submitting the idea to the community of course:
-- Rinaku ( t · c) 15:29, 25 February 2018 (UTC)
Not all executable program files are memory mapped. In particular, IBM mainframe operating systems have fetch and load components that read programs into virtual storage prior to execution. As an example, while MVS program objects in a PDSE program library and executable files in a UNIX System Services file system are memory mapped, load modules in a PDS are not. Shmuel (Seymour J.) Metz Username:Chatul ( talk) 14:29, 8 May 2018 (UTC)
I see much confusion of swapping and paging here, definitely not the same thing. Let me show by some examples:
So, the first example swaps but does no paging; the latter one uses paging but not swapping. The two terms are definitely NOT the same! However I see that "Memory swapping" redirects to this page, which would not help much if someone would like to find out about the swapping from my first example. To make matters worse, there is also a separate article on Virtual memory.
I see there has already been much debate on this page about this problem, but the article hasn't improved since. I'll tag it as needing expert attention in hope someone may help organize the topic better. -- Arny ( talk) 09:32, 6 June 2019 (UTC)
The issues discussed in #Addressing limits on 32-bit hardware also apply to, e.g., 24-bit hardware, 36-bit hardware, 48-bit hardware.
#Main memory the same size as virtual memory should discuss the case where individual addresses spaces are the same size as physical memory but there are multiple address spaces. -- Shmuel (Seymour J.) Metz Username:Chatul ( talk) 01:39, 30 January 2022 (UTC)
#Main memory the same size as virtual memory should discuss the case where individual addresses spaces are the same size as physical memory but there are multiple address spaces.That section said
However, even in this case, paging can be used to create a virtual memory of over 4 GB. For instance, many programs may be running concurrently. Together, they may require more than 4 GB, but not all of it will have to be in RAM at once. A paging system makes efficient decisions on which memory to relegate to secondary storage, leading to the best use of the installed RAM.
However, even in this case, paging can be used to support more virtual memory than physical memory. For instance, many programs may be running concurrently. Together, they may require more physical memory than can be installed on the system, but not all of it will have to be in RAM at once. A paging system makes efficient decisions on which memory to relegate to secondary storage, leading to the best use of the installed RAM.
it would be a good idea to seperate the ideas of memory swapping (which i have created a draft wikipedia page of) and paging, as they are fundamentally different things. i do not the posess the time to edit the articles so that the info is of accuracy (hence the draft page is just a redirect) but i do believe it is nessecary to seperate the two. Thewindboi ( talk) 18:30, 2 January 2024 (UTC)
In the 1960s, swapping was an early virtual memory technique. An entire program or entire segment would be "swapped out" (or "rolled out") from RAM to disk or drum, and another one would be swapped in (or rolled in). [1] [2] A swapped-out program would be current but its execution would be suspended while its RAM was in use by another program; a program with a swapped-out segment could continue running until it needed that segment, at which point it would be suspended until the segment was swapped in.
sched()
in src/sys/sys/vm_sched.c, where a process would be marked as "not loaded" if the paging system thought there wasn't enough free memory and some process had been sleeping for a while (the full criteria are more complicated than that, but that's a summary).References
This is the
talk page for discussing improvements to the
Memory paging article. This is not a forum for general discussion of the article's subject. |
Article policies
|
Find sources: Google ( books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
This article is rated C-class on Wikipedia's
content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||
|
To-do list for Memory paging:
|
Clearly there are portions of this article that assume the x86 architecture is understood. I say, remove these architecture-specific parts as the concepts in the article apply universally.
Add that this definition doesnt stand right with Windows. Because RAM is faster than auxiliary storage, paging is avoided until there is not enough RAM to store all the data needed
Windows starts to swap even when still has 30% or more RAM free. Even if you have ton of RAM (e.g. 2GB under XP) it still Swaps and slows down all operation and make system unstable if you turn it off. Should be noted to have worse swapping out of all and biggest swap file fragmentation. Linux and AmigaOS use partition as solution which is more efficient even it sound weird. —Preceding unsigned comment added by 79.175.123.185 ( talk) 22:47, 7 February 2011 (UTC)
I've separated out references to Paging and Page (computer science). I've also basically gotten rid of references to memory paging, replacing them with Page (computer science).
For now, Page (computer science) is a redirect to Paging, but I've kept them separate so that someone in the future can make a proper article for Page (computer science).
Anyone feel like starting on the article Page (computer science)?
SEEM'S REALLY FINE NOW.
I edited out the following line:
(in the Intel x86 family, for example, only i386 and higher CPUs possess MMUs)
That's wrong. The 286 lacked support for paging (used segmentation instead), but it did have an MMU.
The original article mixed in discussion of advantages and disadvantages that really applied to a discussion of operating system design, not the paging system. For example, one disadvantage listed stated that inter task communication was more difficult. This would only be the case if two tasks running in different address spaces wanted to share data in RAM.
Address space isolation is usually restricted to different users sharing the same computer, not two tasks run by the same user. A database system might have a task reading a file and another writing data from the file to the database. These two tasks would run in the same address space and would be able to see the entire RAM addressable by each other.
Large commercial installations will have many users sharing the computer simultaneously. In this case, each user would have its own address space. A task run by one user could not see the memory used by a task run by another user - it is totally invisible to them. A task can not generate a page fault trying to address memory used by a different address space; it simply can't do it.
-- Eric 14:13, 11 February 2007 (UTC)
I am not sure about a JAVA virtual machine running under windows; are you familiar with that?.-- Eric 16:12, 11 February 2007 (UTC)
My operating experience is with VM, IBM's multi user operating system and it was 15 years ago. That said, it was then and probably is now one of the most powerful multi user operating systems available.
After reading your latest comments, I think we are mostly in agreement about when there is a context switch and when not.
VM ran the kernel in real addressing mode and the code resided in low memory. The rest of the operating system resided in a shared segment that was mapped into every users virtual machine and ran within the user's address space.
DBMS systems ran partly in the user's virtual machine and partly in their own vitual machine each with their own discrete address space. The user virtual machine ran the code that created schemas, parsed SQL statements, generated stored procedures...
The DBMS virtual machine did the query optimization, ran the queries that materialized the set and ran any necessary stored procedures. It ran entirely in one address space. It handled concurrency as you suggested with semaphores. Communication between the user portion of the DBMS and the DBMS virtual machine was through message passing as I believe is the case with windows.
I don't have an in depth knowledge of UNIX, but I believe it does essentially the same thing.-- Eric 18:38, 15 February 2007 (UTC)
Thanks for the clarification; now I think we are on the same page:). -- Eric 19:28, 22 February 2007 (UTC)
Given two ratios: 2:10 and 8:10, which is high and whicn is low? —The preceding unsigned comment was added by Sailorman2003 ( talk • contribs) 14:51, 3 March 2007 (UTC).
"the graph will look like a hockey stick"? —The preceding unsigned comment was added by 71.202.164.218 ( talk)
Jacek Karpinski claimed the K-202 (his computer) was the first to use the paging. Was there any earlier one? Szopen 06:02, 21 May 2007 (UTC)
If one graphs the number of faults on one axis and working set size on the other, the graph will look like a hockey stick. Why don't we get an actual graph or pseudograph instead? I had a difficulty imagining that, because I imagined the "hockey stick" as pointing rightwards instead of pointing leftwards. For now, I'm just going to edit that so it reads "will look like a leftward pointing hockey stick." Miggyb 05:33, 24 August 2007 (UTC)
Since the bus speed of physical memory is far greater than that of virtual memory stored on hard-disks, why is virtual memory used long before physical memory is used. For example I have 1.5GB of RAM, yet only 512MB of that is used, whilest at the same time 300-500MB of virtual memory is used. It's NOT more effeciant because of the difference in speed, so why isn't most of my ram being used?
PS: I'm using Windows XP
anon 16:48 GMT 09/09/2007
I'm afraid that this article is once again blurring the term "swapping" (like virtual memory once did). Paging can mean two different things:
However, the term "swapping" is only applied to moving dynamic application memory from and to a pre-allocated pool in secondary storage, not memory that is already backed on the disk. From the practical perspective, one difference is that paging out disk-backed pages only involves writing if the page is marked dirty (in the general case, it's just read-only executable code). Swapping something out always involves writing to the disk.
Does this make sense? -- intgr [talk] 11:04, 5 October 2007 (UTC)
Sorry, I haven't found the time to do any useful work on this article, but I just noticed another awkward claim creep in: "there is a concept known as page cache, of using the same single mechanism for both virtual memory and disk caching."
I thought we already established that swapping is not the same as virtual memory? And page cache is in fact not related to swapping; you may or may not say that swapping and paging are related, but the page cache keeps track of the cache of pages that are already present on the disk with copies in the main memory. Obviously "swappable" memory is not already present on the disk, hence why it needs a preallocated storage space. And once it's written to the disk, it is deallocated from the main memory. -- intgr [talk] 01:33, 19 October 2007 (UTC)
I find this article confusing. All references to swapping should be removed from the main article. Swapping is a method of workload control, i.e. the operating system determines that the resources required by this task (CPU cycles, RAM, whatever) would be more productive if it were freed and applied to another task. Therefore, the workload will be stopped and its RAM contents copied to another media until resources are available for its continuation.
Paging is a mechanism for resource allocation, i.e. this collection of work needs more real RAM than is available. The operating system will provide a mechanism to allocate real RAM to active workloads and withdraw real RAM from less active or less important workloads. Ccalvin 13:19, 21 October 2007 (UTC)
I'm appending to this section as the discussion section for a {{
dubious}} template that I've added. The specific issues that I'm addressing are:
I can provide references for both points if that would not be TMI. Shmuel (Seymour J.) Metz Username:Chatul ( talk) 15:34, 21 November 2010 (UTC)
I suggest merging the " demand paging" article into a section of " paging" article.
Most of the "demand paging" article repeats information already covered in the "paging" article, so this merge will make the "paging" article a few sentences longer. Merging would also make it easier to compare and contrast demand paging with the alternatives. -- 68.0.124.33 ( talk) 15:35, 3 April 2008 (UTC)
Please see the discussion I started on Talk:Demand paging. -- intgr [talk] 13:09, 24 September 2008 (UTC)
Anticipatory paging is repeated in the form of Swap prefetch .I think both should be merged .
"The fragmentation of the pagefile that occurs when it expands is temporary" From context, that is talking about some version of Windows, but it's not particularly true. Specifically, a page file on Windows XP will probably be fragmented on a clean disk with free space, be it fixed size or system managed, even if it is not used, and even if the disk is entirely defragmented. Windows doesn't normally create a contiguous pagefile.sys. —Preceding unsigned comment added by 218.214.18.240 ( talk) 14:22, 5 June 2010 (UTC)
That is bull. Until recently I was wondering why my WindowsXP machine of 5+ years was running particularly slow, even taking into account my perception of speed having changed. It's page file was in 58 (fifty-eight) fragments. — Preceding unsigned comment added by 76.100.18.105 ( talk) 18:52, 17 May 2012 (UTC)
The Paging#Implementations section only discusses recent systems; should that section not mention at least these following notable instances?
I came here looking for information about the mechanisms of memory paging. I.e. the way in which memory is split into pages and noncontiguous areas of memory can be mapped into contiguous spaces different for each process. But instead, this article deals mostly with swapping pages between main memory and hard drives. There is no information at all about the paging mechanisms themselves. CodeCat ( talk) 23:36, 23 October 2011 (UTC)
this alogoritms only allow for pagging. — Preceding unsigned comment added by 117.199.181.3 ( talk) 09:56, 15 November 2011 (UTC)
I amended the article text as it did not clearly distinguish swap partitions as used in other systems and regular (filesystem) partitions set aside for swap files, which is doable in OS X. The reference did not (and I have seen no other reference which does) support the interpretation that an actual swap partition can be used with OS X. n.b. man fstab
(in OS X 10.5) does list swap (along with procfs and others) as a recognised vfstype, but that is not the same as it being directly usable. (I would however be delighted to see it done as it might be even faster than a separate non-journaled HFS+ or UFS partition.)
Anihl (
talk) 05:41, 31 January 2012 (UTC)
To answer a query from Guy Harris, The address space of early MVS was limited to 2^24 8-bit bytes and ultimately IBM supported processors with 2^25 octets, although MVS systems with less than 2^24 were common. With the advent of MVS/XA and MVS/ESA, the address space size became substantially larger than the physical memory limit.
I know of no Multics processor with a physical capacity anywhere near the size of an address space.
TSS/360 supported a 24-bit mode and a 32-bit mode. In 24-bit mode, the address space was close to the maximum physical memory, especially with LCS. In 32-bit mode, the address space was substantially larger. I don't know whether the TSS/370 PRPQ had 31-bit mode (there was no 32-bit mode on S/370.) Shmuel (Seymour J.) Metz Username:Chatul ( talk) 17:03, 14 November 2013 (UTC)
Regarding this, in the intro: "The main advantage of paging over memory segmentation is that it allows the physical address space of a process to be noncontiguous. Before paging came into use, systems had to fit whole programs into storage contiguously, which caused various storage and fragmentation problems."
I could certainly be wrong, but isn't it actually virtual memory which allows a process space to be noncontiguous? Paging adds the ability to map secondary storage to virtual memory, but once you have virtual memory you've already addressed contiguity. I read the linked source in Google Books, and it describes the Ferranti Atlas computer as introducing paging+virtual memory as a solution to the earlier practice of "overlaying." In other words, it may be misleading or incorrect to refer to paging as an alternative to memory segmentation. Proxyma ( talk) 03:12, 17 November 2013 (UTC)
I think that, at least conceptually, paging is the opposite of RAM drive. So RAM drive should appear at least in "See also". -- Edupedro ( talk) 08:06, 21 July 2014 (UTC)
"Before Windows 8,[dubious – discuss] the file used for paging in Windows NT was pagefile.sys." The implication is that it has changed. I don't claim much expertise in Win8, but a quick google search doesn't find anything to support such a change. JMP EAX ( talk) 02:22, 1 August 2014 (UTC)
Based on [1] it seems Win8 supports both paging (still to pagefile.sys) and swapping (to the new swapfile.sys), with the latter added exclusively for the Metro junk. JMP EAX ( talk) 02:27, 1 August 2014 (UTC)
A more authoritative article is here, with the nutshell about swapfile.sys being "This process is analogous to hibernating a specific app". JMP EAX ( talk) 02:32, 1 August 2014 (UTC)
I have added a slightly poor diagram that illustrates virtual memory paging with reference to pages of a book, and removed 'Computing diagram requested' tag. Egmason ( talk) 12:02, 22 February 2016 (UTC)
Windows 10 has both, so what is the difference? ZFT ( talk) 19:13, 11 April 2016 (UTC)
It's a little off. Windows NT does do something that's sort of like swapping, but it isn't as drastic as VMS's; it's done gradually by shrinking the working set limit, a step at a time. Nor is there a specific inswap; if the process ever needs to be brought in again it's demand-paged in just like always.
The last sentence is problematic also. In systems that support memory-mapped files, the memory-mapped files themselves are usually the backing store, so no separate "swapfile" is required. In Windows, if the pages in question are copy-on-write pages and they get modified, then the pagefile is used as the backing store for the modified pages and that's still called paging.
I don't know how to fix this quickly. Jeh ( talk) 07:06, 4 June 2016 (UTC)
It's a little suprising that this article has no coverage at all of address translation. Address translation faults (page faults) are what drive a virtual memory manager. The "paging enabled" bit in the x86/x64 control registers actually just enables pagetable-based address translation; actually moving stuff between RAM and backing store is the OS's job. Virtual memory on most platforms includes three mechanisms: Address translation; paging; and file mapping. Jeh ( talk) 07:11, 4 June 2016 (UTC)
The problem described in Paging#Swap death is simply thrashing, described in Paging#Thrashing. The discussion in Paging#Linux should simply link to Paging#Thrashing, note the difference in nomenclature and give any information specific to Linux. Shmuel (Seymour J.) Metz Username:Chatul ( talk) 20:06, 2 July 2017 (UTC)
I propose that Swappiness be merged into Paging. Swappiness is a single parameter of the Linux kernel related to swap usage. The Linux kernel has hundreds of such parameters. Moreover, half of the Swappiness article is a general tutorial on how to set a Linux sysctl parameter. Arguably swappiness is more important than other kernel parameters and deserves a mention, but I don't think it deserves a whole article, rather a few lines in this more general article.
For comparison, here is what I did on the French Wikipedia, which had a Swappiness article translated from the English one, after duly submitting the idea to the community of course:
-- Rinaku ( t · c) 15:29, 25 February 2018 (UTC)
Not all executable program files are memory mapped. In particular, IBM mainframe operating systems have fetch and load components that read programs into virtual storage prior to execution. As an example, while MVS program objects in a PDSE program library and executable files in a UNIX System Services file system are memory mapped, load modules in a PDS are not. Shmuel (Seymour J.) Metz Username:Chatul ( talk) 14:29, 8 May 2018 (UTC)
I see much confusion of swapping and paging here, definitely not the same thing. Let me show by some examples:
So, the first example swaps but does no paging; the latter one uses paging but not swapping. The two terms are definitely NOT the same! However I see that "Memory swapping" redirects to this page, which would not help much if someone would like to find out about the swapping from my first example. To make matters worse, there is also a separate article on Virtual memory.
I see there has already been much debate on this page about this problem, but the article hasn't improved since. I'll tag it as needing expert attention in hope someone may help organize the topic better. -- Arny ( talk) 09:32, 6 June 2019 (UTC)
The issues discussed in #Addressing limits on 32-bit hardware also apply to, e.g., 24-bit hardware, 36-bit hardware, 48-bit hardware.
#Main memory the same size as virtual memory should discuss the case where individual addresses spaces are the same size as physical memory but there are multiple address spaces. -- Shmuel (Seymour J.) Metz Username:Chatul ( talk) 01:39, 30 January 2022 (UTC)
#Main memory the same size as virtual memory should discuss the case where individual addresses spaces are the same size as physical memory but there are multiple address spaces.That section said
However, even in this case, paging can be used to create a virtual memory of over 4 GB. For instance, many programs may be running concurrently. Together, they may require more than 4 GB, but not all of it will have to be in RAM at once. A paging system makes efficient decisions on which memory to relegate to secondary storage, leading to the best use of the installed RAM.
However, even in this case, paging can be used to support more virtual memory than physical memory. For instance, many programs may be running concurrently. Together, they may require more physical memory than can be installed on the system, but not all of it will have to be in RAM at once. A paging system makes efficient decisions on which memory to relegate to secondary storage, leading to the best use of the installed RAM.
it would be a good idea to seperate the ideas of memory swapping (which i have created a draft wikipedia page of) and paging, as they are fundamentally different things. i do not the posess the time to edit the articles so that the info is of accuracy (hence the draft page is just a redirect) but i do believe it is nessecary to seperate the two. Thewindboi ( talk) 18:30, 2 January 2024 (UTC)
In the 1960s, swapping was an early virtual memory technique. An entire program or entire segment would be "swapped out" (or "rolled out") from RAM to disk or drum, and another one would be swapped in (or rolled in). [1] [2] A swapped-out program would be current but its execution would be suspended while its RAM was in use by another program; a program with a swapped-out segment could continue running until it needed that segment, at which point it would be suspended until the segment was swapped in.
sched()
in src/sys/sys/vm_sched.c, where a process would be marked as "not loaded" if the paging system thought there wasn't enough free memory and some process had been sleeping for a while (the full criteria are more complicated than that, but that's a summary).References