什么是虚拟内存?

虚拟内存是为解决内存不足问题而设计的技术,它通过分页映射允许程序运行在连续的地址空间。操作系统如Windows和Linux使用虚拟内存,当发生缺页中断时,采用页面置换算法如OPT、LRU、NRU、FIFO、第二次机会和时钟算法来管理物理内存。快表作为页表的缓存,提高了地址查找效率。虚拟内存结合了分页和分段的优点,提供了更大的地址空间和逻辑上的独立地址划分。
摘要由CSDN通过智能技术生成

虚拟内存是为了解决多个程序运行时内存不足的问题而出现的技术。
虚拟内存可以将外存当做内存来使用,它使得程序运行时感觉自己运行在一个连续的地址空间,而实际物理地址却不一定是连续的。
大多数操作系统都使用了虚拟内存,如window的虚拟内存和linux的交换空间。
在编译期间,为变量分配一个虚拟地址;在运行期间,MMU(内存管理单元,用于获取虚拟地址对应的物理地址)通过存储在内存中的页表获取这个变量虚拟地址对应的实际内存物理地址,但是这个时候该变量还未分配物理地址,所以MMU查不到它对应的物理地址是什么,此时发生了缺页中断。需要为它在内存上分配一块物理地址,并将该地址写回页表供以后使用。
虚拟内存被分割成大小固定的页,称为虚拟页(VP),物理内存也被分成大小固定的页,叫物理页(PP),虚拟页的大小和物理页的大小相同。因此,虚拟内存包括未分配的、已分配未缓存到内存的、已分配缓存到内存的。
发生缺页中断时,若物理内存空间满了,需要将物理空间中的数据和磁盘对换来腾出空间,称为页面置换。
页面置换算法:

  1. 最佳替换(OPT,Optimal replacement algorithm)
    是一种理论上的算法,将置换未来最长时间不会访问到的页面。实际中并不会知道未来最长不会被访问到的页面是什么。
  2. 最近最久未使用(LRU,Least Recently Used)
    将置换最近最久未使用的页面,维护一个访问链表,新访问的页面添加到链表的头部,那么链表的尾部就是最近最久未使用的页面。但是每次访问都需要更新链表,维护的代价较高。
  3. 最近未使用(N
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值