操作系统课设--虚拟内存

本文详细介绍了在Nachos操作系统上进行虚拟内存管理的实验,包括实验目的、环境、思路和关键代码注释。实验通过实现虚拟内存,允许程序在物理内存不足时利用硬盘空间,使用FIFO页面置换算法。在调试过程中,解决了语法错误和数组长度问题,最终成功运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验七 虚拟内存(lab7)

实验目的

在未实现虚拟内存管理之前,Nachos在运行一个用户进程的时候,需要将程序运行所需所有内存空间一次性分配。虚拟内存实现将突破物理内存限制。本实验核心任务为根据理论学习中涉及的兑换技术,设计并实现用户空间的虚拟内存管理。

实验环境

虚拟机下Ubuntu Linux 16.04 LTS系统,nachos-3.4内核管理模块和MIPS CPU软件模拟模块,代码在lab7文件夹下面实现。

实验思路

我已经完全忘记了大二下学期学的虚拟内存是什么了,连概念都不记得,去查了一下才记起来和虚拟内存相对应的是物理内存。看了这个网页,https://blog.csdn.net/qq_40840459/article/details/81054164
大概知道物理内存是平时我们理解的内存,就是一般都会从硬盘里把数据拿进来用,因为内存速度比硬盘快很多。但是有时候内存不够用,就要用上硬盘,所以虚拟内存其实是占用硬盘中的空间,不过是和真正内存对应起来的,有建立索引,每次不够用了,就可以把现有的这些换出去放到硬盘里先存着,把想要的page换进来。这样换来换去,反反复复,就很少的内存空间可以对应很多的硬盘空间,相当于有很多虚拟内存可以使。我差不多是这样理解。
有一个很重要的步骤是交换。在发生缺页错误时,才需要交换。因为内存中可能会存在大量我们不常访问的数据占空间,真正的内存不够用的时候,需要把物理内存通过虚拟地址当成内存换进来。就其实内存能容纳的地方并没有变多,也没有变少,只是因为可以交换,所以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值