Linux 操作系统原理 — 内存 — 物理存储器与虚拟存储器

Posted 云物互联

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 操作系统原理 — 内存 — 物理存储器与虚拟存储器相关的知识,希望对你有一定的参考价值。


目录


文章目录


Linux 内存管理全貌

Linux

物理存储器

见《​​计算机组成原理 — 存储系统​​》。

虚拟存储器

在早期的计算机系统中,程序员会直接对主存的物理地址进行操作,这种编程方式显然会出现多进程操作共享内存空间的数据一致性问题。而且由于当初不存在虚拟存储器的概念,所以 CPU 寻址宽度就成为了内存容量的极限。显然,直接操作主存的物理地址不是一个好的办法。

为了解决这些问题,现代计算机系统通过软(操作系统)、硬件结合的方式,把内存和外存从逻辑上统一成了一个整体,这就是虚拟存储器,或称为虚拟存储系统,简称虚拟内存。

虚拟存储器解决了三个根本需求:


  1. 确保可以运行存储空间需求比实际内存空间大的用户程序​。
  2. 确保为用户程序分配的内存空间是连续的​。
  3. 确保多个用户程序之间的内存空间互相隔离​。

为此,虚拟机存储器提供了三个重要的能力:


  1. 内-外存空间交换能力​:利用局部性原理,从设计上,把内存当成外存的高速缓存,在内存中只存储活动数据,并根据需要在 “内-外” 存之间来回传送数据。通过这种数据交换的能力,即高效地利用了内存,同时也内存的容量扩大至内-外存容量的总和(注:实际上通常不会将全部外存都加入交换)。
  2. 虚拟地址空间编址能力​:为每个应用程序提供一致的虚拟地址空间。
  3. 虚拟地址空间隔离能力​:保护每个应用程序的虚拟地址空间是互相隔离的。

为了提供上述三个重要的能力,虚拟存储器实现了两个关键技术:


以上是关于Linux 操作系统原理 — 内存 — 物理存储器与虚拟存储器的主要内容,如果未能解决你的问题,请参考以下文章

Linux 操作系统原理 — 内存管理 — 页式内存管理技术

Linux内存映射原理

Linux 操作系统原理 — 虚拟内存管理

Linux 内存管理 (虚拟内存,进程地址空间)

Linux 内核 内存管理内存映射原理 ① ( 物理地址空间 | 外围设备寄存器 | 外围设备寄存器的物理地址 映射到 虚拟地址空间 )

linux共享内存和mmap的区别