• 大小: 6.03KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: 其他
  • 标签: 其他  

资源简介


编写一个请求页式存储管理模拟程序,通过对页面置换过程的模拟,加深对请求页式存储管理方式基本原理及实现过程的理解。 要求: 1. 从键盘输入页面访问序列及分配给进程的内存块数; 2. 分别采用OPT、FIFO和LRU算法进行页面置换(说明:对于OPT算法,在有多个页面可选的情况下,先淘汰较早进入的页面)。 3. 计算缺页次数及缺页率。 测试用例格式如下: 输入: 算法(1--OPT,2--FIFO,3--LRU) 内存块数 页面序列(页面1,页面2,页面3,...) 输出: 页面变化时内存块装入页面列表1-是否命中/页面变化时

资源截图

代码片段和文件信息

#include 
#include 

typedef struct Memory//内存块结构数组 
{
int id;//序号 
int prio;//优先级,最先进的优先级为0  
int distance;//下次访问与当前距离 
} memory;
memory mem[100]memo[100];
memory tempbc;
int type;//算法类型
int num;//内存块数
int ijpklss1s2;
int a[100];//存页面序号的数组 
int n=0;   //数组下标 
int pagefault;//是否缺页,1表示命中 
int  countpage=0; //统计缺页中断个数 
int count=0;
int minprio;//记录最小优先级
int minprioflag;//记录最小优先级数组下标 
int countdis=0;//计数下次序号到当前距离 
int maxdis;//下次访问与当前距离最远距离 
int maxdisflag=0;//记录下次到来最远的数组下标
char ch;//输入逗号 
int empty=0;//内存是否用完0表示都用完 
int emptyflag=0;//记录第1个空闲区下标 

void FIFO();//先进先出算法 
void OPT();//淘汰下次访问距当前最远的那些页中序号最小的页。
void LRU();//淘汰上次使用距当前最远的页。
void print();

int main()
{

scanf(“%d“&type);//输入算法类型 
scanf(“%d“&num);//输入内存块数 
while(1)//输入页面序号存在a[n]数组中 
{
scanf(“%d%c“&a[n]&ch);
n++;
if(ch==‘\n‘)
break;
};
for(i=0;i {
mem[i].id=-1;
mem[i].prio=i; 
}
switch (type)
{
case 1

评论

共有 条评论