-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPage_Replacement_FCFS.java
38 lines (35 loc) · 1.13 KB
/
Page_Replacement_FCFS.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Queue;
class Test{
static int page_Faults(int pages[], int n, int capacity){
HashSet<Integer> s = new HashSet<>(capacity);
Queue<Integer> indexes = new LinkedList<>() ;
int page_faults = 0;
for (int i = 0; i < n; i++){
if (s.size() < capacity){
if (!s.contains(pages[i])){
s.add(pages[i]);
page_faults++;
indexes.add(pages[i]);
}
}
else{
if (!s.contains(pages[i])){
int val = indexes.peek();
indexes.poll();
s.remove(val);
s.add(pages[i]);
indexes.add(pages[i]);
page_faults++;
}
}
}
return page_faults;
}
public static void main(String args[]){
int pages[] = {8, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 0};
int capacity = 3;
System.out.println(page_Faults(pages, pages.length, capacity));
}
}