👨‍💻
Cracking-Interview
  • Data Structures and Algorithms
  • Arrays
    • 1. Two Sums
    • 2. Rotate Array
    • 3.Remove Duplicates from sorted array
    • 4.Merge Two Sorted Array
    • 5.Majority Element
    • 6.Rotate Image
    • 7.Merge Intervals
    • 8.Increasing Triplet Subsequence
    • 9.Set Matrix Zeroes
    • 10.Product of Array Except Self
    • 11.Container With Most Water
    • 12.Next Permutation
    • 13.Next Greater Element III
    • 14.Largest Number
    • 15.Candy
    • 16.Shortest Unsorted Continuous Subarray
    • 17.Sort Colors(Sort array of 0, 1, 2)
    • 18.Queue Reconstruction by Height
    • 19.Task Scheduler
    • 20.Trapping Rain Water
    • 21.Search a 2D Matrix II
    • 22. Spiral Matrix
    • 23.Median of Two Sorted Arrays
    • 24.Count inversion of an array
    • 25. Reverse Pairs
    • 26. Count Servers that Communicate
    • 27. 3Sum
    • 28. 4Sum
    • 29. Game of Life
    • 30. Sort the Matrix Diagonally
    • 31. Push Dominoes
    • 32. Corporate Flight Bookings
    • 33. Rotating the Box
    • 34. Interval List Intersections
    • 35. Insert Interval
    • 36. Minimum Moves to Equal Array Elements II
    • 37. Pairs of Songs With Total Durations Divisible by 60
    • 38. Remove Covered Intervals
    • Juggling Algorithm
    • Moore’s Voting Algorithm
    • Two Pointer Method
  • Linked List
    • 1.Odd-Even Linked List
    • 2.Add Two Numbers
    • 3. Insert in a Sorted List
    • 4.Rotate List
    • 5.Palindrome Linked List
    • 6.Point of insertion between two Linked List
    • 7.Delete Node in a Linked List
    • 8.Middle of the Linked List
    • 9.Linked List Cycle
    • 10. Swapping Nodes in a Linked List
    • 11.Swap Nodes in Pairs
    • 12.Merge Two Sorted Lists
    • 13.Reverse a Linked List
    • 14. Reverse Linked List II
    • 15.Copy List with Random Pointer
    • 16.Remove Duplicates from Sorted List
    • 17. Merge k Sorted Lists
    • 18. Remove Nth Node From End of List
    • 19. Sort List
    • 20. Reverse Nodes in k-Group
    • 21. Partition List
    • 22. Flattening a Linked List
    • Basic Implementation of Singly Linked List
    • Basic Implementation of Doubly Linked List
  • Strings
    • 1.Reverse Words in a String
    • 2. Is Subsequence
    • 3.Valid Anagram
    • 4.Add Binary
    • 5.Longest Common Prefix
    • 7.Valid Palindrome
    • 8.Implement strStr()
    • 9.String to Integer (atoi)
    • 10.Count and Say
    • 11.Longest Substring Without Repeating Characters
    • 12. Longest Substring with At Most K Distinct Characters
    • 13. Longest Substring with At Least K Repeating Characters
    • 14. Find All Anagrams in a String
    • 15. Permutation in String
    • 16. Maximum Number of Vowels in a Substring of Given Length
    • 17. Partition Labels
    • 18. Minimum Window Substring
    • 19. Compare Version Numbers
    • 20. Shortest Distance to a Character
    • 21. Count Number of Homogenous Substrings
    • 22. Remove Duplicate Letters
    • 23. Count Sorted Vowel Strings
    • 24. Get Equal Substrings Within Budget
    • 25. Sentence Similarity III
    • 26. Shifting Letters
    • 27. Longest Happy Prefix (imp)
    • 28. Sort Characters By Frequency
    • 29. String Compression
    • 30. Palindrome Pairs
    • 31. Shortest Palindrome(Imp)
    • 32. One Edit Distance
    • 33. Can Make Palindrome from Substring
    • 34. Greatest Common Divisor of Strings
    • KMP Algorithm for Pattern Searching
    • Rabin-Karp Algorithm for Pattern Searching
  • Binary Tree
    • Terminology and Formula
    • N-ary Tree
      • 1. N-ary Tree Preorder Traversal
      • 2. N-ary Tree Postorder Traversal
      • 3. N-ary Tree Level Order Traversal
    • Tree Traversals
      • 1.In-order Traversal
      • 2.Pre-order Traversal
      • 3.Post-order Traversal
      • 4.Level-order Traversal
      • 5.Vertical Order Traversal
      • 6. Binary Tree Level Order Traversal II
    • Problems Related to Binary Trees
      • 1.Maximum/Minimum Depth of Binary Tree
      • 2.Lowest Common Ancestor of a Binary Tree
      • 3.Symmetric Tree
      • 4.Path Sum
      • 5.Tree : Top View
      • 6. Diameter of Binary Tree
      • 7.Populating Next Right Pointers in Each Node
      • 8.Balanced Binary Tree
      • 9.Binary Tree Zigzag Level Order Traversal
      • 10.Invert Binary Tree
      • 11.Binary Tree Right Side View
      • 12.Validate Binary Tree Nodes
      • 13.Merge Two Binary Trees
      • 14.Flatten Binary Tree to Linked List
      • 15. Construct Binary Tree from Preorder and Inorder Traversal
      • 16. Construct Binary Tree from Inorder and Postorder Traversal
      • 17. Binary Tree Maximum Path Sum
      • 18. Sum Root to Leaf Numbers
      • 19. Subtree of Another Tree
      • 20. Even Odd Tree
      • 21. Delete Nodes And Return Forest
      • 22. Maximum Binary Tree
      • 23. Linked List in Binary Tree
      • 24. Longest Univalue Path
      • 25. Sum of Distances in Tree
      • 26. Distribute Coins in Binary Tree
      • 27. Find Duplicate Subtrees
      • 28. Serialize and Deserialize BST
      • 29. Serialize and Deserialize Binary Tree
      • 30. Path Sum III
      • 31. Delete Leaves With a Given Value
      • 32. All Possible Full Binary Trees
      • 33. All Nodes Distance K in Binary Tree
      • 34. Maximum Width of Binary Tree
  • Stack and Queue
    • Problems
      • 1.Min Stack
      • 2. Max Stack
      • 3.Valid Parentheses
      • 4.Evaluate Reverse Polish Notation
      • 5.Infix And Prefix and Postfix Conversions
      • 6.Next Greater Element I
      • 7.Next Greater Element II
      • 8.Sliding Window Maximum
      • 9.Gas Station (Circular Tour Problem)
      • 10.Daily Temperatures
      • 11.Decode String
      • 12. Largest Rectangle in Histogram
      • 13. Maximal Rectangle
      • 14. Minimum Remove to Make Valid Parentheses
      • 15. Map of Highest Peak
      • 16. Longest Valid Parentheses
      • 17. Online Stock Span
      • 18. Score of Parentheses
      • 19. Remove K Digits(imp)
      • 20. Design a Stack With Increment Operation
      • 21. Final Prices With a Special Discount in a Shop
      • 22. Valid Parenthesis String
      • 23. Reveal Cards In Increasing Order
      • 24. Remove All Adjacent Duplicates In String
      • 25. Number of Visible People in a Queue
      • 26.Number following a pattern
    • Implementation
      • Implementation of Queue
      • Implementation of Stack
      • Implementation of Circular Queue
      • Implement Queue using Stacks
      • Implement Stack using Queues
  • Hash Table
    • Designing and Definitions
      • Techniques of hashing and collision resolution
      • Design HashSet
      • Design HashMap
    • Problems
      • 1.Intersection of Two Arrays
      • 2.Happy Number
      • 3.Contains Duplicate
      • 4.Find the Duplicate Number
      • 5. Find All Duplicates in an Array
      • 6. Isomorphic Strings
      • 7. Group Anagrams
      • 8. Single Number
      • 9.Valid Sudoku
      • 10.Jewels and Stones
      • 11.First Missing Positive
      • 12. LRU Cache (V.IMP)
      • 13. Encode and Decode TinyURL
      • 14. Alphabet Board Path
  • Binary Search
    • Template I
      • Basic Binary Search
      • 1.Search in a Sorted Rotated Array
      • 5.Sqrt(x)
    • Template II
      • 2.Find Minimum in Rotated Sorted Array
    • Template III
      • 3.Find Peak Element
      • 4. Find First and Last Position of Element in Sorted Array
  • Binary Search Tree
    • 1.Is This a Binary Search Tree
    • 2.Search in a Binary Search Tree
    • 3.Insert into a Binary Search Tree
    • 4.Delete Node in a BST
    • 5.Lowest Common Ancestor of a Binary Search Tree
    • 6.Construct Binary Search Tree from Preorder Traversal
    • 7.Convert Sorted Array to Binary Search Tree
    • 8. Convert Sorted List to Binary Search Tree
    • 9.Kth Smallest Element in a BST
    • 10.Trim a Binary Search Tree
    • 11.Two Sum IV - Input is a BST
    • 12. Binary Search Tree to Greater Sum Tree / Greater Tree
    • 13. Balance a Binary Search Tree
    • 14. Binary Search Tree Iterator
    • 15. Unique Binary Search Trees
    • 16. Unique Binary Search Trees II
    • 17. Inorder Successor in BST
  • Bit manipulation
    • Bitwise Operations
    • 1.Reverse Bits
    • 2.Counting Bits
    • 3.Number of 1 Bits
    • 4.Hamming Distance
    • 5. Power of Two
    • 6. Complement of Base 10 Integer
  • Graph
    • 1.Maximum number of edges to be removed to contain exactly K connected components in the Graph
    • 2. Social Networking Graph
    • 3.The Flight Plan
    • 4.Is it a tree?
    • 5.Possible Bipartition
    • 6.Longest path in an undirected tree
    • 7.Keys and Rooms
    • 8.Is Graph Bipartite?
    • 9.Number of Islands
    • 10. Number of Provinces
    • 11.Surrounded Regions
    • 12. All Paths From Source to Target
    • 13.Word Ladder
    • 14.Rotting Oranges
    • 15.Course Schedule
    • 16.Course Schedule II
    • 17. Minimum Number of Vertices to Reach All Nodes
    • 18.Network Delay Time
    • 19. 01 Matrix
    • 20. Cheapest Flights Within K Stops
    • 21. Critical Connections in a Network
    • 22.Word Search
    • 23. Minimum Time to Collect All Apples in a Tree
    • 24. Time Needed to Inform All Employees
    • 25. As Far from Land as Possible
    • 26. Clone Graph
    • 27. Min Cost to Connect All Points
    • 28. Find the City With the Smallest Number of Neighbors at a Threshold Distance
    • 29. Number of Operations to Make Network Connected
    • 30. Open the Lock
    • 31. Word Search II
    • 32. Number of Ways to Arrive at Destination
    • 33. Knight On Chess Board
    • 34. Shortest Bridge
    • 35. Pacific Atlantic Water Flow
    • 36. Making A Large Island
    • 37. Path with Maximum Probability
    • Graph Algorithms
      • 1.DFS
      • 2.BFS
      • 3.Prim's MST
      • 4.Kruskal (MST)
      • 5.Dijkstra’s Algorithm(Single Source Shortest Path)
      • 6. Floyd Warshall's Algorithm(All Pair Sortest Path)
      • 7. Topological Sort
      • 8. Find if the given edge is a bridge in graph.
  • Disjoint Sets(Union-Find)
    • 1.Implementation of union find
    • 2.Social Network Community
    • 3. Graph Connectivity With Threshold
    • 4. Redundant Connection
    • 5. Smallest String With Swaps
    • 6. Accounts Merge
  • Heap and Priority Queue
    • Concepts of Heap
      • Building Max Heap
    • 1.Kth Largest Element in an Array
    • 2.Kth Largest Element in a Stream
    • 3.Top K Frequent Elements
    • 4.Kth Smallest Element in a Sorted Matrix
    • 5. Find Kth Largest XOR Coordinate Value
    • 6. Top K Frequent Words
    • 7. Find Median from Data Stream
    • 8. Maximum Average Pass Ratio
    • 9. Longest Happy String
    • 10. K Closest Points to Origin
    • 11. Reorganize String
    • 12. Find the Kth Largest Integer in the Array
    • 13. Smallest range in K lists
  • Trie
    • 1. Implement Trie (Prefix Tree)
    • 2. Replace Words
    • 3.Design Add and Search Words Data Structure
    • 4. Search Suggestions System
  • Dynamic Programming
    • 1.House Robber
    • 2.Climbing Stairs
    • 3.Longest Palindromic Substring
    • 4.Longest Palindromic Subsequence
    • 5.Best Time to Buy and Sell Stock
    • 6.Best Time to Buy and Sell Stock with Cooldown
    • 7.Unique Paths
    • 8.Minimum Path Sum
    • 9.Longest Increasing Subsequence
    • 10.Longest Common Subsequence
    • 11.Longest Consecutive Sequence
    • 12.Coin Change
    • 13.Coin Change 2
    • 14.Target Sum
    • 15.Partition Equal Subset Sum
    • 16. Last Stone Weight II
    • 17.Word Break
    • 18. Word Break II
    • 19.Burst Balloons
    • 20. Uncrossed Lines
    • 21. Wildcard Matching
    • 22. Maximal Square
    • 23. Perfect Squares
    • 24. Decode Ways
    • 25. Minimum Cost For Tickets
    • 26. Number of Dice Rolls With Target Sum
    • 27. Delete Operation for Two Strings
    • 28. Maximum Length of Repeated Subarray
    • 29. Longest String Chain
    • 30. Maximum Length of Pair Chain
    • 31. Minimum Falling Path Sum
    • 32. Predict the Winner
    • 33. Delete and Earn
    • 34. House Robber III
    • 35. Partition to K Equal Sum Subsets
    • 36. Different Ways to Add Parentheses
    • 37. Count Square Submatrices with All Ones
    • 38. 2 Keys Keyboard
    • 39. Palindrome Partitioning II
    • 40. Integer Break
    • 41.Cutting a Rod
    • 42. Number of Longest Increasing Subsequence
    • 43. Russian Doll Envelopes
    • 44. 0-1 Knapsack
    • 45. Interleaving String
    • 46. Edit Distance
    • 47. Minimum Insertion Steps to Make a String Palindrome
    • 48.Jump Game
    • 49. Shortest Common Supersequence
    • 50. Length of Longest Fibonacci Subsequence
    • 51. Maximum Alternating Subsequence Sum
    • 52. Palindromic Substrings
    • 53. Distinct Subsequences
    • 54. Best Team With No Conflicts
    • 55. Partition Array for Maximum Sum
    • 56. Ones and Zeroes
  • Greedy Algorithms
    • 1.Activity Selection
    • 2. N meetings in one room
    • 3.Minimum Platforms
    • 4. Car Pooling
    • 5. Maximum Population Year
    • 6.Meeting Rooms
    • 7. Equal Sum Arrays With Minimum Number of Operations
    • 8. Two City Scheduling
    • 9. Non-overlapping Intervals
    • 10. Minimum Number of Arrows to Burst Balloons
    • 11. Maximum Profit in Job Scheduling{IMP}
    • 12.Huffman Coding
    • 13. Minimum Cost Tree From Leaf Values
    • 14.Maximum Number of Events That Can Be Attended
    • 15. Video Stitching
    • 16. Minimum Number of Taps to Open to Water a Garden
  • Backtracking
    • 1.Subsets and Subset II
    • 2.Combinations
    • 3.Generate Parentheses
    • 4.Letter Combinations of a Phone Number
    • 5.Palindrome Partitioning
    • 6.Combination Sum and Combination Sum II
    • 7.Permutations
    • 8. Permutations II
    • 9. Letter Case Permutation
    • 10. Split a String Into the Max Number of Unique Substrings
    • 11. Path with Maximum Gold
    • 12. N-Queens
    • 13. N-Queens II
    • 14. Sudoku Solver
    • 15. Permutation Sequence
    • 16. Beautiful Arrangement
  • Sub Array and Sliding Window Problems
    • 1.Maximum Subarray Sum
    • 2.Maximum Product Subarray
    • 3.Maximum Sum Circular Subarray
    • 4. Maximum Absolute Sum of Any Subarray
    • 5. K-Concatenation Maximum Sum
    • 6.Subarray Sum Equals K
    • 7. Continuous Subarray Sum
    • 8. Contiguous Array
    • 9.Minimum Size Subarray Sum >=k (positive no)
    • 10. Max Subarray sum of positive no <= k
    • 11. Maximum Number of Non-Overlapping Subarrays With Sum Equals Target
    • 12. Maximum Subarray Sum with One Deletion
    • 13. Shortest Subarray with Sum at Least K (Negative Numbers)
    • 14. Frequency of the Most Frequent Element
    • 15. Count Number of Nice Subarrays
    • 16. Binary Subarrays With Sum
    • 17.Number of Substrings Containing All Three Characters
    • 18. Find Two Non-overlapping Sub-arrays Each With Target Sum
    • 19. Maximum Points You Can Obtain from Cards
    • 20. Longest Repeating Character Replacement
    • 21. Subarrays with K Different Integers
    • 22. Replace the Substring for Balanced String
    • 23. Maximize the Confusion of an Exam / Max Consecutive Ones III
    • 24. Subarray Sums Divisible by K
  • Design
    • 1. Design Twitter
    • 2. Design Browser History
    • 3. Snapshot Array
  • Maths
    • Formula
    • 1.Count Prime
    • 2.Pascal's Triangle
    • 3.Extra Long Factorials
    • 4.Factorial Trailing Zeroes
    • 5.Excel Sheet Column Number
    • 6.HCF and LCM
    • 7. Fizz Buzz
    • 8. Rearrange an array so that arr[i] becomes arr[arr[i]]
    • 9. XOR Queries of a Subarray
    • 10. Find second largest element
  • Sorting-Algorithms
    • Merge Sort
    • Quick Sort
    • Heap Sort
    • Selection Sort
    • Bubble Sort
    • Insertion Sort
  • Expected Interview MCQ and Questions c++
  • Concepts in C++
  • System Design Questions
  • 💾DBMS
    • Introduction
    • RBMS
    • JOINS
    • SQL
  • 🖥️OS
    • OS and Its Types
    • Process Concept and Threads
    • Process Synchronization
    • Deadlock in Operating System
    • Memory Management
    • Imp Questions of OS for Interviews
  • 🚙OOPS
    • Introduction and Definitions
  • 📨COMPUTER-NETWORKS
    • OSI | TCP IP Model
    • Topology
    • Network Devices
    • IP Address
Powered by GitBook
On this page
  • Degree of Multiprogramming
  • Why Use Memory Management
  • Memory Allocation Techniques
  • 1. Fixed (or static) Partitioning
  • 2. Variable Partitioning
  • Partition Allocation
  • Non-Contiguous Allocation
  • Paging
  • Logical Address space:
  • Physical Address space:
  • Paging is a memory management scheme that eliminates the need for contiguous allocation
  • Translating Logical Address into Physical Address-
  • Step-01:
  • Step-02:
  • Step-03:
  • Diagram-
  • Advantages:-
  • Disadvantages:-
  • Segmentation
  • Characteristics:-
  • Example-
  • Segment Table
  • Translating Logical Address into Physical Address-
  • Step-01:
  • Step-02:
  • Diagram-
  • Advantages-
  • Disadvantages-
  • Overlays in Memory Management
  • Swapping in Memory Management
  • Advantages of Swapping
  • Virtual Memory
  • Page Fault in OS
  • Thrashing in Operating System
  • Page Replacement Algorithms

Was this helpful?

  1. OS

Memory Management

PreviousDeadlock in Operating SystemNextImp Questions of OS for Interviews

Last updated 3 years ago

Was this helpful?

Degree of Multiprogramming

The degree of multiprogramming describes the maximum number of processes that a single-processor system can accommodate efficiently.

Why Use Memory Management

This technique helps in placing the programs in memory in such a way so that memory is utilized to its fullest extent.

  • It allows you to check how much memory needs to be allocated to processes.

  • Increase the Degree of multiprogramming

Memory Allocation Techniques

Contiguous Memory Allocation:- In contiguous memory allocation, a process can be stored only in a contiguous fashion.

1. Fixed (or static) Partitioning

This is the oldest and simplest technique used to put more than one process in the main memory. In this partitioning, the number of partitions (non-overlapping) in RAM is fixed but the size of each partition may or may not be the same. As it is a contiguous allocation, hence no spanning is allowed. Here partitions are made before execution or during system configure.

Disadvantages of Fixed Partitioning:

  1. Internal Fragmentation:

  2. External Fragmentation:

  3. Limit process size:

  4. Limitation on Degree of Multiprogramming:

2. 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-

  1. Initially RAM is empty and partitions are made during the run-time according to process’s need instead of partitioning during system configure.

  2. The size of partition will be equal to incoming process.

  3. The partition size varies according to the need of the process so that the internal fragmentation can be avoided to ensure efficient utilisation of RAM.

  4. Number of partitions in RAM is not fixed and depends on the number of incoming process and Main Memory’s size.

Advantages of Variable Partitioning –

  1. No Internal Fragmentation

  2. No restriction on Degree of Multiprogramming:

  3. No Limitation on the size of the process:

Disadvantages of Variable Partitioning –

  1. Difficult Implementation:

  2. External Fragmentation: There will be external fragmentation in spite of absence of internal fragmentation.

    For example, suppose in above example- process P1(2MB) and process P3(1MB) completed their execution.

Partition Allocation

In Partition Allocation, when there is more than one partition freely available to accommodate a process’s request, a partition must be selected. To choose a particular partition, a partition allocation method is needed. There are different Placement Algorithm: A. First Fit B. Best Fit C. Worst Fit D. Next Fit

1. First Fit: In the first fit, the partition is allocated which is the first sufficient block from the top of Main Memory. It scans memory from the beginning and chooses the first available block that is large enough. Thus it allocates the first hole that is large enough.

2. Best Fit Allocate the process to the partition which is the first smallest sufficient partition among the free available partition. It searches the entire list of holes to find the smallest hole whose size is greater than or equal to the size of the process.

3. Worst Fit Allocate the process to the partition which is the largest sufficient among the freely available partitions available in the main memory. It is opposite to the best-fit algorithm. It searches the entire list of holes to find the largest hole and allocate it to process.

4. Next Fit: Next fit is similar to the first fit but it will search for the first sufficient partition from the last allocation point.

Non-Contiguous Allocation

Paging

Logical Address space:

An address generated by the CPU is known as “Logical Address”. It is also known as a Virtual address. Logical address space can be defined as the size of the process.

Physical Address space:

An address seen by the memory unit (i.e the one loaded into the memory address register of the memory) is commonly known as a “Physical Address”.

Paging is a memory management scheme that eliminates the need for contiguous allocation

This scheme permits the physical address space of a process to be non – contiguous.

The mapping from virtual to physical address is done by the memory management unit (MMU) which is a hardware device and this mapping is known as paging technique.

  • The Physical Address Space is conceptually divided into a number of fixed-size blocks, called frames.

  • The Logical address Space is also splitted into fixed-size blocks, called pages.

  • Page Size = Frame Size

  • The partitions of secondary memory are called as pages.

  • The partitions of main memory are called as frames.

  • Consider a process is divided into 4 pages P0, P1, P2 and P3.

  • Depending upon the availability, these pages may be stored in the main memory frames in a non-contiguous fashion as shown-

Translating Logical Address into Physical Address-

  • CPU always generates a logical address.

  • A physical address is needed to access the main memory.

Following steps are followed to translate logical address into physical address-

Step-01:

CPU generates a logical address consisting of two parts-

  1. Page Number

  2. Page Offset

  • Page Number specifies the specific page of the process from which CPU wants to read the data.

  • Page Offset specifies the specific word on the page that CPU wants to read.

Step-02:

For the page number generated by the CPU,

  • Page Table provides the corresponding frame number (base address of the frame) where that page is stored in the main memory.

Step-03:

  • The frame number combined with the page offset forms the required physical address.

  • Frame number specifies the specific frame where the required page is stored.

  • Page Offset specifies the specific word that has to be read from that page.

Diagram-

The following diagram illustrates the above steps of translating logical address into physical address-

Advantages:-

It allows to store parts of a single process in a non-contiguous fashion. It solves the problem of external fragmentation.

Disadvantages:-

There is an overhead of maintaining a page table for each process.

Segmentation

  • Like Paging, Segmentation is another non-contiguous memory allocation technique.

  • In segmentation, process is not divided blindly into fixed size pages.

  • Rather, the process is divided into modules for better visualization.

Characteristics:-

  • Segmentation is a variable size partitioning scheme.

  • In segmentation, secondary memory and main memory are divided into partitions of unequal size.

  • The size of partitions depend on the length of modules.

  • The partitions of secondary memory are called as segments.

Example-

Consider a program is divided into 5 segments as-

Segment Table

  • Segment table is a table that stores the information about each segment of the process.

  • It has two columns.

  • First column stores the size or length of the segment.

  • Second column stores the base address or starting address of the segment in the main memory.

  • Segment table is stored as a separate segment in the main memory.

  • Segment table base register (STBR) stores the base address of the segment table.

For the above illustration, consider the segment table is-

Here,

  • Limit indicates the length or size of the segment.

  • Base indicates the base address or starting address of the segment in the main memory.

In accordance to the above segment table, the segments are stored in the main memory as-

Translating Logical Address into Physical Address-

  • CPU always generates a logical address.

  • A physical address is needed to access the main memory.

Following steps are followed to translate logical address into physical address-

Step-01:

CPU generates a logical address consisting of two parts-

  1. Segment Number

  2. Segment Offset

  • Segment Number specifies the specific segment of the process from which CPU wants to read the data.

  • Segment Offset specifies the specific word in the segment that CPU wants to read.

Step-02:

  • For the generated segment number, corresponding entry is located in the segment table.

  • Then, segment offset is compared with the limit (size) of the segment.

Now, two cases are possible-

Case-01: Segment Offset >= Limit

  • If segment offset is found to be greater than or equal to the limit, a trap is generated.

Case-02: Segment Offset < Limit

  • If segment offset is found to be smaller than the limit, then request is treated as a valid request.

  • The segment offset must always lie in the range [0, limit-1],

  • Then, segment offset is added with the base address of the segment.

  • The result obtained after addition is the address of the memory location storing the required word.

Diagram-

The following diagram illustrates the above steps of translating logical address into physical address-

Advantages-

  • It allows to divide the program into modules which provides better visualization.

  • Segment table consumes less space as compared to Page Table in paging.

  • It solves the problem of internal fragmentation.

Disadvantages-

  • There is an overhead of maintaining a segment table for each process.

Overlays in Memory Management

The main problem in Fixed partitioning is the size of a process has to be limited by the maximum size of the partition, which means a process can never be span over another.In order to solve this problem, earlier people have used some solution which is called as Overlays.

The concept of overlays is that whenever a process is running it will not use the complete program at the same time, it will use only some part of it. Then overlays concept says that whatever part you required, you load it an once the part is done, then you just unload it, means just pull it back and get the new part you required and run it.

Swapping in Memory Management

Swapping is a memory management scheme in which any process can be temporarily swapped from main memory to secondary memory so that the main memory can be made available for other processes.

Any process must be in the memory for its execution, but can be swapped temporarily out of memory to a backing store and then again brought back into the memory to complete its execution.Swapping is done so that other processes get memory for their execution. A variant of the swapping technique is the priority-based scheduling algorithm

Advantages of Swapping

The advantages/benefits of the Swapping technique are as follows:

  1. The swapping technique mainly helps the CPU to manage multiple processes within a single main memory.

  2. This technique helps to create and use virtual memory.

  3. With the help of this technique, the CPU can perform several tasks simultaneously. Thus, processes need not wait too long before their execution.

Virtual Memory

Virtual Memory mainly gives the illusion of more physical memory than there really is.

Virtual Memory is a space where large programs can store themselves in form of pages while their execution and only the required pages or portions of processes are loaded into the main memory. This technique is useful as a large virtual memory is provided for user programs when a very small physical memory is there. Thus Virtual memory is a technique that allows the execution of processes that are not in the physical memory completely.

Page Fault in OS

Page fault dominates more like an error. It mainly occurs when any program tries to access the data or the code that is in the address space of the program, but that data is not currently located in the RAM of the system.

  • So basically when the page referenced by the CPU is not found in the main memory then the situation is termed as Page Fault.

  • Whenever any page fault occurs, then the required page has to be fetched from the secondary memory into the main memory.

In case if the required page is not loaded into the memory, then a page fault trap arises.

Thrashing in Operating System

Thrashing is a condition or a situation when the system is spending a major portion of its time in servicing the page faults, but the actual processing done is very negligible.

The basic concept involved is that if a process is allocated too few frames, then there will be too many and too frequent page faults. As a result, no useful work would be done by the CPU and the CPU utilisation would fall drastically. The long-term scheduler would then try to improve the CPU utilisation by loading some more processes into the memory thereby increasing the degree of multiprogramming. This would result in a further decrease in the CPU utilization triggering a chained reaction of higher page faults followed by an increase in the degree of multiprogramming, called Thrashing.

Page Replacement Algorithms

🖥️