起源
为啥我们需要虚拟内存-----------需求是啥?
可以给程序提供一个统一的视图,比如多个程序运行同一个代码段的话,同一个kernel,就可以直接共享
cpu眼里的虚拟内存
无限内存的假象
设计迭代过程
为啥这样设计?
一个迭代过程
用上下界来做
缺点
还要考虑到内存不足,要和磁盘做swap的情况
真正的虚拟内存设计
PageTable
页表的改变会影响进程地址空间的独立性,所以采用了双模式,要进入内核态才能做修改。
如果单独一个page table的话,如果地址空间是4GB那么我们要2百万的entry
分级页表
所以我们采用了两级页表,为了避免浪费空间
转换过程&TLB
不需要每次都到mmu里面遍历页表,用TLB缓存住。
Page fault & 按需分页
page fault
按需分页
何时触发
替换策略
LRU是min的一种近似方法
总结