Home

About

Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network
FAQHELPSITE MAPCONTACT US


  Advanced Search  

 
Segmentation So far we have been putting the entire address space of each pro-
 

Summary: 14
Segmentation
So far we have been putting the entire address space of each pro-
cess in memory. With the base and bounds registers, the OS can
easily relocate processes to different parts of physical memory.
However, you might have noticed something interesting about
these address spaces of ours: there is a big chunk of "free" space
right in the middle, between the stack and the heap.
As you can imagine from Figure 14.1, although the space be-
tween the stack and heap is not being used by the process, it
is is still taking up physical memory when we perform dynamic
relocation of the entire address space. It also makes it quite hard
to run a program when the entire address space doesn't fit into
memory. And thus, a problem:
THE CRUX: HOW TO SUPPORT A LARGE ADDRESS SPACE
How do we support a large address space with (potentially)
a lot of free space between the stack and the heap? Note that
in our examples, with tiny (pretend) address spaces, the waste
doesn't seem too bad. Imagine, however, a 32-bit address space
(4 GB in size); a typical program will only use megabytes of

  

Source: Arpaci-Dusseau, Remzi - Department of Computer Sciences, Department of Computer Sciences, University of Wisconsin at Madison

 

Collections: Computer Technologies and Information Sciences