0% found this document useful (0 votes)
28 views15 pages

Lec32 Swapping

The document discusses memory management techniques in operating systems. It covers topics like internal fragmentation, swapping, compaction, and using bitmaps to track allocated and free memory. Swapping involves writing processes to disk to free up memory space for other processes.

Uploaded by

faheem tariq
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)
28 views15 pages

Lec32 Swapping

The document discusses memory management techniques in operating systems. It covers topics like internal fragmentation, swapping, compaction, and using bitmaps to track allocated and free memory. Swapping involves writing processes to disk to free up memory space for other processes.

Uploaded by

faheem tariq
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/ 15

Operating System

Spring
Reference Material
• Chapter 4 Memory Management
 Modern Operating systems
 2nd edition
 Tanenbaum

2
Internal Fragmentation
Memory that is internal to a
partition but not being used 800K
B 4
Partition
Internal Fragmentation 700K

A
Partition 3

Internal Fragmentation
400K

Partition 2

200K
Partition 1
Operating 100K
System 0
3
Swapping
• If not enough space in memory for all the
currently active processes
• Excess processes must be kept on disk
• Fully  Swapping
• Partially  Virtual Memory
• Example of Swapping
 Round Robin Scheduling
• When the quantum expires
 Swap out the currently running process
 Swap in another process to freed memory space
4
Swapping
• Another Example:
 Priority based scheduling
• If a higher priority process arrives
 Swap out a lower priority process
 Swap in the higher priority process
• When the higher priority process exits
 Swap in the lower priority process

5
Swapping

The number, size


C and location of
B D the partition is
B decided
A
dynamically.
C A A
D
Operating
System

D is of Higher Priority, A is of Lower Priority!!!


B exits now, Swap in A 6
Swapping
Its possible to combine all the holes into one big hole
This is called COMPACTION EXTERNAL
FRAGMENTATION
E Memory External to all
partitions is Fragmented
C Enough total memory
exists to satisfy the
request
A But is not Contiguous
E Swapping has
D created Holes
Operating
System
D exits now
No Space for E !!!
Now E has enough space 7
Swapping
• Compaction involves CPU overhead
• If addresses are not generated relative to the
partition location:
 Then Compaction is not possible
• How much memory should be allocated for a
process?
 If all the memory is allocated statically in a program
 Then, OS knows exactly the amount of memory to be
allocated: executable code + variables
• However, if memory is allocated dynamically (say
using new) 8
Swapping
• Problem may occur whenever a process tries to grow
• If a hole is adjacent to the growing process then it
can be allowed to grow
• If another process is adjacent to the growing process,
then
 The growing process should be moved to a larger hole
 If a larger hole is not available, then, one or more
processes should be swapped out
 If a process cannot be swapped out (say, there is not
enough space on disk
• The growing process has to wait
• Or should be killed!!! 9
Swapping
• If most of the processes grow as they run,
• It is better to allocate a little extra memory for a
process
Room for growth
B Actual in use

Room for growth


A Actual in use
Operating
System
10
Swapping
• If processes have two growing segments
 Data
• (as heap for dynamically allocated variables)
 Stack B-Stack
•The memory can be used Room for growth
B-Data
by either of the two B-Program
segments
•If it runs out the process
either A-Stack
Has to be moved to a larger Room for growth
A-Data
hole A-Program
Operating
Or swapped out System 11
How to keep track of Memory
• We need to keep track of
 Allocated memory
 Free memory
• Memory management with bitmaps
• Memory management with linked lists

12
Memory management with
bitmaps
• Memory is divided up into allocation units
 Few words
 Or several kilobytes

. .A
. . . .. . B C D E
8 16 24
1
0 1
0 1
0 1
0 1
0 0 0 0
0
1 0
1 0
1 0
1 0
1 0
1 0
1 0
1
0
1 0
1 0 0 0
1 0
1 0
1 0
1
0
1 0
1 0
1 0
1 0
1 0 0 0
... … …

13
Memory management with
bitmaps
• Size of allocation unit is important
• Smaller allocation unit
 Larger bitmap required
• Larger allocation unit
 Smaller bitmap required
 More memory will be wasted
• If the process size is not an exact multiple of the
allocation unit

14
Memory management with
bitmaps
• To bring a k unit process in memory
• Search for a k run consecutive 0 bits in the
map
• Search can be slow
• Since, k run may cross word boundaries
1
0 1
0 1
0 1
0 1
0 0 0 0
Find run of length = 3
0
1 0
1 0
1 0
1 0
1 0
1 0 0
0 0 0
1 0
1 0
1 0
1 0
1 0
1
Find run of length = 4 0
1 0
1 0
1 0
1 0
1 0 0 0
... … …

15

You might also like