Ch8 Memory Management
Ch8 Memory Management
Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009
Chapter 8: Memory Management
Background
Swapping
Contiguous Memory Allocation
Paging
Structure of the Page Table
Segmentation
Operating System Concepts – 8th Edition 8.2 Silberschatz, Galvin and Gagne ©2009
Objectives
Operating System Concepts – 8th Edition 8.3 Silberschatz, Galvin and Gagne ©2009
Memory
1. Primary Memory
2. Secondary Memory
Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009
Random Access Memory(RAM) ,is a volatile memory that loses
its contents when the computer or hardware device losses
power.
Read Only Memory(ROM), is a non-volatile memory, sometimes
abbreviated as NVRAM, is a memory that keeps its contents
even if the power is lost.
Computer uses special ROM called BIOS(Basic Input Output
System) which stores the software needed to access computer
hardware such as hard disk and then load an operating system
into RAM and start to execute it.
Operating System Concepts – 8th Edition 8.5 Silberschatz, Galvin and Gagne ©2009
PROM: In which you store a program. But once the PROM has
been used , you cannot wipe it clean and use it to store
something else. E.g. CD-R
Operating System Concepts – 8th Edition 8.6 Silberschatz, Galvin and Gagne ©2009
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
Operating System Concepts – 8th Edition 8.7 Silberschatz, Galvin and Gagne ©2009
Base and Limit Registers
A pair of base and limit registers define the logical address space
Operating System Concepts – 8th Edition 8.8 Silberschatz, Galvin and Gagne ©2009
Hardware Address Protection with Base and Limit Registers
Operating System Concepts – 8th Edition 8.9 Silberschatz, Galvin and Gagne ©2009
Multiprogramming with fixed partitions (Jun 2016,Dec 2018)
Multiprogramming with Variable Partitions (Jun 2016)
Fragmentation (Dec 2018)
Operating System Concepts – 8th Edition 8.10 Silberschatz, Galvin and Gagne ©2009
Fixed Partitioning:
This is the oldest and simplest
technique used to put more than one
process in the main memory.
As it is a contiguous allocation,
hence no spanning is allowed. Here
partitions are made before execution
or during system configure
Operating System Concepts – 8th Edition 8.11 Silberschatz, Galvin and Gagne ©2009
Advantages of Fixed Partitioning –
Easy to implement:
Algorithms needed to implement Fixed Partitioning are easy to
implement. It simply requires putting a process into a certain partition
without focusing on the emergence of Internal and External
Fragmentation.
Little OS overhead:
Processing of Fixed Partitioning requires lesser excess and indirect
computational power.
Operating System Concepts – 8th Edition 8.12 Silberschatz, Galvin and Gagne ©2009
Disadvantages of Fixed Partitioning –
Internal Fragmentation:
Main memory use is inefficient. Any program, no matter how small,
occupies an entire partition. This can cause internal fragmentation.
External Fragmentation:
The total unused space (as stated above) of various partitions cannot be
used to load the processes even though there is space available but not
in the contiguous form (as spanning is not allowed).
Operating System Concepts – 8th Edition 8.13 Silberschatz, Galvin and Gagne ©2009
Disadvantages of Fixed Partitioning –
Operating System Concepts – 8th Edition 8.14 Silberschatz, Galvin and Gagne ©2009
Variable Partitioning –
It is a part of Contiguous allocation technique. It
is used to alleviate the problem faced by Fixed
Partitioning. In contrast with fixed partitioning,
partitions are not made before the execution or
during system configure.
Various features associated with variable
Partitioning-
Initially RAM is empty and partitions are made
during the run-time according to process’s need
instead of partitioning during system configure.
The size of partition will be equal to incoming
process.
The partition size varies according to the need of
the process so that the internal fragmentation
can be avoided to ensure efficient utilization of
RAM.
Number of partitions in RAM is not fixed and
depends on the number of incoming process and
Main Memory’s size.
Operating System Concepts – 8th Edition 8.15 Silberschatz, Galvin and Gagne ©2009
Advantages of Variable Partitioning –
No Internal Fragmentation:
In variable Partitioning, space in main memory is allocated strictly according to the
need of process, hence there is no case of internal fragmentation. There will be no
unused space left in the partition.
No restriction on Degree of Multiprogramming:
More number of processes can be accommodated due to absence of internal
fragmentation. A process can be loaded until the memory is empty.
No Limitation on the size of the process:
In Fixed partitioning, the process with the size greater than the size of the largest
partition could not be loaded and process can not be divided as it is invalid in
contiguous allocation technique. Here, In variable partitioning, the process size
can’t be restricted since the partition size is decided according to the process
size.
Operating System Concepts – 8th Edition 8.16 Silberschatz, Galvin and Gagne ©2009
Disadvantages of Variable Partitioning –
Difficult Implementation:
Implementing variable Partitioning is difficult as compared to Fixed Partitioning as it
involves allocation of memory during run-time rather than during system configure.
External Fragmentation:
There will be external fragmentation inspite of absence of internal fragmentation.
Operating System Concepts – 8th Edition 8.17 Silberschatz, Galvin and Gagne ©2009
Address Binding(Dec 2022)
Inconvenient to have first user process physical address always at 0000
Operating System Concepts – 8th Edition 8.18 Silberschatz, Galvin and Gagne ©2009
Binding of Instructions and Data to Memory
Operating System Concepts – 8th Edition 8.19 Silberschatz, Galvin and Gagne ©2009
Multistep Processing of a User Program
Operating System Concepts – 8th Edition 8.20 Silberschatz, Galvin and Gagne ©2009
Logical vs. Physical Address Space
Logical and physical addresses are the same in compile-time and load-time
address-binding schemes; logical (virtual) and physical addresses differ in
execution-time address-binding scheme
Logical address space is the set of all logical addresses generated by a
program
Physical address space is the set of all physical addresses generated by a
program
Operating System Concepts – 8th Edition 8.21 Silberschatz, Galvin and Gagne ©2009
Memory-Management Unit (MMU) Dec 2018
The run time mapping from virtual to physical addresses is done by a hardware device
called the Memory management unit(MMU).
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 – 8th Edition 8.22 Silberschatz, Galvin and Gagne ©2009
Dynamic relocation using a
relocation register
Operating System Concepts – 8th Edition 8.23 Silberschatz, Galvin and Gagne ©2009
So we have two different types of addresses: Logical addresses (in the range 0 to
max) and Physical addresses (in the range R + 0 to R + max for a base value R).
The user generate only Logical addresses and thinks that the process runs in location
0 to max.
Operating System Concepts – 8th Edition 8.24 Silberschatz, Galvin and Gagne ©2009
Dynamic Loading
Useful when large amounts of code are needed to handle infrequently occurring
cases
Operating System Concepts – 8th Edition 8.25 Silberschatz, Galvin and Gagne ©2009
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
Operating System Concepts – 8th Edition 8.26 Silberschatz, Galvin and Gagne ©2009
Memory Allocation Preliminaries:
Data structure used by Compiler and Operating System can be classified into the following categories.
1. One-dimensional Array
2. Linked List
3. Stack
4. Queue
1. Tree
2. Graph
Operating System Concepts – 8th Edition 8.27 Silberschatz, Galvin and Gagne ©2009
Swapping (Dec 2010, Dec 2012,Jun 2015,Jan 2016,Nov 2016, June 2017,
Nov 2017)
Operating System Concepts – 8th Edition 8.28 Silberschatz, Galvin and Gagne ©2009
Backing store – fast disk large enough to accommodate copies of all
memory images for all users; must provide direct access to these
memory images
Operating System Concepts – 8th Edition 8.29 Silberschatz, Galvin and Gagne ©2009
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.
Operating System Concepts – 8th Edition 8.30 Silberschatz, Galvin and Gagne ©2009
System maintains a ready queue of ready-to-run processes which have memory
images on disk
Does the swapped out process need to swap back in to same physical addresses?
- Dynamic relocation of processes.
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 – 8th Edition 8.31 Silberschatz, Galvin and Gagne ©2009
Schematic View of Swapping
Operating System Concepts – 8th Edition 8.32 Silberschatz, Galvin and Gagne ©2009
Context Switch Time including Swapping
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 2008 ms
Plus swap in of same sized process
Total context switch swapping component time of 4016ms (> 4 seconds)
Can reduce if reduce size of memory swapped – by knowing how much memory
really being used
System calls to inform OS of memory use via request memory and release
memory
Operating System Concepts – 8th Edition 8.33 Silberschatz, Galvin and Gagne ©2009
Memory Partitioning
Main objective of memory management is to bring programs into memory
for execution by the processor.
Operating System Concepts – 8th Edition 8.34 Silberschatz, Galvin and Gagne ©2009
Contiguous Allocation
Relocation registers used to protect user processes from each other, and from
changing operating-system code and data
Base register contains value of smallest physical address
Limit register contains range of logical addresses – each logical address
must be less than the limit register
MMU maps logical address dynamically
Operating System Concepts – 8th Edition 8.35 Silberschatz, Galvin and Gagne ©2009
Hardware Support for Relocation
and Limit Registers
Operating System Concepts – 8th Edition 8.36 Silberschatz, Galvin and Gagne ©2009
Contiguous Allocation (Cont.) (Jan 16)
Multiple-partition allocation
Degree of multiprogramming limited by number of partitions
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)
OS OS OS OS
Operating System Concepts – 8th Edition 8.37 Silberschatz, Galvin and Gagne ©2009
Memory Partition:
Processes:
Operating System Concepts – 8th Edition 8.38 Silberschatz, Galvin and Gagne ©2009
Dynamic Storage-Allocation Problem
First-fit: Allocate the first hole that is big enough
Scans the list until it finds a hole big enough to accommodate the
requesting process.
It is fast as it searches as little as possible.
It begins traversing the list from the beginning and allocates memory
from the first hole it encounters large enough to satisfy the request.
The First-fit strategy will allocate the 13KB block to the process.
Operating System Concepts – 8th Edition 8.39 Silberschatz, Galvin and Gagne ©2009
Best-fit: Refers to searching the list of free holes and then places a process
in the smallest block of free memory available in which it gets fit.
Allocate the smallest hole that is big enough; must search entire list, unless
ordered by size
Produces the smallest leftover hole
The best-fit strategy will allocate the 11KB block to the process.
Operating System Concepts – 8th Edition 8.40 Silberschatz, Galvin and Gagne ©2009
Worst-fit: Refers to placing of process in the largest block of free
memory available.
- Allocate the largest hole; must also search entire list
Produces the largest leftover hole
Example: Suppose a process requests 10KB of memory and the
memory
manager currently has a list of unallocated blocks of 7KB, 13KB, 17KB,
11KB and 15KB Blocks.
The Worst-fit strategy will allocate the 17KB block to the process.
Among it 10KB
block used by the process and 7KB left for future use.
Operating System Concepts – 8th Edition 8.41 Silberschatz, Galvin and Gagne ©2009
Next-fit : It is almost same as First fit. Unlike First fit , it keeps information
of the location where it has left off.
It coverts the list into a circular list with the last block pointing
to the pointer to the first free one.
Operating System Concepts – 8th Edition 8.42 Silberschatz, Galvin and Gagne ©2009
Example
Given five memory partitions of 100Kb, 500Kb, 200Kb, 300Kb,
600Kb (in order), how would 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 – 8th Edition 8.43 Silberschatz, Galvin and Gagne ©2009
First-fit:
Operating System Concepts – 8th Edition 8.44 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 8.45 Silberschatz, Galvin and Gagne ©2009
Worst-fit:
Operating System Concepts – 8th Edition 8.46 Silberschatz, Galvin and Gagne ©2009
Fragmentation(Nov 2017, May 2018, Dec 2018)
External Fragmentation – total memory space exists to satisfy a request, but it
is not contiguous
Operating System Concepts – 8th Edition 8.47 Silberschatz, Galvin and Gagne ©2009
Fragmentation (Cont.)
Reduce external fragmentation by compaction
Shuffle memory contents to place all free memory together in one large block
Compaction is possible only if relocation is dynamic, and is done at execution
time
I/O problem
Latch job in memory while it is involved in I/O
Do I/O only into OS buffers
Operating System Concepts – 8th Edition 8.48 Silberschatz, Galvin and Gagne ©2009
Paging
Paging is a memory management scheme that permits the
physical address space of a process to be non contiguous.
Operating System Concepts – 8th Edition 8.49 Silberschatz, Galvin and Gagne ©2009
Paging (June 2010,Dec 2010,May 2019,May 2018,Dec 2018)
Physical address space of a process can be noncontiguous;
process is allocated physical memory whenever the later is
available
Divide physical memory into fixed-sized blocks called frames
Size is power of 2, between 512 bytes and 16 Mbytes
Divide logical memory into blocks of same size called pages
Keep track of all free frames
To run a program of size N pages, need to find N free frames and
load program
Set up a page table to translate logical to physical addresses
Backing store likewise split into pages
Still have Internal fragmentation
Operating System Concepts – 8th Edition 8.50 Silberschatz, Galvin and Gagne ©2009
Address Translation Scheme
p d
m-n n
Operating System Concepts – 8th Edition 8.51 Silberschatz, Galvin and Gagne ©2009
Paging Hardware
Operating System Concepts – 8th Edition 8.52 Silberschatz, Galvin and Gagne ©2009
Paging Model of Logical and Physical Memory
Operating System Concepts – 8th Edition 8.53 Silberschatz, Galvin and Gagne ©2009
Paging Example
Logical address 0 is page 0.
n=2 and m=4 16-byte Logical Address Space and 4-byte size of pages
Operating System Concepts – 8th Edition 8.54 Silberschatz, Galvin and Gagne ©2009
Paging (Cont.)
Calculating internal fragmentation
Page size = 2,048 bytes
Process size = 72,766 bytes
35 pages + 1,086 bytes
Internal fragmentation of 2,048 - 1,086 = 962 bytes
Worst case fragmentation = 1 frame – 1 byte
On average fragmentation = 1 / 2 frame size
So small frame sizes desirable?
But each page table entry takes memory to track
Page sizes growing over time
Solaris supports two page sizes – 8 KB and 4 MB
Process view and physical memory now very different
By implementation process can only access its own memory
Operating System Concepts – 8th Edition 8.55 Silberschatz, Galvin and Gagne ©2009
Free Frames
Operating System Concepts – 8th Edition 8.56 Silberschatz, Galvin and Gagne ©2009
Implementation of Page Table
Page table is kept in main memory
The two memory access problem can be solved by the use of a special fast-lookup hardware
cache called associative memory or translation look-aside buffers (TLBs)
The TLB is associative, high speed memory.
Some TLBs store address-space identifiers (ASIDs) in each TLB entry – uniquely identifies
each process to provide address-space protection for that process
Otherwise need to flush at every context switch
Operating System Concepts – 8th Edition 8.57 Silberschatz, Galvin and Gagne ©2009
Associative Memory
Associative memory – parallel search
Page # Frame #
Operating System Concepts – 8th Edition 8.58 Silberschatz, Galvin and Gagne ©2009
Paging Hardware With TLB (Nov 2016,June 2017,Dec 2018)
Operating System Concepts – 8th Edition 8.59 Silberschatz, Galvin and Gagne ©2009
Effective Access Time
Associative Lookup = time unit
Hit ratio =
Hit ratio – percentage of times that a page number is found in the
TLB is called the hit ratio.
Consider = 80%, An 80% hit ratio means that we find the desired
page number in the TLB 80% of the time. If it takes 20 nanoseconds
to search the TLB( = 20ns) and 100ns for memory access, than a
mapped-memory access takes 120 nanoseconds when the page
number is in the TLB.
If we fail to find the page number in the TLB (20 nanoseconds), then
we must first access memory for the page table and frame number
(100 nanoseconds) and then access the desired byte in memory
(100ns), for total of 220ns.
Operating System Concepts – 8th Edition 8.60 Silberschatz, Galvin and Gagne ©2009
Effective Access Time (EAT)
Consider = 80%, = 20ns for TLB search, 100ns for memory access
EAT = 0.80 x 120 + 0.20 x 220 = 140ns
Consider slower memory but better hit ratio -> = 98%, = 20ns for TLB
search, 140ns for memory access
EAT = 0.98 x 160 + 0.02 x 300 = 162.8ns
Operating System Concepts – 8th Edition 8.61 Silberschatz, Galvin and Gagne ©2009
Memory Protection
Memory protection implemented by associating protection bit with each frame to indicate if
read-only or read-write access is allowed
Can also add more bits to indicate page execute-only, and so on
Memory Protection:
Memory protection in paged environment is accomplished by these protection bits.
For example , there might be three bits in protection bits in protected field.
Bit Position Information
0 Read only Page
1 Write-only Page
2 Execute-only
Operating System Concepts – 8th Edition 8.62 Silberschatz, Galvin and Gagne ©2009
Valid (v) or Invalid (i)
Bit In A Page Table
Operating System Concepts – 8th Edition 8.63 Silberschatz, Galvin and Gagne ©2009
Shared Pages
An advantage of paging is the possibility of sharing common code. This
consideration is particularly important in time-sharing environment.
Shared code
One copy of read-only (reentrant code or Pure Code) code shared among
processes (i.e., text editors, compilers, window systems)
Similar to multiple threads sharing the same process space
Also useful for inter process communication if sharing of read-write pages is
allowed
Operating System Concepts – 8th Edition 8.64 Silberschatz, Galvin and Gagne ©2009
Shared Pages(cont…)
Consider a system that supports 40 users, each of whom execute a text editor. If the
text editor consists of 150KB of code and 50KB of data space, we need 8000KB to
support the 40 users.
If the code is reentrant code (or pure code), however, it can be shared, as shown in
figure.
Here we see a three-page editor –each page 50KB in size, being shared among three
processes.
Operating System Concepts – 8th Edition 8.65 Silberschatz, Galvin and Gagne ©2009
Shared Pages Example
Operating System Concepts – 8th Edition 8.66 Silberschatz, Galvin and Gagne ©2009
Structure of the Page Table
Memory structures for paging can get huge using straight-forward methods
Consider a 32-bit logical address space as on modern computers
Page size of 4 KB (4096 bytes =212 )
Page table would have 1 million(10 lacs) entries (232 / 212)
Hierarchical Paging
Operating System Concepts – 8th Edition 8.67 Silberschatz, Galvin and Gagne ©2009
Hierarchical Page Tables
Operating System Concepts – 8th Edition 8.68 Silberschatz, Galvin and Gagne ©2009
Two-Level Page-Table Scheme
Operating System Concepts – 8th Edition 8.69 Silberschatz, Galvin and Gagne ©2009
Two-Level Paging Example
A logical address (on 32-bit machine with 1K page size) is divided into:
a page number consisting of 22 bits
a page offset consisting of 10 bits
Since the page table is paged, the page number is further divided into:
a 12-bit page number
a 10-bit page offset
p1 p2 d
12 10 10
where p1 is an index into the outer page table, and p2 is the displacement within the page of the
inner page table
Known as forward-mapped page table
Operating System Concepts – 8th Edition 8.70 Silberschatz, Galvin and Gagne ©2009
Address-Translation Scheme
Operating System Concepts – 8th Edition 8.71 Silberschatz, Galvin and Gagne ©2009
64-bit Logical Address Space
Even two-level paging scheme not sufficient
If page size is 4 KB (212)
Then page table has 252 entries
If two level scheme, inner page tables could be 210 4-byte entries
Address would look like
outer page inner page page offset
p1 p2 d
42 10 12
Operating System Concepts – 8th Edition 8.72 Silberschatz, Galvin and Gagne ©2009
Three-level Paging Scheme
Operating System Concepts – 8th Edition 8.73 Silberschatz, Galvin and Gagne ©2009
Hashed Page Tables
Each element contains (1) the virtual page number (2) the value of the
mapped page frame (3) a pointer to the next element
Virtual page numbers are compared in this chain searching for a match
If a match is found, the corresponding physical frame is extracted
Operating System Concepts – 8th Edition 8.74 Silberschatz, Galvin and Gagne ©2009
Hashed Page Table
Operating System Concepts – 8th Edition 8.75 Silberschatz, Galvin and Gagne ©2009
Inverted Page Table
Rather than each process having a page table and keeping track of all possible logical
pages, track all physical pages
Entry consists of the virtual address of the page stored in that real memory
location, with information about the process that owns that page
Decreases memory needed to store each page table, but increases time needed
to search the table when a page reference occurs
Use hash table to limit the search to one — or at most a few — page-table entries
TLB can accelerate access
Operating System Concepts – 8th Edition 8.76 Silberschatz, Galvin and Gagne ©2009
Inverted Page Table Architecture
Operating System Concepts – 8th Edition 8.77 Silberschatz, Galvin and Gagne ©2009
Advantages of Paging:
Advantages:
1.Paging eliminates fragmentation.
2.Supports higher degree of multiprogramming.
3.Paging increase memory and processor utilization.
4.Compaction overhead required for the relocatable partition scheme
is also eliminated.
Disadvantages:
5.Page address mapping hardware usually increases the cost of
computer.
2.Memory must be used to store the various table like page table,
memory map table etc.
3.Some memory will still be unused if the number of available
block is not sufficient for the address space of the jobs to be run.
Operating System Concepts – 8th Edition 8.78 Silberschatz, Galvin and Gagne ©2009
Segmentation
Operating System Concepts – 8th Edition 8.79 Silberschatz, Galvin and Gagne ©2009
User’s View of a Program
Operating System Concepts – 8th Edition 8.80 Silberschatz, Galvin and Gagne ©2009
Logical View of Segmentation
1
4
1
3 2
4
Operating System Concepts – 8th Edition 8.81 Silberschatz, Galvin and Gagne ©2009
Segmentation Architecture
Logical address consists of a two tuple:
<segment-number, offset>,
Operating System Concepts – 8th Edition 8.82 Silberschatz, Galvin and Gagne ©2009
Segmentation Architecture (Cont.)
Protection
With each entry in segment table associate:
validation bit = 0 illegal segment
read/write/execute privileges
Operating System Concepts – 8th Edition 8.83 Silberschatz, Galvin and Gagne ©2009
Segmentation Hardware
Operating System Concepts – 8th Edition 8.84 Silberschatz, Galvin and Gagne ©2009
Example of Segmentation
Operating System Concepts – 8th Edition 8.85 Silberschatz, Galvin and Gagne ©2009
Difference between Paging and
Segmentation
Operating System Concepts – 8th Edition 8.86 Silberschatz, Galvin and Gagne ©2009
Paging Vs Segmentation
Operating System Concepts – 8th Edition 8.87 Silberschatz, Galvin and Gagne ©2009
Segmentation- External Fragmentation
Operating System Concepts – 8th Edition 8.88 Silberschatz, Galvin and Gagne ©2009
Why is there internal fragmentation with paging?
Because a page has fixed size, but processes may request more
or less space. Say a page is 32 units, and a process requests 20
units. Then when a page is given to the requesting process, that
page is no longer useable despite having 12 units of free
"internal" space.
Operating System Concepts – 8th Edition 8.89 Silberschatz, Galvin and Gagne ©2009
End of Chapter 7
Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009