关于虚拟地址与物理地址转化

强烈推荐https://toast-lab.sist.shanghaitech.edu.cn/courses/CS110%40ShanghaiTech/Spring-2023/labs/Camera.jar

注意:linux可能会出现显示不全。推荐windows系统。

我们的整个系统包含 
Physical Memory(分为若干个page frame,通过page table中的frame number找到 frame,通过虚拟地址中的offset找到具体byte/word)
Virtual Memory:all the pages of virtual memory for this process
Translation Lookaside Buffer: 缓存区(每一行包括:virtual pagenumber与Physical Page Number)
Page Table:每一行(PTE,page table entry,页表条目)包括(Frame number与Valid Bit)

首先,我们拆分地址为PAGE与OFFSET两部分。随后在TLB中依据PAGE遍历寻找,如果没有找到则发生TLB miss
前往page table的对应PTE寻找,如果virtual page number 所对应的该page table entry的valid bit是0,则发生page fault(page table中未保存说明Physical Memory中没有存储相应的数据)。
于是,我们将page从hard disk 中写入physical memory。
如果physical memory有空位,则将数据读入第一个available frame。
如果phisical memory已满,我们需要按照一定策略替换某个page frame。随后我们将替换出来的page frame 原本对应的PTE(page table 中含有 frame number记录)的valid bit置为0. 随后,将新的page frame与page table entry的关系更新进TLB与page table(也就虚拟地址page号与物理地址page号)
最后生成物理地址:page frame(page bit)+ offset(offset bit)
最值得注意的是:page hits+page faults = TLB misses

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值