-
Notifications
You must be signed in to change notification settings - Fork 0
/
FrameTable.h
34 lines (31 loc) · 983 Bytes
/
FrameTable.h
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
#pragma once
#include <iostream>
#include <vector>
#include <fstream>
#include "FrameTable.h"
#include <stdlib.h>
using namespace std;
struct FrameTableValue {
int procNum;
int pageNum;
bool isUsed;
int time;
int addedTime;
};
class FrameTable
{
int usedNum;
std::vector<FrameTableValue> frameTable;
public:
FrameTable(int size);
FrameTable(void);
~FrameTable(void);
int isHit(int procNum, int pageNum);
int addToTable(int procNum, int pageNum, int time);
int isFull(){return usedNum>=(int)frameTable.size();};
FrameTableValue envictFirst(int* envictedFrame); //return frameTableValue which is envicted
FrameTableValue envictRandom(int numOfPages, int* envictedFrame, FILE *pRandomFile, bool showRandom); //return frameTableValue which is envicted
bool updateTime(int procNum, int pageNum, int time);
int getRandomNum(FILE *pRandomFile, bool showRandom);
void setFrameTableValue(int frameNum, FrameTableValue newValue);
};