Linux-MM
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Linux Memory Management

  • Front Page

  • Documentation

  • Internals

  • Projects

  • Academic Research

References

  • LinuxKernelMailingLists

  • MemoryManagementLinks

Related sites

  • Kernel Newbies

  • Memory Management Forum

Wiki

  • Site Editors

  • Side Bar

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 3 as of 2006-11-21 10:26:17
LinuxMM:
  • Demand_paging

I think that demand paging it's an interesting topic, so I will try to write some ideas.

Concept

It's a dynamic memory allocation technique that consist of deferring page frame allocation until the last possible moment, for example, when a process attemps to access a page that is not present in RAM.

Different areas where demand paging apply

  • Demand paging of executable files: When you execute a program, only a portion (how many bytes?, Is tunneable?) of it is loaded into memory. If the procesor attemps to execute code that is not in memory a page fault is generated and a page is loaded from the executable file.
  • Demand paging of regular files: This apply only to mmap()ed files. Only the active pages of the file are resident on memory. On memory pressure modified pages will be written in the file (MAP_SHARED) or in the swap area (MAP_PRIVATE).
  • Demand paging on the heap: I'm not sure here, but I think that the kernel defer the allocation after a brk() system call and do it when the process try to access to that pages.
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01