#include<vector>
#include<iostream>
#include<bitset>
#include<time.h>
#include<stdlib.h>
using namespace std;
struct frame{
int page[8];
int count;
public:
frame(){
for(int i=0;i<8;i++){
page[i]=-1;
}
count=0;
}
bool full(){
return count==8;
}
void print(){
int i=0;
cout<<"当前映射信息:\n";
while(page[i]>=0 && i<8){
cout<<"pf"<<i<<"-p"<<page[i]<<" ";
i++;
}
}
int find(int i){
for(int l=0;l<8;l++){
if(page[l]==i){
return l;
}
}
return -1;
}
int request(int i){
int k=find(i);
if(k==-1){
cout<<"页面"<<i<<"未在页框中"<<endl;
return push(i);
}
else{
cout<<"页面"<<i<<"在页框"<<k<<endl;
return k;
}
print();cout<<endl;
}
int push(int i){
if(full()){
cout<<"页框满...\n置换出"<<page[0]<<endl;
for(int l=0;l<7;l++){
page[l]=page[l+1];
}
page[7]=i;
return 7;
}
else{
cout<<"页面"<<i<<"分配在页框"<<count<<endl;
page[count]=i;
count++;
return count-1;
}
}
};
struct table_node{
int page;
bool present;
};
struct table{
table_node start[16];
bool matrix[16]
用c++写的 操作系统 页面调度算法 FIFO,LRU,CLOCK
最新推荐文章于 2021-11-01 11:26:05 发布
这篇博客介绍了如何使用C++实现操作系统中的三种页面调度算法:FIFO(先进先出)、LRU(最近最少使用)和CLOCK。通过创建数据结构来模拟帧和页面,并通过示例展示了算法的具体步骤和效果。
摘要由CSDN通过智能技术生成