Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...

what is Page Fault or Page thrashing ?

Answer Posted / embeddedmatters

What is page thrashing?

Some operating systems (such as UNIX or Windows in enhanced
mode) use virtual memory. Virtual memory is a technique for
making a machine behave as if it had more memory than it
really has, by using disk space to simulate RAM (random-
access memory). In the 80386 and higher Intel CPU chips,
and in most other modern microprocessors (such as the
Motorola 68030, Sparc, and Power PC), exists a piece of
hardware called the Memory Management Unit, or MMU.
The MMU treats memory as if it were composed of a series
of “pages.” A page of memory is a block of
contiguous bytes of a certain size, usually 4096 or 8192
bytes. The operating system sets up and maintains a table
for each running program called the Process Memory Map, or
PMM. This is a table of all the pages of memory that
program can access and where each is really located.
Every time your program accesses any portion of memory, the
address (called a “virtual address”) is processed by the
MMU. The MMU looks in the PMM to find out where the memory
is really located (called the “physical address”). The
physical address can be any location in memory or on disk
that the operating system has assigned for it. If the
location the program wants to access is on disk, the page
containing it must be read from disk into memory, and the
PMM must be updated to reflect this action (this is called
a “page fault”).

Because accessing the disk is so much slower than
accessing RAM, the operating system tries to keep as much
of the virtual memory as possible in RAM. If you’re running
a large enough program (or several small programs at once),
there might not be enough RAM to hold all the memory used
by the programs, so some of it must be moved out of RAM and
onto disk (this action is called “paging out”).
The operating system tries to guess which areas of memory
aren’t likely to be used for a while (usually based on how
the memory has been used in the past). If it guesses wrong,
or if your programs are accessing lots of memory in lots of
places, many page faults will occur in order to read in the
pages that were paged out. Because all of RAM is being
used, for each page read in to be accessed, another page
must be paged out. This can lead to more page faults,
because now a different page of memory has been moved to
disk.

The problem of many page faults occurring in a short time,
called “page thrashing,” can drastically cut the
performance of a system. Programs that frequently access
many widely separated locations in memory are more likely
to cause page thrashing on a system. So is running many
small programs that all continue to run even when you are
not actively using them. To reduce page thrashing, you can
run fewer programs simultaneously. Or you can try changing
the way a large program works to maximize the capability of
the operating system to guess which pages won’t be needed.
You can achieve this effect by caching values or changing
lookup algorithms in large data structures, or sometimes by
changing to a memory allocation library which provides an
implementation of malloc() that allocates memory more
efficiently. Finally, you might consider adding more RAM to
the system to reduce the need to page out.

Page thrashing causes performance degradation. You can
increase the ram disk size to reduce page thrashing.

Is This Answer Correct ?    16 Yes 2 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What are the different types of embedded systems?

851


How i/o devices are classified for embedded system?

892


How are variables mapped across to the various memories by the c compiler?

1144


How do you react to people criticizing your code/documents?

843


Describe a pattern that is not the factory pattern? How is it used and when?

895


Explain me why is model transformations used in the embedded system?

858


Explain me what are the rules followed by mutexes?

792


How do you identify hardware errors?

866


Why do we need a infinite loop in embedded systems development? What are the different ways by which you can code in a infinite loop?

907


How does a 3 tier application differ from a 2 tier one?

875


Explain me how does the interrupt architecture works?

903


What is the function of watchdog timer in embedded system?

873


What is spin lock?

847


Tell me why does pre-emptive multi-threading used to solve the central controller problem?

856


Explain the concept of separation of concerns?

850