Chapter 8: Main Memory: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition
Chapter 8: Main Memory: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 8: Memory Management
● Background
● Swapping
● Contiguous Memory Allocation
● Segmentation
● Paging
● Structure of the Page Table
● Example: The Intel 32 and 64-bit Architectures
● Example: ARM Architecture
Operating System Concepts – 9th Edition 8.2 Silberschatz, Galvin and Gagne ©2013
Objectives
Operating System Concepts – 9th Edition 8.3 Silberschatz, Galvin and Gagne ©2013
Background
Operating System Concepts – 9th Edition 8.4 Silberschatz, Galvin and Gagne ©2013
Base and Limit Registers
● A pair of base and limit registers define the logical address space
● CPU must check every memory access generated in user mode to
be sure it is between base and limit for that user
Operating System Concepts – 9th Edition 8.5 Silberschatz, Galvin and Gagne ©2013
Hardware Address Protection
Operating System Concepts – 9th Edition 8.6 Silberschatz, Galvin and Gagne ©2013
Address Binding
● Programs on disk, ready to be brought into memory to execute form an
input queue
● Without support, must be loaded into address 0000
● Inconvenient to have first user process physical address always at 0000
● How can it not be?
● Further, addresses represented in different ways at different stages of a
program’s life
● Source code addresses usually symbolic
● Compiled code addresses bind to relocatable addresses
4 i.e. “14 bytes from beginning of this module”
● Linker or loader will bind relocatable addresses to absolute addresses
4 i.e. 74014
● Each binding maps one address space to another
Operating System Concepts – 9th Edition 8.7 Silberschatz, Galvin and Gagne ©2013
Binding of Instructions and Data to Memory
Operating System Concepts – 9th Edition 8.8 Silberschatz, Galvin and Gagne ©2013
Multistep Processing of a User Program
Operating System Concepts – 9th Edition 8.9 Silberschatz, Galvin and Gagne ©2013
Logical vs. Physical Address Space
Operating System Concepts – 9th Edition 8.10 Silberschatz, Galvin and Gagne ©2013
Memory-Management Unit (MMU)
● Hardware device that at run time maps virtual to physical
address
● Many methods possible, covered in the rest of this chapter
● To start, consider simple scheme where the value in the
relocation register is added to every address generated by a
user process at the time it is sent to memory
● Base register now called relocation register
● MS-DOS on Intel 80x86 used 4 relocation registers
● The user program deals with logical addresses; it never sees the
real physical addresses
● Execution-time binding occurs when reference is made to
location in memory
● Logical address bound to physical addresses
Operating System Concepts – 9th Edition 8.11 Silberschatz, Galvin and Gagne ©2013
Dynamic relocation using a relocation register
Operating System Concepts – 9th Edition 8.12 Silberschatz, Galvin and Gagne ©2013
Dynamic Linking
● Static linking – system libraries and program code combined by
the loader into the binary program image
● Dynamic linking –linking postponed until execution time
● Small piece of code, stub, used to locate the appropriate
memory-resident library routine
● Stub replaces itself with the address of the routine, and
executes the routine
● Operating system checks if routine is in processes’ memory
address
● If not in address space, add to address space
● Dynamic linking is particularly useful for libraries
● System also known as shared libraries
● Consider applicability to patching system libraries
● Versioning may be needed
Operating System Concepts – 9th Edition 8.13 Silberschatz, Galvin and Gagne ©2013
Swapping
● A process can be swapped temporarily out of memory to a
backing store, and then brought back into memory for
continued execution
● Total physical memory space of processes can exceed
physical memory
● Backing store – fast disk large enough to accommodate
copies of all memory images for all users; must provide direct
access to these memory images
● Roll out, roll in – swapping variant used for priority-based
scheduling algorithms; lower-priority process is swapped out so
higher-priority process can be loaded and executed
● Major part of swap time is transfer time; total transfer time is
directly proportional to the amount of memory swapped
● System maintains a ready queue of ready-to-run processes
which have memory images on disk
Operating System Concepts – 9th Edition 8.14 Silberschatz, Galvin and Gagne ©2013
Swapping (Cont.)
● Does the swapped out process need to swap back in to same
physical addresses?
● Depends on address binding method
● Plus consider pending I/O to / from process memory space
● Modified versions of swapping are found on many systems (i.e.,
UNIX, Linux, and Windows)
● Swapping normally disabled
● Started if more than threshold amount of memory allocated
● Disabled again once memory demand reduced below
threshold
Operating System Concepts – 9th Edition 8.15 Silberschatz, Galvin and Gagne ©2013
Schematic View of Swapping
Operating System Concepts – 9th Edition 8.16 Silberschatz, Galvin and Gagne ©2013
Context Switch Time including Swapping
Operating System Concepts – 9th Edition 8.17 Silberschatz, Galvin and Gagne ©2013
Context Switch Time and Swapping (Cont.)
Operating System Concepts – 9th Edition 8.18 Silberschatz, Galvin and Gagne ©2013
Contiguous Allocation
● Main memory must support both OS and user processes
● Limited resource, must allocate efficiently
● Contiguous allocation is one early method
● Main memory usually into two partitions:
● Resident operating system, usually held in low memory with
interrupt vector
● User processes then held in high memory
● Each process contained in single contiguous section of
memory
Operating System Concepts – 9th Edition 8.19 Silberschatz, Galvin and Gagne ©2013