Advertisement
Sri27119

pageReplace_FIFO

Nov 25th, 2024
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.64 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void getRefString(int *ref_string, int n)
  4. {
  5.     printf("Enter reference string: ");
  6.     for (int i = 0; i < n; i++)
  7.     {
  8.         scanf("%d", &ref_string[i]);
  9.     }
  10. }
  11.  
  12. void fifoPageReplacement(int *ref_string, int n, int frame_size)
  13. {
  14.     int hits = 0, page_faults = 0, frame_ptr = 0;
  15.     int frame[frame_size];
  16.     double hit_ratio, page_fault_ratio;
  17.  
  18.     for (int i = 0; i < frame_size; i++)
  19.     {
  20.         frame[i] = -1;
  21.     }
  22.  
  23.     for (int i = 0; i < n; i++)
  24.     {
  25.         int found = 0;
  26.         for (int j = 0; j < frame_size; j++)
  27.         {
  28.             // if page is already in frame
  29.             if (frame[j] == ref_string[i])
  30.             {
  31.                 hits++;
  32.                 found = 1;
  33.                 break;
  34.             }
  35.         }
  36.  
  37.         if (found == 0)
  38.         {
  39.  
  40.             frame[frame_ptr] = ref_string[i];
  41.             page_faults++;
  42.             frame_ptr = (frame_ptr + 1) % frame_size;
  43.         }
  44.     }
  45.     hit_ratio = (double)hits / n;
  46.     page_fault_ratio = (double)page_faults / n;
  47.     printf("Hits: %d\n", hits);
  48.     printf("Page Faults: %d\n", page_faults);
  49.     printf("Hit Ratio: %f\n", hit_ratio);
  50.     printf("Page Fault Ratio: %f\n", page_fault_ratio);
  51. }
  52.  
  53. int main()
  54. {
  55.     int n, frame_size;
  56.     printf("Enter size of reference String: ");
  57.     scanf("%d", &n);
  58.     int ref_string[n];
  59.     getRefString(ref_string, n);
  60.     printf("Enter frame size: ");
  61.     scanf("%d", &frame_size);
  62.     int frame[frame_size];
  63.  
  64.     for (int i = 0; i < frame_size; i++)
  65.     {
  66.         frame[i] = -1;
  67.     }
  68.  
  69.     fifoPageReplacement(ref_string, n, frame_size);
  70.  
  71.     return 0;
  72. }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement