Linux教程

操作系统:分页管理系统页面置换算法设计与实现

本文主要是介绍操作系统:分页管理系统页面置换算法设计与实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目如下

一个请求分页管理系统,按字节编址,逻辑地址及物理地址的有效位均为32位(二进制),页面大小为4KB。假设一次内存访问时间为100ns,处理一次缺页的平均时间105 ns(已含更新页表的时间,缺页中断中不更新快表)。
进行地址转换时分如下两种情况:
1)无快表时,直接访问页表。如发生缺页,进入缺页中断处理,处理后返回到产生缺页中断的指令处重新执行(即重新访问页表)。
2)有快表时,快表和页表同时访问(一次快表的访问时间是5ns)。如快表中找到该页,则直接访问该页(不再继续页表访问);如快表中没找到,则继续页表访问,快表的内容在访问页表之后自动更新,可忽略的快表内容更新时间,初始状态快表为空。如发生缺页,进入缺页中断处理,处理后返回到产生缺页中断的指令处重新执行(即重新同时访问快表和页表)。
采用多线程思想设计一个程序,模拟页存储管理地址变换的过程,可采用FIFO、LRU、LFU、OPT 中的2种面置换算法。基本要求如下:
(1)需要建立多个线程,每个线程执行一个页面置换算法,同时显示不同算法的执行结果。
(2)输入一个逻辑地址访问序列和随机产生逻辑地址访问序列,自动转换为逻辑页号,产生内存页号,分别由2个算法完成页面置换;
例如
输入1: A245H,17D6H,48B7H,2631H,1D27H,36F8H,A436H
输入2: 11323H ,23516H,A16A7H,26B23H,33D21H,116FCH, C2121H,316FCH,C3121H
输入3: 13245H,5A716H,78B7H,5D631H, A1D27H,136F8H,B4336H, AA5CDH, 7AA33H
(3)能够设定驻留内存页面的个数、内存的存取时间、缺页中断的时间、快表的时间,并提供合理省缺值,可以暂停和继续系统的执行;
(4)能够设定逻辑地址访问序列中地址的个数和地址的范围;
(5)能够设定有快表和没有快表的运行模式;
(6)提供良好图形界面,同时能够展示每个个算法当前运行的情况和运行的结果;
(7) 给出每种页面置换算法每次每个页面的存取时间、每个逻辑地址对应的物理页号和内存地址;
(8) 能够将每次的实验输入和实验结果存储起来,随时可查询;
(9) 完成多次不同设置的实验,总结实验数据,看看能得出什么结论。

具体设计出的程序界面如下:
在这里插入图片描述
题目要求基本实现,没有创新功能,建议自己写项目时,将4个算法全都实现了,这个程序验收时,老师就说算法有一点少,想要得高分的同学记得多写点功能
在这里插入图片描述
具体代码资源:https://download.csdn.net/download/weixin_46055684/72312988

这篇关于操作系统:分页管理系统页面置换算法设计与实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!