设计一个虚拟存储区和内存工作区编程序演示下述算法的具体实现过程

1、齐齐哈尔大学操作系统课程综合实践题目:主界面以灵活选择某算法班级:计本093姓名:赵明秋学号:2009021114指导教师:韩金库2008年12月主界面以灵活选择某算法实验摘要:计算机应用专业的学生全面了解和掌握系统软件,一般软件设计方法和技术的必不可少的综合课程,也是了解计算机硬件和软件如何衔接的必经之路。我觉得此次实验最大的亮点以及不同于别人的地方就是将三种页面置换算法按照课本上老师讲的方式直观简便的输出,在采用输出算法时,我摒弃了常人所用的一维数组输出法,而别出心裁的采用了二维数组的输出算法,模拟了内存的物理块,清晰直观的表达了页面是如何在外存中被调入内存中的,以

2、及各页面在调入过程中是否命中或在置换时又置换了内存中哪个页面。在软件工程的角度来看,我的系统具有高内聚低耦合的优点,即各种算法之间,并不影响彼此的函数调用,而在各算法的内部,内聚度很高。关键词:设计原理,设计方案,流程图,源代码,测试结果,结束语,参考文献课题运行环境操作系统:WindowsXP编程环境:MicrosoftVisualC+6.01.1实验内容:通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。熟悉虚拟存储管理的各种液面置换算法,并辨析恶魔你程序实现请

4、能性比刚调入内存的可能性大。建立一个FIFO队列,收容所有在内存中的页。被置换页面总是在队列头上进行。当一个页面被放入内存时,就把它插在队尾上。这种算法只是在按线性顺序访问地址空间时才是理想的,否则效率不高。因为那些常被访问的页,往往在主存中也停留得最久,结果它们因变“老”而不得不被置换出去。FIFO的另一个缺点是,它有一种异常现象,即在增加存储块的情况下,反而使缺页中断率增加了。当然,导致这种异常现象的页面走向实际上是很少见的。该算法将所有使用的内存页面构成一个循环列队,每次置换时将队列中的队首唤出,队首指针后移一位即可,算法容易实现牡丹石最先进入内存的野末必将来就不用再到,甚至可能很快就会

7、面时,就把它从栈中取出放在栈顶上。这样一来,栈顶总是放有目前使用最多的页,而栈底放着目前最少使用的页。由于要从栈的中间移走一项,所以要用具有头尾指针的双向链连起来。在最坏的情况下,移走一页并把它放在栈顶上需要改动6个指针。每次修改都要有开销,但需要置换哪个页面却可直接得到,用不着查找,因为尾指针指向栈底,其中有被置换页。因实现LRU算法必须有大量硬件支持,还需要一定的软件开销。所以实际实现的都是一种简单有效的LRU近似算法。一种LRU近似算法是最近未使用算法(NotRecentlyUsed,NUR)。它在存储分块表的每一表项中增加一个引用位,操作系统定期地将它们置为0。当某一页被访问时,由

9、能保证有最低的缺页率,所以称为最佳置换算法,但是该算法紧紧是一种理想状况下的算法,因为在进程实际运行过程中,将来会执行到那儿页是不可预知的,所以无法选择该置换那个页出去。因此,本算法在实际中无法使用,只能作为一种标准来衡量其他算法的性能4.1设计方案1)主界面:设置页面产生算法选择界面和页面置换算法选择界面;2)子界面:页面产生算法分为两个界面,分别是随机产生算法和自己输入产生算法。页面置换算法分为三个子界面,分别是先进先出算法界面、最近最久未使用算法界面、最佳置换算法界面。5.1流程图5.1.1主流程图图(1)5.1.2FIFO函数流程图:图(2)5.1.3LRU函数流程图:图

10、(4)5.1.4OPT函数流程图:图(5)6.源代码6.1程序代码#include#include#include#defineBsize3#definePsize12#includeusingnamespacestd;intQStringPsize;intNum=0;structpageInforintcontent;inttimer;classYZ_replacepublic:YZ_replace();YZ_replace();intfindSpace();intfindExist(intcurpage);intfindReplace

11、();voidFIFO();voidOPT();voidBlockClear();voidinitia1(intstring);pageInfor*block;pageInfor*page;intmemory_stateBsizePsize;ints;private:;voidP_String(intQString)inti;srand(unsigned)time(NULL);for(i=0;iPsize;i+)QStringi=rand()*9/RAND_MAX+1;cout页面走向:;for(i=0;iPsize;i+)coutQStr

12、ingi;coutendl;YZ_replace:YZ_replace()s=0;block=newpageInforBsize;for(inti=0;iBsize;i+)blocki.content=-1;blocki.timer=0;voidYZ_replace:initia1(intQString)intj;page=newpageInforPsize;for(inti=0;iPsize;i+)pagei.content=QStringi;pagei.timer=0;for(i=0;iPsize;i+)for(j=

13、0;jBsize;j+)memory_stateji=0;YZ_replace:YZ_replace()s=0;intYZ_replace:findSpace()for(inti=0;iBsize;i+)if(blocki.content=-1)returni;return-1;intYZ_replace:findExist(intcurpage)for(inti=0;iBsize;i+)if(blocki.content=pagecurpage.content)returni;return-1;intYZ_replace:findRep

14、lace()intpos=0;for(inti=0;i=blockpos.timer)pos=i;returnpos;voidYZ_replace:FIFO()intexist,space,position;for(inti=0;iPsize;i+)exist=findExist(i);if(exist!=-1)for(intb=0;bBsize;b+)memory_statebi=memory_statebi-1;s+;elsespace=findSpace();if(space!=-1)for(intb=0

15、;bBsize;b+)memory_statebi=memory_statebi-1;blockspace=pagei;memory_statespacei=blockspace.content;elsefor(intb=0;bBsize;b+)memory_statebi=memory_statebi-1;position=findReplace();blockposition=pagei;memory_statepositioni=blockposition.content;for(intj=0;jBsize;j+)blockj.timer

16、+;voidYZ_replace:BlockClear()for(inti=0;iBsize;i+)blocki.content=-1;blocki.timer=0;typedefstructpageintnum;inttime;Page;PagebBsize;PagecallBsize;intcBsizePsize;intqueue100;intK;voidInitL(Page*b,intcBsizePsize)inti,j;for(i=0;iBsize;i+)bi.num=-1;bi.time=Psize-i-1;

17、for(i=0;iBsize;i+)for(j=0;jPsize;j+)cij=-1;intGetMax(Page*b)inti;intmax=-1;inttag=0;for(i=0;imax)max=bi.time;tag=i;returntag;intEquation(intfold,Page*b)inti;for(i=0;i=0)bval.time=0;for(i=0;iBsize;i+)if(i!=val)bi.time+;elsequeue+K=fold;val=GetMax(b);bval.num=fold;bval.

18、time=0;for(i=0;iBsize;i+)if(i!=val)bi.time+;voidYZ_replace:OPT()intexist,space,position;for(inti=0;iPsize;i+)exist=findExist(i);if(exist!=-1)for(intb=0;bBsize;b+)memory_statebi=memory_statebi-1;s+;elsespace=findSpace();if(space!=-1)for(intb=0;bBsize;b+)memory_statebi=memory

19、_statebi-1;blockspace=pagei;memory_statespacei=blockspace.content;elsefor(intk=0;kBsize;k+)memory_stateki=memory_stateki-1;for(intj=i;jPsize;j+)if(blockk.content!=pagej.content)blockk.timer=1000;elseblockk.timer=j;break;position=findReplace();blockposition=pagei;memory_sta

20、tepositioni=blockposition.content;intdecide(stringstr)for(inti=0;istr.size();i+)if(stri9)return0;break;returni;inttrans(stringstr)intsum=0;for(inti=0;istr;a=decide(str);while(a=0)cout输入错误,请重新输入!str;a=decide(str);d=trans(str);returnd;voidPut()cout请选择产生页面的方法a:随机产生b:输入产生endl;coutF;

21、while(F!=a&F!=b)coutF;if(F=a)P_String(QString);if(F=b)cout请输入各页面号:endl;for(inti=0;iPsize;i+)QStringi=put();coutendl;cout|-|endl;voidmain()cout|-页面置换算法-|endl;cout|-|endl;intt=1;while(t)Put();YZ_replacetest1;YZ_replacetest3;charselect;docout请选择要应用的算法:FIFO算法LRU算法OPT算法退出end

22、l;intp,q;coutselect;while(select!=0&select!=1&select!=2&select!=3)cout您的输入无效,请重新输入:select;if(select=0)cout您选择的是菜单endl;cout完成退出.endl;t=0;if(select=1)cout您选择的是菜单endl;coutFIFO算法状态:endl;test1.initia1(QString);test1.FIFO();test1.BlockClear();cout-endl;for(p=0;pBsize;p+)for(q=0;qPsize;q+

23、)couttest1.memory_statepq;coutendl;cout-endl;cout命中率:test1.s/Psizeendl;test1.YZ_replace();coutendl;if(select=2)inti,j;K=-1;InitL(b,c);for(i=0;iPsize;i+)Lru(QStringi,b);c0i=QStringi;for(j=0;jBsize;j+)cji=bj.num;cout您选择的是菜单endl;coutLRU算法状态:endl;cout-endl;for(i=0;iBsize;i+)for(j=

24、0;jPsize;j+)if(cij=-1)cout0;elsecoutcij;coutendl;cout-endl;cout命中率:(Psize-(K+1)/Psize;coutt;coutendl;if(select=3)cout您选择的是菜单endl;coutOPT算法状态:endl;test3.initia1(QString);test3.OPT();test3.BlockClear();cout-endl;for(p=0;pBsize;p+)for(q=0;qPsize;q+)couttest3.memory_statepq;coute

25、ndl;cout-endl;cout命中率:test3.s/Psizeendl;test3.YZ_replace();coutendl;while(select=1|select=2|select=3);7.测试结果7.1页面选择测试:图(7.1)图(7.2)分析:页面产生的方法有两种选择,分别是随机产生和自己输入产生,选择菜单的时候有对异常输入的处理,如果输入错误,有错误提示,当输入正确菜单的时候,选择a,自动产生页面走向,如果选择b,自己可以任意输入,如果输入错误,有错误提示。6.2应用算法选择测试图(7.3)分析:选择算法时,有异常处理,即如果输入错误,有错误提示。如果选择菜单1,即选择了FIFO算法,展示此算法的置换状态并显示命中率。置换状态以二维数组的形式输出,既直观又清晰。图(7.4)分析:算法一进行完以后,界面自动跳到应用算法的选择界面,即可以再次选择置换算法,选择菜单2,即选择了LRU算法,展示此算法的置换状态并显示命中率,可以和第一个算法进行对比,找出两种算法的不同。图(7.5)分析:算法二进行完以后,界面自动跳到应用算法的选择界面,

THE END
1.51c视觉~CV~合集9qq6669490e54384的技术博客一、OpenCV4图像分割算法-AlphaMatting infoFlow使用演示与应用 主要介绍OpenCV Alpha Matting中Info Flow图像分割算法的使用与演示。 背景介绍 Information Flow Alpha Matting算法是来源于Google Summer of Code 2019,该算法在OpenCV4.3版本中被加入。 详细介绍可参考OpenCV官方文档介绍: https://blog.51cto.com/whaosoft/12863288
2.揭秘平台算法揭秘平台算法投资小野哥 上海 1 打开网易新闻 体验效果更佳巴西史上蕞高票房的电影,真的是太敢拍了 巴布影视解说 1436跟贴 打开APP 爆笑相声:《拯救莫斯科》郭德纲 于谦 你今天快乐吗 15跟贴 打开APP 小姑子未婚生子,婆婆强逼儿媳抚养 清风情感动画 1跟贴 打开APP 纪录片:钢筋的制造过程,以回收金属为原料,https://m.163.com/v/video/VWIU841CE.html
3.各种简单算法动画演示前言 有些时候在学习算法时,有些算法通过文字来描述或者图片并不是那么清楚.如果有动画演示,更加有利于自己的理解和学习. 资源地址 flash下载链接链接:https://pan.baidu.com/s/1aZaxPqR-XWiSVNzrNCSoDA 提取码:1oxw 在线演示地址 https://www.cs.usfca.edu/~galles/visualization/Algorithms.html https://www.jianshu.com/p/dc1da7bd0477
4.探秘经典算法的可视化之旅这个开源项目提供了一种独特的方式,让我们能够直观地理解并欣赏那些著名算法的工作原理。通过动态图形和交互式界面,即使是复杂的算法也能变得生动易懂。使用这款工具,无论是初学者还是经验丰富的开发者,都能深化对算法的理解,并在实践中提升自己的技能。 https://blog.csdn.net/gitblog_00014/article/details/139820311
5.干货算法学习必备诀窍:算法可视化解密腾讯云开发者社区算法可视化是伴随着需求而发展的一门技术,用户的需求决定了算法可视化的发展方向。从只提供文字和简单图表的无可视化阶段,到通过弹出式问题与用户交互,从用户能改变系统所演示算法的数据,再到自主创建自己的算法的可视化动画,用户的需求不同,其在系统中的参与层级也不同。 https://cloud.tencent.com/developer/article/1605577
6.迪杰斯特拉Dijkstra寻路算法演示程序码农集市专业分享IT编程学习1、改进的Dijkstra算法2、详尽的算法描述和代码注释3、界面和逻辑分离的设计,任何人都可以使用其中的算法4、生动的演示,丰富的设置功能https://www.coder100.com/index/index/content/id/1150683
7.DES加密算法演示C语言DES加密算法演示程序,代码量不超过100行,学习C语言算法相当不错的参考代码。 上传者:weixin_39840650时间:2019-07-10 基于Matlab实现DES加密算法的动态演示系统源码+GUI界面+详细文档+全部资料(高分项目).zip 【资源说明】 基于Matlab实现DES加密算法的动态演示系统源码+GUI界面+详细文档+全部资料(高分项目).ziphttps://www.iteye.com/resource/wenxiang0508-1085272
8.基于YOLOv5的疲劳驾驶检测系统(Python+清新界面+数据集)> 博主对整个系统进行了详细测试,最终开发出一版流畅得到清新界面,就是博文演示部分的展示,完整的UI界面、测试图片视频、代码文件,以及Python离线依赖包(方便安装运行,也可自行配置环境),均已打包上传,感兴趣的朋友可以通过下载链接获取。https://developer.aliyun.com/article/1194380
9.舰船设计范文11篇(全文)演示界面的效果如图1所示。主要包括播放控制面板和动画播放显示区。播放控制面板用来设计航路的播放控制,包括加速播放(可选加速系数)、播放、重播、暂停、返回等控制;包括航线、路标、画笔显隐、截屏等控制。动画播放显示区将按照用户设计的方案将标号的运动按照时间排序顺序显示,为最终设计显示效果。通过播放控制面板可以对https://www.99xueshu.com/w/ikey7pjrh6i0.html
10.算法管理界面之江天枢一站式人工智能开源平台算法管理界面 算法管理分为「我的算法」和「预置算法」两个页面,用于管理自定义开发和平台预置的算法。点击查看演示视频 # 1. 我的算法# 点击「上传算法」,可以上传用户自定义开发的算法,也可从Notebook 列表中点击「保存算法」到算法管理中,对算法可进行在线编辑、创建训练任务、下载、 fork 、删除等操作。https://docs.tianshu.org.cn/docs/module/notebook/algorithm-list/
11.中国科大研究分布式光量子计算获重要进展界面新闻日前,中国科大郭光灿院士团队在量子网络领域取得重要进展。该团队李传锋、周宗权、柳必恒等人基于多模式固态量子存储和量子门隐形传送协议在合肥市区实现了跨越7公里的非局域量子门,并演示了分布式的Deutsch-Jozsa算法及量子相位估计算法。 能不能用量子通信网连接多台量子计算机,让它们远程凝聚出“超级量子算力”?据中国科学https://www.jiemian.com/article/11794198.html
12.手把手教你从0基础入门StableDiffusion应谋鬼计这里演示一下win下如何安装,mac系统的同学也可以在网上找到对应的一键整合包,以及显卡不太好的同学也可以选择云端部署,这里给大家把链接贴出来。大家可以自行对照视频一步一步进行,基本没有什么难度。 mac m芯片:https://www.bilibili.com/video/BV1Kh4y1W7Vg/?spm_id_from=333.337.search-card.all.click&vd_https://www.shangyexinzhi.com/article/7745898.html
13.人工智能大作业题目2要求用可视化界面演示算法执行过程应能选择预定义的启发式函数能随机初始化初始状态能单步执行也能连续执行能画出搜索树同时标出估价函数在每个节点的各项函数值能展示open表和closed表的动态变化过程 人工智能大作业题目 人工智能大作业题目 1、基于A*算法求解八数码问题 (1)至少定义3种不同的启发式函数,编程实现求https://easylearn.baidu.com/edu-page/tiangong/exercisedetail?id=060dc2eeb84cf7ec4afe04a1b0717fd5360cb238&fr=search
14.算法动态可视化工具有哪些帆软数字化转型知识库FineVis也是帆软公司旗下的产品,专注于数据可视化分析。与FineReport不同,FineVis更加注重直观和交互式的图表展示,适合用来进行算法演示和大数据分析。其优势在于强大的图表库和便捷的操作界面,使用户能够快速创建各种动态可视化图表,展示算法的运行过程和结果。 https://www.fanruan.com/blog/article/241547/
15.西北大学取得26项高水平科技成果研究提出了表面缺陷与界面异质结调控催化剂0D/2D Zn0.5Cd0.5S/GO表面局域电子浓度的新思路,揭示了氧化石墨烯(GO)与苯环之间π-π相互作用机理,以削弱空间限制促进界面电荷传输,增强了VS-Zn0.5Cd0.5S/GO光催化活性。提出VS-Zn0.5Cd0.5S/GO复合催化体系单线态氧(1O2)和质子耦合电子转移(PCET)的级联一锅两步反应https://www.nwu.edu.cn/info/1192/32782.htm
16.通达OA2009版发布专题功能增强2009软件界面主题 观看Flash视频演示贴近自然的2009界面主题,更加舒适养眼 全新的北方通达?控制中心 观看Flash视频演示自主开发的北方通达?应用服务控制中心,替代原Apache自带的监视器,更加方便实用,可管理所有通达软件后台服务 新增任务调度后台服务 https://www.tongda2000.com/news/MYOA2009/
17.Focusky動畫演示大師4.5.1forWindows:軟體王2024Focusky操作界面簡潔直觀,尊重用戶已有的軟體使用習慣;還可輕鬆導入PPT,所有操作即點即得,在漫無邊界的畫布上,拖拽移動也非常方便。 思維導圖式的體驗,從整體到局部 輕鬆建立思維導圖風格的動態幻燈片,以邏輯思維組織內容,從整體到局部,讓觀眾跟隨您的思維方式理解、思考。 3D幻燈片演示特效打破常規 打破傳統的PPT切https://free.softking.com.tw/29043/
18.VisualC++示例MicrosoftLearn演示如何实现编辑器应用程序类似与 Office 2007 应用程序,具有类似用户界面元素和有限类似功能。 MSOffice2007Demo 示例实现了与 Office 2007 应用程序相当类似的非常完整的功能区用户界面,某些(但不是全部)功能区元素已连接到应用程序中的功能。 NewControls https://technet.microsoft.com/zh-cn/library/ee837238(v=vs.110).aspx
19.长沙市开福区教育局2020年开福区第一中学等10所学校智慧校园示范2、AI分析模块:18)系统支持基于机器学习算法对课堂场景进行自动捕捉与分析,支持通过浏览器直接访问设备AI模块的IP地址进入AI分析系统界面,通过快速预览功能实时查看教师和学生的实时分析界面,实现教师及学生检测、教师及学生行为分析等;19)系统提供一键配置向导功能,可自定义配置系统网络及2路分析摄像机信号;教师区及学生https://www.bidcenter.com.cn/newscontent-124305408-4.html