Professional Documents
Culture Documents
Lec 9 - CH 8
Lec 9 - CH 8
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
Program must be brought (from disk) into memory and placed within a
process for it to be run
Main memory and registers are only storage CPU can access directly
Main memory can take many cycles, causing a stall (processor does not
have the data required to complete the instruction that it is executing).
Cache sits between main memory and CPU registers
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
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 called the memory-management unit (MMU)
that maps virtual address to physical address at run time
The user program deals with logical addresses; it never sees the
real physical addresses
Operating System Concepts – 9th Edition 8.11 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
Operating System Concepts – 9th Edition 8.12 Silberschatz, Galvin and Gagne ©2013
Swapping (Cont.)
If next processes to be put on CPU is not in memory, need to
swap out a process and swap in target process
Context switch time can then be very high
100MB process swapping to hard disk with transfer rate of
50MB/sec
Swap out time of 2000 ms
Plus swap in of same sized process
Total context switch swapping component time of 4000ms (4
seconds)
Can reduce if reduce size of memory swapped – by knowing how
much memory really being used
Operating System Concepts – 9th Edition 8.13 Silberschatz, Galvin and Gagne ©2013
Schematic View of Swapping
Operating System Concepts – 9th Edition 8.14 Silberschatz, Galvin and Gagne ©2013
Context Switch Time and Swapping (Cont.)
Operating System Concepts – 9th Edition 8.15 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.17 Silberschatz, Galvin and Gagne ©2013
Contiguous Allocation (Cont.)
MEMORY PROTECTION:
Relocation registers used to protect user processes from each
other, and from changing operating-system code and data
Operating System Concepts – 9th Edition 8.18 Silberschatz, Galvin and Gagne ©2013
Hardware Support for Relocation and Limit Registers
Operating System Concepts – 9th Edition 8.19 Silberschatz, Galvin and Gagne ©2013
Multiple-partition allocation
Multiple-partition allocation
Degree of multiprogramming limited by number of partitions
Variable-partition sizes for efficiency (sized to a given process’ needs)
Hole – block of available memory; holes of various size are scattered
throughout memory
When a process arrives, it is allocated memory from a hole large enough to
accommodate it
Process exiting frees its partition, adjacent free partitions combined
Operating system maintains information about:
a) allocated partitions b) free partitions (hole)
Operating System Concepts – 9th Edition 8.20 Silberschatz, Galvin and Gagne ©2013
Dynamic Storage-Allocation Problem
How to satisfy a request of size n from a list of free holes?
Worst-fit: Allocate the largest hole; must also search entire list
Produces the largest leftover hole
First-fit and best-fit better than worst-fit in terms of speed and storage
utilization
Operating System Concepts – 9th Edition 8.21 Silberschatz, Galvin and Gagne ©2013
Activity
Given five memory partitions of 100 KB, 500 KB, 200 KB, 300 KB, and 600
KB (in order), how would each of the first-fit, best-fit, and worst-fit
algorithms place processes of 212 KB, 417 KB, 112 KB, and 426 KB (in
order)? Which algorithm makes the most efficient use of memory?
Operating System Concepts – 9th Edition 8.22 Silberschatz, Galvin and Gagne ©2013
Activity Answer
First-fit:
212K is put in 500K partition (remaining new partition 288K)
417K is put in 600K partition
112K is put in 288K partition (new partition 288K = 500K - 212K)
426K must wait
Best-fit:
212K is put in 300K partition
417K is put in 500K partition
112K is put in 200K partition
426K is put in 600K partition
Operating System Concepts – 9th Edition 8.23 Silberschatz, Galvin and Gagne ©2013
Activity Answer
Worst-fit:
212K is put in 600K partition
417K is put in 500K partition
112K is put in 388K partition
426K must wait
In this example, Best-fit turns out to be the best.
Operating System Concepts – 9th Edition 8.24 Silberschatz, Galvin and Gagne ©2013
Fragmentation
External Fragmentation – total memory space exists to satisfy a
request, but it is not contiguous
Operating System Concepts – 9th Edition 8.25 Silberschatz, Galvin and Gagne ©2013
Fragmentation (Cont.)
Operating System Concepts – 9th Edition 8.26 Silberschatz, Galvin and Gagne ©2013
Fragmentation (Cont.)
A possible solution to the external-fragmentation problem is to permit the logical address space of the
processes to be noncontiguous.
Allow a process to be allocated physical memory wherever such memory is
available.
Two techniques achieve this solution:
Segmentation
Paging
Operating System Concepts – 9th Edition 8.27 Silberschatz, Galvin and Gagne ©2013