> # ♻️ 资源
> **大小:** 233KB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100013202**](https://www.yuque.com/sxbn/ks/100013202)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/88236791**](https://download.csdn.net/download/s1t16/88236791)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 一.实验目的
- 操作系统课程设计的主要任务是研究计算机操作系统的基本原理和算法,掌握操作系统的进程管理、存储管理、文件管理和设备管理的基本原理与主要算法。目的是使学生掌握常用操作系统(如DOS、Windows或Linux)的一般管理方法,了解它是如何组织和运作的,对操作系统的核心概念和算法有一个透彻的理解,并对系统运行的机制有一个全面的掌握,从而充分理解系统调用与程序设计之间的关系。
- 使用c++语言实现OPT、FIFO、LRU、LFU四种置换算法。更高层次的追求还要有较为完善的初始化界面、登陆界面、退出界面。并且还应该有相应的报错、纠错系统。以保证程序可以正常运行。
- 在完成操作系统各部分实验的基础上,对操作系统的整体进行一个模拟,通过实践加深对各个部分的管理功能的认识,还能进一步分析各个部分之间的联系,最后达到对完整系统的理解。同时,可以提高运用操作系统知识解决实际问题的能力;锻炼实际的编程能力、创新能力及团队组织、协作开发软件的能力;还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。
# 二.实验原理
算法的几大功能基本思想:
OPT:在分配内存页面数小于进程页面数时,先运行的几个页面放入内存中。有需要处理的新页面,则将原来内存中的几个页面中将来不再使用的调出,然后将新页面放入。
FIFO:在分配内存页面数小于进程页面数时,先运行的几个页面放入内存中。这时有需要处理的新页面,则将原来内存中的几个页面中最先进入的调出,然后将新的页面放入。
LRU:在分配内存页面数小于进程页面数时,先运行的几个页面放入内存中。当需要调页面进入内存,而当前分配的页面全部不空闲时,选择其中最长时间没有使用的页面调出,以空出内存来放置新调入的页面。
LFU:在分配内存页面数小于进程页面数时,先运行的几个页面放入内存中。当需要调页面进入内存,而当前分配的页面全部不空闲时,选择其中最长次数没有使用的页面调出,以空出内存来放置新调入的页面。
# 三.实验内容
程序流程图:
![image.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1692585422758-0b6ccf0b-9a99-470e-a762-eaa3f297ca45.png#averageHue=%23f6f6f6&clientId=u7ae3370f-42ba-4&from=paste&height=550&id=u9f7c9e63&originHeight=687&originWidth=607&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=148842&status=done&style=none&taskId=u9d8fd188-66fe-476b-bfde-ec96ffc955b&title=&width=485.6)
主程序流程图:
![image.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1692585443004-c30d013f-2621-4a17-ae28-1b6810ed1b74.png#averageHue=%23f6f6f6&clientId=u7ae3370f-42ba-4&from=paste&height=558&id=ua16f01ed&originHeight=698&originWidth=682&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=195901&status=done&style=none&taskId=u856ccb94-2d4e-427e-aa82-944c9e8949f&title=&width=545.6)
登陆程序流程图:
![image.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1692585464143-a0f42041-9f69-4b4c-abd7-7cca2f8c5684.png#averageHue=%23f5f5f5&clientId=u7ae3370f-42ba-4&from=paste&height=445&id=u5bc6ed25&originHeight=556&originWidth=534&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=131277&status=done&style=none&taskId=u819358bb-f0df-4d4e-b8e7-2959d025388&title=&width=427.2)
初始化界面的截图:
![image.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1692585483557-98e5932b-74db-4d6c-8947-a36d35f97ad0.png#averageHue=%23030303&clientId=u7ae3370f-42ba-4&from=paste&height=349&id=u80877724&originHeight=436&originWidth=516&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=89220&status=done&style=none&taskId=ucd02d88c-6f6b-467a-955f-f65bf6e9e07&title=&width=412.8)
登陆成功后自动生成指令地址和页地址:
![image.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1692585497702-d1d63c6d-2c2e-4bd3-8ca6-a9f9b3cdb130.png#averageHue=%23030202&clientId=u7ae3370f-42ba-4&from=paste&height=222&id=u7177a03f&originHeight=277&originWidth=669&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=99110&status=done&style=none&taskId=uaea6e015-2fb1-4a5f-81cf-e84a8bcbd13&title=&width=535.2)
![image.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1692585521012-6be4935a-3158-4acc-902d-1d9ac8536b45.png#averageHue=%23070606&clientId=u7ae3370f-42ba-4&from=paste&height=446&id=ue1d6b365&originHeight=558&originWidth=568&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=243875&status=done&style=none&taskId=ubf9bbe8c-1d8e-4aa5-9fa0-0ef610b2e0c&title=&width=454.4)
选择算法并运行,出现结果:
![image.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1692585533423-b7a2cdbe-3e99-45d6-9225-e96d4351e80a.png#averageHue=%23060505&clientId=u7ae3370f-42ba-4&from=paste&height=379&id=uddaf1837&originHeight=474&originWidth=515&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=166640&status=done&style=none&taskId=u9cfa2f03-0494-40e0-a4e1-eff794eaf08&title=&width=412)
运行结束后的结束界面:
![image.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1692585549081-8c729d5f-0c4f-4984-869e-cf6fbfb6307c.png#averageHue=%23010101&clientId=u7ae3370f-42ba-4&from=paste&height=310&id=ufb26d841&originHeight=388&originWidth=690&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=156766&status=done&style=none&taskId=u1280f7a0-60ac-4507-9f9f-12364245715&title=&width=552)
# 四. 实验问题
算法问题:OPT算法较其他算法难了很多。在思路上也很不同。所以一开始并未成功写出,后来在网上查阅一些资料提供了一些新的思路,终于解决。难处在于如何处理好当前内存中的页面和将来页面的比价并记录下将来页面出现的时间。LRU算法和FIFO算法中缺页的判断和OPT算法不同的是这两种算法更容易出现当前页面已经在内存中出现,遂不能算作缺页。一开始并未考虑周到,设计成只要内存中数据发生变化(包括顺序变化)即缺页,后发现问题后及时调整解决问题。
还有是在程序搭建时,登陆系统同样的困扰我很久,改用什么样子的登陆方式,存储信息的方式都是很大的问题,对此我思考了很久,拿出了很多的方案,最后决定是用这个方案实行。
包括后面的报错问题,都很难解决。
# 五. 实验总结与反思
通过本学期操作系统课程设计的学习,使自己更加理解了操作系统的工作原理,特别是对于作业的创建、物理内存的分配等。时间是检验真理的唯一标准,对于知识更是如此,要想学好一门科学文化知识就要重在实践,特别是对于我们这种实践性比较强的课程,更要通过不断的上机操作来更好地学习它,通过实践,我发现了我的很多不足之处,首先是以前的C
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
操作系统课程设计的主要任务是研究计算机操作系统的基本原理和算法,掌握操作系统的进程管理、存储管理、文件管理和设备管理的基本原理与主要算法。目的是使学生掌握常用操作系统(如DOS、Windows或Linux)的一般管理方法,了解它是如何组织和运作的,对操作系统的核心概念和算法有一个透彻的理解,并对系统运行的机制有一个全面的掌握,从而充分理解系统调用与程序设计之间的关系。 使用c++语言实现OPT、FIFO、LRU、LFU四种置换算法。更高层次的追求还要有较为完善的初始化界面、登陆界面、退出界面。并且还应该有相应的报错、纠错系统。以保证程序可以正常运行。 在完成操作系统各部分实验的基础上,对操作系统的整体进行一个模拟,通过实践加深对各个部分的管理功能的认识,还能进一步分析各个部分之间的联系,最后达到对完整系统的理解。同时,可以提高运用操作系统知识解决实际问题的能力;锻炼实际的编程能力、创新能力及团队组织、协作开发软件的能力;还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。
资源推荐
资源详情
资源评论
收起资源包目录
100013202-基于C++实现的虚拟内存页面管理.zip (6个子文件)
virtual_memory_page_management
LICENSE 1KB
MyStack.h 628B
虚拟内存页面管理.cpp 16KB
Queue.h 4KB
README.md 9KB
操作系统实验报告.doc 347KB
共 6 条
- 1
资源评论
神仙别闹
- 粉丝: 2672
- 资源: 7640
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功