Wednesday, 18 April 2012

User’s View of a Program


Segmentation


  • Memory-management scheme that supports user view of memory.
  • A program is a collection of segments.  A segment is a logical unit such as:
                    main program,
                    procedure,
                    function,
                    method,
                    object,
                    local variables, global variables,
                    common block,
                    stack,
                    symbol table, arrays

Shared Pages


  • Shared code
  1. One copy of read-only (reentrant) code shared among processes (i.e., text editors, compilers, window systems).
  2. Shared code must appear in same location in the logical address space of all processes.
  • Private code and data
  1. Each process keeps a separate copy of the code and data.
  2. The pages for the private code and data can appear anywhere in the logical address space.

Inverted Page Table


  • One entry for each real page of memory.
  • Entry consists of the virtual address of the page stored in that real memory location, with information about the process that owns that page.
  • Decreases memory needed to store each page table, but increases time needed to search the table when a page reference occurs.
  • Use hash table to limit the search to one — or at most a few — page-table entries.

Hashed Page Tables


  • Common in address spaces > 32 bits.
  • The virtual page number is hashed into a page table. This page table contains a chain of elements hashing to the same location.
  • Virtual page numbers are compared in this chain searching for a match. If a match is found, the corresponding physical frame is extracted.

Address-Translation Scheme


  • Address-translation scheme for a two-level 32-bit paging architecture



Two-Level Page-Table Scheme