Talk:Virtual memory

message: As noted, paging/swapping is not a required characteristic of virtual memory, so I moved the section on Thrashing to the Paging article.  It also needs some cleanup. Guy Harris (talk) 09:09, 5 January 2008 (UTC)
replies: text: I agree about 75% - the text you moved was too long and technical for Virtual memory. But the article does need to mention thrashing and say "for more info see ...": it's a well-know problem of virtual memory systems and, if we don't mention it, someone may be tempted to add another excessive explanation. I'm inserting a simple explanation with "for more info see ...". Philcha (talk) 12:40, 5 January 2008 (UTC)
thread_title:  Thrashing 

message: What's the reason for trying to replace a 4 KB .png file with a 17 KB .svg image? Philcha (talk) 14:31, 29 May 2008 (UTC)
replies: text: I believe it is because SVG images are scalable (they don't pixelate when the size is increased) so they are preferred over PNG. Rilak (talk) 07:13, 30 May 2008 (UTC)
replies: text: Printed version, huh. Poor amazonian trees. --Kubanczyk (talk) 07:55, 30 May 2008 (UTC)
thread_title: Top image

message: Having read the article for the first time, and the discussions here, it seems to me to be a total confusion about what virtual memory is.
First of all, let's separate the subject of demand paging from virtual memory. Demand paging is a different topic.
Second, virtual memory is not about fooling the program into believing it has more memory that physically exists in the machine, although that can be one side effect of the whole deal.
What virtual memory is all about is to fool a program that it is alone in memory space, and that the whole memory space is exclusively for use by that program. Memory space starts at address 0 (well, it can be elsewhere as well, if it makes more sense), continues with or without holes in it, but the memory is not shared with other uses/users.
A program can't tell that it's virtual memory. It looks just like physical memory to it, and the same exclusive view is given to all programs that might be running concurrently on the same computer.
Thus, the same virtual address for different running programs can (and usually will) map to different physical addresses.
So programs with different contexts can all refer to the same virtual address, but will be talking about different physical addresses.
That's all there is to it.
Or one program can refer to the same virtual address, but make that address refer to different physical addresses, if the program can manipulate the translation between virtual and physical addresses.
Now, to make a few things clear. A PDP-10 have a virtual memory system. So do a PDP-11, and a bunch of other computers, none which fulfills the definition that this article have made previously.
If this article were to be taken at face value, Unix didn't have virtual memory until 4BSD.
Also, given the ideas that virtual memory is a way of fooling a program that it has more memory than physically exists, the PDP-11 is a fine example of where that is not true. The virtual address space is only 16 bits, while the physical address space of the large PDP-11s are 22 bits. And yet, they also have a virtual memory system. Moreover, even though the hardware of a PDP-11 allows you to design a demand paging system, noone ever did (as far as I know). However, swapping was done.
This might be a good time to point of swapping. Swapping is the process of writing out or reading back the whole process context and memory from a backing store.
This is different from paging, in which individual pages are read/written, and the context of the process stays in memory.
Page faults are a part of the demand paging system, and occur as a part of the execution of a process. Swapping is something that happens when the process currently is suspended (maybe just because a context switch, and maybe because it is waiting for some event to happen). A page fault can cause a process to temporarily be suspended.
Swapping on the other hand is something the OS decides upon because either resource shortage needs larger amounts of resources to be freed immediately, or perhaps because it appears that the resources will not be referred to for a long period.
I'm not really a good writer, so I don't feel appropriate to actually rewrite this article, but it certainly feels like people have got the three concepts totally confused.
But to summarize: virtual memory - make it appear as if the whole addressable memory is "yours".
Demand paging - a way of having part of program memory actually be stored on secondary storage, without the program being aware of it (unless you count timing issues).
Swapping - a way of freeing up resources.
Demand paging can partly solve the resource issues as well, but can also cause thrashing and resource shortage. Demand paging is also the way of making it look like you have more memory than physically exists in the computer.
Virtual memory is fundamental mechanism that is required for demand paging to work, but virtual memory do not mean that you got to have demand paging, as have been demonstrated by a number of machines.
I'll be happy to reply to any questions you might have.
/bqt@softjar.se --212.112.174.86 (talk) 17:33, 30 September 2008 (UTC)
replies: text: An interesting set of comments. If you can provide reliable sources for any of these points, the article should incorporate them. However I don't think your definition of "virtual memory" = "to fool a program that it is alone in memory space" is any superior to "fooling the application that it has a single block of contiguous memory" - in fact I think your definition is narrower, and therefore more easily falsified bvy a counter-example. The artcile may have to face the possibility of multiple definitions of "virtual memory", as different companies took different approaches based in the early work in the field, and then used "virtual memory" as a marketing term for their specific approaches. --Philcha (talk) 10:54, 19 November 2008 (UTC)
replies: text: What would be considered reliable sources? Processor handbooks describing the virtual memory system of any of the machines I mention? One "fact" that stands out in a computer using a virtual memory system is that you can have several programs running at the same time, referring to the same virtual address, but none of those programs are in fact referring to the same location as any of the other programs running. Virtual memory is a way of abstracting away a lot of details involving the operating system and multitasking. The running program don't have to be aware of that kind of detail nor have to take it into consideration when doing something. Also, if a program runs amok and trashes memory, it is only it's own memory space that gets trashed, no other process is affected by this. That is a very important aspect of virtual memory. It's just your own memory, and noone else have anything to do with it, nor is affected by anything happening to it. The fact that it might, or might not be contiguous is pretty irrelevant, and might or might not be true for any instance. As pointed out, the virtual memory can be implemented in a paged system where each page can be anywhere in physical memory. And yet, the page table can contain invalid pages in between valid pages. So, there is no base for the assumption that memory is contiguous either physically or virtually. But then again, there is really nothing that forbids it from being so. So, saying "fooling a program that it has a single block of contiguous memory" sets an arbitrary limit on what virtual memory is for which there is absolutely no factual base. My definition might not be perfect, but I believe it is far more correct than the current article, which basically just talks about a specific way of implementing virtual memory as if that was the definition of virtual memory. I wonder if you can find a single definition of virtual memory which would allow all processes private memory to be visible in all other processes running, as well as making the OS memory available. It would be a very interesting virtual memory to learn about. But I'm all ears. Oh, and I can't imagine how a system where all processes memory were visible to everyone else would work. Address space would cause limitations on how much could be in memory at the same time, two different processes running the same image would have that same image running at different addresses, or else the view of the memory would be presented differently for each program running (and how would that be done?). Also, what about dynamic memory allocation in the face of all this? I just can't see how you could get that to work. Virtual memory is really the only way to get past that hurdle. And it's all about presenting a private memory space as if noone else was around, no matter what else is happening in the system. /bqt@softjar.se --213.65.173.92 (talk) 01:02, 9 January 2009 (UTC)

text: Yes, the current definition, is historically inaccurate. The term "virtual memory" on many (if not most) of the early machines was used to describe a method to increase the total working set, not to provide some kind of C/Unix/flat memory model abstraction. That is why you see machines with flat address spaces (generally via segmentation) not being labeled as having virtual memory, and machines which didn't even have MMU's (early Mac OS) being described as having virtual memory. You have to remember the mindset was that physical memory was severely limited, and a machine which allowed you to simulate more of a scare resource was truly useful. Abstractions to make writing programs easier, weren't as much of a concern when you weren't even sure if it was possible to solve the problem. The B5000 widely credited as the first commercial machine with virtual memory did _NOT_ have a flat address spaces. The "processes" were accumulated disjoint sections of memory tied to individual data structures the application needed. What it did have, was the ability to transparently swap those regions to a secondary storage mechanism without application knowledge.  —Preceding unsigned comment added by 12.166.178.178 (talk) 17:18, 5 December 2008 (UTC)
replies: text: Since Unix is such a popular reference, I think it's rather appropriate that the PDP-11 is my source for objections most of the time. The PDP-11 is a 16-bit machine, meaning all addresses are 16 bits wide, and so on. However, the physical address space is 22 bits. Note how physical memory is much larger than virtual in a flat memory space. In addition, the PDP-11 do not have segment registers, or similar things. It have a MMU, a page table, and do page relocation. The 16-bit virtual address space is split into eight pages. Each page can be located anywhere in the 22-bit physical address space. So, for each process, the address space is a flat, virtual 16-bit address space. The MMU can set pages to not be accessible, and each page can also be a fraction of the full 8 KB. It don't need to map the whole 13 bits of address space. That's the basic concepts. With this, it would in theory be possible to write something with demand paging, or other page based virtual memory system on the PDP-11 (the MMU traps illegal memory references, and instructions can be restarted). But with only 8 pages, and loads of more physical memory than virtual, there isn't really much reason to make the effort. So, for all Unixes on PDP-11s, you do have virtual memory. And yes, it is there to present you with a flat virtual address space of 16 bits (so it was/is definitely for writing programs easier). But no, it is not page based, page driven, neccesarily contigous (either physically or virtually), or in any sense of the world a way to express that you have more virtual memory than physical memory on the machine. In the case you start having so many processes that physical memory still don't suffice, then swapping is used, to move whole jobs in and out of the swap area. So either a job is runnable, and then all memory referenced are in memory, or the job is swapped out, in which case parts might be in memory, and parts in the swap area. Anything describing virtual memory, which defines the Unixes (and other OSes on PDP-11s) as not having virtual memory just means they define virtual memory in a too restrictive way, or even plain wrong. /bqt@softjar.se 74.125.57.33 (talk) 15:05, 26 March 2010 (UTC)

text: Many virtual memory implimentations support shared memory, e.g., MULTICS,  z/OS. Shmuel (Seymour J.) Metz Username:Chatul (talk) 16:28, 15 June 2010 (UTC)
replies: text: And some virtual memory implementations provide a single address space, possibly larger than the physical address space of the machine, in which all processes/tasks run, e.g. OS/VS1, OS/VS2 SVS, and the System/38 and AS/400 operating system. Guy Harris (talk) 09:31, 16 August 2011 (UTC)

text: Sigh, I see that the page have degenerated again, and once more claims that virtual memory is the same thing as paged memory. Do people really want Wikipedia to be this inaccurate? There are plenty of historical documents (such as PDP-11 processor handbooks to name one) which describes virtual memory, and which totally disagrees with what this page now talks about. Virtual memory is *not* the same thing as paged memory. Either can exist without the other. And I'm very curious to hear what the vm=paged-memory proponents would call the virtual memory of a PDP-11? /bqt@softjar.se 95.206.17.113 (talk) 14:48, 25 December 2012 (UTC)
replies: text: FWIW, the Burroughs B5000, B5500 and B5700 had virtual memory but did not have paging. Shmuel (Seymour J.) Metz Username:Chatul (talk) 15:33, 27 December 2012 (UTC)

text: Virtual memory is also not about "to fool a program that it is alone in memory space, and that the whole memory space is exclusively for use by that program. Memory space starts at address 0 (well, it can be elsewhere as well, if it makes more sense), continues with or without holes in it, but the memory is not shared with other uses/users."  As I noted, some systems run all processes in the same virtual address space - and this is not just some old technique superseded by giving every process its own address space; see some of the OSes listed in single address space operating system, such as IBM i and Singularity. Guy Harris (talk) 21:50, 25 December 2012 (UTC)
thread_title: Virtual memory confusion

message: I removed the following part:
Where is it? and how to change it?
In Windows XP go to "My Computer" > Right click on white part then "Properties" > "Advanced" tab >  in Performance Box click "Settings" > Virtual Memory box "change"
All this is stored in a File named PAGEFILE.SYS
Wikipedia is not a howto !
(and the writing style is pretty poor)
--G.ardaud (talk) 08:15, 19 November 2008 (UTC)
thread_title: Removal of first part

message: While the B5000, B5500 and B5700 only had segmentation, the large B6500 series had a completely different architecture, which included both paging and segmentation.
FWIW the Unisys line includes only the B6500 architecture, not the B5000 architecture. Shmuel (Seymour J.) Metz Username:Chatul (talk) 16:34, 15 June 2010 (UTC)
thread_title:  Burroughs large systems did have paging 

message: In IBM's OS/VS1, OS/VS2 (SVS) and MVS, V=R played a very limited role. The system had provision for temporarily page fixing storage, including I/O buffers; that was not something added in later releases. Programs using Execute Channel Program (EXCP) and building their own channel programs did not have to run V=R; the I/O Supervisor did the necessary page fixing and CCW translation. Shmuel (Seymour J.) Metz Username:Chatul (talk) 18:54, 27 June 2010 (UTC)
thread_title:  Virtual=real has major errors 

message: I have some policy questions inspired by the Burroughs B5000 and B6500 product line, but which probably apply to other architectures as well.
*Is it appropriate to mention occasional nonstandard nomenclature, e.g., the use by Burroughs of the term segmented to refer to the splitting of a large segment into independently mapped 256 word pages?
*Is it appropriate to mention techniques such as nested segments, or is that TMI.
*Is it appropriate to provide citations for some of the anomalies but to not mention them in the narrative? Shmuel (Seymour J.) Metz Username:Chatul (talk) 19:14, 6 July 2010 (UTC)
thread_title:  Level of detail for edge cases and nonstandard nomenclature 

message: Two features of some virtual memory systems that it might be appropriate to discuss in the introduction are that it is common to have provision for shared virtual memory and that some virtual memory systems have more flexible access controls than is feasible without address translation. Shmuel (Seymour J.) Metz Username:Chatul (talk) 12:12, 22 July 2010 (UTC)
thread_title:  Virtual memory traits 

message: It is certainly common to write simulators without hardware support, but I am not aware of any emulator for a system with virtual memory that does not have hardware memory mapping for the emulated system, and I am not aware of any virtual machine facility that does not use hardware memory mapping for the virtual machine.
Note that emulation was defined as a combination of host software, microcode and hardware, not as simulation using only the standard host instruction set. Shmuel (Seymour J.) Metz Username:Chatul (talk) 12:19, 22 July 2010 (UTC)
replies: text: An emulator produces the same results as the original equipment had achieved.  A simulator fools the application into thinking the same results have been achieved without actually doing anything.  Evanh (talk) 00:43, 1 September 2010 (UTC)

text: I have to agree with Chatul here.  Virtual machines especially rely on heavily MMUs if they are any good.  (i.e. they try their best to run the code natively, and react to hardware faults.)  I would expect any emulator that needs to support an MMU would do the same, unless they wanted to be really slow, i.e. run tons of extra code at every memory access. 71.35.184.60 (talk) 22:36, 10 September 2011 (UTC)
thread_title:  Hardware support for emulators and virtual machines 

message: In several lines of IBM mainframes, e.g., z/OS, an unprivileged application can prepare its own channel program and request its performance with the EXCP (Execute Channel Program). EXCP performs functions such as page fixing, address mapping and channel program translation. As the article is currently structured I don't see a good place to describe EXCP or similar facilities in other systems. Shmuel (Seymour J.) Metz Username:Chatul (talk) 13:01, 22 July 2010 (UTC)
replies: text: We already seem to have an article at Unit Control Block. You could try including it in the "history" section if it's a function which arose with a particular system. Ironholds (talk) 14:37, 22 July 2010 (UTC)
replies: text:  I have only vague notions of IBM's channels and channel control programs. But I believe this function is in what is commonly referred to these days as an I/O MMU (I/O Memory Management Unit). Jeh (talk) 19:53, 22 July 2010 (UTC)
replies: text: Hmn. I'd suggest asking at Wikipedia talk:WikiProject Computing; it's rather a specialist question. Ironholds (talk) 00:17, 23 July 2010 (UTC)

text: The material that I want to add is software, not hardware. There is no I/O MMU on IBM's flagship mainframe line, althugh there once was a facility called ECPS:VSE that provided the functionality in microcode. Shmuel (Seymour J.) Metz Username:Chatul (talk) 12:52, 25 July 2010 (UTC)

text: There's already material in the UCB article that I've suggested removing. CCW translation doesn't belong there either. I'll take Ironholds's suggestion and ask in Wikipedia talk:WikiProject Computing. Shmuel (Seymour J.) Metz Username:Chatul (talk) 12:52, 25 July 2010 (UTC)
replies: text: Seems good. —fetch·comms 01:55, 26 July 2010 (UTC)
replies: text: I got around to reading this section only after I changed the article Channel_I/O to include a section on CCW translation, but that still seems the appropriate place for it to me. Peter Flass (talk) 19:33, 6 March 2012 (UTC)
thread_title:  Where to discuss channel program translation 

message: The is a reference for Virtual=Fixed (V=F) that is tagged with ; however, that template is inappropriate because the reference does not have page numbers. I wanted to replace the  template with a more appropriate one, but I couldn't find a template for subsection URL needed. There are other references for V=F. Shmuel (Seymour J.) Metz Username:Chatul (talk) 20:53, 17 November 2010 (UTC)
replies: text: On suitable reference is  Shmuel (Seymour J.) Metz Username:Chatul (talk) 21:45, 9 February 2011 (UTC)
thread_title:  Meta: {{tl|Page needed}} 

message: "To allow for multiprogramming and multitasking, many early systems already had the ability to divide the memory between multiple programs even without providing virtual memory; for instance, early models of the PDP-10 provided memory access through what are called base and bounds registers."
The "early models" of PDP-10 you are talking about are the KA10 processor and its predocessor the model 166 processor of the PDP-6 computer.  The later models (KI10, KL10, KS10) all had demand paging virtual memory management.  However, the idea that the KA10 didn't provide virtual memory is wrong.  It provided a two segment memory model (shared and private) via two sets of base, protection, and length registers.  Every user memory address was automatically translated as part of access and every process (job in tops-10) had its own image of memory.  This is virtual memory.
what is virtual memory pracically?  —Preceding unsigned comment added by 59.180.178.40 (talk) 16:56, 23 February 2011 (UTC)
replies: text: I'd say a key characteristic of virtual memory is that, on a system with virtual memory, a single process (or equivalent) can run in an address space larger than the machine's physical memory.  If all the pages/segments of a process (job, task, whatever) must be in memory in order for the process to be runnable, I wouldn't call that virtual memory, even if the OS swaps jobs in and out of memory, so that the sum of the sizes of all the processes on the system is greater than the machine's physical memory.  This wouldn't include the KA10 and the TOPS-10's that ran on them, but it would include paging systems as well as segmenting systems that don't require all of a process's segments to be in main memory and that can dynamically fault segments into memory and move them out of memory. Guy Harris (talk) 23:34, 5 July 2011 (UTC)
replies: text: Note that, given, for example, OS/VS1 and OS/VS2 SVS, this could be done without giving each process its own virtual address space; they packed multiple processes into a single virtual address space, in the same way their predecessors packed them into the physical address space.  The virtual address space could presumably be bigger than the machine's physical address space, so you could still have a process (job) run that wouldn't fit in physical memory.  Guy Harris (talk) 23:43, 5 July 2011 (UTC)
thread_title:  PDP-10 and Virtual Memory 

message: Segmented virtual memory: "systems with this memory structure, such as Multics and IBM System/38, are usually paging-predominant." 1) What exactly does this mean? 2) What is/are other alternatives and who uses them? This sounds like an interesting concept that is dropped in here with no amplification.Peter Flass (talk) 13:54, 10 November 2011 (UTC)
thread_title:  paging-predominant? 

message: On 15 February 2012 Daniel Santos said "(Removing old unsourced claim. I do not believe it's true, but if somebody wants to get a good source on it, then they can re-add it. Efficiency gains from reduced fragmentation can be offset by the overhead of memory mappings and context switching.)"
I think the claim was the VM systems use "hardware memory" more efficiently, not necessarily the whole system.  I don't have a source handy, but consider a system like MVT that needed contiguous physical memory equal to "region size" before starting a job.  Large chunks of memory might have to sit unused waiting for something to end to free enough contiguous storage.  A system like MVS would be able to start the job immediately and fill up physical memory with the working sets of all active jobs.
Of course this caused other problems, but memory sure could be fully used. Peter Flass (talk) 13:22, 15 February 2012 (UTC)
replies: text: The validity of the claim is not limited to VM; in fact, you mention MVS, which is an example of a system using hardware memory more efficiently than its real predecessor, OS/360. Shmuel (Seymour J.) Metz Username:Chatul (talk) 23:02, 1 March 2012 (UTC)
replies: text: (By "The validity of the claim is not limited to VM" do you mean "VM" as in "virtual memory" or as in "virtual machine"?) Guy Harris (talk) 00:37, 2 March 2012 (UTC)
replies: text: I was talking about virtual memory, I thought that was what the original claim was about... Peter Flass (talk) 13:04, 2 March 2012 (UTC)
replies: text: My question was asking what User:Chatul meant by "VM" in "The validity of the claim is not limited to VM"; if he meant "virtual memory", that statement makes no sense to me, given that MVS supported demand-paged virtual memory, so MVS had "VM" in that sense, so I was wondering if he thought "VM systems" meant "systems running VM" rather than "systems with virtual memory". Guy Harris (talk) 17:48, 2 March 2012 (UTC)
replies: text: I took VM to be a reference to VM (operating system) rather than to Virtual machine or Virtual memory . Shmuel (Seymour J.) Metz Username:Chatul (talk) 21:57, 2 March 2012 (UTC)
thread_title:  Fragmentation 

message: Removed an uncited sentence asserting that embedded systems don't need a complex memory hierarchy as per WP:FORUM Random2001 (talk) 21:13, 7 March 2012 (UTC)
thread_title:  Embedded Systems Complex Memory Hierarchy Reference 

message: Just for fun, I took at look at the mlock() man page in OS X, and it mainly uses "locked (into memory)".  The HISTORY section of the man page says "The mlock() and munlock() functions first appeared in 4.4BSD.", so the *BSD man pages probably are the same or very similar. The Solaris and HP-UX pages also speak of locking pages in memory. The Linux mlock() page speaks of "disabling paging", and the AIX page speaks of "[causing] those whole pages containing any part of the address space of the process starting at address addr and continuing for len bytes to be memory-resident until unlocked...".
So I'm not sure for which operating systems the term is "pinned".  This question speaks of "pinned pages" on AIX; I'm not sure the output with "pinned" in it is from an AIX command or not.  OS X's Activity Monitor uses "wired", but I don't know offhand whether those pages are only pages "wired" by virtue of being, for example, kernel code or data pages, or whether it includes pages locked into memory because I/O is being done to or from them or if they've been mlock()ed.  This knowledgebase entry for VMware speaks of "pinned pages (sometimes called locked pages)". Guy Harris (talk) 21:58, 26 May 2012 (UTC)
replies: text: A reference for the term page fix in z/OS and earlier systems is z/OS V1R12.0 MVS Programming Authorized Assembler Services Guide, SA22-7608-15 Shmuel (Seymour J.) Metz Username:Chatul (talk) 20:01, 1 June 2012 (UTC)
thread_title:  Terminology for pages locked into physical memory 

message: I recently published a book on the internals of the virtual memory manager of Windows and I would like to know if I am allowed to add a bibliographic reference to it on this page.
I have a personal interest a stake, because I would like as many people as possible to know that my book exists. At the same time, I think readers of this article would benefit from this information, since the book is relevant to the subject at hand.
In the event that I am allowed to add such a reference, would it be correct to place it in the Further Reading section?
Below are the book reference data, thanks.
Title: What Makes It Page?
Author: Enrico Martignetti
Publisher: CreateSpace Independent Publishing Platform 
Publicaton date: August 21, 2012
ISBN-10: 1479114294 
ISBN-13: 978-1479114290 
EnricoMartignetti (talk) 15:46, 19 February 2013 (UTC)
replies: text:  It is allowed, but please follow these guidelines: https://en.wikipedia.org/wiki/Wikipedia:Attribution#Citing_yourself Ehamberg (talk) 21:22, 19 February 2013 (UTC)
replies: text:  Thank you, I have read the guidelines and I have a further question: my book is self-published and it's my only publication, so I cannot claim to be a recognized expert in this field. However, the book is receiving positive evaluations, including two customer reviews on Amazon, ranking it at 5 out of 5 stars. Given all this, can I still add it to the Further Reading section? I am convinced that the book content is relevant, so my misgivings are only about it being self-published. Thanks again. EnricoMartignetti (talk) 13:51, 20 February 2013 (UTC)
replies: text:  I am about to add my book to the Further Reading section. I believe this is a useful piece of information for readers interested in this subject.EnricoMartignetti (talk) 11:05, 4 March 2013 (UTC)
replies: text: Sorry your book listing looks like self-promotion to me.  I think it would be more likely to be acceptable if you had referenced your book in some part of the article itself.  But simply listing it as further reading seems like advertising, and as the author you should probably not be the one doing that.  — Preceding unsigned comment added by Gabriel.Southern (talk • contribs) 23:40, 22 May 2013 (UTC)
thread_title:  Question on Referencing My Own Book 

message: As far as I know, thrashing requires neither paging nor page stealing in the form in which it's described in the paging article.  It just requires that some form of demand loading be done (so that the entire address space of a process need not reside in main memory, with stuff loaded when it's referred to) and that not enough physical memory be available for the working sets of all processes considered "runnable" (so that trying to run process A could require that pages or segments from runnable process B be removed from memory, in order to load pages or segments from process A); that could presumably happen with segmentation if you demand-load segments. Guy Harris (talk) 19:55, 25 November 2013 (UTC)
thread_title:  Thrashing 

message: A note on the last update to Virtual memory#Pinned pages:
In IBM mainframe operating systems, e.g., z/OS, page fixing applies to individual pages and swapping refers to entire address spaces. A long term page fix does not render an address space unswappable, nor does making an address space un swappable cause page fixing. Thus an application can never be fixed, only unswappable.
Of course, a V=R application is both unswappable and pinned, but it is a rare special case; I'm not even sure whether it it is still supported. Shmuel (Seymour J.) Metz Username:Chatul (talk) 17:13, 29 May 2014 (UTC)
replies: text: " page fixing applies to individual pages and swapping refers to entire address spaces. " This is the terminology used in VMS and Windows 8 as well, although some of the nuances are different. Also, (m) fixed spelling and formmating in previous Jeh (talk) 18:10, 29 May 2014 (UTC)
thread_title:  Pageable versus swappable 

message: *Paging: scheme by which a computer can store and retrieve data from secondary storage for use in primary storage
*RAM drive: block of primary storage that a computer's software uses as secondary storage
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:10, 21 July 2014 (UTC)
replies: text: Let's have this discussion in one place. I have already answered at the RAM drive talk page. Thanks. Jeh (talk) 08:38, 21 July 2014 (UTC)
thread_title:  Paging vs RAM drive (See also)