Linux虚拟内存

逻辑地址:主存空间 + 辅存空间

物理地址:主存空间

每个程序的虚拟地址空间可以远大于物理地址,也可以远小于物理地址。

远大于:可以提高存储容量

远小于:通常用在多用户或多任务系统中,物理空间较大,,而单个任务并不需要很大的地址空间,较小的虚拟空间则可以缩短指令中地址字段的长度。

1 页式虚拟内存映射

在多数系统中,每个进程对应一个页表。

每个进程所需的页数并不固定,所以页表的长度是可变的,因此通常实现的方法是把页表的基地址保存在寄存器中,而页表本身放在主存中。

把页表相对活跃的的部分表项放到缓存中,称为快表(TLB)。

把完整表放到主存中,称为慢表。

2 段式虚拟内存映射

分页对程序员而言是透明的,而分段对程序员是不透明的。

优点:

段的逻辑独立性使其易于编译,管理,修改和保护。

段长可以根据需要动态改变,允许自由调度,以便有效利用主存空间

 

3 虚拟内存的调用方法

虚拟内存的基本思想是,每个进程有用独立的逻辑地址空间,内存被分为大小相等的多个块,称为页(Page).每个页都是一段连续的地址。

对于进程来看,逻辑上貌似有很多内存空间,其中一部分对应物理内存上的一块(称为页框,通常页和页框大小相等),还有一些没加载在内存中的对应在硬盘上,如图所示。

 

进程的空间分布:

 

 

可以参考:

https://blog.csdn.net/u010150046/article/details/72630262

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值