存储块置全1c语言代码,分页存储管理模拟实验程序源代码(C语言).pdf

# include

# include

# define pagesize 8 // 页面尺寸大小

typedef struct BLOCK // 声明一种新类型 --物理块类型

{

int pagenum; // 页号

int accessed; // 访问量,其值表示多久未被访问

}BLOCK;

int pc; // 程序计数器,用来记录对应的页号

int n; // 缺页计数器,用来记录缺页的次数

static int num[320]; // 用来存储 320 条随机数

BLOCK block[pagesize]; //定义一大小为 8 的物理块数组

void init(); // 程序初始化函数

int findExist(int curpage); // 查找物理块中是否有该页面

int findSpace(); // 查找是否有空闲物理块

int findReplace(); // 查找应予置换的页面

void display (); // 显示

void randam(); // 产生 320 条随机数 ,显示并存储到 num[320]

void pagestring(); // 显示调用的页面队列

void OPT();

void LRU();

void FIFO();

void main()

{

int select;

printf(" 请输入第一个随机数 (0~320):");

randam();

printf("***** 对应的调用页面队列 *******\n");

pagestring();

do

{

printf("****************************************\n");

printf("1:OPT 2:LRU 3:FIFO 4:退出 \n");

printf("****************************************\n");

printf(" 请选择一种页面置换算法 :");

scanf("%d",&select);

printf("*******************************\n");

init();

switch(select)

{

case 1:

printf(" 最佳置换算法 OPT:\n");

printf("*****************\n");

OPT();

break;

case 2:

printf(" 最近最久未使用置换算法 LRU:\n");

printf("*************************\n*");

LRU();

break;

case 3:

printf(" 先进先出置换算法 FIFO:\n");

printf("*********************\n");

FIFO();

break;

}

}while(select!=4);

}

void init()

{

for(int i=0;i

{

block[i].pagenum=-1;

block[i].accessed=0;

pc=n=0;

}

}

int findExist(int curpage)

{

for(int i=0; i

{

if(block[i].pagenum == curpage )

return i; // 检测到内存中有该页面,返回 block 中的位置

}

return -1;

}

int findSpace()

{

for(int i=0;i

{

if(block[i].pagenum==-1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值