Operating System - Paging Memory Management
Definition:
Paging is a memory management technique used by operating systems to eliminate external fragmentation and efficiently manage memory. It divides physical memory and logical memory (process address space) into fixed-size blocks:
-
Logical memory is divided into pages
-
Physical memory is divided into frames
Each page of a process is mapped to a frame in physical memory using a page table.
-
Pages and frames are usually of the same size (e.g., 4 KB).
-
The OS uses a page table to keep track of which page is stored in which frame.
-
No external fragmentation, but internal fragmentation may occur.
Example:
Assume:
-
Page size = Frame size = 1 KB
-
A process has 4 pages: P0, P1, P2, P3
-
Available physical memory frames: F2, F5, F1, F7
The OS loads pages into frames as follows:
Page | Frame |
---|---|
P0 | F2 |
P1 | F5 |
P2 | F1 |
P3 | F7 |
Now, suppose the process wants to access logical address 2050:
-
Since page size is 1024 bytes (1 KB),
Logical address 2050 lies in Page 2 (2050 ÷ 1024 = 2
, remainder 2) -
Offset within the page =
2050 % 1024 = 2
-
Page 2 is stored in Frame 1, so physical address =
Frame 1 base address (1×1024) + offset (2) = 1026
Advantages:
-
Eliminates external fragmentation
-
Easy to swap pages in and out of memory
Disadvantages:
-
Adds overhead due to page table
-
Possible internal fragmentation (unused space in the last page)