15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

FIGURE 5.23 Virtual addresses. A Virtual address is divided into two components: the virtual page number and<br />

the page offset. The virtual page number identifies the page’s location within the address space. The page offset<br />

identifies a byte’s location within the page. Bit widths are shown for a 32-bit address and a 4 kbyte page size.<br />

FIGURE 5.24 Page numbers (for 32-bit virtual addresses). Every page in an address space is given a virtual page<br />

number (VPN). Every page in physical memory is given a physical page number, called a page frame number (PFN).<br />

paradigm allows each process to behave as if it owns the entire machine; each process is protected from<br />

all others and does not even know that other processes exist—for example, a process cannot spoof the<br />

identity of another process, and the resource-management mechanisms implemented by the operating<br />

system to support the illusion that each process own all physical resources means that no process may<br />

dominate system resources. One of the many benefits of this organization is that it makes facilities such<br />

as multitasking very easy to implement, because process protection, resource sharing, and a clean division<br />

of process identity are provided as side effects of the virtual machine paradigm by definition.<br />

The mapping information that tells the location of pages in memory or on disk is organized into page<br />

tables, which are collections of page table entries (PTEs). Virtual addresses (shown in Fig. 5.23) are mapped<br />

at the granularity of pages; at its simplest, virtual memory is then a mapping of virtual page numbers<br />

(VPNs) to page frame numbers (PFNs), shown in Fig. 5.24. “Frame” in this context means “slot”—physical<br />

memory is divided into frames that hold pages. The page table holds one PTE for every mapped virtual<br />

page; an individual PTE indicates whether its virtual page is in memory, on disk, or not allocated yet.<br />

The logical PTE therefore contains the VPN and either the page’s location in memory (a PFN), or its<br />

location on disk (a disk block number). Depending on the organization, some of this information is<br />

redundant; actual implementations do not necessarily require both the VPN and the PFN. Later developments<br />

in virtual memory added such things as page-level protections; a modern PTE usually contains<br />

protection information as well, such as whether the page contains executable code, whether it can be<br />

modified, and if so by whom.<br />

The mapping is a function; any virtual page can have only one location. However, the inverse map is<br />

not necessarily a function; it is possible and sometimes advantageous to have several virtual pages mapped<br />

© 2002 by CRC Press LLC<br />

Virtual<br />

Page<br />

Numbers<br />

Virtual Page Number (VPN)<br />

FFFFF<br />

FFFFE<br />

FFFFD<br />

FFFFC<br />

4A00E<br />

4A00D<br />

4A00C<br />

4A00B<br />

4A00A<br />

4A009<br />

4A008<br />

4A007<br />

4A006<br />

4A005<br />

4A004<br />

4A003<br />

4A002<br />

4A001<br />

4A000<br />

00007<br />

00006<br />

00005<br />

00004<br />

00003<br />

00002<br />

00001<br />

00000<br />

20 bits<br />

Virtual<br />

Space<br />

Physical<br />

Space<br />

0000F<br />

0000E<br />

0000D<br />

0000C<br />

0000B<br />

0000A<br />

00009<br />

00008<br />

00007<br />

00006<br />

00005<br />

00004<br />

00003<br />

00002<br />

00001<br />

00000<br />

Page Offset<br />

12 bits<br />

Page<br />

Frame<br />

Numbers

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!