FACTOID # 5: Minnesota and Connecticut are both in the top 5 in saving money and total tax burden per capita.
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 


FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:



(* = Graphable)



Encyclopedia > Page (computing)

In a context of computer virtual memory, a page, memory page, or virtual page is a fixed-length block of main memory, that is contiguous in both physical memory addressing and virtual memory addressing. A page is usually a smallest unit of data for: This article is about the machine. ... How virtual memory maps to physical memory Virtual memory is an addressing scheme implemented in hardware and software that allows non-contiguous memory to be addressed as if it were contiguous. ... Primary storage is a category of computer storage, often called main memory. ...

Virtual memory abstraction allows a page that does not currently reside in main memory to be addressed and used. If a program tries to access a location in such page, it generates an exception called page fault. The hardware or operating system is notified and loads the required page from auxiliary store automatically. A program addressing the memory has no knowledge of a page fault or a process following it. In consequence a program may be easily allowed to address more RAM than actually exists in the computer. It has been suggested that this article or section be merged with Dynamic memory allocation. ... A hard disk drive (HDD), commonly referred to as a hard drive, hard disk or fixed disk drive,[1] is a non-volatile storage device which stores digitally encoded data on rapidly rotating platters with magnetic surfaces. ... How virtual memory maps to physical memory Virtual memory is an addressing scheme implemented in hardware and software that allows non-contiguous memory to be addressed as if it were contiguous. ... In computer storage technology, a page is a fixed length block of memory that is used as a unit of transfer between physical memory and external storage like a disk, and a page fault is an interrupt (or exception) to the software raised by the hardware, when a program accesses...


Page size trade-off

Direct link to this section: Page size

Page size is usually determined by a processor architecture. Traditionally, pages in a system had uniform size, for example 4096 bytes. However, processor designs often allow two or more, sometimes simultaneous, page sizes due to the benefits and penalties. There are several points that can factor into choosing the best page size. Wikipedia does not yet have an article with this exact name. ...

Page size versus page table size

A system with a smaller page size uses more pages, requiring a page table that occupies more space. For example, if a 232 virtual address space is mapped to 4KB (212 bytes) pages, the number of virtual pages is 220 (20 = 32 - 12). However, if the page size is increased to 32KB (215 bytes), only 217 pages are required. Relationship between pages addressed by virtual addresses and the frames in physical memory, within a simple address space scheme. ...

Page size versus TLB usage

Processors need to maintain a Translation Lookaside Buffer (TLB), mapping virtual to physical addresses, which are checked on every memory access. The TLB is typically of limited size, and when it cannot satisfy a given request (a TLB miss) the page tables must be searched manually (either in hardware or software, depending on the architecture) for the correct mapping, a time-consuming process. Larger page sizes mean that a TLB cache of the same size can keep track of larger amounts of memory, which avoids the costly TLB misses. A Translation Lookaside Buffer (TLB) is a cache in a CPU that is used to improve the speed of virtual address translation. ...

Internal fragmentation of pages

Rarely do processes require the use of an exact number of pages. As a result, the last page will likely only be partially full, wasting some amount of memory. Larger page sizes clearly increase the potential for wasted memory this way, as more potentially unused portions of memory are loaded into main memory. Smaller page sizes ensure a closer match to the actual amount of memory required in an allocation.

As an example, assume the page size is 1MB. If a process allocates 1025KB, two pages must be used, resulting in 1023KB of unused space.

Page size versus disk access

When transferring from disk, much of the delay is caused by the seek time. Because of this, large, sequential transfers are more efficient than several smaller transfers. Transferring larger pages from disk to memory therefore, does not require much more time than smaller pages.

Determining the page size in a program

Most operating systems allow programs to determine the page size at run time. This allows programs to use memory more efficiently by aligning allocations to this size and reducing overall internal fragmentation of pages.

UNIX and POSIX-based Operating Systems

UNIX and POSIX-based systems use the system function sysconf(), as shown in example listing in C programming language. Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... POSIX or Portable Operating System Interface[1] is the collective name of a family of related standards specified by the IEEE to define the application programming interface (API) for software compatible with variants of the Unix operating system. ... Look up C, c in Wiktionary, the free dictionary. ...

 #include <stdio.h> #include <unistd.h> // sysconf(3) int main() { printf("The page size for this system is %ld bytesn", sysconf(_SC_PAGESIZE)); //_SC_PAGE_SIZE is OK too. return 0; } 

Windows-based operating systems

Win32-based operating system, such as Windows 9x, NT, ReactOS, use the system function GetSystemInfo() from kernel32.dll. Windows API is a set of APIs, (application programming interfaces) available in the Microsoft Windows operating systems. ... ReactOS is a project to develop an operating system that is binary-compatible with application software and device drivers for Microsoft Windows NT version 5. ...

 #include <stdio.h> #include <windows.h> int main() { SYSTEM_INFO si; GetSystemInfo(&si); printf("The page size for this system is %u bytesn", si.dwPageSize); return 0; } 

Huge pages

Intel x86 supports 4MB pages (2MB pages if using PAE) in addition to its standard 4kB pages, and other architectures may often have similar feature. IA-64 supports as much as eight different page sizes, from 4kB up to 256MB. This support for huge pages (or, in Microsoft Windows terminology, large pages) allows "the best of both worlds", reducing the pressure on the TLB cache (sometimes increasing speed by as much as 15%, depending on the application and the allocation size) for large allocations and still keeping memory usage at a reasonable level for small allocations. x86 or 80x86 is the generic name of a microprocessor architecture first developed and manufactured by Intel. ... In computing, Physical Address Extension (PAE) refers to a feature of x86 processors that allows for up to 64 gigabytes of physical memory to be used in 32-bit systems, given appropriate operating system support. ... In computing, IA-64 (short for Intel Architecture-64) is a 64-bit processor architecture developed cooperatively by Intel Corporation and Hewlett-Packard (HP), and implemented in the Itanium and Itanium 2 processors. ... “Windows” redirects here. ...

Huge pages, despite being implemented in most contemporary personal computers, are not in common use except in large servers and computational clusters. Commonly, their use requires elevated privileges, cooperation from the application making the large allocation (usually setting a flag to ask the operating system for huge pages) or manual administrator configuration; operating systems commonly, sometimes by design, cannot page them out to disk. It has been suggested that this article or section be merged into Supercomputing. ... In computer operating systems, paging memory allocation, paging refers to the process of managing program access to virtual memory pages that do not currently reside in RAM. It is implemented as a task that resides in the kernel of the operating system and gains control when a page fault takes...

Linux has supported huge pages on several architectures since the 2.6 series. Windows Server 2003 (SP1 and newer) and Windows Server 2008 supports huge pages under the name of large pages, but Windows XP and Windows Vista do not. This article is about operating systems that use the Linux kernel. ... Windows Server 2003 is a server operating system produced by Microsoft. ... Windows Server 2008 is the name of the next server operating system from Microsoft. ... Windows XP is a line of operating systems developed by Microsoft for use on general-purpose computer systems, including home and business desktops, notebook computers, and media centers. ... Windows Vista is a line of graphical operating systems used on personal computers, including home and business desktops, notebook computers, Tablet PCs, and media centers. ...


Dandamudi, Sivarama P. (2003). Fundamentals of Computer Organization and Design. Springer, 740-741. ISBN 038795211X.  Springer is the name of several places in the United States: Springer, New Mexico Springer Township, North Dakota Springer, Oklahoma Springer is the name of: Springer Science+Business Media, a worldwide publishing group based in Germany (including Springer-Verlag) Axel Springer Verlag AG, famous conservative German publishing house Springer (EP...

See also



Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m