首页 > 编程知识 正文

发生缺页中断时怎么处理,缺页异常处理过程

时间:2023-05-06 20:44:04 阅读:163087 作者:2028

用最近最少用(LRU)页面调度算法处理缺页中断

1 .实验目的

加深对存储管理的理解,掌握虚拟存储实验原理观察并理解重要的页面替换算法的替换过程。

2 .实验原理及相关提示

在分页虚拟存储系统中,在硬件发出“缺页中断”后,调用操作系统来处理此中断事件。 如果主存储器中没有可用块,则使用LRU页面调度算法调用作业中第一个进入主存储器的页面,将其保存到磁盘,然后将当前访问的页面加载到该块中。 在调用和读取后修改页面表中相应页面的标志。

3 .实验内容

使用最近的最小置换算法(LRU ),将页面依次送入主存,计算缺页次数和缺页率。

4 .实验步骤

1 .分析设计思路。 考虑用队列存储主存储器中取入的页码,设定全局变量count记录缺页次数。 队列的总长度是分配的主存储器块数。 如果队列没有满的话就调入页面,如果队列满的话就判断要调入的页面是否在主存储器中,如果有,就记录下其下标,把下标后面的要素按顺序向前移动,否则就把开头要素按顺序向后移动

2 .配置文件:定义队列结构,定义数据类型,调用到主存后的页面展示函数void display (),判断队列是否为空是判断主存是否存在页面的空判断函数int empty )

3 .流程图:

5 .程序中使用的数据结构和符号的说明。

typedef int datatype; //定义数据类型

定义typedef struct{ //队列的结构体存储被读入主存储器的页码

int count=0; //设定全局变量count,记录页面错误次数

voidinit(sequence_queue*sq ) ) /初始化队列

voidinsert(sequence_queue*sq,datatype x,int block )//转入主存储的页面

输入标志=0; //flag用于判定要转入的页面是否已经在主存储器中

intempty(sequence_queuesq ) /判断队列中是否有空闲的转入主存储器的页面

显示voiddisplay(sequence_queuesq ) /转入页面

int main ()//实现主函数

6 .源代码

7 .执行屏幕截图

用先进先出(FIFO)页面调度算法处理缺页中断

1 .实验目的

了解连续存储管理方式的原理和分类,了解离散存储管理方式的原理和分类,了解虚拟存储的原理和分类,掌握动态分区分配的常用算法,掌握基于页面的虚拟管理中常用的页面替换算法。 了解内存分页策略,掌握常用的调度算法。 学习实施各种存储分配算法,了解页面大小和内存实际容量对命中率的影响。

2 .实验原理及其相关提示

在分页虚拟存储系统中,在硬件发出“缺页中断”后,调用操作系统来处理此中断事件。 如果主内存中没有可用块,请使用FIFO页面调度算法调用作业中第一个进入主内存的页面,将其保存到磁盘,然后将当前访问的页面加载到该块中。 在调用和读取后修改页面表中相应页面的标志。

3 .实验内容

随机访问字符串和驻留集的大小,在模拟程序中显示废弃的页码,统计命中率。

4 .实验步骤

1 .分析设计思路:该算法总是丢弃最初进入内存的页面。 也就是说,选择并丢弃在存储器中停留时间最长的页。 只需将进程装入内存的页按优先级排队,并设置替换指针使其始终指向最早的页,即可轻松实现此算法。

2 .配置文件)定义存储器结构,定义相关数据类型,初始化队列函数、排队函数,删除队列头元素stringdequeue(linkqueueq ),计算队列长度函数,页面在页面上

3 .流程图:

5 .程序中使用的数据结构和符号说明

typedef struct QNode //定义节点、

字符串数据; //数据域、

结构qnode * next; //指针字段,

定义typedef struct //队列的开头,然后单击,

队列节点前端; //队列头指针是、

队列节点读取; //队列端点指针是、

voidinitqueue (链接队列q ) /初始化队列、

voidenqueue(linkqueueq,string e )//在队列末尾插入e

字符串队列(链接队列q )//删除队列头元素

intqueuelength(linkqueueq )//计算队列长度的函数,返回队列长度

遍历boolfindqueue(linkqueueq,string e ) /队列,查看e是否在驻留集队列中,如果有,则返回true

voidFIFO(stringpageframe[],int pageCount,int waitSpace )//FIFO

6 .源代码

7 .执行屏幕截图:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。