Advertisement
Rakibul_Ahasan

Untitled

Mar 19th, 2021 (edited)
535
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.18 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int main()
  4. {
  5.     int no_of_frames, no_of_pages, frames[10], pages[30], temp[10], flag1, flag2, flag3, i, j, k, pos, max, faults = 0;
  6.     printf("Enter number of frames: ");
  7.     scanf("%d", &no_of_frames);
  8.    
  9.     printf("Enter number of pages: ");
  10.     scanf("%d", &no_of_pages);
  11.    
  12.     printf("Enter page reference string: ");
  13.    
  14.     for(i = 0; i < no_of_pages; ++i){
  15.         scanf("%d", &pages[i]);
  16.     }
  17.    
  18.     for(i = 0; i < no_of_frames; ++i){
  19.         frames[i] = -1;
  20.     }
  21.    
  22.     for(i = 0; i < no_of_pages; ++i){
  23.         flag1 = flag2 = 0;
  24.        
  25.         for(j = 0; j < no_of_frames; ++j){
  26.             if(frames[j] == pages[i]){
  27.                    flag1 = flag2 = 1;
  28.                    break;
  29.                }
  30.         }
  31.        
  32.         if(flag1 == 0){
  33.             for(j = 0; j < no_of_frames; ++j){
  34.                 if(frames[j] == -1){
  35.                     faults++;
  36.                     frames[j] = pages[i];
  37.                     flag2 = 1;
  38.                     break;
  39.                 }
  40.             }    
  41.         }
  42.        
  43.         if(flag2 == 0){
  44.             flag3 =0;
  45.            
  46.             for(j = 0; j < no_of_frames; ++j){
  47.                 temp[j] = -1;
  48.                
  49.                 for(k = i + 1; k < no_of_pages; ++k){
  50.                     if(frames[j] == pages[k]){
  51.                         temp[j] = k;
  52.                         break;
  53.                     }
  54.                 }
  55.             }
  56.            
  57.             for(j = 0; j < no_of_frames; ++j){
  58.                 if(temp[j] == -1){
  59.                     pos = j;
  60.                     flag3 = 1;
  61.                     break;
  62.                 }
  63.             }
  64.            
  65.             if(flag3 ==0){
  66.                 max = temp[0];
  67.                 pos = 0;
  68.                
  69.                 for(j = 1; j < no_of_frames; ++j){
  70.                     if(temp[j] > max){
  71.                         max = temp[j];
  72.                         pos = j;
  73.                     }
  74.                 }              
  75.             }
  76.            
  77.             frames[pos] = pages[i];
  78.             faults++;
  79.         }
  80.        
  81.         printf("\n");
  82.        
  83.         for(j = 0; j < no_of_frames; ++j){
  84.             printf("%d\t", frames[j]);
  85.         }
  86.     }
  87.    
  88.     printf("\n\nTotal Page Faults = %d", faults);
  89.    
  90.     return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement