当前位置:单晒网/操作系统/内存管理艺术:从物理内存到虚拟内存的魔法

内存管理艺术:从物理内存到虚拟内存的魔法

内存是程序运行的舞台,操作系统如何管理这块宝贵且有限的资源,是一门精妙的艺术。其核心是虚拟内存技术。在没有虚拟内存的早期系统中,程序直接使用物理内存地址。这导致严重问题:① 地址空间不隔离,一个程序错...

内存是程序运行的舞台,操作系统如何管理这块宝贵且有限的资源,是一门精妙的艺术。其核心是虚拟内存技术
在没有虚拟内存的早期系统中,程序直接使用物理内存地址。这导致严重问题:① 地址空间不隔离,一个程序错误可能覆盖另一个程序的数据;② 内存使用效率低,程序必须全部装入内存才能运行,且大小受物理内存限制;③ 程序地址不确定,每次加载到物理内存的位置可能不同。
虚拟内存解决了所有这些问题。它为每个进程提供一个统一的、连续的、独立的虚拟地址空间(例如,在32位系统中,每个进程都认为自己独享4GB空间)。这个虚拟空间被划分为(通常是4KB)。同时,物理内存也被划分为同样大小的页帧
核心机制

内存管理艺术:从物理内存到虚拟内存的魔法第1张图

  1. 分页:操作系统通过一个称为页表的数据结构,来建立虚拟页面到物理页帧的映射关系。页表由内存管理单元硬件协助查找。
  2. 按需调页:程序运行时,并非所有代码和数据都立即装入物理内存。开始时只加载少数必要的页。当程序访问一个尚未加载的虚拟页时,会触发缺页中断,操作系统中断当前执行,从硬盘的页面文件中调入所需页面到物理内存,然后更新页表,最后恢复程序执行。这个过程对程序完全透明。
  3. 页面置换:当物理内存已满,需要调入新页时,操作系统会根据某种算法(如LRU-最近最少使用)选择一个“不活跃”的物理页,将其写回硬盘(如果被修改过),然后腾出空间给新页。

带来的好处

  • 隔离与安全:每个进程有自己的页表,无法访问其他进程的地址空间。
  • 大地址空间:程序可以使用比物理内存大得多的地址空间。
  • 内存共享:通过将不同进程的页表项指向同一个物理页帧,可以实现代码、库的共享(如系统DLL)。
  • 简化加载:链接器和加载器可以使用固定的虚拟地址,无需关心程序最终在物理内存中的实际位置。

虚拟内存以少量的硬盘空间和精妙的管理算法为代价,换来了内存使用的灵活性、安全性和效率,是现代操作系统的基石。

上一篇:电脑基础知识电脑基础知识电脑基础知识基础知识电脑基础知识电脑基础知识

下一篇:

本文来自于网络,不代表单晒学习网立场,转载请保留链接:https://1.danshai.com/rmzs/15.html
相关文章