











First Fit in OS (Operating System)
First Fit in Operating System
The operating system uses different memory management schemes to optimize memory/resource block allocation to different processes.
We will look at one of such memory allocation processes in OS called First Fit in OS.


Different types of Memory Allocations in OS?
The four most commonly used allocation schemes are
How first fit works?
Whenever a process (p1) comes with memory allocation request the following happens –
- OS sequentially searches available memory blocks from the first index
- Assigns the first memory block large enough to accommodate process
Whenever a new process P2 comes, it does the same thing. Search from the first index again.


Working Example for First Fit
Example: As shown on the right/below image
Memory blocks available are : {100, 50, 30, 120, 35}
Process P1, size: 20
- OS Searches memory from sequentially from starting
- Block 1 fits, P1 gets assigned to block 1
Process P2, size: 60
- OS Searches memory sequentially from block 1 again
- Block 1 is unavailable, Block 2 and 3 can’t fit
- Block 4 fits, p2 assigned to block 4
Process P3, size: 70
- OS Searches memory sequentially from block 1 again
- Block 1 is unavailable, Block 2, 3 can’t fit. Block 4 unavailable, Block 5 can’t fit
- P3 remains unallocated
Similarly, P4 is assigned to block 2
Advantages
- Easy to implement
- OS can allocate processes quickly as algorithm to allocate processes will be quick as compared to other methods (Best Fit, Worst Fit, Next Fit etc)
Disadvantages
- Causes huge internal fragmentation
- Smarter allocation may be done by best-fit algorithm
- High chances of unallocated for some processes due to poor algorithm
- More overhead as compared to next fit


Read More
- Memory Management Introduction
- Partition Allocation Method
- Buddy- System Allocator
- Paging
- Types of Paging
- Fragmentation
- Mapping Virtual address to Physical Address.
- Virtual Memory
- Demand Paging
- Implementation of Demand paging and page fault
- Segmentation
- Page Replacement Algorithms
- Thrashing
- Belady’s Anomaly
- Static vs Dynamic Loading
- Static vs Dynamic Linking
- Swapping
- Translational Look Aside Buffer
- Process Address Space
- Difference between Segmentation and Paging