虚拟内存的实现机制

在这里插入图片描述

原理:
电脑上多个程序,各程序被编译连接生成可执行文件(机器指令程序)----在磁盘中存储时各程序被切分成多个部分(称为“页”),每一页都对应一个虚拟地址(其实就是对每一页编号)-----由于物理内存有限(运存)所以各程序在执行时只是把此时要执行的页加载到物理内存中去(其他页还是在外存中)-----外存和内存和虚拟地址之间建立一个映射表-----cpu在运行时从内存中取指令执行(CPU取指令是通过虚拟地址来寻找要执行的指令的)----CPU中的地址转换单元(MMU)通过映射表把虚拟地址查找指令的(外存)物理地址或(内存)物理地址(如果发现要执行的指令在内存中就直接加载到CPU计算,如果在外存中就匆匆忙忙把该指令加载到内存中,并更新映射表,再从内存中加载到CPU中执行)。
注: 所谓“虚拟内存”,是对于CPU计算单元来说的,CPU从内存取指令时用的是虚拟地址,它并不知道这个地址是虚拟的。

在这里插入图片描述

补充: 虚拟内存把程序分为各个部分(称为“页”每个“页”的大小是4K),物理内存(即内存)中实际的空间也划分为各个部分(称为“页框”),他们之间通过映射表(页表)对应起来。系统为每个程序分配4G的虚拟内存。这样每个程序都认为自己拥有4G内存可以使用。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值