Skip to main content

Section 3.3 Segmentation and Free Space management

This reading consists of 2 chapters. Chapter 16 discusses the segmentation approach to virtual memory management, while Chapter 17 discusses issues related to the system’s management of the free memory space.
Start by reading the Segmentation chapter start section 16.1.

Practice 3.3.1.

What is the problem that segmentation attempts to solve?
  • The memory needed by a process may be too much to fit within the physical memory of the system.
  • Many processes need to use the memory at the same time.
  • Large parts of a process address space go unused and allocating space for them is wasteful.

Practice 3.3.2.

    True or False: All segments must have different Base addresses, and must have the same bounds/size.
  • True.

  • False.

Practice 3.3.3.

Read section 16.2. Describes a standard way of dividing the address space into segments.
Read sections 16.3 and 16.4. These describe enhanced information we record in segment tables, and why.

Practice 3.3.4.

Which of the following are the benefits of using protection bits in the segment table?
  • We can use the available memory more effectively.
  • We can use it to deal with the fact that the stack grows on the opposite direction.
  • We can use it to share code between different processes.
Read section 16.6, about the support needed by the OS.

Practice 3.3.5.

What are the key concerns that the OS must manage in order to implement segmentation?
  • Setting up the segmentation tables on each context switch.
  • Handle requests to grow segments beyond their original limits.
  • Manage the free space in physical memory.
Read 16.7, summary.
Read sections 17.1 and 172. Key things to pick up:
  • What are the "splitting" and "coalescing" actions?
  • What is the purpose of the "header"? What information is stored in it?
  • How does the allocator manage to keep track of the "free list" without using any extra memory?
Read section 17.3, about different strategies used in deciding how to pick a chunk to allocate next.
Optional reading: 17.4, 17.5
You have attempted of activities on this page.