Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- int setframe(int arr[], int frame[], int ind, int n, int c)
- {
- int farthest=ind;
- int change=-1;
- for(int i=0; i<c; i++)
- {
- int j;
- for(j=ind; j<n; j++)
- {
- if(frame[i]==arr[j])
- {
- if(j>farthest)
- {
- farthest=j;
- change=i;
- }
- break;
- }
- }
- if(j==n) return i;
- }
- return change;
- }
- int Optimal(int arr[], int frame[], int n, int c)
- {
- int count=0;
- for(int i=0; i<n; i++)
- {
- int check=0;
- for(int j=0; j<c; j++)
- {
- if(arr[i]==frame[j])
- {
- check=1;
- break;
- }
- }
- if(check==0)
- {
- count++;
- int ind=setframe(arr, frame, i+1, n, c);
- frame[ind]=arr[i];
- }
- }
- //NO.of swaps
- return count;
- }
- int main(){
- printf("Enter the number of pages\n");
- int n;
- scanf("%d", &n);
- printf("Enter the number of frames\n");
- int c;
- scanf("%d", &c);
- int arr[n];
- int frame[c];
- for(int i=0; i<c; i++) frame[i]=-1;
- for(int i=0; i<n; i++)
- {
- printf("Enter the page number\n");
- scanf("%d", &arr[i]);
- }
- int ans=Optimal(arr, frame, n, c);
- printf("The number of page faults are :%d", ans);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement