CS162 13-17 虚拟内存

起源

为啥我们需要虚拟内存-----------需求是啥?

可以给程序提供一个统一的视图,比如多个程序运行同一个代码段的话,同一个kernel,就可以直接共享

 cpu眼里的虚拟内存

无限内存的假象

设计迭代过程

为啥这样设计?

一个迭代过程

用上下界来做

 缺点

 还要考虑到内存不足,要和磁盘做swap的情况

真正的虚拟内存设计

PageTable 

页表的改变会影响进程地址空间的独立性,所以采用了双模式,要进入内核态才能做修改。

如果单独一个page table的话,如果地址空间是4GB那么我们要2百万的entry

分级页表 

所以我们采用了两级页表,为了避免浪费空间

 转换过程&TLB

 

不需要每次都到mmu里面遍历页表,用TLB缓存住。 

 

Page fault & 按需分页

page fault

 按需分页

何时触发

 替换策略

LRU是min的一种近似方法 

 

 

 

 

 总结

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值