0% found this document useful (0 votes)
148 views

Week 04, Memory Management

The document discusses memory management techniques used in operating systems. It describes how early systems used batch processing and overlays to manage memory usage for programs. It then discusses multi-tasking systems using physical memory partitioning and the problems that arise. The key development was introducing virtual memory addresses which are translated to physical addresses, allowing processes to be moved in memory without their knowledge. Various memory allocation strategies like fixed partitions, variable partitions, and policies like first-fit are covered. The role of swapping processes between memory and disk is also summarized.

Uploaded by

nino sulit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
148 views

Week 04, Memory Management

The document discusses memory management techniques used in operating systems. It describes how early systems used batch processing and overlays to manage memory usage for programs. It then discusses multi-tasking systems using physical memory partitioning and the problems that arise. The key development was introducing virtual memory addresses which are translated to physical addresses, allowing processes to be moved in memory without their knowledge. Various memory allocation strategies like fixed partitions, variable partitions, and policies like first-fit are covered. The role of swapping processes between memory and disk is also summarized.

Uploaded by

nino sulit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 31

Memory Management

CS-502 Operating Systems


Fall 2007
(Slides include materials from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne and
from Modern Operating Systems, 2nd ed., by Tanenbaum)

CS-502 Fall 20 Memory Manag 1


07 ement
In the Beginning (prehistory)…

• Batch systems
– One program loaded in physical memory at a time
– Runs to completion
• If job larger than physical memory, use overlays
– Identify sections of program that
• Can run to a result
• Can fit into the available memory
– Add statement after result to load a new section
– Example: passes of a compiler
– Example: SAGE – North American Air Defense System

CS-502 Fall 20 Memory Manag 2


07 ement
Still near the Beginning (multi-tasking) …

• Multiple processes in physical memory at the


same time
– allows fast switching to a ready process
– Divide physical memory into multiple pieces –
partitioning
– Some modern real-time operating systems
• Partition requirements
– Protection – keep processes from smashing each other
– Fast execution – memory accesses can’t be slowed by
protection mechanisms
– Fast context switch – can’t take forever to setup
mapping of addresses

CS-502 Fall 20 Memory Manag 3


07 ement
Physical Memory
Empty
0x0000FFFF

Process 3

Process 2
Physical
address space

Process 1

0x00000000
E.g, OS360
OS Kernel

CS-502 Fall 20 Memory Manag 4


07 ement
Loading a Process

• Relocate all addresses relative to start of


partition
– See Linking and Loading
• Memory protection assigned by OS
– Block-by-block to physical memory
– Base and limit registers
• Once process starts
– Partition cannot be moved in memory
– Why?
CS-502 Fall 20 Memory Manag 5
07 ement
Physical Memory – Process 2 terminates
Empty
0x0001FFFF

Process 3

Empty
Physical
address space

Process 1

0x00000000
OS Kernel

CS-502 Fall 20 Memory Manag 6


07 ement
Problem

• What happens when Process 4 comes along


and requires space larger than the largest
empty partition?
• Wait
• Complex resource allocation problem for OS
• Potential starvation

CS-502 Fall 20 Memory Manag 7


07 ement
Physical Memory
Empty

Process 3

Process 4
Empty

Process 1

OS Kernel

CS-502 Fall 20 Memory Manag 8


07 ement
Solution

• Virtual Address: an address used by the


program that is translated by computer into
a physical address each time it is used
• Also called Logical Address

• When the program utters 0x00105C, …


• … the machine accesses 0x01605C

CS-502 Fall 20 Memory Manag 9


07 ement
Implementation
• Base and Limit registers
– Base automatically added to all addresses
– Limit checked on all memory references
– Introduced in minicomputers of early 1970s
• Loaded by OS at each context switch

Limit Reg Reloc Reg

yes Physical
CPU logical
< + Memory
physical
address no address

error

CS-502 Fall 20 Memory Manag 10


07 ement
Physical Memory
Empty
0x0003FFFF Limit
Process 3

Base
Empty
Physical
address space

Process 1

0x00000000
OS Kernel

CS-502 Fall 20 Memory Manag 11


07 ement
Advantages

• No relocation of program addresses at load time


• All addresses relative to zero!
• Built-in protection provided by Limit
• No physical protection per page or block
• Fast execution
• Addition and limit check at hardware speeds within each
instruction
• Fast context switch
• Need only change base and limit registers
• Partition can be suspended and moved at any time
• Process is unaware of change
• Potentially expensive for large processes due to copy costs!
CS-502 Fall 20 Memory Manag 12
07 ement
Physical Memory
0x0003FFFF
Process 4

Limit
Process 3
Physical
address space Base

Process 1

0x00000000
OS Kernel

CS-502 Fall 20 Memory Manag 13


07 ement
Definition

• Virtual Address Space:


– The address space in which a process or thread
“thinks”

– Address space with respect to which pointers,


code & data addresses, etc., are interpreted
– Separate and independent of physical address
space where things are actually stored

CS-502 Fall 20 Memory Manag 14


07 ement
Challenge – Memory Allocation

• Fixed partitions
• Variable partitions

CS-502 Fall 20 Memory Manag 15


07 ement
Partitioning Strategies – Fixed

• Fixed Partitions – divide memory into equal sized


pieces (except for OS)
– Degree of multiprogramming = number of partitions
– Simple policy to implement
• All processes must fit into partition space
• Find any free partition and load the process
• Problem – what is the “right” partition size?
– Process size is limited
– Internal Fragmentation – unused memory in a partition
that is not available to other processes

CS-502 Fall 20 Memory Manag 16


07 ement
Partitioning Strategies – Variable

• Idea: remove “wasted” memory that is not needed


in each partition
• Eliminating internal fragmentation
• Memory is dynamically divided into partitions
based on process needs
• Definition:
– Hole: a block of free or available memory
– Holes are scattered throughout physical memory
• New process is allocated memory from hole large
enough to fit it
CS-502 Fall 20 Memory Manag 17
07 ement
Variable Partitions
• More complex management problem
 Must track free and used memory
 Need data structures to do tracking
 What holes are used for a process?
 External fragmentation
 memory that is outside any partition and is too small to be usable by
any process

OS OS OS

process process process


1 1 1
process
process Process 2 Process 4 4
2 Terminates Starts
process process process
3 3 3

CS-502 Fall 20 Memory Manag 18


07 ement
Memory Allocation – Mechanism
• MM system maintains data about free and allocated
memory alternatives
– Bit maps – 1 bit per “allocation unit”
– Linked Lists – free list updated and coalesced when not allocated
to a process
• At swap-in or process create
– Find free memory that is large enough to hold the process
– Allocate part (or all) of memory to process and mark remainder as
free
• Compaction
– Moving things around so that holes can be consolidated
– Expensive in OS time

CS-502 Fall 20 Memory Manag 19


07 ement
Memory Management - Maps

• Part of memory with 5 processes, 3 holes


– tick marks show allocation units
– shaded regions are free
• Corresponding bit map
• Same information as a list
CS-502 Fall 20 Memory Manag 20
07 ement
Memory Management – Policies

• Policy examples
– First Fit: scan free list and allocate first hole that
is large enough – fast
– Next Fit: start search from end of last allocation
– Best Fit: find smallest hole that is adequate –
slower and lots of fragmentation
– Worst fit: find largest hole
– In general, First Fit is the winner

CS-502 Fall 20 Memory Manag 21


07 ement
Swapping and Scheduling
• Swapping
– Move process from memory to disk (swap space)
• Process is blocked or suspended
– Move process from swap space to big enough partition
• Process is ready
• Set up Base and Limit registers
– Memory Manager (MM) and Process scheduler work together
• Scheduler keeps track of all processes
• MM keeps track of memory
• Scheduler marks processes as swap-able and notifies MM to swap in
processes
• Scheduler policy must account for swapping overhead
• MM policy must account for need to have memory space for ready
processes
• More in Chapter 8 of Silbershatz

CS-502 Fall 20 Memory Manag 22


07 ement
Can we do better?

CS-502 Fall 20 Memory Manag 23


07 ement
User’s View of a Program

CS-502 Fall 20 Memory Manag 24


07 ement
Memory Management – beyond Partitions

• Can we improve memory utilization & performance


– Processes have distinct parts
• Code – program and maybe shared libraries
• Data – pre-allocated and heap
• Stack
– Solution – slightly more Memory Management hardware
• Multiple sets of “base and limit” registers
• Divide process into logical pieces called segments
• Advantages of segments
– Code segments don’t need to be swapped out and may be shared
– Stack and heap can be grown – may require segment swap
– With separate I and D spaces can have larger virtual address spaces
• “I” = Instruction (i.e., code, always read-only)
• “D” = Data (usually read-write)
CS-502 Fall 20 Memory Manag 25
07 ement
Logical View of Segmentation
1

4
1

3 2
4

user space physical memory space

CS-502 Fall 20 Memory Manag 26


07 ement
Segmentation

• Logical address consists of a pair:


<segment-number, offset>
• Segment table – maps two-dimensional
physical addresses; each table entry has:
– Base: contains the starting physical address
where the segments reside in memory.
– Limit: specifies the length of the segment.

CS-502 Fall 20 Memory Manag 27


07 ement
Segment Lookup

Segment register table


Index to segment
register table
physical memory
limit base
segment 0
segment # offset
segment 1
virtual address

segment 2
yes
<? + segment 3
no Physical
Address
raise
protection fault segment 4

CS-502 Fall 20 Memory Manag 28


07 ement
Segmentation

• Protection. With each entry in segment


table associate:
– validation bit = 0  illegal segment
– read/write/execute privileges
• Protection bits associated with segments;
code sharing occurs at segment level.
• Since segments vary in length, memory
allocation is a dynamic storage-allocation
problem
CS-502 Fall 20 Memory Manag 29
07 ement
Segmentation

• Common in early minicomputers


– Small amount of additional hardware – 4 or 8 segments
– Used effectively in classical Unix
• Good idea that has persisted and supported in
current hardware and OSs
– X86 supports segments
– Linux supports segments
• Still have external fragmentation of memory
• What is the next level of Memory Management
improvement?
– Next topic

CS-502 Fall 20 Memory Manag 30


07 ement
Questions?

CS-502 Fall 20 Memory Manag 31


07 ement

You might also like